我想要获得这个功能:
我写了两个选项,但是无法匹配图片。这是第一个:
\begin{displaymath}
P[\chi_{n+1}=j|\chi_{n}=i]=
\begin{dcases}
\frac{N-i}{N}&\text{si }j=i+1\\
\frac{i}{N}&\text{si }j=i-1\\
0&\text{otro caso}
\end{dcases}
\end{displaymath}
这是第二个:(这个有点压缩了)
\begin{displaymath}
P[\chi_{n+1}=j|\chi_{n}=i]=
\left\{\begin{array}{cc}
\dfrac{N-i}{N} & \text{si }j=i+1\\
\dfrac{i}{N} & \text{si }j=i-1\\
0 & \text{en otro caso}
\end{array}\right
\end{displaymath}
如何改进代码?谢谢支持。
答案1
问题似乎是您希望括号右侧的“列”居中而不是左对齐,在所有情况下都是如此(至少在我所知道的所有情况下)。要解决这个问题,OP 使用数组的想法似乎是可行的,但需要进行一些调整。
- 首先,如果您使用,
\left\{
则必须有一个匹配的\right<delimiter>
。由于没有匹配的右分隔符,在这种情况下,您可以使用\right.
。就个人而言,我不喜欢\left....\right
产生的尺寸,因此,我定义了一个宏\Bigger
,它将以下分隔符缩放到指定的高度(以毫米为单位),默认为7mm
。除了可选参数外,这类似于\bigl
,\biggl
,\Big
... amsmath 宏。 - 接下来,正如 OP 所说,数组的行间距太近了。您可以使用命令的可选参数调整行间距
\\
。因此,\\[3mm]
将在行之间添加一个额外的3mm
行,这似乎是正确的。 - 环境
array
带有填充,因此括号和公式之间的空间太大。您可以通过添加@{}
到数组规范来删除左填充。 - 我添加了一些标点符号。
- 最后,正如评论所建议的,
\mid
比更好|
。
通过这些改变,MWE 产生了:
这与问题顶部给出的“理想”图像非常接近。以下是完整代码:
\documentclass{article}
\usepackage{amsmath}
% an ams-style operator for resizing delimiters
% Usage: \Bigger[, \Bigger[8][, \Bigger[10](, ...
\newcommand\Bigger[2][7]{\left#2\rule{0mm}{#1truemm}\right.}
\begin{document}
\begin{displaymath}
P[\chi_{n+1}=j\mid\chi_{n}=i]=
\Bigger[14]\{\begin{array}{@{}cl}
\dfrac{N-i}{N}, & \text{si }j=i+1,\\[3mm]
\dfrac{i}{N}, & \text{si }j=i-1,\\[3mm]
0, & \text{en otro caso}.
\end{array}
\end{displaymath}
\end{document}
答案2
这似乎是一种精确的风格选择,因此您应该通过定义自己的环境将其设为默认值。
\documentclass{article}
\usepackage{amsmath,mathtools}
\makeatletter % some generic helpers
\newcommand{\LCASES}[1]{$\m@th\displaystyle{#1}$\hfil}
\newcommand{\CCASES}[1]{\hfil$\m@th\displaystyle{#1}$\hfil}
\newcommand{\RCASES}[1]{\hfil$\m@th\displaystyle{#1}$}
\makeatother
\newcases{ecases}{\quad}{\CCASES{##}}{\LCASES{##}}{\lbrace}{.}
\newcases{ecases*}{\quad}{\CCASES{##}}{{##}\hfil}{\lbrace}{.}
\begin{document}
\begin{equation*}
P[\chi_{n+1}=j\mid\chi_{n}=i]=
\begin{ecases*}
\frac{N-i}{N} & si $j=i+1$,\\
\frac{i}{N} & si $j=i-1$,\\
0 & en otro caso.
\end{ecases*}
\end{equation*}
\end{document}
环境ecases
中的第二列单元格以数学模式排版,而ecases*
它们处于文本模式。
假设你向其提交书籍的出版商告诉你,他们的编辑政策是左对齐。你可以回答说这真的很容易,因为恢复默认设置只需更改两行:
\newcases{ecases}{\quad}{\LCASES{##}}{\LCASES{##}}{\lbrace}{.}
\newcases{ecases*}{\quad}{\LCASES{##}}{{##}\hfil}{\lbrace}{.}
你会得到
答案3
在这里,我使用 TABstack 来处理案例。特别是,\tabularCenterstack
允许单独指定列对齐。案例之间的基线跳跃可以简单地设置,如 MWE 中所示。
\documentclass{scrartcl}
\usepackage{amsmath,tabstackengine}
\TABstackMath% SETS STACKS IN MATH MODE
\TABstackMathstyle{\displaystyle}% DEFINE STYLE OF MATH STACKS
\setstackgap{L}{2.5\baselineskip}% SETS BASELINESKIP FOR LONG-STACKED LINES
\setstacktabulargap{2\tabcolsep}% DEFINES INTERCOLUMN GAP
\begin{document}
\begin{displaymath}
P[\chi_{n+1}=j|\chi_{n}=i]=
\left\{
\tabularCenterstack{cl}{
\frac{N-i}{N}&\text{si }j=i+1\\
\frac{i}{N}&\text{si }j=i-1\\
0&\text{otro caso}
}
\right.
\end{displaymath}
\end{document}
答案4
我其实想建议你不是完全复制您所发布的屏幕截图。
相反,我会选择完全对称的外观,其中=
花括号右侧中间行的符号与=
左侧的符号完全对齐。这可以通过明智构造的\vphantom
术语轻松实现。
\documentclass{article}
\usepackage{mathtools} % for 'dcases*' env.
\newcommand\zzz{\vphantom{\dfrac{\mathstrut}{\mathstrut}}} % to be inserted in all 3 rows
\begin{document}
\[
\Pr[\, \chi^{}_{n+1}=j \mid \chi^{}_{n}=i \,]=
\begin{dcases*}
\frac{N-i}{N}\zzz & si $j=i+1$\\
\frac{i}{N}\zzz & si $j=i-1$\\
0 \zzz & otro caso
\end{dcases*}
\]
\end{document}