środa, 12 stycznia 2011

Bieżąca odmiana pisma w LaTeX

Dokument zawierający masę skrótowców wygląda fatalnie. Wykombinowałem sobie zatem umieszczać je w poleceniu \acro:


\newcommand\acro[1]{\textsc{\lowercase{#1}}}

Problem jest jak \acro wystąpi we fragmencie składanym odmianą półgrubą (kursywą też, ale trudno--nie mam pochyłych kapitalików), bo zamiast kapitalików pojawiają się wprawdzie grube, ale małe litery. Szukałem jakiegoś pakietu na taką okoliczność -- nic mi nie wpadło w oko więc na szybko wymyśliłem coś takiego:


\def\BFseriesCode{bx}
\newcommand\acro[1]{\ifx \f@series \BFseriesCode #1\else\textsc{\lowercase{#1}}\fi}

Deklaracja \f@series zawiera kod bieżącej odmiany; dla odmiany grubej/półgrubej (pakiet polski) będzie to bx. Zatem \ifx \f@series \BFseriesCode to test czy \f@series jest równy bx (tak to trzeba dziwacznie w LaTeXu zapisywać). Jeżeli tak, to wstawiany jest ,,goły'' argument #1, a jeżeli nie, to \textsc{\lowercase{#1}}.