答案1
我不会使用内部括号,而是使用最小值的标准符号,只是跨行拆分。
\documentclass{article}
\usepackage{amsmath}
\DeclareMathOperator{\lev}{lev}
\begin{document}
\begin{equation*}
\lev_{a,b}(i,j)=
\begin{cases}
\max(i,j) & \text{if $\min(i,j)=0$,} \\[1ex]
\begin{aligned}[b]
\min\bigl(\lev_{a,b}&(i-1,j)+1, \\
\lev_{a,b}&(i,j-1)+1, \\
\lev_{a,b}&(i-1,j-1)+1_{(a_i\ne b_j)}
\bigr)
\end{aligned} & \text{otherwise.}
\end{cases}
\end{equation*}
\end{document}
您可能更喜欢以下实现,它是通过使用\begin{aligned}
而不是获得的\begin{aligned}[b]
。
答案2
amsmath
'scases
就是为此定义的。括号与内部内容之间的水平空间非常好。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
\mathrm{lev}_{a,b}(i,j)=\begin{cases}
\max(i,j)&\text{if $\min(i,j)=0$,}\\
\min\begin{cases}
\mathrm{lev}_{a,b}(i-1,j)+1\\
\mathrm{lev}_{a,b}(i,j-1)+1\\
\mathrm{lev}_{a,b}(i-1,j-1)+1_{(a_i\ne b_j)}
\end{cases} &\text{otherwise.}
\end{cases}
\]
\end{document}
在我看来,您正在编写一个经常使用 lev() 函数的文档。在这种情况下,您应该定义一个新的宏以避免重复(我使用\DeclareMathOperator
,这是最好的方法,感谢埃格尔的建议)。
\documentclass{article}
\usepackage{amsmath}
%\newcommand{\lev}{\mathrm{lev}}: not good
\DeclareMathOperator{\lev}{lev}
\begin{document}
\[
\lev_{a,b}(i,j)=\begin{cases}
\max(i,j)&\text{if $\min(i,j)=0$,}\\
\min\begin{cases}
\lev_{a,b}(i-1,j)+1\\
\lev_{a,b}(i,j-1)+1\\
\lev_{a,b}(i-1,j-1)+1_{(a_i\ne b_j)}
\end{cases} &\text{otherwise.}
\end{cases}
\]
\end{document}
答案3
如果经常使用该函数lev
,那么最好按如下方式定义它。
\newcommand{\lev}[2]{\mathrm{lev}_{a, \thinspace b} (#1, \thinspace #2)}
只需输入\lev
,您就会获得带有两个参数的函数。
\documentclass{article}
\usepackage{amsmath}
\usepackage{booktabs}
\usepackage{array}
\begin{document}
\newcommand{\lev}[2]{\mathrm{lev}_{a, \thinspace b} (#1, \thinspace #2)}
\begin{equation}
\lev{i}{j} = \left\lbrace
\begin{array}{l l}
\max(i, \thinspace j) & \text{if~} \min(i, \thinspace j) =0,
\\
\min \left\lbrace \hspace{-1mm}
\begin{array}{l}
\lev{i-1}{j} + 1
\\
\addlinespace[0.5mm]
\lev{i}{j-1} + 1
\\
\addlinespace[0.5mm]
\lev{i-1}{j-1} + 1_{(a_{i} \neq b_{j})}
\end{array}
\right. & \text{otherwise}.
\end{array}
\right.
\end{equation}
\end{document}