ケースの不平等を調整する

Aug 19 2020

環境

私が使用していますcases式を(これは文脈のために、私はRmarkdownは最終的に式をタイプセットするために使用するツールは全く知りませんように)表示するようにR-値下げドキュメント内。しかし、最終的には(IMHO)rmarkdownとは何の関係もありませんが、純粋なLaTeX問題です(Rmarkdownツールチェーンの一部ではない外部パッケージまたはコマンドを追加することがより困難になる可能性があることを除いて)

問題

cases環境の右側にある不平等を調整したいと思います。問題は、コーナーケースの場合、下限がないため、不等式が整列されなくなったことです。

ギャップを埋めようとしました\phantomが、\leq符号を置き換える必要があるため、間隔が調整されていません(不等式演算子の後にアフターを追加するここを読んで、これがまさに欠けているものだと思います。ただし、Rmarkdownに追加することはできません) 。LaTeX\thickmuskip\thickmuskip

(NB私は不平等が意味をなさないことを知っています;)-しかしそれは明らかに重要ではありません)

\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}

出力

回答

3 DonaldArseneau Aug 19 2020 at 08:41

中置二項演算子の周囲の間隔はそれらを囲むものに依存するため、それらが内側の数学リストの端に表示されると(中括弧に対して)間隔が失われる可能性があります。これを利用して、マイナス記号がunarayマイナス(負の数)のままであることを確認しました。良い!(場合によっては不要ですが。)問題は、ファントムの最後にある関係記号にあります。

\;補正するために明示的なスペース()を追加するか、二項関係の処理を復元するために何かを提供することができます。

\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}
4 egreg Aug 19 2020 at 09:05

あなたは使用することができます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}\right.、あなたは使用することができます\begin{cases}し、\end{cases}(全画面の左にわずかなシフトを犠牲に。

3 Bernard Aug 19 2020 at 09:09

また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} 

2 F.Pantigny Aug 19 2020 at 12:40

方程式に番号を付けたくない場合arrayは、他の回答で提案されているようにを使用します。あなたが数式に番号をしたい場合は、使用することができます{DispWithArrow}witharrows

\documentclass{article}
\usepackage{witharrows}
\usepackage{amsmath}

\begin{document}

\begin{DispWithArrows}<f(x_i)=>[format=lrrcccr]
1, & \quad \text{if } &        &         & x_i & {}<{} &  0.2 \\
2, &       \text{if } & {-0.2} & {}\le{} & x_i & {}<{} & {-0.1} \\
3, &       \text{if } & {-0.1} & {}\le{} & x_i & {}<{} &  0.1 \\
4, &       \text{if } &  0.1   & {}\le{} & x_i & {}<{} &  0.5 \\
5, &       \text{if } &  0.5   & {}\le{} & x_i
\end{DispWithArrows}

\end{document}

1 thothal Aug 19 2020 at 08:25

わかりました、どうやら私\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}