Alinear la lista ignorando el signo negativo del primer número de los elementos

Alinear la lista ignorando el signo negativo del primer número de los elementos

Actualmente estoy usando enumitem y creé un entorno para mis listas en un documento. Es el siguiente:

\newenvironment{alternativas}[1][0]
{
    \begin{enumerate}[label={\Alph*)}, itemsep=#1cm, topsep = 0.5cm, wide=0pt,labelwidth=.5cm,leftmargin=!]
}
{
    \end{enumerate}
}

He estado intentando alinear los elementos ignorando el signo negativo, si el elemento comienza con uno. Las imágenes lo explicarán mucho mejor que yo:

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Busqué preguntas similares y solo encontré personas con este problema en una mesa, y soluciones usando entornos alineados y cosas así. Incluso busqué algo para resolver esto en libros de TeX (y accidentalmente aprendí mucho mientras lo hacía jaja) pero no tuve éxito.

Muchas soluciones para estos problemas similares también utilizan algunos ajustes manuales, como usar un \phantom en los elementos sin un signo menos para que el espaciado parezca igual (produje el resultado deseado usando \hspace con un número negativo). Pero he estado buscando una solución que automatice esto para mí, porque comparto los documentos con personas menos experimentadas y quiero que les resulte fácil de usar. ¡Muchas gracias!

Respuesta1

Lo que hago es redefinir \itemdentro del entorno para examinar el primer token de \item(siguiendo un argumento opcional). Si es un -token, \mathllaplo escribo y luego continúo; de lo contrario, lo compongo directamente.

\documentclass{article}
\usepackage{enumitem,mathtools}
\let\svitem\item
\newenvironment{alternativas}[1][0]
{
  \renewcommand\item[2][\relax]{%
    \ifx\relax##1\def\next{}\else\def\next{[##1]}\fi
    \ifx-##2\def\nnext{$\mathllap{##2}$}\else\def\nnext{##2}\fi
    \expandafter\svitem\next\nnext}
    \begin{enumerate}[label={\Alph*)}, itemsep=#1cm, topsep = 0.5cm, 
      wide=0pt, labelwidth=.5cm,leftmargin=!,labelsep=10pt]
}
{
    \end{enumerate}
}
\begin{document}
\begin{alternativas}
\item -1
\item 4
\item -5
\item 6
\end{alternativas}
\end{document}

ingrese la descripción de la imagen aquí

APÉNDICE

OP aclaró en los comentarios que todos los números se ingresan en modo matemático (a través del inicio $). Sin embargo, no todos los elementos comienzan con matemáticas. Entonces, se requirieron algunas revisiones:

\documentclass{article}
\usepackage{enumitem,mathtools}
\let\svitem\item
\newenvironment{alternativas}[1][0]
{
  \renewcommand\item[3][\relax]{%
    \ifx\relax##1\def\next{}\else\def\next{[##1]}\fi
    \ifx$##2\ifx-##3\def\nnext{##2\mathllap{##3}}\else\def\nnext{##2##3}\fi
      \else\def\nnext{##2##3}\fi
    \expandafter\svitem\next\nnext}
    \begin{enumerate}[label={\Alph*)}, itemsep=#1cm, topsep = 0.5cm, 
      wide=0pt, labelwidth=.5cm,leftmargin=!,labelsep=10pt]
}
{
    \end{enumerate}
}
\begin{document}
\begin{alternativas}
\item $-1$
\item $4$
\item $-\frac{5}{7}$
\item $\frac{6}{11}$
\item text
\end{alternativas}
\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

Puede cargar mathtools(no es necesario cargar amsmathen este caso) para usar su \mathllapcomando y aumentar ligeramente \labelsep:

\documentclass{article}

\usepackage{enumitem}
\usepackage{mathtools}
\newenvironment{alternativas}[1][0]
{
    \begin{enumerate}[label={\Alph*)}, itemsep=#1cm, topsep = 0.5cm, labelsep=6pt, wide=0pt,labelwidth=.5cm,leftmargin=!]
}
{
    \end{enumerate}
}

\begin{document}

 \begin{alternativas}
    \item $\mathllap{-}1 $
    \item $ 4 $
    \item $ \mathllap{-}5 $
    \item $ 6 $
    \end{alternativas}

\end{document} 

ingrese la descripción de la imagen aquí

información relacionada