为什么带下划线的文本到达行尾后不会换行?

为什么带下划线的文本到达行尾后不会换行?

有时我想给某些文本加下划线,但下划线超出了行尾。为什么不\underline{}自动换行?

另外,我怎样才能给文本添加下划线以使其仍能换行?

答案1

在文本模式下,命令会将其\underline参数括在水平框中,不允许换行。使用\ulsoul包。

\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处理变音符号时存在问题,而\ulineulem包中的命令则没有问题,因此对于那些不专门用英语写作的人来说似乎是更好的选择。

答案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

相关内容