我知道可以转义每个下划线(\_
),或者应用\usepackage{underscore}
。
转义是繁琐的,下划线包中断\textbf{a_b}
和\includegraphics{filename_with_underscore}
。
对于包含多个下划线(在我的情况下是在 URL 中)的无数学文本,有没有更好的解决方案?
答案1
最好用\url{http://.....}
(url 或 hyperref) 标记 URL,因为这样换行更方便。请注意,该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}