
Я знаю, что можно либо экранировать каждое подчеркивание ( \_
), либо применить \usepackage{underscore}
.
Экранирование утомительно, подчеркивание разрывает пакет \textbf{a_b}
и \includegraphics{filename_with_underscore}
.
Есть ли лучшее решение для текстов без математических символов, включающих несколько подчеркиваний (в моем случае - в URL-адресах)?
решение1
Лучше пометить URL с помощью \url{http://.....}
(url или hyperref), так как тогда перенос строк обрабатывается лучше. Обратите внимание, что url
пакет просто разрешит перенос строк в URL и не добавляет никаких аннотаций. hyperref
использует тот же код для переноса строк, но также делает ссылку активной. По умолчанию это добавляет цветное оформление, но в пакете есть несколько опций для управления или отключения этого.
Но если вы хотите, чтобы _ был обычным персонажем, используйте
\catcode`\_=12
убедитесь, что у вас есть
\usepackage[T1]{fontenc}
так как шрифты OT1 не имеют этого _
символа.
решение2
Вы можете сделать так, чтобы подчеркивания печатались как таковые вне математического режима и выполняли свою обычную функцию в математическом режиме:
\documentclass{article}
\usepackage[T1]{fontenc}
\catcode`_=12
\begingroup\lccode`~=`_\lowercase{\endgroup\let~\sb}
\begin{document}
Under_score and $a_{1}$.
\end{document}
Для решения проблемы цветных URL-адресов просто загрузите hyperref
соответствующую опцию. С помощью \urlstyle
вы также можете изменить шрифт по умолчанию.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{hyperref}
\hypersetup{colorlinks=false}
\catcode`_=12
\begingroup\lccode`~=`_\lowercase{\endgroup\let~\sb}
\begin{document}
Under_score and $a_{1}$, see at
\url{http://tex.stackexchange.com}
\bigskip
\urlstyle{rm}
This URL uses the normal font
\url{http://tex.stackexchange.com}
\end{document}