
我知道可以轉義每個底線 ( \_
) 或 apply \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}