我有一个大矩阵,它的每个元素都有很多东西。我面临的问题是模式align
试图让每个方程都适合一页。例如,在下面的代码中,我有一个矩阵在单独的对齐模式下,它的元素在另一个align
方程中,如下所示
\documentclass[12pt]{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
P =
\left[
\begin{array}{ccccc}
P_{11} & P_{12} & P_{13} & P_{14} \\
P_{21} & P_{22} & P_{23} & P_{24} \\
P_{31} & P_{32} & P_{33} & P_{34} \\
\end{array}
\right]
\end{align*}
where
\begin{align*}
P_{11} &= XXXXXXXXXXXXX \\
P_{12} &= XXXXXXXXXXXXX \\
P_{13} &= XXXXXXXXXXXXX \\
P_{14} &= XXXXXXXXXXXXX \\
%%%%%%%%%%%%%%%%%%%%%%%%%%
P_{21} &= XXXXXXXXXXXXX \\
P_{22} &= XXXXXXXXXXXXX \\
P_{23} &= XXXXXXXXXXXXX \\
P_{24} &= XXXXXXXXXXXXX \\
%%%%%%%%%%%%%%%%%%%%%%%%%%
P_{31} &= XXXXXXXXXXXXX \\
P_{32} &= XXXXXXXXXXXXX \\
P_{33} &= XXXXXXXXXXXXX \\
P_{34} &= XXXXXXXXXXXXX \\
\end{align*}
\end{document}
从下图可以看出,在我的实际案例中,矩阵的元素占用了不止一页,因此这些元素被放在了单独的一页中。前一页只有实际矩阵(即 P),因此页面几乎是空的。我如何才能强制方程模式在行文本中。
答案1
这是手动调整的方法。您需要能够识别任一集合左侧 (LHS) 和右侧 (RHS) 的最长元素,并使用它来支撑两者中较短的元素:
\documentclass{article}
\usepackage{mathtools}% Loads amsmath
\begin{document}
\[
\phantom{P_{333}}
\mathllap{P} = \mathrlap{
\left[\begin{array}{ccccc}
P_{11} & P_{12} & P_{13} & P_{14} \\
P_{21} & P_{22} & P_{23} & P_{24} \\
P_{31} & P_{32} & P_{33} & P_{34}
\end{array}\right]
}\phantom{YYYYYYYYYYYYYYY}
\]
where
\begin{align*}
P_{11} &= XXXXXXXXXXXXX \\
P_{12} &= XXXXXXXXXXXXX \\
P_{13} &= XXXXXXXXXXXXX \\
P_{14} &= XXXXXXXXXXXXX \\
%%%%%%%%%%%%%%%%%%%%%%%%%%
P_{21} &= XXXXXXXXXXXXX \\
P_{22} &= YYYYYYYYYYYYYYY \\% Longest RHS
P_{23} &= XXXXXXXXXXXXX \\
P_{24} &= XXXXXXXXXXXXX \\
%%%%%%%%%%%%%%%%%%%%%%%%%%
P_{31} &= XXXXXXXXXXXXX \\
P_{32} &= XXXXXXXXXXXXX \\
P_{333} &= XXXXXXXXXXXXX \\% Longest LHS
P_{34} &= XXXXXXXXXXXXX
\end{align*}
\end{document}
在上面的例子中,P_{333}
是 LHS 成员中最长的,是 RHS 成员中最长的。我们用它们通过 来YYYYYYYYYYYYYYY
支撑 LHSP
和 RHS 。原始内容使用和(<array>
\phantom
\mathllap
\mathrlap
mathtools
) -保持l
飞行模式。r
lap
math
分页符之间的对齐通常对最终用户不可见,因此通常不需要。但是,更简单的替代方法是where
使用
...
\shortintertext{where}
...
还提供了mathtools
(amsmath
提供\intertext
) - 参见是否有可能分解align
环境并保留标签位置?\allowdisplaybreaks
。您可能还想在序言中进行设置,但这取决于您对align
类似环境的使用。
答案2
您只能使用一个align
环境,该环境将通过开关跨页断点\allowdisplaybreaks
。请注意,如果您使用empheq
with 选项overload
,则无法再跨页断点。为此,您必须使用环境AmSalign
。我还用 替换array
了bmatrix
:
\documentclass[12pt]{article}
\usepackage{amsmath}
\begin{document}
\mbox{}
\vskip10cm
\allowdisplaybreaks
\begin{align*}
P & =
\begin{bmatrix}
P_{11} & P_{12} & P_{13} & P_{14} \\
P_{21} & P_{22} & P_{23} & P_{24} \\
P_{31} & P_{32} & P_{33} & P_{34} \\
\end{bmatrix}
\intertext{where}
P_{11} &= XXXXXXXXXXXXX \\
P_{12} &= XXXXXXXXXXXXX \\
P_{13} &= XXXXXXXXXXXXX \\
P_{14} &= XXXXXXXXXXXXX \\
%%%%%%%%%%%%%%%%%%%%%%%%%%
P_{21} &= XXXXXXXXXXXXX \\
P_{22} &= XXXXXXXXXXXXX \\
P_{23} &= XXXXXXXXXXXXX \\
P_{24} &= XXXXXXXXXXXXX \\
%%%%%%%%%%%%%%%%%%%%%%%%%%
P_{31} &= XXXXXXXXXXXXX \\
P_{32} &= XXXXXXXXXXXXX \\
P_{33} &= XXXXXXXXXXXXX \\
P_{34} &= XXXXXXXXXXXXX \\
\end{align*}
\end{document}