我有一组方程式,每个方程式都不适合页面宽度,因此我正在寻找对齐它们的方法:
- 括号应该出现在左侧,没有缩进
- 每个方程的第一行应该左对齐
- 每个等式的最后一行应该右对齐
我达到了以下目的: 但我不喜欢每个等式的括号和第一个字母之间的巨大间距。
我使用的代码如下:
\[
\setlength{\multlinegap}{0pt}
\left\{
\begin{array}{c}
\shoveleft{A_{PP}\sin\alpha_{P1} - A_{PS}\cos\alpha_{S1} +B_{PP} \sin\alpha_{P2} +B_{PS} \cos\alpha_{S2} =} \\ \shoveright{=\sin\alpha_{P1},} \\
% 2-nd equation
\shoveleft{ A_{PP}\cos\alpha_{P1} +A_{PS} \sin\alpha_{S1} -B_{PP}\cos\alpha_{P2} + B_{PS} \sin\alpha_{S2} = } \\
\shoveright{ =\cos\alpha_{P1},} \\
% 3-rd equation
\shoveleft{ A_{PP}\gamma_{P1} \cos 2\alpha_{S1} +A_{PS} \gamma_{S1} \sin 2\alpha_{S1} +B_{PP} \gamma_{P2} \cos 2\alpha_{S2} -} \\
\shoveright{- B_{PS} \gamma_{S2} \sin 2\alpha_{S2} = \gamma_{P1} \cos 2\alpha_{S1},} \\
% 4-th equation
\shoveleft{ -A_{PP}n_1 \gamma_{S1} \sin 2\alpha_{P1} +A_{PS} \gamma_{S1} \cos 2\alpha_{S1} +B_{PP} n_2 \gamma_{S2} \sin 2\alpha_{P2} +} \\
\shoveright{+ B_{PS} \gamma_{S2} \cos 2\alpha_{S2} = n_1 \gamma_{S1} \sin 2\alpha_{P1}.}\end{array}
\right.
\]
任何帮助都将不胜感激。谢谢!
答案1
multlined
来自的环境是mathtools
你的朋友。(它会加载amsmath
,所以没有必要这样做)。
关于这个例子有两点需要注意:
\mathindent
在组内设置为零宽度,因此它将在显示结束后消失。- 因为
multlined
(如multline
)会自动将第一行设置为左对齐,将最后一行设置为右对齐,所以你不需要\shove...
这些行上的命令。事实上,如果你做将这些行包装在\shove...
参数中。
这是代码:
\documentclass{article}
\usepackage[fleqn]{mathtools}
\begin{document}
\noindent some text here
{\mathindent=0pt
\[
\setlength{\multlinegap}{0pt}
\left\{
\begin{multlined}
A_{PP}\sin\alpha_{P1} - A_{PS}\cos\alpha_{S1} +B_{PP} \sin\alpha_{P2} +B_{PS} \cos\alpha_{S2} = \\
\shoveright{=\sin\alpha_{P1},} \\
% 2-nd equation
\shoveleft{ A_{PP}\cos\alpha_{P1} +A_{PS} \sin\alpha_{S1} -B_{PP}\cos\alpha_{P2} + B_{PS} \sin\alpha_{S2} = } \\
\shoveright{ =\cos\alpha_{P1},} \\
% 3-rd equation
\shoveleft{ A_{PP}\gamma_{P1} \cos 2\alpha_{S1} +A_{PS} \gamma_{S1} \sin 2\alpha_{S1} +B_{PP} \gamma_{P2} \cos 2\alpha_{S2} -} \\
\shoveright{- B_{PS} \gamma_{S2} \sin 2\alpha_{S2} = \gamma_{P1} \cos 2\alpha_{S1},} \\
% 4-th equation
\shoveleft{ -A_{PP}n_1 \gamma_{S1} \sin 2\alpha_{P1} +A_{PS} \gamma_{S1} \cos 2\alpha_{S1} +B_{PP} n_2 \gamma_{S2} \sin 2\alpha_{P2} +} \\
+ B_{PS} \gamma_{S2} \cos 2\alpha_{S2} = n_1 \gamma_{S1} \sin 2\alpha_{P1}.
\end{multlined}
\right.
\] }
\end{document}
答案2
这并不是直接回答你的问题,而是为了使信息更容易解析。我建议进行以下更改,以使模式更容易理解:
- 消除双等号
- 将术语对齐到多行
笔记:
- 最后一个等式的前导减号间距不标准,但我认为在这种情况下看起来更好
- 您还可以考虑对齐中间
+/-
符号(甚至是等号)以使模式更加明显。
有很多方法可以实现这一点,因此这只是展示一种方法。
代码:
\documentclass{article}
\usepackage{amsmath}
\newcommand{\Phantom}{\phantom{{}+{}}}%
\newcommand{\Plus}{{}+{}}%
\newcommand{\Minus}{{}-{}}%
\begin{document}
\[\begin{cases}
\Phantom A_{PP}\sin\alpha_{P1} - A_{PS}\cos\alpha_{S1} \\
\Plus B_{PP}\sin\alpha_{P2} + B_{PS}\cos\alpha_{S2} =
\sin\alpha_{P1}, \\[7pt]
% 2-nd equation
\Phantom A_{PP}\cos\alpha_{P1} +A_{PS} \sin\alpha_{S1} \\
\Minus B_{PP}\cos\alpha_{P2} + B_{PS} \sin\alpha_{S2} = \cos\alpha_{P1}, \\[7pt]
% 3-rd equation
\Phantom A_{PP}\gamma_{P1} \cos 2\alpha_{S1} +A_{PS} \gamma_{S1} \sin 2\alpha_{S1} \\
\Plus B_{PP} \gamma_{P2} \cos 2\alpha_{S2}
- B_{PS} \gamma_{S2} \sin 2\alpha_{S2} = \gamma_{P1} \cos 2\alpha_{S1}, \\[7pt]
% 4-th equation
\Minus A_{PP}n_1 \gamma_{S1} \sin 2\alpha_{P1} +A_{PS} \gamma_{S1} \cos 2\alpha_{S1} \\
\Plus B_{PP} n_2 \gamma_{S2} \sin 2\alpha_{P2} +
B_{PS} \gamma_{S2} \cos 2\alpha_{S2} = n_1 \gamma_{S1} \sin 2\alpha_{P1}.
\end{cases}\]
\end{document}
答案3
要删除行和括号之间的空格,可以使用声明@{}
。声明@{}
如下所述:
要提供关于整个内容的方程式,您可以使用命令\resizebox
。请注意,这会导致方程式的大小不必要。
\documentclass{article}
\usepackage{showframe}
\usepackage{array}
\usepackage{amsmath}
\usepackage{graphicx}
\begin{document}
\[
\setlength{\multlinegap}{0pt}
\left\{
\begin{array}{c}
\shoveleft{A_{PP}\sin\alpha_{P1} - A_{PS}\cos\alpha_{S1} +B_{PP} \sin\alpha_{P2} +B_{PS} \cos\alpha_{S2} =} \\ \shoveright{=\sin\alpha_{P1},} \\
% 2-nd equation
\shoveleft{ A_{PP}\cos\alpha_{P1} +A_{PS} \sin\alpha_{S1} -B_{PP}\cos\alpha_{P2} + B_{PS} \sin\alpha_{S2} = } \\
\shoveright{ =\cos\alpha_{P1},} \\
% 3-rd equation
\shoveleft{ A_{PP}\gamma_{P1} \cos 2\alpha_{S1} +A_{PS} \gamma_{S1} \sin 2\alpha_{S1} +B_{PP} \gamma_{P2} \cos 2\alpha_{S2} -} \\
\shoveright{- B_{PS} \gamma_{S2} \sin 2\alpha_{S2} = \gamma_{P1} \cos 2\alpha_{S1},} \\
% 4-th equation
\shoveleft{ -A_{PP}n_1 \gamma_{S1} \sin 2\alpha_{P1} +A_{PS} \gamma_{S1} \cos 2\alpha_{S1} +B_{PP} n_2 \gamma_{S2} \sin 2\alpha_{P2} +} \\
\shoveright{+ B_{PS} \gamma_{S2} \cos 2\alpha_{S2} = n_1 \gamma_{S1} \sin 2\alpha_{P1}.}\end{array}
\right.
\]
\noindent\resizebox{\linewidth}{!}{%
$\setlength{\multlinegap}{0pt}
\left\{
\begin{array}{@{}c@{}}
\shoveleft{A_{PP}\sin\alpha_{P1} - A_{PS}\cos\alpha_{S1} +B_{PP} \sin\alpha_{P2} +B_{PS} \cos\alpha_{S2} =} \\ \shoveright{=\sin\alpha_{P1},} \\
% 2-nd equation
\shoveleft{ A_{PP}\cos\alpha_{P1} +A_{PS} \sin\alpha_{S1} -B_{PP}\cos\alpha_{P2} + B_{PS} \sin\alpha_{S2} = } \\
\shoveright{ =\cos\alpha_{P1},} \\
% 3-rd equation
\shoveleft{ A_{PP}\gamma_{P1} \cos 2\alpha_{S1} +A_{PS} \gamma_{S1} \sin 2\alpha_{S1} +B_{PP} \gamma_{P2} \cos 2\alpha_{S2} -} \\
\shoveright{- B_{PS} \gamma_{S2} \sin 2\alpha_{S2} = \gamma_{P1} \cos 2\alpha_{S1},} \\
% 4-th equation
\shoveleft{ -A_{PP}n_1 \gamma_{S1} \sin 2\alpha_{P1} +A_{PS} \gamma_{S1} \cos 2\alpha_{S1} +B_{PP} n_2 \gamma_{S2} \sin 2\alpha_{P2} +} \\
\shoveright{+ B_{PS} \gamma_{S2} \cos 2\alpha_{S2} = n_1 \gamma_{S1} \sin 2\alpha_{P1}.}\end{array}
\right.
$}
\end{document}
答案4
仔细分析这个问题,它是一个dcases
多行方程的环境,其第二部分应该是右对齐(或右对齐,或\shoveright
,或\MoveEqRight
......你说得通)。
你需要嵌套multline
环境 multilined[t]
对于每个方程,在一个\aligned
环境内,在一个dcases
环境内。
我反对这种做法:
括号应该出现在左侧,没有缩进
因此,我没有将其包含在我的代码中。
在下面的例子中,等式 (1) 未对齐,而等式 (2) 对齐。
\documentclass{article}
\usepackage{mathtools}
\usepackage[nopar]{lipsum} % for dummy text only
\begin{document}
\lipsum[66]
%% FIRST EQ
\begin{equation}
\begin{dcases}
\begin{multlined}[t]
A_{PP}\sin\alpha_{P1} - A_{PS}\cos\alpha_{S1} +B_{PP} \sin\alpha_{P2} +B_{PS} \cos\alpha_{S2} =\\
=\sin\alpha_{P1},
\end{multlined}
\\
\begin{multlined}[t]
A_{PP}\cos\alpha_{P1} +A_{PS} \sin\alpha_{S1} -B_{PP}\cos\alpha_{P2} + B_{PS} \sin\alpha_{S2} = \\
=\cos\alpha_{P1},
\end{multlined}
\\
\begin{multlined}[t]
A_{PP}\gamma_{P1} \cos 2\alpha_{S1} +A_{PS} \gamma_{S1} \sin 2\alpha_{S1} +B_{PP} \gamma_{P2} \cos 2\alpha_{S2} -\\
- B_{PS} \gamma_{S2} \sin 2\alpha_{S2} = \gamma_{P1} \cos 2\alpha_{S1},
\end{multlined}
\\
\begin{multlined}[t]
-A_{PP}n_1 \gamma_{S1} \sin 2\alpha_{P1} +A_{PS} \gamma_{S1} \cos 2\alpha_{S1} +B_{PP} n_2 \gamma_{S2} \sin 2\alpha_{P2} + \\
+ B_{PS} \gamma_{S2} \cos 2\alpha_{S2} = n_1 \gamma_{S1} \sin 2\alpha_{P1}.
\end{multlined}
\end{dcases}
\end{equation}
\lipsum[66]
%% SECOND EQ
\begin{equation}
\begin{dcases}
\begin{aligned}
\begin{multlined}[t]
A_{PP}\sin\alpha_{P1} - A_{PS}\cos\alpha_{S1} +B_{PP} \sin\alpha_{P2} +B_{PS} \cos\alpha_{S2} =\\
=\sin\alpha_{P1},
\end{multlined}
\\
\begin{multlined}[t]
A_{PP}\cos\alpha_{P1} +A_{PS} \sin\alpha_{S1} -B_{PP}\cos\alpha_{P2} + B_{PS} \sin\alpha_{S2} = \\
=\cos\alpha_{P1},
\end{multlined}
\\
\begin{multlined}[t]
A_{PP}\gamma_{P1} \cos 2\alpha_{S1} +A_{PS} \gamma_{S1} \sin 2\alpha_{S1} +B_{PP} \gamma_{P2} \cos 2\alpha_{S2} -\\
- B_{PS} \gamma_{S2} \sin 2\alpha_{S2} = \gamma_{P1} \cos 2\alpha_{S1},
\end{multlined}
\\
\begin{multlined}[t]
-A_{PP}n_1 \gamma_{S1} \sin 2\alpha_{P1} +A_{PS} \gamma_{S1} \cos 2\alpha_{S1} +B_{PP} n_2 \gamma_{S2} \sin 2\alpha_{P2} + \\
+ B_{PS} \gamma_{S2} \cos 2\alpha_{S2} = n_1 \gamma_{S1} \sin 2\alpha_{P1}.
\end{multlined}
\end{aligned}
\end{dcases}
\end{equation}
\lipsum[66]
\end{document}
在花了两个小时研究align
、、、、、及其所有变体之后,我gather
终于找到了解决方案;就在我准备联系 Lars Madsen(软件包维护者)进行升级之前。它必须是具有自动化格式的东西,multline
split
alignat
flalign
mathtools
纯 LaTeX 风格,而不是通过使用\quad
或\hspace
或\vphantom
或类似的。
令人惊讶的是,如此基本的排版功能竟然如此鲜为人知。我的意思是,我在整个互联网上都找不到解决方案。它应该包含在指南和教程中。多行方程式太常见了!
我知道肯定有更多的人要求解决这个问题,我现在正在整个论坛上分享这个解决方案。这也证明了该mathtools
软件包的编码有多么强大,成功地响应了这个解决方法。