
Ich verwende derzeit enumitem und habe in einem Dokument eine Umgebung für meine Listen erstellt. Diese sieht wie folgt aus:
\newenvironment{alternativas}[1][0]
{
\begin{enumerate}[label={\Alph*)}, itemsep=#1cm, topsep = 0.5cm, wide=0pt,labelwidth=.5cm,leftmargin=!]
}
{
\end{enumerate}
}
Ich habe versucht, die Elemente auszurichten und dabei das Minuszeichen zu ignorieren, wenn das Element mit einem beginnt. Bilder erklären es viel besser als ich:
Ich habe nach ähnlichen Fragen gesucht und nur Leute mit diesem Problem in einer Tabelle gefunden und Lösungen, die Align-Umgebungen und ähnliches verwenden. Ich habe sogar in TeX-Büchern nach einer Lösung dafür gesucht (und dabei zufällig eine Menge gelernt, haha), aber ich war nicht erfolgreich.
Viele Lösungen für diese ähnlichen Probleme verwenden auch einige manuelle Anpassungen, wie z. B. die Verwendung eines \phantom in den Elementen ohne Minuszeichen, damit der Abstand gleich aussieht (ich habe das gewünschte Ergebnis mit \hspace mit einer negativen Zahl erzielt). Aber ich habe nach einer Lösung gesucht, die dies für mich automatisiert, weil ich die Dokumente mit weniger erfahrenen Leuten teile und möchte, dass sie sie einfach verwenden können. Vielen Dank!
Antwort1
Ich definiere \item
in der Umgebung neu, um das erste Token von \item
(nach einem optionalen Argument) zu untersuchen. Wenn es ein -
Token ist, prüfe ich \mathllap
es und fahre dann fort, andernfalls setze ich es einfach direkt.
\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}
NACHTRAG
OP hat in Kommentaren klargestellt, dass alle Zahlen im mathematischen Modus eingegeben werden (über führende $
). Allerdings beginnen nicht alle Elemente mit math. Daher waren einige Überarbeitungen erforderlich:
\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}
Antwort2
Sie können laden ( in diesem Fall mathtools
ist das Laden unnötig ), um den Befehl zu verwenden und Folgendes leicht zu erhöhen :amsmath
\mathllap
\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}