
У меня в документе много путей к файлам/папкам Windows и путей регистров. И у меня 2 проблемы:
- Видится
\
как и экранирующий символ, который, очевидно, не компилируется.\\
Начинает новую строку, а не экранирует\
. Я$$
тоже пробовал, но это тоже не сработало. - Разрыва строк нет, поэтому пути выходят за пределы поля страницы.
По первому вопросу, есть ли быстрый способ решить эту проблему, вместо того, чтобы менять все \
на /
?
По второму вопросу я попробовал \path{}
из url
пакета, но это не помогло.
решение1
Вы правы. Обратная косая черта — это экранирующий символ TeX (по умолчанию); он сигнализирует TeX, что то, что следует за этим, отличается от «обычного текста». Поэтому простой ввод
\
не создаст обратную косую черту в выводе. (Кстати, если вы введете\
после этого любое количество пробелов, вы создадите только так называемыйконтрольное пространство, а не обратная косая черта.)Чтобы ввести обратную косую черту в текстовом режиме, используйте
\textbackslash
; в математическом режиме используйте\backslash
.Теперь, если вы обнаружите (как и я), что печатать
\textbackslash
каждый раз — это утомительно, вы всегда можете определить макрос с более коротким именем, который делает то же самое, например:\newcommand\bs\textbackslash
а затем используйте этот макрос во всем файле вместо
\textbackslash
.И еще один момент: что нужно сделать, чтобы получить следующий результат?
C:\Мои документы
Можешь попробовать
C:\textbackslashMy documents
но это не сработает, потому что TeX интерпретирует
\textbackslashMy
как макрос, не найдет его определения нигде и будет ругаться на вас. Чтобы получить желаемый вывод, вставьте либо пробел, либо пустую группу ({}
) сразу после\textbackslash
, вот такC:\textbackslash{}My documents
Пакет
url
облегчает вам жизнь в этом отношении. Загрузите его в нашу преамбулу, а затем используйте\url
команду для набора URL; пакет позаботится о переносе строк за вас. Обратите внимание, что вам не нужно использовать\textbackslash
внутри\url{...}
, потому что\url
он уже «детокенизирует» свой аргумент. Счастливых дней!
Вот код, иллюстрирующий эти два момента:
\documentclass{article}
\newcommand\bs\textbackslash % shorthand for \textbackslash
\usepackage{url}
\begin{document}
\noindent
A backslash in text mode: \bs \\
A backslash in math mode: $\backslash$\\[2em]
A long URL: \url{C:\Program Files\Steam\Jubobsgame\procrastinators__paradise\level_one\five_years_into_the_PhD}
\end{document}
и вот соответствующий вывод:
решение2
Я обнаружил, что многие ответы на этом форуме применимы только к LaTeX и не обязательно к простому TeX. Мы используем простой TeX, поэтому ответы иногда просто не работают.
Но я нашел решение для отображения специальных символов TeX, которое работает для нас, поэтому я подумал, что поделюсь им. Я понятия не имею, будет ли оно работать для LaTeX, хотя, кажется, должно.
Вы можете включить символ, используя , \char
а затем код ASCII символа в десятичной системе счисления. Мы заключаем это в {
и }
, хотя я не уверен, что это необходимо, если только следующий текст не является другой цифрой. Так, например, чтобы отобразить обратную косую черту, используйте {\char92}
, для левой скобки используйте {\char123}
и т. д. Надеюсь, это кому-то поможет.