在 Latex 中自动换行一页长的多项式

在 Latex 中自动换行一页长的多项式

我知道您可以使用align环境和换行符 ( \\) 输入多行方程。

我想用 LaTeX 处理很长的多项式(长度可达一页,单倍行距,12 号字体),而不必手动插入每个换行符。即使我遇到过一次麻烦,我也必须重新做一遍才能重新格式化文档。

有没有办法做到这一点,或者我必须使用像环境verbatimlistings环境这样的东西,其中多项式刚变成文本?

答案1

显示的数学运算无法自动分解,但内联数学运算可以。因此,您可以尝试类似

\newenvironment{polynomial}
  {\par\vspace{\abovedisplayskip}%
   \setlength{\leftskip}{\parindent}%
   \setlength{\rightskip}{\leftskip}%
   \medmuskip=4mu plus 2mu minus 2mu
   \binoppenalty=0
   \noindent$\displaystyle}
  {$\par\vspace{\belowdisplayskip}}

并将长多项式放入新定义的环境中。

答案2

如果您正在使用amsmath,则有一个命令\allowdisplaybreaks可以在align环境中工作(但不在aligned子环境中)。它记录在amsmath用户手册在第 8-9 页。建议将

\allowdisplaybreaks[1]

如果您希望它在整个文档中发挥作用,请在序言中说明。

答案3

看看布雷克包,我几年前用过,效果不错。还有一个推介会其中显示了一些等式。

(我发现 docstrip 文档只描述软件包而没有实际显示他们输出什么。叹息。)

答案4

您还可以使用breqn环境将方程拆分成多行。示例取自breqn用户指南

\documentclass{article}

\usepackage{mathpazo}
\usepackage[mathpazo]{flexisym}
\usepackage{breqn}

\begin{document}

\begin{dmath}[label={sna74}]
  \frac{1}{6} \left(\sigma(k,h,0) +\frac{3(h-1)}{h}\right)
  +\frac{1}{6} \left(\sigma(h,k,0) +\frac{3(k-1)}{k}\right)
  =\frac{1}{6} \left(\frac{h}{k} +\frac{k}{h} +\frac{1}{hk}\right)
  +\frac{1}{2} -\frac{1}{2h} -\frac{1}{2k},
\end{dmath}

\end{document}

请注意,根据用户指南,该类breqn仅支持mathpazomathptmx包,但自编写文档以来可能已经发生了变化。

正如我在上一篇文章中提到的,该dmath环境与环境类似equation,只是它支持换行和变体数字(即公式编号)。要避免数字变体,请使用环境dmath*breqn有关其他环境,请参阅用户指南。

希望这会有所帮助(并且格式更易于阅读)。

相关内容