调整案例中的不平等

调整案例中的不平等

语境

我在 R-Markdown 文档中使用cases它来显示公式(这是上下文,因为我不完全清楚 Rmarkdown 最终使用哪些工具来排版公式)。但最终它(在我看来)与 rmarkdown 无关,而是一个纯粹的LaTeX问题(此外,添加不属于 Rmarkdown 工具链的外部包或命令可能会变得更加困难)

问题

我想将不平等现象在环境的右侧对齐cases。问题是,对于极端情况,我没有下限,因此不平等现象不再对齐。

我试图用 来填补空白\phantom,但由于我必须替换\leq符号,所以间距不对齐(我读到这里在不等式运算符后添加LaTeX了一个\thickmuskip,我猜这正是缺少的。但是,我无法\thickmuskip在 Rmarkdown 中添加)。

(注意:我知道这些不等式没有意义;) - 但这显然不是重点)

\begin{cases}
1, & \text{if}\ \phantom{{-1.0}<} x_i < -0.2\\                % too little space
2, & \text{if}\ {-0.2} \leq x_i < -0.1\\                      % add brackets around to -0.2 to treat `-` as unary
3, & \text{if}\ {-0.1} \leq x_i < \phantom{-}0.1 \\
4, & \text{if}\ \phantom{{-}}0.1 \leq x_i < \phantom{-}0.5\\
5, & \text{if}\ \phantom{{-0.5}<1} x_i < \phantom{-}5.0       % too much space
\end{cases}

输出

不平等现象失衡

答案1

由于中缀二元运算符周围的间距取决于它们周围的内容,因此当它们出现在内部数学列表的边缘(括号内)时,它们可能会失去间距。您已利用这一点确保减号保持为无括号减号(负数)。很好!(尽管在某些情况下没有必要。)问题出在幻象末尾的关系符号上。

您可以添加显式空间(\;)来补偿,或者可以提供一些内容来恢复二元关系处理:

\begin{cases}
1, & \text{if}\ \phantom{{-1.0}<{}} x_i < -0.2\\
2, & \text{if}\ {-0.2} \leq x_i < -0.1\\
3, & \text{if}\ {-0.1} \leq x_i < \phantom{-}0.1 \\
4, & \text{if}\ \phantom{{-}}0.1 \leq x_i < \phantom{-}0.5\\
5, & \text{if}\ \phantom{{-0.5}<{}} x_i < \phantom{-}5.0 
\end{cases}

答案2

您可以使用array

\documentclass{article}
\usepackage{amsmath,array}

\begin{document}

\begin{equation*}
\left\{
\renewcommand{\arraystretch}{1.2} % like cases does
\setlength{\arraycolsep}{0pt} % we don't want padding
\begin{array}{
  l           % value
  @{\quad}    % like cases does
  >{$}l<{ $}  % text column with trailing normal space
  r           % lower bound
  >{{}}c<{{}} % relation
  c           % variable
  >{{}}c<{{}} % relation
  r           % upper bound
}
1, & if &      &     & x_i & < &  0.2 \\
2, & if & -0.2 & \le & x_i & < & -0.1 \\
3, & if & -0.1 & \le & x_i & < &  0.1 \\
4, & if &  0.1 & \le & x_i & < &  0.5 \\
5, & if &  0.5 & \le & x_i
\end{array}
\right.
\end{equation*}

\end{document}

您可以使用\left\{\renewcommand{\arraystretch}{1.2}and来代替and (但代价是整个显示会稍微向左移动)。\right.\begin{cases}\end{cases}

在此处输入图片描述

答案3

您还可以使用嵌套案例更简单的可能性alignedat。除了对齐符号之外,我不确定在行尾对齐数字是否是个好主意。 <所以我使用包添加了一个变体代码empheq,没有这个最终对齐。它增加了对每行进行编号或子编号的可能性,这在某些情况下可能很有用:

\documentclass[a4paper,12pt]{article}

\usepackage{array}
\usepackage{empheq}

\begin{document}

 \[ \begin{cases}
\begin{alignedat}{3}
&1, &\quad & \text{if} & x_i &< -0.2\\
&2, & &\text{if} & \quad -0.2 \leq x_i &< -0.1\\
&3, & &\text{if} &-0.1 \leq x_i & < \phantom{-}0.1 \\
&4, & &\text{if} & \phantom{{-}}0.1 \leq x_i &< \phantom{-}0.5\\
&5, & &\text{if} & x_i &< \phantom{-}5.0 % too much space
\end{alignedat}
\end{cases} \]
\vspace{1cm}

\begin{subequations}
 \begin{empheq}[left=\empheqlbrace]{alignat=3}
&1, &\quad & \text{if} & x_i &< -0.2\\
&2, & &\text{if} & \quad -0.2 \leq x_i &< -0.1\\
&3, & &\text{if} &-0.1 \leq x_i & < 0.1 \\
&4, & &\text{if} & \phantom{{-}}0.1 \leq x_i &< 0.5\\
&5, & &\text{if} & x_i &< 5.0 % too much space
\end{empheq}
\end{subequations}

\end{document} 

在此处输入图片描述

答案4

好的,显然我误解了\thickmuskip这是一个长度,而不是一个命令。\;应该添加这个:

\begin{cases}
1, & \text{if}\ \phantom{{-1.0}<}\; x_i < -0.2\\
2, & \text{if}\ {-0.2} \leq x_i < -0.1\\
3, & \text{if}\ {-0.1} \leq x_i < \phantom{-}0.1 \\
4, & \text{if}\ \phantom{{-}}0.1 \leq x_i < \phantom{-}0.5\\
5, & \text{if}\ \phantom{{-0.5}<}\; x_i < \phantom{-}5.0 
\end{cases}

在此处输入图片描述

相关内容