решение1
Как отмечает Бубайя, одна из возможностей — поместить «лейбл» в поле фиксированной ширины, хотя я бы не стал «возиться» с фантомами и т. п. Я определил команду для этого. Дальнейшее уточнение (например, автоматическая установка ширины для вашего самого длинного лейбла) было бы желательно, без сомнения.
Обратите внимание также:
- Если вам нужен пронумерованный список, я бы попросил предоставить его, а не устанавливать метки вручную.
- Я не могу одобрить добавление
\quad
s для добавления дополнительного пространства после метки элемента. Если список не такой, как должен быть, измените\labelsep
и (при необходимости)\labelwidth
. Каждый раз, когда вы добавляете команды ad hoc для интервалов, вы (вероятно) делаете что-то неправильно.
И последнее замечание: если это используется больше, чем один раз, я бы этого не делал. Делайте это правильно. Настройте тип списка: размышления, которые вам придется сделать при его настройке, окупятся снова и снова простотой использования и отсутствием ошибок.
Обе альтернативы продемонстрированы ниже. Я бы, очевидно, поместил определение списка в преамбулу в производстве.
\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}
решение2
Если использование таблицы для вас не вариант, вы всегда можете повозиться вручную с \phantom
или \hphantom
, \makebox
и \widthof
, из которых последний предоставляетсяcalc
package. Итак, чтобы иметь свой " под словом 'program', вы можете сделать:
\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}
Однако если список будет длинным, рассмотрите возможность использования tabular
среды.