Vakalarda eşitsizlikleri hizalayın

Aug 19 2020

Bağlam

casesBir 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 LaTeXproblemdir (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ı \phantomama yerine beri \leq, aralık hizalı değil işaretini (Okumayı burada o LaTeXbir ekleyen \thickmuskipbir eşitsizlik operatörü sonra ve ben eksik olan nokta tam olarak sanırım. Ancak, ben ekleyemezsiniz \thickmuskipRmarkdown 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

3 DonaldArseneau Aug 19 2020 at 08:41

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

Ş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.

3 Bernard Aug 19 2020 at 09:09

Ayrıca alignedatvakalarda 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 empheqpaketi 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} 

2 F.Pantigny Aug 19 2020 at 12:40

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}

1 thothal Aug 19 2020 at 08:25

Tamam, görünüşe göre \thickmuskiphangisinin 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}