
Недавно мне пришлось переустановить среду tex (texlive под windows), и после этого я получил множество ошибок "Missing { [or }] added". Мне удалось отследить причину до использования \texttt в подстрочном индексе. Точнее, используя pdflatex на следующем минимальном примере
\documentclass{beamer}
\begin{document}
$A_\texttt{a}$
\end{document}
выдает мне следующие ошибки:
Missing { inserted. $A_\texttt
Missing } inserted. $A_\texttt{a}$
Думаю, что-то пошло не так со шрифтами, но я не могу понять, что именно.
Кстати, для этого небольшого примера файл pdf создается правильно, но для файлов большего размера pdflatex прерывает работу.
Какие-либо предложения?
решение1
Предложение состоит в том, чтобы использовать
$A_{\mathtt{a}}$
или, если вы действительно предпочитаете,
$A_{\texttt{a}}$
Однако следует помнить, что в контексте курсива нижний индекс будет напечатан курсивом.
Ошибка, которую вы получаете, характерна для beamer
, поскольку он жонглирует шрифтами, чтобы получить как можно больше sans serif. Она не появится с article
или другими классами документов.
В любом случае, синтаксис A_\texttt{a}
имеетникогдаофициально поддерживается, и сложный нижний индекс всегда должен быть заключен в скобки.
Вот некоторые примеры:
A_\sqrt{2}
A_\frac{1}{2}
A_\notin
Последний пример показывает, что ни один токен не является безопасным. Вы можете безопасно использовать одну букву или цифру без скобок, без инструкции по форматированию. Для символов используйте скобки, и все будет в порядке. Следовательно
A_{\mathrm{a}}
хорошо, тогда как A_\mathrm{a}
плохо, даже если этопоявляетсяработать.