寻找更合适的 \cases 版本

寻找更合适的 \cases 版本

我经常想写这样的东西:

也就是说,一个垂直括号后跟一个由三列组成的表格,第一列和最后一列是数学,在任意位置对齐例如,中间的是文本,右对齐。

我现在已经找到了我想要的解决方案tabularx

\left\{
\begin{tabular}{>{$}r<{{}$}@{}>{${}}l<{$}r>{$}r<{{}$}@{}>{${}}l<{$}}
&\frac{n(x)}{1+j^2F^2} & for &  j&=0\\
2&\frac{\cos(jk)}{1+j^2F^2}f_j^{\FD}(n(x))& for & j&>0\\
2&\frac{\sin(jk)jF/\tau}{1+j^2F^2}f_j^{\FD}(n(x)) & for& j&<0 
\end{tabular}
\right.

(我将额外的括号放在列定义里面,以便对齐字符附近的运算符保持相对,这是通常的意图)

我的问题实际上有两个:

  1. 是否有一个包或命令可以做到这一点(我认为案例应该这样做但我仍然需要使用,\text{}这很烦人)?

  2. 将其转变为环境的最佳方法是什么,以便我可以简单地编写

    \begin{mycases}
    &\frac{n(x)}{1+j^2F^2} & for &  j&=0\\
    2&\frac{\cos(jk)}{1+j^2F^2}f_j^{\FD}(n(x))& for & j&>0\\
    2&\frac{\sin(jk)jF/\tau}{1+j^2F^2}f_j^{\FD}(n(x)) & for& j&<0 
    \end{mycases}
    

答案1

这是使用 IEEEtranstool 包的“解决方案”:

\documentclass{minimal}
\usepackage{mathtools}
\usepackage[retainorgcmds]{IEEEtrantools}
\def\FD{\text{FD}}
\begin{document}
\begin{IEEEeqnarray*}{rl"t"rC}
 &\frac{n(x)}{1+j^2F^2} & for &  j&=0\\
 2&\frac{\cos(jk)}{1+j^2F^2}f_j^{\FD}(n(x))& for & j&>0\\
 2&\frac{\sin(jk)jF/\tau}{1+j^2F^2}f_j^{\FD}(n(x)) & for& j&<0
\end{IEEEeqnarray*}
\end{document}

语法是你的,但这些解决方案缺少垂直括号。也许 TeX 向导可能会有所帮助。

解释:rcl 代表数学模式下的右中左列,RCL 代表数学运算符(额外空格),stu 代表文本列,“代表额外空格

`retainorgcmds 选项可防止 IEEEtrantools 覆盖现有的 LaTeX 命令(itemize、enumerate 和 description)

另请参阅文档:第 17 页及更多

答案2

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{mathtools}
\def\FD{\text{FD}}
\def\for{\text{for }}
\begin{document}

\[
\begin{cases}
\phantom{2}\dfrac{n(x)}{1+j^2F^2}                           & \for j=0\\[15pt]
         2 \dfrac{\cos(jk)}{1+j^2F^2}f_j^{\FD}(n(x))        & \for j>0\\[15pt]
         2 \dfrac{\sin(jk)jF/\tau}{1+j^2F^2}f_j^{\FD}(n(x)) & \for j<0 
\end{cases}
\]

\[\left\{
\begin{matrix*}[l]
   & \dfrac{n(x)}{1+j^2F^2}                           & \for j=0\\[15pt]
 2 & \dfrac{\cos(jk)}{1+j^2F^2}f_j^{\FD}(n(x))        & \for j>0\\[15pt]
 2 & \dfrac{\sin(jk)jF/\tau}{1+j^2F^2}f_j^{\FD}(n(x)) & \for j<0 
\end{matrix*}
\right.\]

\end{document}

在此处输入图片描述

答案3

在此处输入图片描述

这里没有什么魔法:

\documentclass{article}
\usepackage{amsmath}
\usepackage{mathtools}
\newcommand\FD{\mathrm{FD}}
\begin{document}
\[
\begin{dcases}
\phantom{2}\frac{n(x)}{1+j^2F^2} & \text{for } j=0\\
2\frac{\cos(jk)}{1+j^2F^2}f_j^{\FD}(n(x))& \text{for } j>0\\
2\frac{\sin(jk)jF/\tau}{1+j^2F^2}f_j^{\FD}(n(x)) & \text{for } j<0 
\end{dcases}
\]
\end{document}

答案4

克隆环境,从默认设置amsmath cases增加:\arraystretch1.2

\makeatletter
\newenvironment{mycases}{%
  \matrix@check\mycases\env@mycases
}{%
  \endarray\right.%
}
\def\env@mycases{%
  \let\@ifnextchar\new@ifnextchar
  \left\lbrace
  \def\arraystretch{1.5}%
  \array{@{}l@{\quad}l@{}}%
}
\makeatother

您可以1.5根据需要进行调整以获得令人满意的结果。

当然,这不会调整第一行中缺失的“2”。

相关内容