Smart Acronym Pluralization (`y' or `ie' before `s')
Hello, Consider the following: \definesynonyms [ACRONYM] [ACRONYMS] [\FULL] [\SHORT] \ACRONYM{DLL}{Dynamic-Link Librar\doifnextcharelse{s}{ie}{y}} Why \FULL{DLL}s does not do what I expect it to do? I assume that it's because `\doifnextcharelse' expands before `\FULL'. So how to achieve the desired effect? Thanks. Kind regards, Alexander
On 5/24/2015 1:39 AM, Alexander Shukaev wrote:
Hello,
Consider the following:
\definesynonyms [ACRONYM] [ACRONYMS] [\FULL] [\SHORT]
\ACRONYM{DLL}{Dynamic-Link Librar\doifnextcharelse{s}{ie}{y}}
Why
\FULL{DLL}s
does not do what I expect it to do? I assume that it's because `\doifnextcharelse' expands before `\FULL'. So how to achieve the desired effect? Thanks.
\FULL is doing a lot and it's unlikely that inside there the nest token seen is the 's' so your test fails \ACRONYM{DLL}{\SelectFull{Dynamic-Link Library}{Dynamic-Link Libraries}} \def\VeryFullSingular#1#2{\FULL{#1}} \def\VeryFullPlural #1#2{\FULL{#2}} \unexpanded\def\VeryFull {\doifnextcharelse{s} {\let\SelectFull\VeryFullPlural} {\let\SelectFull\VeryFullSingular}} test \VeryFull{DLL} or \VeryFull{DLL}s it is if there is real need for this i can consider building something in but the check for a following 's' is not that common I think ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
On Sun, May 24, 2015 at 11:17 AM, Hans Hagen
On 5/24/2015 1:39 AM, Alexander Shukaev wrote:
Hello,
Consider the following:
\definesynonyms [ACRONYM] [ACRONYMS] [\FULL] [\SHORT]
\ACRONYM{DLL}{Dynamic-Link Librar\doifnextcharelse{s}{ie}{y}}
Why
\FULL{DLL}s
does not do what I expect it to do? I assume that it's because `\doifnextcharelse' expands before `\FULL'. So how to achieve the desired effect? Thanks.
\FULL is doing a lot and it's unlikely that inside there the nest token seen is the 's' so your test fails
\ACRONYM{DLL}{\SelectFull{Dynamic-Link Library}{Dynamic-Link Libraries}}
\def\VeryFullSingular#1#2{\FULL{#1}} \def\VeryFullPlural #1#2{\FULL{#2}}
\unexpanded\def\VeryFull { \doifnextcharelse{s} {\let\SelectFull\VeryFullPlural} {\let\SelectFull\VeryFullSingular}}
test \VeryFull{DLL} or \VeryFull{DLL}s it is
if there is real need for this i can consider building something in but the check for a following 's' is not that common I think
----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net
___________________________________________________________________________________
Hello Hans, Thanks for your response. It seems to me that a simple (and backward compatible) extension would be to add the 3rd optional parameter to `ACRONYM': \ACRONYM{DLL}{Dynamic-Link Library}[Dynamic-Link Libraries][s] ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^ <single> <plural> <trigger> (should of course be `s' by default, but let it be configurable just in case) and put \doifnextcharelse{<trigger>}{<plural>}{<single>} inside `FULL' properly so that it can indeed find <trigger> in case of `\FULL{DLL}<trigger>'. Regards, Alexander
participants (2)
-
Alexander Shukaev
-
Hans Hagen