我知道您可以使用align
环境和换行符 ( \\
) 输入多行方程。
我想用 LaTeX 处理很长的多项式(长度可达一页,单倍行距,12 号字体),而不必手动插入每个换行符。即使我遇到过一次麻烦,我也必须重新做一遍才能重新格式化文档。
有没有办法做到这一点,或者我必须使用像环境verbatim
或listings
环境这样的东西,其中多项式刚变成文本?
答案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
答案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
仅支持mathpazo
和mathptmx
包,但自编写文档以来可能已经发生了变化。
正如我在上一篇文章中提到的,该dmath
环境与环境类似equation
,只是它支持换行和变体数字(即公式编号)。要避免数字变体,请使用环境dmath*
。breqn
有关其他环境,请参阅用户指南。
希望这会有所帮助(并且格式更易于阅读)。