目录中的不可见溢出 \hbox

目录中的不可见溢出 \hbox

对于一些标题较长的目录条目,Overfull \hbox如果我不使用 -option ,draft则会得到不可见的 es memoir。我想知道它们来自哪里,以及如何关闭它们,因为我不想忽略它们:

\documentclass[draft,11pt,a4paper]{memoir}
\setcounter{secnumdepth}{5}
\setcounter{tocdepth}{5}
\begin{document}
\tableofcontents*
\subsection{Places: River Banks, Charnel Grounds and Other Shared Locations}
\end{document}

产生以下输出(黑框表示Overfull \hbox):

示例输出

答案1

目录中条目最后一行之前的行在右侧缩进\@tocrmarg,默认为 ,类中memoirarticle2.55em最后一行以右对齐的页码结尾,位于一个框中,其宽度为\pnumwidth,默认为 ,类中memoirarticle1.55em因此,该行的文本部分1em比最后一行的文本短,如以下使用规则的示例所示:

\documentclass[draft,11pt,a4paper]{memoir}
\setcounter{secnumdepth}{5}
\setcounter{tocdepth}{5}

\DeclareRobustCommand*{\HRuleFilll}{%
  \null
  \leaders\hrule\hskip 0pt plus 1filll\relax
  \kern0pt\relax
}

\begin{document}
\tableofcontents*
\subsection{Places: River Banks, Charnel Grounds and Other Shared Locations}
\subsection{\HRuleFilll\protect\newline\HRuleFilll\protect\newline\HRuleFilll}
\end{document}

结果

我认为这样做的原因是为了让带有页码的行更容易从右侧检测到。

因此,弗兰的列表可以通过另一个选项进行扩展:

选项 7:做得\@tocrmarg小一点。(可以设置为\@pnumwidth,但我有些怀疑,这样看起来是否更好。)

答案2

选项 1:目录的缩写版本:

\subsection[Short title]{Very Long Title}

选项 2:在目录中强制换行

\subsection[Very long\newline title]{Very Long Title}

选项 3:允许在“共享”中使用连字符

\hyphenation{Sha-red} 

选项 4:与上述相同,但使用软连字符

\subsection{Places: River Banks, Charnel Grounds and Other Sha\-red Locations}

选项 5:重写标头

\subsection{River banks, charnel grounds and other locations} % (for example)

选项 6:

% Reminder: At the end of the day, just ignore a overfull \hbox 
% unnoticeable in the final version it is not such a bad idea.

选项 7:通过Heiko Oberdiek 的回答

选项 8:宽容(请注意,我不是;))*

\tolerance9999     % or \sloppy
\tableofcontents*
\tolerance200     % or \fuzzy

选项 9:对于单页目录,迷你页面:

\begin{document}
\noindent\begin{minipage}{\textwidth}   
\tableofcontents*
\end{minipage}

甚至\parbox

\noindent\parbox{\textwidth}{\tableofcontents*}

答案3

与 Fran 的选项 8 类似,但可能更“优雅”,可以将命令括起来\tableofcontents如下:

\begin{sloppypar}
\tableofcontents
\end{sloppypar}

这将产生一个目录,其中可能包含比正常情况下更多的空白,但所有内容都应正确对齐,并且没有 \hbox Overfull 警告。

\listoffigures对于和也同样适用\listoftables,对于它们来说,手动应用大多数其他选项可能会更加困难。

相关内容