我想知道是否有一种有效的方法来对齐案例环境中的第一列,而不是像\phantom
下面那样使用代码?
我编写的代码感觉像是被黑客入侵了???
以下是代码:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation*}
-\tau \ddot{e} - \dot{e} = %
\begin{cases}
\phantom{-}A; & e+T_{L}\dot{e}>0\\
\phantom{-~}0; & e + T_{L}\dot{e}=0\\
-A; & e+T_{L}\dot{e}<0
\end{cases}
\end{equation*}
\end{document}
答案1
如果没有cases
,人们可以
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation*}
-\tau \ddot{e} - \dot{e} = %
\left\{\begin{aligned}
A; && e+T_{L}\dot{e}&>0\\
0; && 1e + T_{L}\dot{e}&=0\\
-A; && e+T_{L}\dot{e}&<0
\end{aligned}\right.
\end{equation*}
\end{document}
这也与右边的关系运算符对齐。
或者,如果希望对案例中的方程式基线跳跃进行更多控制,可以使用 TABstack。垂直基线跳跃通过 设置\setstackgap{L}{<length>}
。类似地,对齐组之间的水平间隙可以通过 设置\setstackaligngap{<length>}
(默认 1em)。
\documentclass{article}
\usepackage{amsmath,tabstackengine}
\TABstackMath
\setstackgap{L}{1.3\normalbaselineskip}% EQ BASELINESKIP SET HERE
\begin{document}
\begin{equation*}
-\tau \ddot{e} - \dot{e} = %
\left\{\alignCenterstack{
A; && e+T_{L}\dot{e}&>0\\
0; && 1e + T_{L}\dot{e}&=0\\
-A; && e+T_{L}\dot{e}&<0
}\right.
\end{equation*}
\end{document}
答案2
使用eqparbox
将所有内容\eqmakebox[<tag>][<align>]{<stuff>}
设置为最大宽度的框。您也可以根据需要调整。<stuff>
<tag>
<align>
\documentclass{article}
\usepackage{amsmath,eqparbox}
\begin{document}
% Original
\begin{equation*}
-\tau \ddot{e} - \dot{e} = %
\begin{cases}
\phantom{-}A; & e + T_{L}\dot{e} > 0 \\
\phantom{-~}0; & e + T_{L}\dot{e} = 0 \\
-A; & e + T_{L}\dot{e} < 0
\end{cases}
\end{equation*}
% Updated
\begin{equation*}
-\tau \ddot{e} - \dot{e} =
\begin{cases}
\eqmakebox[lhs][r]{$ A$}; & e + T_L \dot{e} > 0 \\
\eqmakebox[lhs][r]{$ 0$}; & e + T_L \dot{e} = 0 \\
\eqmakebox[lhs][r]{$-A$}; & e + T_L \dot{e} < 0
\end{cases}
\end{equation*}
\end{document}
因为eqparbox
使用.aux
文件来收集最大宽度,所以您至少需要在第一次进行两次编译(或在框中进行任何更改)才能确定最大宽度。
答案3
如果没有cases
,人们可以
\def\casesR#1{\left\{\vcenter{\openup2pt
\halign{\hfil$##$&&\quad\hfil$##$\cr#1\crcr}}\right.}
$$
-\tau \ddot e - \dot e = \casesR{
A; & e + T_L \dot e > 0 \cr
0; & 1e + T_L \dot e = 0 \cr
-A; & e + T_L \dot e < 0 }
$$
\bye
答案4
包 empheq
及其left
密钥与alignat*
环境相结合,形成了一个非常简单的代码。请注意,您不必加载amsmath
,因为empheq
会加载mathtools
,它会加载并扩展前者:\documentclass{article} \usepackage{empheq}
\begin{document}
\begin{empheq}[left ={-\tau \ddot{e} - \dot{e} =\empheqlbrace}]{alignat* = 2}
A; &\quad& e+T_{L}\dot{e}&>0\\
0; && 1e + T_{L}\dot{e}&=0\\
-A; && e+T_{L}\dot{e}&<0
\end{empheq}
\end{document}