![长标签后的描述环境中出现错误换行](https://linux22.com/image/249579/%E9%95%BF%E6%A0%87%E7%AD%BE%E5%90%8E%E7%9A%84%E6%8F%8F%E8%BF%B0%E7%8E%AF%E5%A2%83%E4%B8%AD%E5%87%BA%E7%8E%B0%E9%94%99%E8%AF%AF%E6%8D%A2%E8%A1%8C.png)
我在描述环境中遇到了一个问题:如果我使用几乎与文本宽度一样长的标签,则之后的说明性文本将无法正确换行。
我正在该环境中使用该mdwlist
包description*
,但该问题在正常description
环境下也可重现(见下面的示例)。
到目前为止,搜索类似的问题对我没有帮助,因为大多数主题处理的标签长度超过文本宽度,可以用命令来\desclabelwidth
处理mdwlist
。
到目前为止,我发现有命令\desclabelwidth
可以控制标签的宽度,并\labelsep
控制标签后分隔符的宽度。现在我认为我的问题是标签后第一行的文本比\textwidth
- \desclabelwith
-长\labelsep
。有什么方法可以控制这个宽度,或者您知道其他任何可以规避该问题的方法吗?
编辑:我发现我的问题与我的 BCOR 设置有关 - 我将值设置为 15mm,然后问题也会出现在短词上。
非常感谢!
这是我最小的工作示例 - 单词“text”不适合该行,我认为也可以放入下一行。相反,我收到此警告:
段落第 9-10 行的 \hbox 过满(宽度过大 12.03125pt)
\documentclass[BCOR=15mm]{scrbook}
\begin{document}
\chapter{Issues with descriptions}
\begin{description}
\item[A normal label.] A text with short words, nicely wrapped. One two three four five six seven eight nine ten.
\item[A very long label that is almost as long as the text width, but not quiet.] A text with short words, not so nicely wrapped. One two three four five six seven eight nine ten.
\end{description}
\end{document}
答案1
您发现了一个非常不幸的组合:无法用连字符连接“text”,并且在“A”之后断行会导致行不完整。
原因在于描述标签中的文本是在框中排版的,因此它不会参与可能的空间拉伸以调整行。
有了enumitem
包装,我们可以通过“拆箱”标签来改变这种行为。如果标签很短,则无需进行这样的调整(也不可取);如果标签很长,则可能需要进行这样的调整。
如果你说
\documentclass[BCOR=15mm]{scrbook}
\usepackage{enumitem}
\begin{document}
\chapter{Issues with descriptions}
\begin{description}[style=unboxed]
\item[A normal label.] A text with short words, nicely wrapped. One two
three four five six seven eight nine ten.
\item[A very long label that is almost as long as the text width, but not quite.] A text
with short words, not so nicely wrapped. One two three four five six
seven eight nine ten.
\end{description}
\end{document}
那么标签文本将参与行内空格的分配,超满问题将消失。
答案2
正如您所提到的,这在标准description
环境中是可重现的,甚至在标准环境之外也会发生。您的警告是
Overfull \hbox (9.53209pt too wide) in paragraph at lines 9--10
[]\OT1/cmr/m/n/10.95 An ex-plana-
这表明 TeX 很难在文本块边界正确拆分单词“explanatory”。它可以将其连字符为“ex-planatory”或“explana-tory”,这两种情况都会导致该行间距不合适(以“糟糕程度”衡量)。
解决方案是重新措辞该特定短语以避免出现连字符问题。这是解决常见问题的简单方法。