Выравнивание длинных уравнений

Выравнивание длинных уравнений

Я прочитал все различные решения для размещения длинных формул на странице, но я все еще не удовлетворен результатом, который получаю. Формулы выровнены по правому краю, что выглядит не очень хорошо. Пожалуйста, дайте мне знать, если у вас есть лучшее решение. Вот мой код:

\begin{equation}

\begin{split}
(1-\mathbf{B})\begin{bmatrix} y_1\\y_2  \\ y_3 \end{bmatrix} &= \\
(\begin{bmatrix} 1\\1  \\ 1 \end{bmatrix}-\begin{bmatrix} 0.30064^{*} & -0.70171 &-10.27380 \\ 0.00206 &  0.35560^{*} &  -0.62373 \\  0.00013 & 0.00228 &  0.77829^{*} \end{bmatrix}\mathbf{B}-\\
\begin{bmatrix} -0.24890^{*} &  0.53801 &  -3.03724 \\  -0.00600 &   0.20570^{*} &  -1.04583 \\ -0.00010 & -0.00189 &  0.27768^{*}  \end{bmatrix}\mathbf{B}^2-\\
\begin{bmatrix} 0.61824^{*} &  0.33973 & -1.09651 \\  -0.00287 &   -0.12782 & 2.79815 \\  -0.00002 & -0.00249 &  -0.07773 \end{bmatrix}\mathbf{B}^3) \begin{bmatrix} \varepsilon_{1t} \\ \varepsilon_{2t} \\ \varepsilon_{3t}  \end{bmatrix}
\end{split}
\end{equation}

решение1

Длинные уравнения, подобные этому, иногда могут скрывать важные детали. Я бы рассмотрел возможность использования локальных определений, таких как

Скриншот

Вот полный MWE

% arara: pdflatex
% !arara: indent: {overwrite: true}
\documentclass{article}
\usepackage{amsmath}

\begin{document}

Consider the equation
\begin{equation}
    (1-\mathbf{B})\vec{y} = (1-M_1-M_2\mathbf{B}^2-M_3\mathbf{B}^3)\vec{\epsilon}
\end{equation}
where
\begin{align*}
    M_1 & = \begin{bmatrix} 0.30064^{*}  & -0.70171 & -10.27380 \\ 0.00206 &  0.35560^{*} &  -0.62373 \\  0.00013 & 0.00228 &  0.77829^{*} \end{bmatrix}\\
    M_2 & = \begin{bmatrix} -0.24890^{*} & 0.53801  & -3.03724  \\  -0.00600 &   0.20570^{*} &  -1.04583 \\ -0.00010 & -0.00189 &  0.27768^{*}  \end{bmatrix}\\
    M_3 & = \begin{bmatrix} 0.61824^{*}   & 0.33973  & -1.09651  \\  -0.00287 &   -0.12782 & 2.79815 \\  -0.00002 & -0.00249 &  -0.07773 \end{bmatrix}
\end{align*}
\end{document}

Дальнейшие улучшения могут быть сделаны с помощьюsiunitxпакет для помощи с выравниванием десятичных знаков.

siunitx

% arara: pdflatex
% !arara: indent: {overwrite: on, localSettings: true}
\documentclass{article}
\usepackage{amsmath}
\usepackage{siunitx}

\begin{document}

Consider the equation
\begin{equation}
    (1-\mathbf{B})\vec{y} = (1-M_1\mathbf{B}-M_2\mathbf{B}^2-M_3\mathbf{B}^3)\vec{\epsilon}
\end{equation}
where
\begin{align*}
    M_1 & = 
    \left[
        \setlength{\arraycolsep}{10pt}
        \begin{array}{S[table-format=1.5] S[table-format=1.5] S[table-format=2.5]}
            0.30064$^*$ & -0.70171    & -10.27380   \\ 
            0.00206     & 0.35560$^*$ & -0.62373    \\  
            0.00013     & 0.00228     & 0.77829$^*$ 
        \end{array}
    \right]
    \\
    M_2 & = 
    \left[
        \setlength{\arraycolsep}{10pt}
        \begin{array}{S[table-format=1.5] S[table-format=1.5] S[table-format=1.5]}
            -0.24890$^{*}$ & 0.53801       & -3.03724      \\  
            -0.00600       & 0.20570$^{*}$ & -1.04583      \\ 
            -0.00010       & -0.00189      & 0.27768$^{*}$ 
        \end{array}
    \right]
    \\
    M_3 & = 
    \left[
        \setlength{\arraycolsep}{10pt}
        \begin{array}{S[table-format=1.5] S[table-format=1.5] S[table-format=1.5]}
            0.61824$^{*}$ & 0.33973  & -1.09651 \\  
            -0.00287      & -0.12782 & 2.79815  \\  
            -0.00002      & -0.00249 & -0.07773 
        \end{array}
    \right]
\end{align*}
\end{document}

решение2

Я бы структурировал три строки так, чтобы большие матрицы были выровнены по вертикали. Я бы также выровнял по десятичному знаку числа в трех матрицах 3x3. Для этого вы могли бы использовать пакет dcolumn; это требует использования arrayокружений вместо pmatrixокружений. Конечно, вы по-прежнему можете использовать pmatrixокружение для трех векторов-столбцов.

введите описание изображения здесь

