답변1
Bubaya가 언급했듯이 한 가지 가능성은 고정된 너비의 상자에 "라벨"을 넣는 것입니다. 하지만 팬텀 등을 "만들기"하지는 않습니다. 나는 그것을 수행하는 명령을 정의했습니다. 추가 개선(예: 가장 긴 라벨의 너비를 자동으로 설정하는 것)이 바람직할 것입니다.
참고 사항:
- 열거된 목록을 원한다면 수동으로 레이블을 설정하지 않고 열거된 목록을 요청하겠습니다.
\quad
항목 라벨 뒤에 추가 공간을 두기 위해 s를 추가하는 것을 승인할 수 없습니다 . 목록이 예상한 것과 다르면\labelsep
및 (필요한 경우)를 변경합니다\labelwidth
. 임시 간격 명령을 추가할 때마다 (아마도) 뭔가 잘못된 일을 하고 있는 것입니다.
그리고 마지막으로, 이것이 단일 인스턴스 이상에 사용된다면 나는 그렇게 하지 않을 것입니다. 제대로 하세요. 목록 유형 설정: 설정 시 해야 할 생각은 사용하기 쉽고 오류가 없다는 점에서 계속해서 보상을 받습니다.
두 가지 대안 모두 아래에 설명되어 있습니다. 나는 분명히 프로덕션의 서문에 목록 정의를 넣었습니다.
\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
패키지. 따라서 '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
.