At the moment I have I my document: {\switchtobodyfont[1.25em]\bf M}ust {\switchtobodyfont[1.25em]\bf S}hould {\switchtobodyfont[1.25em]\bf C}ould {\switchtobodyfont[1.25em]\bf N}ot now But I like to have a macro for this, so I could just do: \Acronym{Must Should Could Not~now} Is more readable and when I want a change (for example another color for the first letter), this is much easier to implement. How should I implement such a macro? -- Cecil Westerhof
On Sat, 19 Mar 2011, Cecil Westerhof wrote:
At the moment I have I my document: {\switchtobodyfont[1.25em]\bf M}ust
{\switchtobodyfont[1.25em]\bf S}hould
{\switchtobodyfont[1.25em]\bf C}ould
{\switchtobodyfont[1.25em]\bf N}ot now
But I like to have a macro for this, so I could just do: \Acronym{Must Should Could Not~now}
Is more readable and when I want a change (for example another color for the first letter), this is much easier to implement. How should I implement such a macro?
Use recursion! \definestartstop [FancyFirstLetter] [style={\switchtobodyfont[big]\bf}, color=red] \def\FancyUppercase#1% {\dostartFancyUppercase#1\dostopFancyUppercase} \def\dostartFancyUppercase#1#2\dostopFancyUppercase {\FancyFirstLetter{#1}#2} \def\Acronym#1% {\dostartAcronym#1 \dostopAcronym} \def\dostartAcronym#1 #2\dostopAcronym {\doifsomething{#1} {\FancyUppercase{#1} %space \dostartAcronym#2 \dostopAcronym}} \starttext \loggingall \Acronym{Must Should Could Not~now} \stoptext Aditya
2011/3/19 Aditya Mahajan
On Sat, 19 Mar 2011, Cecil Westerhof wrote:
At the moment I have I my document:
{\switchtobodyfont[1.25em]\bf M}ust
{\switchtobodyfont[1.25em]\bf S}hould
{\switchtobodyfont[1.25em]\bf C}ould
{\switchtobodyfont[1.25em]\bf N}ot now
But I like to have a macro for this, so I could just do: \Acronym{Must Should Could Not~now}
Is more readable and when I want a change (for example another color for the first letter), this is much easier to implement. How should I implement such a macro?
Use recursion!
\definestartstop [FancyFirstLetter] [style={\switchtobodyfont[big]\bf}, color=red]
\def\FancyUppercase#1% {\dostartFancyUppercase#1\dostopFancyUppercase}
\def\dostartFancyUppercase#1#2\dostopFancyUppercase {\FancyFirstLetter{#1}#2}
\def\Acronym#1% {\dostartAcronym#1 \dostopAcronym}
\def\dostartAcronym#1 #2\dostopAcronym {\doifsomething{#1} {\FancyUppercase{#1} %space \dostartAcronym#2 \dostopAcronym}}
Almost. dostartAcronym needs a blanco line to put the words under each-other: \def\dostartAcronym#1 #2\dostopAcronym {\doifsomething{#1} {\FancyUppercase{#1} %space \dostartAcronym#2 \dostopAcronym}} -- Cecil Westerhof
On Sat, 19 Mar 2011, Cecil Westerhof wrote:
2011/3/19 Aditya Mahajan
On Sat, 19 Mar 2011, Cecil Westerhof wrote:
At the moment I have I my document:
{\switchtobodyfont[1.25em]\bf M}ust
{\switchtobodyfont[1.25em]\bf S}hould
{\switchtobodyfont[1.25em]\bf C}ould
{\switchtobodyfont[1.25em]\bf N}ot now
But I like to have a macro for this, so I could just do: \Acronym{Must Should Could Not~now}
Is more readable and when I want a change (for example another color for the first letter), this is much easier to implement. How should I implement such a macro?
Use recursion!
\definestartstop [FancyFirstLetter] [style={\switchtobodyfont[big]\bf}, color=red]
\def\FancyUppercase#1% {\dostartFancyUppercase#1\dostopFancyUppercase}
\def\dostartFancyUppercase#1#2\dostopFancyUppercase {\FancyFirstLetter{#1}#2}
\def\Acronym#1% {\dostartAcronym#1 \dostopAcronym}
\def\dostartAcronym#1 #2\dostopAcronym {\doifsomething{#1} {\FancyUppercase{#1} %space \dostartAcronym#2 \dostopAcronym}}
Almost. dostartAcronym needs a blanco line to put the words under each-other:
Better to use an explicit \blank (A blank space is equal to \par, and can give funny results when you change indenting)
\def\dostartAcronym#1 #2\dostopAcronym {\doifsomething{#1} {\FancyUppercase{#1} %space . \blank% addied this \dostartAcronym#2 \dostopAcronym}}
Aditya
2011/3/19 Aditya Mahajan
\definestartstop
[FancyFirstLetter] [style={\switchtobodyfont[big]\bf}, color=red]
\def\FancyUppercase#1% {\dostartFancyUppercase#1\dostopFancyUppercase}
\def\dostartFancyUppercase#1#2\dostopFancyUppercase {\FancyFirstLetter{#1}#2}
\def\Acronym#1% {\dostartAcronym#1 \dostopAcronym}
\def\dostartAcronym#1 #2\dostopAcronym {\doifsomething{#1} {\FancyUppercase{#1} %space \dostartAcronym#2 \dostopAcronym}}
Almost. dostartAcronym needs a blanco line to put the words under each-other:
At the moment I have I my document:
Better to use an explicit \blank (A blank space is equal to \par, and can give funny results when you change indenting)
Is not the same. With a blank line the next word begins on a new line. When using \blank there is also vertical whitespace between the words. But I think I like it. So that is good. ;-} -- Cecil Westerhof
Am 19.03.2011 um 04:08 schrieb Aditya Mahajan:
\def\FancyUppercase#1% {\dostartFancyUppercase#1\dostopFancyUppercase}
\def\dostartFancyUppercase#1#2\dostopFancyUppercase {\FancyFirstLetter{#1}#2}
\def\Acronym#1% {\dostartAcronym#1 \dostopAcronym}
\def\dostartAcronym#1 #2\dostopAcronym {\doifsomething{#1} {\FancyUppercase{#1} %space \dostartAcronym#2 \dostopAcronym}}
\def\Acronym#1% {\startpacked \processseparatedlist[#1][ ]\doAcronym \stoppacked} \def\doAcronym#1% {\getfirstcharacter{#1}% {\FancyFirstLetter\firstcharacter}\remainingcharacters\par} Wolfgang
Am 19.03.2011 um 03:29 schrieb Cecil Westerhof:
At the moment I have I my document: {\switchtobodyfont[1.25em]\bf M}ust
{\switchtobodyfont[1.25em]\bf S}hould
{\switchtobodyfont[1.25em]\bf C}ould
{\switchtobodyfont[1.25em]\bf N}ot now
But I like to have a macro for this, so I could just do: \Acronym{Must Should Could Not~now}
Is more readable and when I want a change (for example another color for the first letter), this is much easier to implement. How should I implement such a macro?
\definestartstop[Acronym][style=\bfa] \starttext \starttabulate[|lh{\Acronym}|] \HC {M}ust \NC\NR \HC {S}hould \NC\NR \HC {C}ould \NC\NR \HC {N}ot now \NC\NR \stoptabulate \startlines \Acronym{M}ust \Acronym{S}hould \Acronym{C}ould \Acronym{N}ot now \stoplines \stoptext Wolfgang
participants (3)
-
Aditya Mahajan
-
Cecil Westerhof
-
Wolfgang Schuster