Aligner les inégalités dans les cas
Le contexte
J'utilise à l' cases
intérieur d'un document R-Markdown pour afficher une formule (ceci pour le contexte car je ne suis pas totalement conscient des outils que Rmarkdown utilise pour composer éventuellement la formule). Mais finalement, cela n'a (à mon humble avis) rien à voir avec rmarkdown mais un pur LaTeX
problème (en plus, il peut devenir plus difficile d'ajouter des packages ou des commandes externes qui ne font pas partie de la chaîne d'outils Rmarkdown)
Problème
Je veux aligner les inégalités du bon côté de l' cases
environnement. Le problème est que pour le cas du coin, je n'ai pas de borne inférieure et donc les inégalités ne sont plus alignées.
J'ai essayé de combler l'écart avec \phantom
mais comme je dois remplacer le \leq
signe, l'espacement n'est pas aligné (j'ai lu ici qui LaTeX
ajoute un \thickmuskip
après un opérateur d'inégalité et je suppose que c'est exactement ce qui manque. Cependant, je ne peux pas ajouter \thickmuskip
dans Rmarkdown) .
(NB je sais que les enquêtes n'ont pas de sens;) - mais ce n'est clairement pas le but)
\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}
Production

Réponses
Comme l'espacement autour des opérateurs binaires infixes dépend de ce qui les entoure, ils peuvent perdre leur espacement lorsqu'ils apparaissent au bord d'une liste mathématique interne (contre des accolades). Vous vous en êtes servi pour vous assurer que les signes moins restent comme des moins unaray (nombres négatifs). Bien! (Bien que inutile dans certains cas.) Le problème vient des symboles de relation qui viennent à la fin du fantôme.
Vous pouvez ajouter un espace explicite ( \;
) pour compenser, ou vous pouvez fournir quelque chose pour restaurer le traitement de la relation binaire:
\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}
Vous pouvez utiliser un 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}
Au lieu de \left\{\renewcommand{\arraystretch}{1.2}
et, \right.
vous pouvez utiliser \begin{cases}
et \end{cases}
(au prix d'un léger décalage vers la gauche de l'ensemble de l'affichage.

Vous avez également une possibilité plus simple avec alignedat
des cas imbriqués. Je ne suis pas sûr que ce soit une bonne idée d'aligner les nombres à la fin des lignes, en plus d'aligner les <
signes. J'ai donc ajouté un code de variante, en utilisant le empheq
package, sans cet alignement final. Il ajoute la possibilité de numéroter ou de sous-numéroter chaque ligne, ce qui peut être utile dans certaines situations:
\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}

Si vous ne voulez pas numéroter les équations, j'utiliserais un array
comme suggéré dans les autres réponses. Cependant, si vous voulez numéroter les équations, vous pouvez utiliser {DispWithArrow}
de 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}

Ok, apparemment j'ai mal compris \thickmuskip
ce qui est une longueur, plutôt qu'une commande. \;
devrait ajouter ceci:
\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}
