长标签后的描述环境中出现错误换行

长标签后的描述环境中出现错误换行

我在描述环境中遇到了一个问题:如果我使用几乎与文本宽度一样长的标签,则之后的说明性文本将无法正确换行。

我正在该环境中使用该mdwlistdescription*,但该问题在正常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}

Output of the code shown below

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

那么标签文本将参与行内空格的分配,超满问题将消失。

enter image description here

答案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”,这两种情况都会导致该行间距不合适(以“糟糕程度”衡量)。

解决方案是重新措辞该特定短语以避免出现连字符问题。这是解决常见问题的简单方法。

相关内容