Esquisitices na mudança entre caixa alta e baixa

O TeX dispõe de dois comandos primitivos \uppercase e \lowercase para mudança de caixa de texto; eles não são muito usados, mas podem causar confusão. Os dois comandos não expandem o texto atribuído como parâmetro — o resultado de \uppercase{abc} é ‘ABC’, mas \uppercase{\abc} é sempre ‘\abc’, independente do significado de \abc. Os comandos simplesmente interpretam uma tabela de equivalências entre caracteres de caixa alta e baixa. Eles não têm (por exemplo) qualquer juízo matemático, e

\uppercase{About $y=f(x)$}
vai produzir
ABOUT $Y=F(X)$
que, provavelmente, não é o que se deseja.

Além disso, \uppercase e \lowercase não lidam muito bem com caracteres fora do alfabeto americano; por exemplo, \uppercase{\ae} é igual a \ae.

O LaTeX dispõe dos comandos \MakeUppercase e \MakeLowercase , que consertam esse problema. Esses comandos são usados nas classes padrão para produzirem títulos de cabeça de página em caixa alta, referentes a capítulos e seções.

Infelizmente \MakeUppercase e \MakeLowercase não resolvem os outros problemas do \uppercase; por exemplo, um título de seção contendo \begin{tabular}\end{tabular} vai produzir um título de cabeça de página contendo \begin{TABULAR}. A solução mais simples para esse problema é usar um comando definido pelo usuário, por exemplo:

\newcommand{\mytable}{\begin{tabular}...
  \end{tabular}}
\section{A section title \protect\mytable{}
  with a table}
Note que \mytable tem que ser protegido; caso contrário, vai ser expandido e escrito em maiúsculas. Você pode alcançar o mesmo resultado declarando-o com \DeclareRobustCommand, caso em que o \protect não será necessário.

O pacote textcase de David Carlisle lida com muitos desses problemas de forma transparente. Ele define os comandos \MakeTextUppercase e \MakeTextLowercase que fazem caixa alta ou baixa com as funcionalidades mais sofisticadas dos comandos \Make* padrões do LaTeX, mas sem os problemas mencionados anteriormente. Carregue o pacote com \usepackage[overload]{textcase} e ele vai redefinir os comandos do LaTeX serão redefinidos (não os comandos primitivos \uppercase e \lowercase do TeX), de modo que os títulos de seção e afins não produzam títulos de cabeça de página quebrados.

textcase.sty
textcase


Do you have any question? Ask on: latex.net.br - we love qood questions!