在小页面环境中编写时,不可拆分的数学公式绝不溢出到右边距。相反,在当前行中引入间距,并将公式移至下一行。
但是,在自由流动的“顶层”文本中执行相同操作会导致视觉上最不吸引人的溢出,请参见下面的示例。
我查看了手动惩罚,但似乎没有什么合适的。如何在其他地方重现小页面溢出行为?
\documentclass[a4paper]{letter}
\begin{document}
\begin{minipage}{12cm}
This is an example paragraph inside a \textit{minipage} showing how text
should flow, notice how nothing is pushed onto the margins:
\textbf{Lorem} ipsum dolor sit amet, consectetur adipisicing elit, sed do
tempor incididunt ut et dolore magna aliqua. Ut enim ad minim veniam
quodque $P, Q , R , S ,T \ldots, X, Y, Z$, quis nostrud exercitation ullamco.
\end{minipage}
\vspace{2em}
This is an example paragraph without any sections inside the main document,
and here the math environment overflows into the margin:
\textbf{Lorem} ipsum dolor sit amet, consectetur adipisicing elit, sed do
tempor incididunt ut et dolore magna aliqua. Ut enim ad minim veniam
quodque $P, Q , R , S ,T \ldots, X, Y, Z$, quis nostrud exercitation ullamco.
\end{document}
答案1
首先,你应该比较同类项。如果你\showthe\linewidth
在文档的主要部分使用,你会看到它的值为,345.0pt
略大于12cm = 341.43306pt
。进行真正的测试最简单的方法是编写
\begin{minipage}{\linewidth}
...
\end{minipage}
无论如何,考虑到这一点,您仍然会得到类似的输出差异。这主要是由于启动时minipage
调用了该函数所致。\sloppy
与你的要求相反,你可以通过以下方式全局撤消该特定设置
\makeatletter
\def\@minipagerestore{\fussy}
\makeatother
通过这两项改变
\documentclass[a4paper]{letter}
\makeatletter
\def\@minipagerestore{\fussy}
\makeatother
\begin{document}
\begin{minipage}{\linewidth}
This is an example paragraph inside a \textit{minipage} showing how text
should flow, notice how nothing is pushed onto the margins:
\textbf{Lorem} ipsum dolor sit amet, consectetur adipisicing elit, sed do
tempor incididunt ut et dolore magna aliqua. Ut enim ad minim veniam
quodque $P, Q , R , S ,T \ldots, X, Y, Z$, quis nostrud exercitation ullamco.
\end{minipage}
\vspace{2em}
This is an example paragraph without any sections inside the main document,
and here the math environment overflows into the margin:
\textbf{Lorem} ipsum dolor sit amet, consectetur adipisicing elit, sed do
tempor incididunt ut et dolore magna aliqua. Ut enim ad minim veniam
quodque $P, Q , R , S ,T \ldots, X, Y, Z$, quis nostrud exercitation
ullamco.
\end{document}
你得到
请注意,在 中段落之间没有空格minipage
。这是因为minipage
设置\parskip
为0pt
,但在letter
class 中它被设置为6.99997pt
。
标准设置的参数列表minipage
可以在source2e
文档。您可以看到它还设置了0pt
以下参数
\parindent
\@totalleftmargin
\leftskip
\rightskip
\@rightskip
此外,它还设置
\parfillskip = 0pt plus 1fil
\lineskip = \normallineskip
\baselineskip = \normalbaselineskip
\@listdepth = \@mplistdepth
后者最初是0
,并 @minipage
设置为 true:相当多的命令在操作过程中会检查最后一个值,因此在 中的行为有所不同minipage
。
无论如何,最简单的换行方法minipage
是发出\sloppy
,正如 Steven Segletes 所说。当然,现在你正在抛弃 LaTeX 的许多尝试,以实现良好的换行。一般来说,最好修复错误的换行。在这种情况下,你应该允许在数学表达式中的逗号处换行:
\documentclass[a4paper]{letter}
\begin{document}
\textbf{Lorem} ipsum dolor sit amet, consectetur adipisicing elit, sed
do tempor incididunt ut et dolore magna aliqua. Ut enim ad minim
veniam quodque $P,\allowbreak Q ,\allowbreak R ,\allowbreak S
,\allowbreak T,\allowbreak \ldots,\allowbreak X,\allowbreak
Y,\allowbreak Z$, quis nostrud exercitation ullamco.
\end{document}
要自动执行此操作,请参阅在内联数学模式中允许在“,”处换行吗?和打破内联数学公式。