我见过这些 问题但在我的例子中,公式内容太长,无法在末尾添加文本描述,并且会溢出到边距中。
\[
d_i(g_n,\ldots,g_0) =
\begin{cases}
(d_0g_ng_{n-1},g_{n-2},\ldots,g_0),& \text{if $i=0$;}\\
(d_ig_n,\ldots,d_1g_{n-i+1},d_0g_{n-i}g_{n-i-1},g_{n-i-2},\ldots,g_0), &\text{if $i=1,\ldots,n-1$;}\\
(d_ng_n,\ldots,d_1g_1),& \text{if $i=0$}
\end{cases}\\
\]
我想要的是通过将一行过长的文字替换为两行文字来产生类似的效果
(d_ig_n,\ldots,d_1g_{n-i+1},d_0g_{n-i}g_{n-i-1},g_{n-i-2},\ldots,g_0), &\\
& \hspace{-10.5ex}\text{if $i=1,\ldots,n-1$;}\
...但这显然不是解决问题的方法。我也不想将长公式本身分成两行,而只将文本放在下一行。有没有一些好的方法可以让分号自动对齐,而无需调整水平间距?
答案1
直接回答您的问题(即将冗长的等式放在一行,将条件放在另一行并用分号对齐),使用\phantom
和l
eft overlap
可以帮助获得适当的对齐:
\documentclass{article}
\usepackage{mathtools}% http://ctan.org/pkg/mathtools
\begin{document}
\[
d_i(g_n,\ldots,g_0) =
\begin{cases}
(d_0g_ng_{n-1},g_{n-2},\ldots,g_0),& \text{if $i=0$;} \\
(d_ig_n,\ldots,d_1g_{n-i+1},d_0g_{n-i}g_{n-i-1},g_{n-i-2},\ldots,g_0), &\text{if $i=1,\ldots,n-1$;} \\
(d_ng_n,\ldots,d_1g_1),& \text{if $i=0$}
\end{cases}
\]
\[
d_i(g_n,\ldots,g_0) =
\begin{cases}
(d_0g_ng_{n-1},g_{n-2},\ldots,g_0),& \text{if $i=0$;} \\
(d_ig_n,\ldots,d_1g_{n-i+1},d_0g_{n-i}g_{n-i-1},g_{n-i-2},\ldots,g_0), \\
& \phantom{\text{if $i=0$;}}\llap{\text{if $i=1,\ldots,n-1$;}} \\
(d_ng_n,\ldots,d_1g_1),& \text{if $i=0$}
\end{cases}
\]
\end{document}
\phantom{\text{if $i=0$;}}
确保在条件构造方面足够“靠右”,同时\llap
设置一个右对齐的零宽度框(导致l
eft 结束lap
)以正确与第一个案例的分号对齐。