我希望格式化一个方程组。我使用:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
$$\begin{cases}
\begin{aligned}
q_1 S_1^1 &+ q_2 S_2^1 &+ ... &+ q_n S_n^1 &= (1+r) S_0^1, \\
q_1 &+ q_2 &+ ... &+ q_n &= 1.
\end{aligned}
\end{cases}$$
\end{document}
我期望 q 和等号位于彼此下方,但 q_1 前面有一个缩进,而 =1 完全位于右侧。我如何获得所需的行为?
答案1
- 您不应该
$$
在 LaTeX 中使用。 - 您不希望
cases
,如果其内容不是形式为的行集,则会在其右侧添加不需要的水平空间<formula>&<condition>
。 - 您不需要
aligned
,这会增加列之间的空间。
和alignedat
:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
\left\{
\begin{alignedat}{5}
& q_1 S_1^1 &&+ q_2 S_2^1 &&+ \dotsb &&+ q_n S_n^1 &&= (1+r) S_0^1, \\
& q_1 &&+ q_2 &&+ \dotsb &&+ q_n &&= 1.
\end{alignedat}
\right.
\]
\end{document}
答案2
我认为aligned
和cases
机器不太适合处理当前的工作。我建议您改用array
环境。
第 1 行中的粒子^{}
确保与q
和相关的下标S^1
位于相同的深度。
\documentclass{article}
\usepackage{array} % for '\newcolumntype' macro
\newcolumntype{C}{>{{}}c<{{}}} % col. type for binary and relational operators
\newcolumntype{L}{>{\displaystyle}l}
\begin{document}
\[
\setlength\arraycolsep{0pt}
\renewcommand\arraystretch{1.33}
\left\{
\begin{array}{ L *{4}{CL} }
q^{}_1 S_1^1 &+& q^{}_2 S_2^1 &+& \cdots &+& q^{}_n S_n^1 &=& (1+r)S_0^1 \\
q_1 &+& q_2 &+& \cdots &+& q_n &=& 1 \,.
\end{array}
\right.
\]
\end{document}
答案3
我假设你q_1 S_1^1
想要q_1
右对齐,因为这就是给定的代码所输出的。
&
我不明白为什么,但是如果在前面添加一个额外的内容,最右边一列的对齐方式会更接近您想要的&=
:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
$$\begin{cases}
\begin{aligned}
q_1 S_1^1 &+ q_2 S_2^1 &+ ... &+ q_n S_n^1 &&= (1+r) S_0^1, \\
q_1 &+ q_2 &+ ... &+ q_n &&= 1.
\end{aligned}
\end{cases}$$
\end{document}
在我看来,align
它将每行的条目分为两到三个组,并且在每个三元组之后(手写行之间)留出额外的空格。