![即使使用 multiline* 或 \resizebox,也无法将对齐环境放入页面](https://linux22.com/image/468865/%E5%8D%B3%E4%BD%BF%E4%BD%BF%E7%94%A8%20multiline*%20%E6%88%96%20%5Cresizebox%EF%BC%8C%E4%B9%9F%E6%97%A0%E6%B3%95%E5%B0%86%E5%AF%B9%E9%BD%90%E7%8E%AF%E5%A2%83%E6%94%BE%E5%85%A5%E9%A1%B5%E9%9D%A2.png)
我有以下代码:
\documentclass{article}
\usepackage{amsmath}
\title{latex debugs}
\author{Naitik Mundra}
\date{September 2023}
\begin{document}
\begin{align*}
& E(a, b)-E\left(a, b^{\prime}\right) \\
= & \int\left[A(a, \lambda) B(b, \lambda)-A(a, \lambda) B\left(b^{\prime}, \lambda\right)\right] \rho(\lambda) d \lambda \\
= & \int\left[A(a, \lambda) B(b, \lambda)-
A(a, \lambda) B\left(b^{\prime}, \lambda\right) \pm A(a, \lambda) B(b, \lambda) A\left(a^{\prime}, \lambda\right) B\left(b^{\prime}, \lambda\right) \pm A(a, \lambda) B(b, \lambda) A\left(a^{\prime}, \lambda\right) B\left(b^{\prime}, \lambda\right)\right] \rho(\lambda) d \lambda \\
= & \int A(a, \lambda) B(b, \lambda)\left[1 \pm A\left(a^{\prime}, \lambda\right) \underline{
B}\left(b^{\prime}, \lambda\right)\right] \rho(\lambda) d \lambda - \int A(a, \lambda) B\left(b^{\prime}, \lambda\right)\left[
1 \pm A\left(a^{\prime}, \lambda\right) B(b, \lambda)\right] \rho(\lambda) d \lambda
\end{align*}
\end{document}
现在,当我运行它时,我得到一个溢出页面的方程式(文档设置为a4paper
):
我尝试使用 multiline* 并使用 \ 手动分割行,但出现水平盒子未满或水平盒子过满的错误,无法指出问题所在。虽然使用类似方法\tiny
有效,但数学运算难以理解。
\pm
我该如何修复这个问题(最好在和处放置换行符-
)以使字体大小保持不变?
答案1
我认为您需要将第 3 行拆分为三部分,将第 4 行拆分为两部分。为了简化旧第 3 行三个部分的对齐,我将积分符号右侧的材料嵌入其自己的aligned
环境中。
^{\prime}
另外,我还会用and替换所有 11 个实例'
(因为它们没有任何用处),删除所有 15 对\left
和\right
自动调整大小指令。在下面的代码中,我使用了\bigl
和\bigr
指令来增加方括号的大小。
\documentclass[a4paper]{article}
\usepackage{amsmath} % for 'align*' env. and '\DeclareMathOperator' macro
\DeclareMathOperator{\E}{E} % expectations operator
\begin{document}
\begin{align*}
\E&(a, b)-\E(a, b') \\
&= \int\bigl[A(a,\lambda) B(b,\lambda)-A(a,\lambda) B(b',\lambda)\bigr]
\rho(\lambda) \,d\lambda \\
&= \int\bigl[ \begin{aligned}[t]
&A(a,\lambda) B(b,\lambda)- A(a,\lambda) B(b',\lambda) \\
&\pm A(a,\lambda) B(b,\lambda) A(a',\lambda) B(b',\lambda) \\
&\pm A(a,\lambda) B(b,\lambda) A(a',\lambda) B(b',\lambda)\bigr]
\rho(\lambda) \,d\lambda
\end{aligned} \\
&= \int A(a,\lambda) B(b,\lambda)\bigl[1 \pm A(a',\lambda) \underline{B}
(b',\lambda)\bigr] \rho(\lambda) \,d\lambda \\
&\qquad- \smash[t]{\int} A(a,\lambda) B(b',\lambda)\bigl[1 \pm A(a',\lambda)
B(b,\lambda)\bigr] \rho(\lambda) \,d\lambda
\end{align*}
\end{document}
答案2
你需要打破长行,我建议使用两个aligned
内部环境。交错会告诉读者如何阅读公式。
避免^{\prime}
并不是因为它是错误的,而是因为简单的'
代码更容易输入和阅读。
另外,还要避免在公式中使用所有这些\left
并且不做任何有用的事情并添加不必要的水平空间。\right
请注意,该\diff
命令在差异前面添加了正确的间距,并且还有一个额外的好处,即如果您被迫使用直立的“d”(我热切希望不会),您可以简单地替换定义,\diff
而不是追逐整个文档。
请注意最后一行的小技巧,使减号与\pm
上面几行中的符号对齐。
如果空间限制允许,最好不要在第一个等号之前拆分。
\documentclass{article}
\usepackage{amsmath}
\title{latex debugs}
\author{Naitik Mundra}
\date{September 2023}
\newcommand{\diff}{\mathop{}\!d}
\begin{document}
\begin{align*}
E(a, b) - E(a, b')
&= \int \bigl[A(a,\lambda) B(b,\lambda)-A(a,\lambda) B(b',\lambda)\bigr]
\rho(\lambda) \diff\lambda \\
&= \int \begin{aligned}[t]
\bigl[ &A(a,\lambda) B(b,\lambda)-A(a,\lambda) B(b',\lambda) \\
&\pm A(a,\lambda) B(b,\lambda) A(a',\lambda) B(b',\lambda) \\
&\pm A(a,\lambda) B(b,\lambda) A(a',\lambda) B(b',\lambda)\bigr]
\rho(\lambda) \diff\lambda
\end{aligned} \\
&= \int \begin{aligned}[t]
&A(a,\lambda) B(b,\lambda)[1 \pm A(a',\lambda) \underline{B}(b',\lambda)] \rho(\lambda)
\diff\lambda \\
&\hphantom{\big[}-
\int A(a,\lambda) B(b',\lambda)[1 \pm A(a',\lambda) B(b,\lambda)] \rho(\lambda)
\diff\lambda
\end{aligned}
\end{align*}
\end{document}
您可能希望在最后两行中使用\bigl[
和also。您自己选择。\bigr]
你可能使用\resizebox
:
\[
\resizebox{\displaywidth}{!}{$\begin{aligned}
& E(a, b)-E\left(a, b^{\prime}\right) \\
= & \int\left[A(a, \lambda) B(b, \lambda)-A(a, \lambda) B\left(b^{\prime}, \lambda\right)\right] \rho(\lambda) d \lambda \\
= & \int\left[A(a, \lambda) B(b, \lambda)-
A(a, \lambda) B\left(b^{\prime}, \lambda\right) \pm A(a, \lambda) B(b, \lambda) A\left(a^{\prime}, \lambda\right) B\left(b^{\prime}, \lambda\right) \pm A(a, \lambda) B(b, \lambda) A\left(a^{\prime}, \lambda\right) B\left(b^{\prime}, \lambda\right)\right] \rho(\lambda) d \lambda \\
= & \int A(a, \lambda) B(b, \lambda)\left[1 \pm A\left(a^{\prime}, \lambda\right) \underline{
B}\left(b^{\prime}, \lambda\right)\right] \rho(\lambda) d \lambda - \int A(a, \lambda) B\left(b^{\prime}, \lambda\right)\left[
1 \pm A\left(a^{\prime}, \lambda\right) B(b, \lambda)\right] \rho(\lambda) d \lambda
\end{aligned}$}
\]
我使用你的原始代码只是为了进行视觉比较:
绝对不是任何人想看到的。
答案3
使用宏\MoveEqLeft
和数学环境aligned
,均在mathtools
包中定义:
\documentclass{article}
%--------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\usepackage{mathtools} % <---
\begin{document}
\begin{align*}
\MoveEqLeft[3] % <---
E(a, b)-E(a, b') \\
= & \int\Bigl[A(a,\lambda) B(b, \lambda) - A(a,\lambda) B(b',\lambda)\Bigr] \rho(\lambda) d\lambda \\
= & \begin{multlined}[t] % <---
\int\Bigl[A(a,\lambda) B(b, \lambda)-
A(a,\lambda) B(b',\lambda) \pm {} \\
A(a,\lambda) B(b,\lambda) A(a',\lambda) B(b',\lambda)\pm A(a,\lambda) B(b, \lambda) A(a', \lambda) B(b',\lambda)\Bigr] \rho(\lambda) d\lambda
\end{multlined} \\
= & \begin{multlined}[t] % <---
\int A(a,\lambda) B(b, \lambda)\Bigl[1 \pm A(a', \lambda) \underline{
B}(b', \lambda)\Bigr] \rho(\lambda) d\lambda - {} \\
\int A(a,\lambda) B(b', \lambda)
\Bigl[1 \pm A(a',\lambda) B(b,\lambda)\Bigr] \rho(\lambda) d\lambda
\end{multlined}
\end{align*}
\end{document}
(红线表示页面布局)