即使使用 multiline* 或 \resizebox,也无法将对齐环境放入页面

即使使用 multiline* 或 \resizebox,也无法将对齐环境放入页面

我有以下代码:

\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}

在此处输入图片描述

(红线表示页面布局)

相关内容