有时我想给某些文本加下划线,但下划线超出了行尾。为什么不\underline{}
自动换行?
另外,我怎样才能给文本添加下划线以使其仍能换行?
答案1
在文本模式下,命令会将其\underline
参数括在水平框中,不允许换行。使用\ul
soul
包。
\documentclass[12pt]{article}
\usepackage{soul}
\begin{document}
A sentence that is just included to fill the line. \underline{Some text with underlining.}
A sentence that is just included to fill the line. \ul{Some text with underlining.}
\end{document}
编辑:至于为什么 \underline
按照它的方式工作,看看这TeX FAQ 中的入门条目。似乎 Leslie Lamport(LaTeX 的作者)只是实现了一个“快速修复”,只有后来的软件包作者才想出了更令人满意的下划线解决方案。请参阅文档的第 2 节和第 7 节,soul
了解事情有多复杂。
答案2
\ul
该包中的命令在soul
处理变音符号时存在问题,而\uline
该ulem
包中的命令则没有问题,因此对于那些不专门用英语写作的人来说似乎是更好的选择。
答案3
如果您正在使用 LuaTeX 引擎(或可以使用它),您可以使用该lua-ul
包,它允许在输入时不受任何限制地添加下划线(与 不同soul
),并且具有完全功能的字距调整、连字符等(与 不同ulem
)。
\documentclass[]{article}
\usepackage{lua-ul}
\begin{document}
\begin{minipage}{3cm} % to show automatic hyphenation works
\underLine
{%
This is some text that gets automatically hyphenated
while being under%
}lined.
\end{minipage}
\end{document}
如您所见,连字符甚至对不完全位于 参数内的单词也能正确起作用\underLine
。