我想要一系列aligned
方程,其中最后一个方程有两种情况。请参阅图中的示例。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
a &= b \\
&\begin{cases}
\ge c \\
\le d
\end{cases}
\end{align*}
\end{document}
当然,我希望=
/ ≥
/≤
符号对齐。
这个问题在我的工作中经常出现。我总是不得不想出一些相当不靠谱、不通用的方法\mathllap{\Bigg\{}
。但是,每次都这样做是相当不令人满意的——而且这种做法在很多情况下都行不通——所以我想知道是否有更好、更直接的方法?
答案1
您可以使用nicematrix
如下所示的包https://tex.stackexchange.com/a/583373/36296
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\[
\begin{NiceArray}{r@{\;}l}[first-row]
a&= b \\
&\ge c\\
&\le d
\CodeAfter \SubMatrix{\{}{1-2}{2-2}{.}[left-xshift=0.1em]
\end{NiceArray}
\]
\end{document}
答案2
改编
- 在环境前插入一个负空格
cases
:\hspace{-.73em}
- 使用相对大小
em
,因此它也能正常工作(不是完美,因为有一点不同huge
),也适用于其他字体大小 - 我
alignedcases
为此定义了一个环境。这样就更容易输入了,如果你找到了更好的解决方案,你可以稍后更改它。
\newenvironment{alignedcases}{
\hspace{-.73em}
\begin{cases}
}{
\end{cases}
}
结果
代码
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\newenvironment{alignedcases}{
\hspace{-.73em}
\begin{cases}
}{
\end{cases}
}
\newcommand{\test}[1]{
\begin{align*}
a &\tikzmark{#1}= b \\
&\begin{alignedcases}
\ge c \\
\le d
\end{alignedcases}
\end{align*}
%
\begin{tikzpicture}[overlay, remember picture]
\draw [red] ([xshift=.31em, yshift=.75em] {pic cs:#1}) -- ++(0,-4.5em);
\end{tikzpicture}
}
\begin{document}
\footnotesize\test{footnotesize}
\small\test{small}
\normalsize\test{normalsize}
\large\test{large}
\LARGE\test{LARGE}
\huge\test{huge}
\end{document}
答案3
答案4
我收到了一些非常好的答案 — 而且非常快!没有一个像我希望的那样令人满意。有时,LaTeX 会遇到一些看似简单的事情,但没关系!
鉴于没有简单的解决方案,我在下面附上了我使用过的另一个版本。与大多数其他答案一样,这有点黑客行为。但是,它确实使=
/ ≥
/≤
符号完美对齐;只是,左括号不一定完全正确 - 并且\left\{
在这里不起作用。
\documentclass{article}
%\usepackage{amsmath}
\usepackage{mathtools}
\begin{document}
\begin{align*}
a &= b \\
\hspace*{+0.25em}
\mathllap{\Bigg\{}
\hspace*{-0.25em}
&\begin{aligned}
&\ge c \\
&\le d
\end{aligned}
\end{align*}
\end{document}