\protect
Все команды LaTeX являются либо хрупкими, либо стойкими. Хрупкая команда может прерваться, когда она используется в аргументе некоторых других команд. Команды, содержащие данные, которые LaTeX записывает в вспомогательный файл и затем повторно считывает, являются хрупкими. Это включает материал, который попадает в оглавление, список рисунков, список таблиц и т.д. К хрупким командам также относятся переводы строк, любые команды с необязательным аргументом и многие другие. Чтобы предотвратить разрыв таких команд, одним из решений является предварять их командой \protect.
Например, когда LaTeX выполняет команду \section{section
name} , она записывает текст имя раздела во вспомогательный файл .aux, перемещая его туда для использования в другом месте документа, например, в оглавлении. Любой аргумент, который внутренне расширяется LaTeX без непосредственного форматирования, называется перемещаемым аргументом. Команда является хрупкой, если она может расшириться в этом процессе до некорректного кода TeX. Некоторые примеры перемещаемых аргументов — те, что появляются в команде \caption{...} (см. figure), в команде \thanks{...} (см. \maketitle) и в @-выражениях в окружениях tabular и array (см. tabular).
Если вы получаете странные ошибки от команд, используемых в перемещаемых аргументах, попробуйте предварять их командой \protect. Каждая хрупкая команда должна быть защищена своей собственной командой \protect.
Хотя обычно команда \protect не причиняет вреда, команды длины являются стойкими и не должны предваряться командой \protect. Команда \protect также не может использоваться в аргументе команды \addtocounter или \setcounter.
В этом примере команда \caption выдаёт загадочную ошибку о лишней фигурной скобке. Исправьте проблему, предваряя каждую команду \raisebox командой \protect.
\begin{figure}
...
\caption{Company headquarters of A\raisebox{1pt}{B}\raisebox{-1pt}{C}}
\end{figure}
В следующем примере команда \tableofcontents выдаёт ошибку, потому что \(..\) в заголовке раздела расширяется до нелегального TeX-кода в файле .toc. Вы можете решить эту проблему, изменив \(..\) на \protect\(..\protect\).
\begin{document}
\tableofcontents
...
\section{Einstein's \( e=mc^2 \)}
...
© 2007–2018 Karl Berry
Public Domain Software
http://latexref.xyz/_005cprotect.html