неровная вкладка для выравнивания текста

неровная вкладка для выравнивания текста

Как я могу выровнятьпрограммаи''(запятые) в той же вертикальной строке мой код был

            \item [1.]\quad Identifier\quad   program
            \item [2.]\quad White\_Space\quad' '

Табуляция четная

решение1

Как отмечает Бубайя, одна из возможностей — поместить «лейбл» в поле фиксированной ширины, хотя я бы не стал «возиться» с фантомами и т. п. Я определил команду для этого. Дальнейшее уточнение (например, автоматическая установка ширины для вашего самого длинного лейбла) было бы желательно, без сомнения.

Обратите внимание также:

  • Если вам нужен пронумерованный список, я бы попросил предоставить его, а не устанавливать метки вручную.
  • Я не могу одобрить добавление \quads для добавления дополнительного пространства после метки элемента. Если список не такой, как должен быть, измените \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, из которых последний предоставляетсяcalcpackage. Итак, чтобы иметь свой " под словом '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среды.

Связанный контент