Alinear las desigualdades en los casos
Contexto
Estoy usando cases
dentro de un documento R-Markdown para mostrar una fórmula (esto para el contexto, ya que no estoy totalmente consciente de qué herramientas usa Rmarkdown para componer la fórmula eventualmente). Pero en última instancia, (en mi humilde opinión) no tiene nada que ver con rmarkdown, sino un LaTeX
problema puro (además de que puede resultar más difícil agregar paquetes o comandos externos que no forman parte de la cadena de herramientas de Rmarkdown)
Problema
Quiero alinear las desigualdades en el lado derecho del cases
medio ambiente. El problema es que para el caso de la esquina no tengo un límite inferior y, por lo tanto, las desigualdades ya no están alineadas.
Traté de llenar el espacio con, \phantom
pero como tengo que sustituir el \leq
signo, el espaciado no está alineado (leí aquí que LaTeX
agrega un \thickmuskip
después de un operador de desigualdad y creo que esto es exactamente lo que falta. Sin embargo, no puedo agregar \thickmuskip
en Rmarkdown) .
(NB, sé que las inquietudes no tienen sentido;) - pero claramente ese no es el punto)
\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}
Salida

Respuestas
Dado que el espacio alrededor de los operadores binarios infijos depende de lo que los rodea, pueden perder su espacio cuando aparecen en el borde de una lista matemática interna (contra llaves). Ha hecho uso de esto para asegurarse de que los signos negativos permanezcan como un signo menos (números negativos). ¡Bueno! (Aunque es innecesario en algunos casos). El problema viene con los símbolos de relación que vienen al final del fantasma.
Puede agregar un espacio explícito ( \;
) para compensar, o puede proporcionar algo para restaurar el tratamiento de la relación binaria:
\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}
Puede utilizar 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}
En lugar de \left\{\renewcommand{\arraystretch}{1.2}
y \right.
podría usar \begin{cases}
y \end{cases}
(a expensas de un ligero desplazamiento hacia la izquierda de toda la pantalla.

También tiene una posibilidad más sencilla con alignedat
casos anidados. No estoy seguro de que sea una buena idea alinear los números al final de las líneas, además de alinear los <
signos. Así que agregué un código de variante, usando el empheq
paquete, sin esta alineación final. Agrega la posibilidad de numerar o subnumerar cada línea, lo que puede ser útil en algunas situaciones:
\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 no desea numerar las ecuaciones, usaría una array
como se sugiere en otras respuestas. Sin embargo, si desea numerar las ecuaciones, se puede utilizar {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, aparentemente entendí mal \thickmuskip
que es una longitud, en lugar de un comando. \;
debería agregar esto:
\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}
