Ошибка Makeindex при использовании ! в \index в среде align

Ошибка Makeindex при использовании ! в \index в среде align

См. MWE ниже. Символ !в \indexвызывает ошибку. Это происходит только в alignсредах (не в equation). Так что, похоже, это как-то связано с amsmath. Если !поместить в , \mboxошибки не будет. Но тогда, конечно, размер шрифта не подстраивается под подиндексы. Как ни странно, \index{$C_{K!!}$}(два восклицательных знака) не вызывают никакой ошибки.


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

Какие-нибудь решения предложены?

решение1

Для makeindex этот символ !имеет определенное значение.

Theруководство по makeindex( texdoc makeindex) имеет следующий пример/объяснение:

Для создания подзаписи аргумент команды \indexдолжен содержать как основную запись, так и подзапись, разделенные символом ! .

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

Чтобы распечатать символ, !показанный в руководстве

Чтобы поместить символ !, @или |в элемент указателя, заключите его в кавычки, поставив перед символом ".

Итак, правильное использование вашего примера:

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

Символ кавычек можно изменить, настроив следующую строку в файле стилей:

 quote '+'

Теперь кавычка символа +. Например, для немецкого языка это важно, чем "aстановится ä.

Связанный контент