Персонажи, нарушающие источник
Как набрать проценты, доллары, амперсанд, подчеркивание, фигурные скобки, не разрывая строки.
Персонажи, нарушающие источник
LaTeX резервирует несколько повседневных символов в качестве синтаксиса, и ввод одного из них, где вы имеете в виду буквальный символ, либо останавливает компиляцию, либо незаметно искажает вывод. У каждого зарезервированного символа есть escape, а весь набор умещается в одной небольшой таблице.
| Чар | Код |
|---|---|
| % | \% |
| $ | \$ |
| & | \& |
| # | \# |
| _ | \_ |
| { } | \{ \} |
| ~ | \textasciitilde |
| \ | \textbackslash |
Что делают персонажи без экранирования
% начинает комментарий, поэтому все от него до конца строки отбрасывается. Это обычная ошибка «мое предложение исчезло»: в отчете пишется 50%, а остальная часть строки исчезает вообще без ошибок. $ переключает математический режим, поэтому случайное слово незаметно выделяет текст курсивом или выдает ошибки, далекие от опечатки. & — вкладка выравнивания в таблицах и блоках align; вне них происходит сбой с ошибкой «Неправильно расположенная вкладка выравнивания». # обозначает параметры макроса. _ и ^ относятся к математическому режиму, и в тексте они вызывают сообщение “Недостающий $ вставлен”, что имеет свой собственный урок. ~ — это неразрывный пробел, поэтому тильда, введенная в URL-адрес или путь, автоматически становится пробелом. \ запускает каждую команду, поэтому он не может экранировать самого себя: \\ — это разрыв строки, а буквальный символ требует \textbackslash.
Побег на практике
Для первых шести символов escape представляет собой префикс обратной косой черты, и он работает так же внутри других команд:
The run reached 87\% accuracy; results are in\texttt{results\_v2.csv}, and the job cost \$40.Обратите внимание, что подчеркивание нуждается в экранировании даже внутри \texttt. За двумя escape-символами в стиле команды, \textasciitilde и \textbackslash, должен следовать {} или пробел, когда следующая буква идет, чтобы имя команды не поглощало следующее слово.
Для целых фрагментов кода, путей или URL-адресов полностью пропустите экранирование. \verb|...| и среда verbatim печатают свое содержимое точно так, как оно напечатано, с отключением каждого специального символа, а \url{...} пакета url обрабатывает ссылки, дополненные тильдами.
Сильнее всего кусаются персонажи, которые терпят неудачу молча, и этот список возглавляет %. Вставленный текст является обычным виновником: URL-адреса, команды оболочки и финансовые показатели содержат зарезервированные символы. Если предложение пропадает из PDF-файла, найдите в этой строке источника пустой символ «%» прежде всего.