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