我正在尝试在 中排版具有不同边距宽度的段落minipage
。为此,我使用了包adjustwidth
中的环境changepage
。这可以很好地排版,但是(由于我的调整宽度比整个页面的宽度更宽)每个minipage
都会报告一个超满的水平框。这不会发生在 minipages 之外。
MWE:
\documentclass{article}
\usepackage{lipsum,changepage,calc}
\begin{document}
\begin{minipage}{\textwidth-0.5in}
\lipsum[1]
\begin{adjustwidth}{-1in}{-1in}
\lipsum[2]
\end{adjustwidth}
\lipsum[3]
\end{minipage}
\end{document}
发出警告
Overfull \hbox (51.135pt too wide) in paragraph at lines 5--12
请注意,如果调整后的宽度小于页面宽度在迷你页面之外,则没有超满的水平盒子;您可以通过将 minipage 宽度设置为 来查看这一点\textwidth-2in
。如果没有minipage
,则调整为比页面宽度设置的宽度即可,不会出现超满的水平盒子警告。
这是预期的行为吗?是否生成超满水平盒子消息与 的宽度无关minipage
,而只取决于全局文本宽度。但如果没有minipage
,就不会出现超满水平盒子!
答案1
当您制作迷你页面时,内容会包裹在\vbox
(或\vtop
或\vcenter
,但情况相同)内,该 设置为其中最宽框的宽度。在这种情况下,最宽框是 中段落的行adjustwidth
,它们很\textwidth+0.5in
宽;左侧的调整不予考虑,因为它是通过类似于 的操作获得的\moveleft
。
因此,正如预期的那样,您会得到超出 36.135pt 的结果,恰好是半英寸。
参数\begin{minipage}
用于设置小页面中的文本宽度,但是如果您自己更改它,就会遇到这些麻烦。
如果您确实想忽略溢出的文本,请将小页面放在一个框中:
\makebox[\textwidth-0.5in][l]{\begin{minipage}{\textwidth-0.5in}
...
\end{minipage}}