\documentclass{article}
\usepackage[margin=1in]{geometry}
\usepackage{amsmath}
\renewcommand\arraycolsep{3pt} % default value: 6pt
\usepackage{dcolumn}
\newcolumntype{d}[1]{D{.}{.}{#1}}
\begin{document}
\begin{equation}\begin{split} \label{eq:threelign}
(1-\mathbf{B})
\begin{bmatrix} y_1 \\y_2  \\ y_3 \end{bmatrix}
=  \left(
\begin{bmatrix} 1 \\1  \\ 1 \\ \end{bmatrix} 
\right.
&- \left[ \begin{array}{d{2.5}d{3.5}d{3.5}} 
0.30064^{*} & -0.70171 &-10.27380 \\ 
0.00206 &  0.35560^{*} &  -0.62373 \\  
0.00013 & 0.00228 &  0.77829^{*} \\
\end{array}\right] \mathbf{B} \\
&- \left[ \begin{array}{d{2.5}d{3.5}d{3.5}} 
-0.24890^{*} &  0.53801 &  -3.03724 \\  
-0.00600 &   0.20570^{*} &  -1.04583 \\ 
-0.00010 & -0.00189 &  0.27768^{*} \\ 
\end{array}\right] \mathbf{B}^2  \\
&- \left.
   \left[ \begin{array}{d{2.5}d{3.5}d{3.5}} 
0.61824^{*} &  0.33973 & -1.09651 \\  
-0.00287 &   -0.12782 & 2.79815 \\  
-0.00002 & -0.00249 &  -0.07773 
\end{array}\right] \mathbf{B}^3
\right) 
\begin{bmatrix} 
\varepsilon_{1t} \\ \varepsilon_{2t} \\ \varepsilon_{3t}  
\end{bmatrix}
\end{split}\end{equation}
\end{document}

решение3

Вот еще одна возможность:

\documentclass{article}
\usepackage{amsmath}

\begin{document}

\begin{equation}
\begin{split}
(1-\mathbf{B})
\begin{bmatrix} y_1\\y_2  \\ y_3 \end{bmatrix} 
&= 
\left(\begin{bmatrix} 1\\1  \\ 1 \end{bmatrix}
- \begin{bmatrix} 0.30064^{*} & -0.70171 & -10.27380 \\ 0.00206 &  0.35560^{*} &  -0.62373 \\  0.00013 & 0.00228 &  0.77829^{*} \end{bmatrix}\mathbf{B}\right. \\
&\qquad{} - \begin{bmatrix} -0.24890^{*} &  0.53801 &  -3.03724 \\  -0.00600 &   0.20570^{*} &  -1.04583 \\ -0.00010 & -0.00189 &  0.27768^{*}  \end{bmatrix}\mathbf{B}^2\\
&\qquad{} - \left.\begin{bmatrix} 0.61824^{*} &  0.33973 & -1.09651 \\  -0.00287 &   -0.12782 & 2.79815 \\  -0.00002 & -0.00249 &  -0.07773 \end{bmatrix}\mathbf{B}^3\right) \begin{bmatrix} \varepsilon_{1t} \\ \varepsilon_{2t} \\ \varepsilon_{3t}  \end{bmatrix}
\end{split}
\end{equation}

\end{document}

введите описание изображения здесь

Обратите внимание на использование пар \left...\rightдля получения больших разделителей, а также для {} - ...того, чтобы знаки минус в начале строк обрабатывались как бинарные операторы.

решение4

Возможно, multlineздесь, поскольку на самом деле нет никакой точки выравнивания:

введите описание изображения здесь

\documentclass{article}

\usepackage{amsmath}

\begin{document}

original equation/split
\begin{equation}
\begin{split}
(1-\mathbf{B})\begin{bmatrix} y_1\\y_2  \\ y_3 \end{bmatrix} &= \\
(\begin{bmatrix} 1\\1  \\ 1 \end{bmatrix}-\begin{bmatrix} 0.30064^{*} & -0.70171 &-10.27380 \\ 0.00206 &  0.35560^{*} &  -0.62373 \\  0.00013 & 0.00228 &  0.77829^{*} \end{bmatrix}\mathbf{B}-\\
\begin{bmatrix} -0.24890^{*} &  0.53801 &  -3.03724 \\  -0.00600 &   0.20570^{*} &  -1.04583 \\ -0.00010 & -0.00189 &  0.27768^{*}  \end{bmatrix}\mathbf{B}^2-\\
\begin{bmatrix} 0.61824^{*} &  0.33973 & -1.09651 \\  -0.00287 &   -0.12782 & 2.79815 \\  -0.00002 & -0.00249 &  -0.07773 \end{bmatrix}\mathbf{B}^3) \begin{bmatrix} \varepsilon_{1t} \\ \varepsilon_{2t} \\ \varepsilon_{3t}  \end{bmatrix}
\end{split}
\end{equation}



new multline
\begin{multline}
(1-\mathbf{B})\begin{bmatrix} y_1\\y_2  \\ y_3 \end{bmatrix} = {}\\
\Biggl(\begin{bmatrix} 1\\1  \\ 1 \end{bmatrix}-\begin{bmatrix} 0.30064^{*} & -0.70171 &-10.27380 \\ 0.00206 &  0.35560^{*} &  -0.62373 \\  0.00013 & 0.00228 &  0.77829^{*} \end{bmatrix}\mathbf{B}-{}\\
\begin{bmatrix} -0.24890^{*} &  0.53801 &  -3.03724 \\  -0.00600 &   0.20570^{*} &  -1.04583 \\ -0.00010 & -0.00189 &  0.27768^{*}  \end{bmatrix}\mathbf{B}^2-{}\\
\begin{bmatrix} 0.61824^{*} &  0.33973 & -1.09651 \\  -0.00287 &   -0.12782 & 2.79815 \\  -0.00002 & -0.00249 &  -0.07773 \end{bmatrix}\mathbf{B}^3\Biggr)
 \begin{bmatrix} \varepsilon_{1t} \\ \varepsilon_{2t} \\ \varepsilon_{3t}  \end{bmatrix}
\end{multline}


\end{document}

Связанный контент