Vakalarda eşitsizlikleri hizalayın
Bağlam
cases
Bir formülü görüntülemek için bir R-Markdown belgesinin içinde kullanıyorum (bu bağlam için Rmarkdown'un formülü dizmek için hangi araçları kullandığını tam olarak bilmiyorum). Ama nihayetinde (IMHO) rmarkdown ile hiçbir ilgisi yoktur, ancak saf bir LaTeX
problemdir (ayrıca Rmarkdown araç zincirinin parçası olmayan harici paketler veya komutlar eklemek daha zor olabilir)
Sorun
Eşitsizlikleri cases
çevrenin sağ tarafında hizalamak istiyorum . Sorun şu ki, köşe durumu için bir alt sınırım yok ve bu nedenle eşitsizlikler artık hizalı değil.
Beraber boşluğu doldurmaya çalıştı \phantom
ama yerine beri \leq
, aralık hizalı değil işaretini (Okumayı burada o LaTeX
bir ekleyen \thickmuskip
bir eşitsizlik operatörü sonra ve ben eksik olan nokta tam olarak sanırım. Ancak, ben ekleyemezsiniz \thickmuskip
Rmarkdown olarak) .
(Not: Eşitsizliklerin mantıklı olmadığını biliyorum;) - ama mesele bu değil)
\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}
Çıktı

Yanıtlar
Enfix ikili operatörlerinin etrafındaki boşluk onları çevreleyen şeye bağlı olduğundan, bir iç matematik listesinin kenarında (parantezlere karşı) göründüklerinde boşluklarını kaybedebilirler. Bunu, eksi işaretlerinin unaray eksi (negatif sayılar) olarak kalmasını sağlamak için kullandınız. İyi! (Bazı durumlarda gereksiz olsa da.) Sorun, hayaletin sonunda gelen ilişki sembolleriyle birlikte gelir.
\;
Telafi etmek için açık boşluk ( ) ekleyebilir veya ikili ilişki tedavisini geri yüklemek için bir şey sağlayabilirsiniz:
\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}
Şunu kullanabilirsiniz 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}
Yerine \left\{\renewcommand{\arraystretch}{1.2}
ve \right.
kullanabilirdin \begin{cases}
ve \end{cases}
(bütün ekranın solunda hafif kayma pahasına.

Ayrıca alignedat
vakalarda iç içe yerleştirme ile daha basit bir olanağınız var . <
İşaretleri hizalamaya ek olarak, satırların sonundaki sayıları hizalamanın iyi bir fikir olduğundan emin değilim . Bu yüzden empheq
paketi kullanarak bu son hizalama olmadan bir varyant kodu ekledim . Her satırı numaralandırma veya alt numaralandırma olanağını ekler, bu bazı durumlarda yararlı olabilir:
\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}

Denklemleri numaralandırmak istemiyorsanız array
, diğer cevaplarda önerildiği gibi bir kullanırım . Eğer denklemleri numara istiyorsanız Ancak, kullanabilirsiniz {DispWithArrow}
arasında 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}

Tamam, görünüşe göre \thickmuskip
hangisinin bir komuttan ziyade bir uzunluk olduğunu yanlış anladım . \;
şunu eklemelisiniz:
\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}
