guia irregular para alinhar texto

guia irregular para alinhar texto

Como posso alinharprogramae''(vírgulas) na mesma linha vertical meu código estava

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

A guia é par

Responder1

Como observa Bubaya, uma possibilidade é colocar o "rótulo" em uma caixa de largura fixa, embora eu não "mexer" com fantasmas e coisas do gênero. Eu defini um comando para fazer isso. Refinamentos adicionais (por exemplo, definir automaticamente a largura para a etiqueta mais longa) seriam, sem dúvida, desejáveis.

Observe também:

  • Se você quiser uma lista enumerada, peço uma lista enumerada, e não definir o rótulo manualmente.
  • Não posso aprovar a adição de \quads para colocar espaço extra após o rótulo do item. Se a lista não estiver como deveria, altere \labelsepe (se necessário) \labelwidth. Sempre que você adiciona comandos de espaçamento ad hoc, você (provavelmente) está fazendo algo errado.

E observe, finalmente: se isso estiver sendo usado para mais de uma instância, eu não faria isso. Faça isso corretamente. Configure um tipo de lista: o pensamento que você deve ter ao configurá-lo se recompensa continuamente pela facilidade de uso e pela ausência de erros.

Ambas as alternativas demonstradas abaixo. Obviamente, eu colocaria a definição da lista no preâmbulo da produção.

\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}

Resultados de saída

Responder2

Se usar uma tabela não for uma opção para você, você sempre pode mexer manualmente com \phantomou \hphantom, \makeboxe \widthof, dos quais o último é fornecido pelocalcpacote. Então, para ter o seu " abaixo da palavra 'programa', você pode fazer:

\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}

insira a descrição da imagem aqui

No entanto, se esta for uma lista longa, considere usar o tabularambiente.

informação relacionada