问题就在这里。计算机代数程序生成的一些方程很长,而且没有办法手动编辑它们来打破它们。
我喜欢使用align*
但缩放较长的部分以便它们适合 pdf 页面。
以下是我所知道的 3 个解决方案。我更喜欢resizegather
包提供的解决方案,因为它会自动缩放任何长方程以适合页面。问题是resizegather
不适用于align*
,只适用于gather*
,并且在这种情况下 上没有对齐&=
。
以下是我所知道的 3 种解决方案
\documentclass{article}
\usepackage{amsmath}
\usepackage{adjustbox}
\usepackage{resizegather}
\begin{document}
No scaling done
\begin{align*}
U_1 &= (-1)^{4-1} \int{ \frac{F(x) W_1(x) }{a W(x)} \, dx}\\
&= (-1)^{3} \int{ \frac{ \left(e^{x} \left(\left(2+6 x \right) \cos \left(2 x \right)+3 \sin \left(2 x \right)\right)\right) \left(-8 e^{3 x} \sin \left(2 x \right)^{2} \cos \left(2 x \right) x -8 e^{3 x} \cos \left(2 x \right)^{3} x +4 e^{3 x} \sin \left(2 x \right)^{3}+4 e^{3 x} \sin \left(2 x \right) \cos \left(2 x \right)^{2}\right)}{\left(1\right) \left(64 e^{4 x} \sin \left(2 x \right)^{4}+128 e^{4 x} \sin \left(2 x \right)^{2} \cos \left(2 x \right)^{2}+64 e^{4 x} \cos \left(2 x \right)^{4}\right)} \, dx}\\
&= - \int{ \frac{\left(-48 x^{2}-16 x -12\right) e^{4 x} \cos \left(2 x \right)^{2}+8 e^{4 x} \sin \left(2 x \right) \cos \left(2 x \right)+12 e^{4 x}}{64 e^{4 x}} \, dx}
\end{align*}
Use align, and add adjust box to each line
\begin{align*}
U_1 &= \adjustbox{max width=1.2\linewidth}{$(-1)^{4-1} \int{ \frac{F(x) W_1(x) }{a W(x)} \, dx}$}\\
&= \adjustbox{max width=1.2\linewidth}{$(-1)^{3} \int{ \frac{ \left(e^{x} \left(\left(2+6 x \right) \cos \left(2 x \right)+3 \sin \left(2 x \right)\right)\right) \left(-8 e^{3 x} \sin \left(2 x \right)^{2} \cos \left(2 x \right) x -8 e^{3 x} \cos \left(2 x \right)^{3} x +4 e^{3 x} \sin \left(2 x \right)^{3}+4 e^{3 x} \sin \left(2 x \right) \cos \left(2 x \right)^{2}\right)}{\left(1\right) \left(64 e^{4 x} \sin \left(2 x \right)^{4}+128 e^{4 x} \sin \left(2 x \right)^{2} \cos \left(2 x \right)^{2}+64 e^{4 x} \cos \left(2 x \right)^{4}\right)} \, dx}$}\\
&= \adjustbox{max width=1.2\linewidth}{$- \int{ \frac{\left(-48 x^{2}-16 x -12\right) e^{4 x} \cos \left(2 x \right)^{2}+8 e^{4 x} \sin \left(2 x \right) \cos \left(2 x \right)+12 e^{4 x}}{64 e^{4 x}} \, dx}$}
\end{align*}
gather, automatic scaling, but need to align them also. Is it possible?
\begin{gather*}
U_1 = (-1)^{4-1} \int{ \frac{F(x) W_1(x) }{a W(x)} \, dx}\\
= (-1)^{3} \int{ \frac{ \left(e^{x} \left(\left(2+6 x \right) \cos \left(2 x \right)+3 \sin \left(2 x \right)\right)\right) \left(-8 e^{3 x} \sin \left(2 x \right)^{2} \cos \left(2 x \right) x -8 e^{3 x} \cos \left(2 x \right)^{3} x +4 e^{3 x} \sin \left(2 x \right)^{3}+4 e^{3 x} \sin \left(2 x \right) \cos \left(2 x \right)^{2}\right)}{\left(1\right) \left(64 e^{4 x} \sin \left(2 x \right)^{4}+128 e^{4 x} \sin \left(2 x \right)^{2} \cos \left(2 x \right)^{2}+64 e^{4 x} \cos \left(2 x \right)^{4}\right)} \, dx}\\
= - \int{ \frac{\left(-48 x^{2}-16 x -12\right) e^{4 x} \cos \left(2 x \right)^{2}+8 e^{4 x} \sin \left(2 x \right) \cos \left(2 x \right)+12 e^{4 x}}{64 e^{4 x}} \, dx}
\end{gather*}
Scale the whole align, using example from
%https://tex.stackexchange.com/questions/397388/adjustbox-around-an-align-environment
\sbox0{\begin{adjustbox}{max width=\textwidth}
\parbox{\linewidth}{
\begin{align*}
U_1 &= (-1)^{4-1} \int{ \frac{F(x) W_1(x) }{a W(x)} \, dx}\\
&= (-1)^{3} \int{ \frac{ \left(e^{x} \left(\left(2+6 x \right) \cos \left(2 x \right)+3 \sin \left(2 x \right)\right)\right) \left(-8 e^{3 x} \sin \left(2 x \right)^{2} \cos \left(2 x \right) x -8 e^{3 x} \cos \left(2 x \right)^{3} x +4 e^{3 x} \sin \left(2 x \right)^{3}+4 e^{3 x} \sin \left(2 x \right) \cos \left(2 x \right)^{2}\right)}{\left(1\right) \left(64 e^{4 x} \sin \left(2 x \right)^{4}+128 e^{4 x} \sin \left(2 x \right)^{2} \cos \left(2 x \right)^{2}+64 e^{4 x} \cos \left(2 x \right)^{4}\right)} \, dx}\\
&= - \int{ \frac{\left(-48 x^{2}-16 x -12\right) e^{4 x} \cos \left(2 x \right)^{2}+8 e^{4 x} \sin \left(2 x \right) \cos \left(2 x \right)+12 e^{4 x}}{64 e^{4 x}} \, dx}\\
\end{align*}
}
\end{adjustbox}
}\usebox0
\end{document}
使用 lualatex 编译后得到
问题是:是否可以使用 align? 来使 resizegather 能够在需要时自动缩放,但保持方程式对齐&
?
答案1
[在 OP 在评论中解释说手动编辑单个方程式以获得最佳印刷效果是不可行的之后,我完全重写了答案。]
我认为我们可以同意,不缩放和全局缩放选项都会产生不良结果;请参见以下屏幕截图的第一部分和第二部分。(包插入的框架线showframe
表示文本块的宽度。)
但是,修改逐行缩放方法使其 (a) 使用最大宽度0.9\textwidth
而不是1.2\textwidth
和 (b) 插入\displaystyle
指令可能没问题;请参见以下屏幕截图的第三部分。当然, 参数的原始宽度越大\adjustbox
,排版结果的可读性就越差。
单独的评论:我理解和\left
大小\right
指令是由您的程序插入的。如果您可以摆脱这些大小指令,那就太好了。如果不能,请在序言中加载包mleftright
并运行\mleftright
。以“修复”由大小指令引起的过多间距问题。
\documentclass{article}
\usepackage{amsmath,adjustbox}
\usepackage{showframe,xcolor}
\usepackage{mleftright}\mleftright % optional
%% handy shortcut macro:
\newcommand\newadjustbox[2][0.9]{% % default width: 0.9\textwidth
\adjustbox{max width=#1\linewidth}{$\displaystyle #2$}}
\begin{document}
\noindent
{\color{red}{No scaling}}
\begin{align*}
U_1 &= (-1)^{4-1} \int{ \frac{F(x) W_1(x) }{a W(x)} \, dx}\\
&= (-1)^{3} \int{ \frac{ \left(e^{x} \left(\left(2+6 x \right) \cos \left(2 x \right)+3 \sin \left(2 x \right)\right)\right) \left(-8 e^{3 x} \sin \left(2 x \right)^{2} \cos \left(2 x \right) x -8 e^{3 x} \cos \left(2 x \right)^{3} x +4 e^{3 x} \sin \left(2 x \right)^{3}+4 e^{3 x} \sin \left(2 x \right) \cos \left(2 x \right)^{2}\right)}{\left(1\right) \left(64 e^{4 x} \sin \left(2 x \right)^{4}+128 e^{4 x} \sin \left(2 x \right)^{2} \cos \left(2 x \right)^{2}+64 e^{4 x} \cos \left(2 x \right)^{4}\right)} \, dx}\\
&= - \int{ \frac{\left(-48 x^{2}-16 x -12\right) e^{4 x} \cos \left(2 x \right)^{2}+8 e^{4 x} \sin \left(2 x \right) \cos \left(2 x \right)+12 e^{4 x}}{64 e^{4 x}} \, dx}
\end{align*}
\bigskip\noindent
{\color{red}Global scaling (to \verb+\textwidth+) }
\noindent % <-- new
\begin{adjustbox}{max width=\textwidth}
\parbox{\linewidth}{%
\begin{align*}
U_1 &= (-1)^{4-1} \int{ \frac{F(x) W_1(x) }{a W(x)} \, dx}\\
&= (-1)^{3} \int{ \frac{ \left(e^{x} \left(\left(2+6 x \right) \cos \left(2 x \right)+3 \sin \left(2 x \right)\right)\right) \left(-8 e^{3 x} \sin \left(2 x \right)^{2} \cos \left(2 x \right) x -8 e^{3 x} \cos \left(2 x \right)^{3} x +4 e^{3 x} \sin \left(2 x \right)^{3}+4 e^{3 x} \sin \left(2 x \right) \cos \left(2 x \right)^{2}\right)}{\left(1\right) \left(64 e^{4 x} \sin \left(2 x \right)^{4}+128 e^{4 x} \sin \left(2 x \right)^{2} \cos \left(2 x \right)^{2}+64 e^{4 x} \cos \left(2 x \right)^{4}\right)} \, dx}\\
&= - \int{ \frac{\left(-48 x^{2}-16 x -12\right) e^{4 x} \cos \left(2 x \right)^{2}+8 e^{4 x} \sin \left(2 x \right) \cos \left(2 x \right)+12 e^{4 x}}{64 e^{4 x}} \, dx}\\
\end{align*}
}
\end{adjustbox}
\bigskip\noindent
{\color{red}Add \verb+\adjustbox{max width=0.9\linewidth}{$\displaystyle+ to each line}
\begin{align*}
U_1 &= \newadjustbox{(-1)^{4-1} \int{ \frac{F(x) W_1(x) }{a W(x)} \, dx}}\\
&= \newadjustbox{(-1)^{3} \int{ \frac{ \left(e^{x} \left(\left(2+6 x \right) \cos \left(2 x \right)+3 \sin \left(2 x \right)\right)\right) \left(-8 e^{3 x} \sin \left(2 x \right)^{2} \cos \left(2 x \right) x -8 e^{3 x} \cos \left(2 x \right)^{3} x +4 e^{3 x} \sin \left(2 x \right)^{3}+4 e^{3 x} \sin \left(2 x \right) \cos \left(2 x \right)^{2}\right)}{\left(1\right) \left(64 e^{4 x} \sin \left(2 x \right)^{4}+128 e^{4 x} \sin \left(2 x \right)^{2} \cos \left(2 x \right)^{2}+64 e^{4 x} \cos \left(2 x \right)^{4}\right)} \, dx}}\\
&= \newadjustbox{- \int{ \frac{\left(-48 x^{2}-16 x -12\right) e^{4 x} \cos \left(2 x \right)^{2}+8 e^{4 x} \sin \left(2 x \right) \cos \left(2 x \right)+12 e^{4 x}}{64 e^{4 x}} \, dx}}
\end{align*}
\end{document}
答案2
我避免缩放方程。这几乎总是导致结果不可读,或者至少导致排版非常糟糕。对我来说,允许方程超出文本边框并仅稍微减小方程中的字体大小是较小的错误:
这可以通过使用nccmath
和changepage
包来实现:
\documentclass{article}
%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\usepackage{nccmath}
\usepackage[strict]{changepage}
\usepackage{lipsum}
\begin{document}
Let allow, that this extreme wide equation may has a slightly smaller font size and that it can spill out of text borders. This can be achieved with use of \verb+\medmath+ defined in the \verb+nccmath+ package and \verb+adjustwidth+ environments defined in the \verb+changepage+ package:
\begin{adjustwidth}{-\marginparwidth}{-\marginparwidth}
\[\medmath{
\begin{aligned}
U_1 &= (-1)^{4-1} \int{ \frac{F(x) W_1(x) }{a W(x)} \, dx}\\
&= (-1)^{3} \int
\frac{ \bigl(e^{x} (2+6x) \cos(2x) + 3 \sin(2x)\bigr)
\bigl(-8 e^{3x}\sin(2x)^{2}\cos(2x)x - 8 e^{3x}\cos(2x)^{3} x +4 e^{3x}
\sin(2x)^{3}+4e^{3x} \sin(2x) \cos(2x)^{2}\bigr)}
{(1) \bigl(64e^{4x}\sin(2x)^{4} + 128e^{4x}\sin(2x)^{2}\cos(2x)^{2} + 64e^{4x}
\cos(2x)^{4}\bigr)}
\, dx \\
U_1 &= - \int
\frac{(-48x^{2} - 16x -12)e^{4x}\cos(2x)^{2} + 8e^{4x}\sin(2x)\cos(2x) + 12e^{4x}}{64e^{4x}} \, dx
\end{aligned}
}
\]
\end{adjustwidth}
\lipsum[66]
\end{document}
\splitfrac
通过使用from包可以获得更好的结果mathtools
(正如@Mico 所建议的,现在已删除了他的部分答案),但是,由于某种原因,您不喜欢这样:
\lipsum[66]
\begin{adjustwidth}{-\marginparwidth}{-\marginparwidth}
\[\medmath{
\begin{aligned}
U_1 &= (-1)^{4-1} \int{ \frac{F(x) W_1(x) }{a W(x)} \, dx}\\
&= (-1)^{3} \int
\frac{\splitfrac{\bigl(e^{x} (2+6x) \cos(2x) + 3 \sin(2x)\bigr)\cdot}
{\bigl(-8 e^{3x}\sin(2x)^{2}\cos(2x)x - 8 e^{3x}\cos(2x)^{3} x +4 e^{3x}
\sin(2x)^{3}+4e^{3x} \sin(2x) \cos(2x)^{2}\bigr)}}
{(1) \bigl(64e^{4x}\sin(2x)^{4} + 128e^{4x}\sin(2x)^{2}\cos(2x)^{2} + 64e^{4x}
\cos(2x)^{4}\bigr)}
\, dx \\
&= - \int
\frac{(-48x^{2} - 16x -12)e^{4x}\cos(2x)^{2} + 8e^{4x}\sin(2x)\cos(2x) + 12e^{4x}}{64e^{4x} \, dx}
\end{aligned}
}
\]
\end{adjustwidth}
附录: 还有一种可能性,所有方程式均具有正常字体大小:
\documentclass{article}
\usepackage{mathtools}
\usepackage{lipsum}
\begin{document}
\lipsum[1][1-2]
\begin{align*}
U_1 &= (-1)^{4-1} \int{ \frac{F(x) W_1(x)}{a W(x)} \, dx}
\intertext{where are:}
& \begin{aligned}
W_1(x) & = e^{x} (2+6x) \cos(2x) + 3 \sin(2x), \\
W_1(x) & = \begin{multlined}[t]
-8 e^{3x}\sin(2x)^{2}\cos(2x)x - 8 e^{3x}\cos(2x)^{3} x +4 e^{3x} + {}\\
\sin(2x)^{3} + 4e^{3x}\sin(2x)\cos(2x)^{2}
\end{multlined} \\
\alpha & =1 \\
W(x) & = 64e^{4x}\sin(2x)^{4} +
128e^{4x}\sin(2x)^{2}\cos(2x)^{2} + 64e^{4x}\cos(2x)^{4}\bigr)
\end{aligned}
\intertext{which yields to:}
&= - \int
\frac{(-48x^{2} - 16x -12)e^{4x}\cos(2x)^{2} + 8e^{4x}\sin(2x)\cos(2x) + 12e^{4x}}
{64e^{4x}} \, dx
\end{align*}
\lipsum[1][3-4]
\end{document}