![如何在 LaTeX 中编写左右两侧都带有分组括号的案例,并将条件分成两行?](https://linux22.com/image/310217/%E5%A6%82%E4%BD%95%E5%9C%A8%20LaTeX%20%E4%B8%AD%E7%BC%96%E5%86%99%E5%B7%A6%E5%8F%B3%E4%B8%A4%E4%BE%A7%E9%83%BD%E5%B8%A6%E6%9C%89%E5%88%86%E7%BB%84%E6%8B%AC%E5%8F%B7%E7%9A%84%E6%A1%88%E4%BE%8B%EF%BC%8C%E5%B9%B6%E5%B0%86%E6%9D%A1%E4%BB%B6%E5%88%86%E6%88%90%E4%B8%A4%E8%A1%8C%EF%BC%9F.png)
我曾经写过的代码
这是
$$
X(m,n)=
\begin{cases}
x(n),\\
x(n-1)\\
x(n-1)
\end{cases}
$$
但我不知道该怎么写
另外,如果我想写这个
答案1
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
X(m,n) = \left\{\begin{array}{lr}
x(n), & \text{for } 0\leq n\leq 1\\
x(n-1), & \text{for } 0\leq n\leq 1\\
x(n-1), & \text{for } 0\leq n\leq 1
\end{array}\right\} = xy
\]
\end{document}
如果希望在不同的行上使用两个条件,可以\multirow
对第一列使用:
\documentclass{article}
\usepackage{amsmath}
\usepackage{multirow}
\begin{document}
\[
X(m,n) = \left\{\begin{array}{@{}lr@{}}
\multirow{2}{*}{x(n),} & \text{for }0\leq n\leq 1\\
& \text{or }0\leq n\leq 1\\
x(n-1), & \text{for }0\leq n\leq 1\\
x(n-1), & \text{for }0\leq n\leq 1
\end{array}\right\} = xy
\]
\end{document}
答案2
对于最初提出的问题,我们仍然可以非常轻松地使用。我们只需在开头cases
使用技巧,然后在结尾处输入:\left.
\right\}
\[
X(m, n) = \left.
\begin{cases}
x(n), & \text{for } 0 \leq n \leq 1 \\
x(n - 1), & \text{for } 0 \leq n \leq 1 \\
x(n - 1), & \text{for } 0 \leq n \leq 1
\end{cases}
\right\} = xy
\]
不过,我不确定您是否可以cases
在编辑中跨越行。
答案3
本质上与 Ignasi 的答案相同,但使用了\text
这个词for
。(并且我发现\leqslant
的符号amssymb
更加优雅。)
\documentclass{article}
\usepackage{amsmath, amssymb}
\newcommand{\for}{\text{for }}
\begin{document}
\[
X(m,n)=
\left\{
\begin{array}{lr}
x(n),& \for 0\leqslant n \leqslant 1 \\
x(n-1),& \for 0\leqslant n \leqslant 1 \\
x(n-1),& \for 0\leqslant n \leqslant 1
\end{array}
\right\} = xy.
\]
\end{document}
编辑至于最近询问的修改:
\documentclass{article}
\usepackage{amsmath, amssymb}
\newcommand{\for}{\text{for }}
\begin{document}
\[
X(m,n)=
\left\{
\begin{array}{@{}lr@{}}
x(n),&
\begin{array}{r@{}}
\for 0\leqslant n \leqslant 1\\
\text{or } 0\leqslant x \leqslant 1
\end{array}\\
x(n-1),& \for 0\leqslant n \leqslant 1 \\
x(n-1),& \for 0\leqslant n \leqslant 1
\end{array}
\right\} = xy.
\]
\end{document}
(我认为没有必要为该单词定义新的宏,or
因为它只写过一次。请注意,这次将第二列居中似乎更好。)
編輯之二添加了@{}
建议的规格daleif
。不再居中。
答案4
建立在Au101的回答那么嵌套cases
环境怎么样?:
\[
X(m, n) = \left.
\begin{cases}
x(n), &
\begin{cases}
\text{for } 0 \leq n \leq 1 \\
\text{or } 0 \leq n \leq 1
\end{cases} \\
x(n - 1), & \text{for } 0 \leq n \leq 1 \\
x(n - 1), & \text{for } 0 \leq n \leq 1
\end{cases}
\right\} = xy
\]
multirow
嵌套的括号很难看,但是这种方法避免了对或包的需要array
。