
\example

Proto�e p�i "\expandaction=\noexpand" makra "\printcharacter" a
"\printaccent" expanduj� zp�tn� na p�vodn� makro (nap�. 
"\euro"~$\to$~"\printcharacter{euro}"~$\to$~"\noexpand\euro"), je mo�n� vyu��t
n�sleduj�c� makro "\Uppercase", kter� spr�vn� pracuje i 
s akcentovan�mi znaky t�eba i mimo rozsah b�n�ho k�dov�n�.

\begtt
\def\Uppercase #1{\bgroup
   \let\expandaction=\noexpand % \u{g} expanduje na \u{g}
   \def\ss{SS}\def\l{\L}\def\o{\O}\def\ae{\AE}\def\oe{\OE}%
   \edef\tmp{#1}\expandafter
   \egroup \expandafter\uppercase\expandafter{\tmp}%
}                    % \uppercase prom�n� \u{g} na \u{G}. O to �lo.
\endtt

\example

Ud�l�me si makro, kter� bude m�t v parametru v�ce n�zv� rodin s t�m,
�e kdy� nen� v OFS p��stupn� prvn�, pou�ije se druh�, kdy� nen� druh�,
pou�ije se t�et� atd. Nap��klad:

\begtt
\trysetfont [JannonText,Baskerville,Palatino,\roman/12]
\endtt

Makro "\roman" znamen� z u�ivatelsk�ho pohledu jakoukoli rodinu se
serify a makro "\sans" jakoukoli rodinu bez serif�.

\begtt
\def\roman{Times}      % v OFS je ur�it� Times (mezi defaults)
\def\sans {Helvetica}  % v OFS je ur�it� Helvetica

\def\allowedfam #1?#2{\def\tmpa{iffalse}%
   \knownfam #1? \iftrue \registeredfam #1? \iftrue
       \def\tmpa{iftrue}%
   \fi\fi
   \csname \tmpa \endcsname
}
\def\trysetfonts [#1/#2]{\def\newfosize{#2}%
   \let\runlistcommand=\tryonefamily
   \runlist #1,,%
}
\def\runlist #1,{\runlistcommand{#1}%
   \if ,#1,\else \expandafter \runlist \fi
}
\def\tryfamily #1{%
   \if ,#1,\displaymessage{No font family found, I have set default: CMRoman}%
           \setfonts[CMRoman/\newfosize]\relax
   \else \allowedfam #1? \iftrue
      \setfonts [#1/\newfosize]\relax
      \def\runlistcommand##1{}%
   \fi\fi
}
\endtt

