Antwort1
Wie Bubaya bemerkt, besteht eine Möglichkeit darin, das „Label“ in ein Feld mit einer festen Breite zu setzen, obwohl ich nicht mit Phantomen und dergleichen „herumspielen“ würde. Ich habe einen Befehl dafür definiert. Weitere Verfeinerungen (z. B. um die Breite automatisch auf Ihr längstes Label einzustellen) wären zweifellos wünschenswert.
Beachten Sie auch:
- Wenn Sie eine Aufzählungsliste wünschen, würde ich um eine Aufzählungsliste bitten und die Beschriftung nicht manuell festlegen.
\quad
Ich kann das Hinzufügen von s, um nach der Artikelbezeichnung zusätzlichen Platz einzufügen, nicht gutheißen . Wenn die Liste nicht so ist, wie sie sein sollte, ändern Sie\labelsep
und (falls nötig)\labelwidth
. Immer wenn Sie Ad-hoc-Abstandsbefehle hinzufügen, machen Sie (wahrscheinlich) etwas falsch.
Und zum Schluss noch ein Hinweis: Wenn dies mehr als einmal verwendet wird, würde ich es nicht tun. Machen Sie es richtig. Richten Sie einen Listentyp ein: Die Überlegungen, die Sie bei der Einrichtung anstellen müssen, zahlen sich immer wieder durch Benutzerfreundlichkeit und Fehlerfreiheit aus.
Beide Alternativen werden unten demonstriert. In der Produktion würde ich die Listendefinition natürlich in die Präambel setzen.
\documentclass{article}
\usepackage{enumitem}
\newcommand{\parsedescription}[2]{%
\makebox[2.5cm][l]{#1}{#2}}
\begin{document}
\section{Hand rolled}
This is a hand-rolled version
\begin{itemize}
\item Output of scanner:
\begin{enumerate}
\item\parsedescription{Identifier}{program}
\item\parsedescription{White\_Space}{' '}
\end{enumerate}
\end{itemize}
\section{Properly done}
And this is, much more semantically correct:
\newcounter{parsecounter}
\newlist{parse}{description}{1}
\setlist[parse]{style=sameline,
labelwidth=3cm,
leftmargin=!,
labelindent=1em,
font=\normalfont,
before={%
\setcounter{parsecounter}{0}%
\renewcommand\makelabel[1]{%
\stepcounter{parsecounter}%
\arabic{parsecounter}.\enspace##1}}}
\begin{itemize}
\item Output of scanner:
\begin{parse}
\item[Identifier]program
\item[White\_Space]' '
\end{parse}
\end{itemize}
\end{document}
Antwort2
\phantom
Wenn die Verwendung einer Tabelle für Sie keine Option ist, können Sie immer manuell mit oder \hphantom
, \makebox
und herumspielen \widthof
, wobei letzteres von dercalc
Paket. Um also Ihr " unter dem Wort 'Programm' zu haben, können Sie Folgendes tun:
\documentclass{article}
\usepackage{calc}
\begin{document}
\begin{enumerate}
\item \makebox[\widthof{White\_Space}][l]{Identifier}\quad program
\item White\_Space \quad \makebox[\widthof{program}]{''}
\end{enumerate}
\end{document}
Wenn es sich jedoch um eine lange Liste handeln soll, sollten Sie die Verwendung der tabular
Umgebung in Betracht ziehen.