Erro Makeindex quando ! usado em \index no ambiente de alinhamento

Erro Makeindex quando ! usado em \index no ambiente de alinhamento

Veja MWE abaixo. O símbolo !em \indexcausa um erro. Este é o caso apenas em alignambientes (não em equation). Então parece ter que fazer algo com amsmath. Se !for colocado em um \mboxnão há erro. Mas é claro que o tamanho da fonte não é ajustado aos subíndices. Curiosamente, \index{$C_{K!!}$}(dois pontos de exclamação) não causa nenhum erro.


\documentclass{article}
\usepackage{amsmath}
\usepackage{imakeidx}
\makeindex
\begin{document}
\begin{align}
y\index{$C_{K!}$}
\end{align}
\printindex
\end{document}

Alguma solução sugerida?

Responder1

Para makeindex o símbolo !tem um significado específico.

Omanual do makeindex( texdoc makeindex) tem o seguinte exemplo/explicação:

Para produzir uma subentrada, o argumento do \indexcomando deve conter a entrada principal e a subentrada, separadas por um ! caractere.

Page 7:  \index{gnat!size of}  || gnat, 32
Page 32: \index{gnat}          ||     anatomy, 35
Page 35: \index{gnat!anatomy}  ||     size of, 7
         \index{gnus!good}     || gnus
Page 38: \index{gnus!bad}      ||    bad, 38
                               ||    good, 35

Para imprimir o símbolo que !o manual mostra

Para colocar um caractere !, @ou |em uma entrada de índice, coloque-o entre aspas precedendo o caractere com um ".

Portanto, o uso correto do seu exemplo é:

\begin{align}
y\index{$C_{K"!}$}
\end{align}

O caractere citado pode ser alterado configurando a seguinte linha no arquivo de estilo:

 quote '+'

Agora o caractere citado é +. Por exemplo, para o idioma alemão é importante que "ase torne ä.

informação relacionada