enumitem(서식, 카운터, 인라인)

enumitemkey=value 옵션을 통해 itemize, enumeratedescription을 재구성하기 위한 표준 패키지입니다. \renewcommand으로 내부 명령을 직접 재정의하는 대신 환경의 대괄호(\begin{enumerate}[label=(\alph*), leftmargin=*]) 안에 설정을 작성합니다. 레이블 형식, 항목 사이의 간격, 여백, 번호 매기기 시작 또는 재개 위치, 인라인(런인) 목록 및 새로 정의된 목록 유형까지 목록에 관한 거의 모든 것이 여기에 있습니다.

키=가치 아이디어

\usepackage{enumitem}을 사용하여 서문에 로드하면 세 가지 기본 목록 환경이 선택적 인수를 얻습니다. 괄호 안에 key=value 쌍을 쉼표로 구분하여 작성합니다(\begin{itemize}[...]). 그러면 하나의 목록이 구성됩니다. 값이 중괄호로 완전히 둘러싸이면 외부 쌍이 제거되므로(기본 keyval 동작) 중괄호 자체를 유지하려면 두 배로 사용합니다. 패키지는 Javier Bezos가 관리합니다. 현재 CTAN 릴리스는 v3.11(2025-02-06)입니다.

document.tex
\usepackage{enumitem}
% ...
\begin{itemize}[itemsep=1ex, leftmargin=1cm]
  \item 余白と項目間を調整した箇条書き
  \item 二つめの項目
\end{itemize}

전체 문서, 목록 유형별 또는 하나의 목록(아래 \setlist을 통해)에 대해 계층 구조에서 동일한 키를 재정의할 수 있습니다. 가장 구체적인 값이 우선하므로 전역 정책을 설정하고 필요한 경우에만 재정의할 수 있습니다.

라벨 및 참조 형식(label, ref)

enumerate에서는 레이블이 label=으로 설정됩니다. 값 내에서 \arabic, \alph, \Alph, \roman\Roman(\arabic* 및 친구들)의 별표 형식은 해당 수준의 현재 카운터를 나타냅니다. 따라서 label=(\arabic*)은 (1) (2) (3)을 제공하고, label=\alph*)은 a) b) c)를 제공하고, label=\Roman*.은 I. II를 제공합니다. III. 이 별표 형식은 논쟁을 일으키지 않습니다. 이는 레이블 내부의 카운터 값으로 확장되는 특수 철자입니다.

document.tex
\begin{enumerate}[label=(\alph*)]
  \item りんご
  \item みかん
  \item ぶどう
\end{enumerate}

기본적으로 label= 설정은 상호 참조(\ref) 모양도 제어합니다. 참조에 다른 형식을 제공하려면 ref=을 추가하세요. 예를 들어, \ref이 1만 생성하도록 하면서 목록 내 레이블을 (1)과 같이 괄호로 인쇄할 수 있습니다.

document.tex
\begin{enumerate}[label=(\arabic*), ref=\arabic*]
  \item \label{step:one} 下ごしらえ
  \item 加熱する
\end{enumerate}
手順~\ref{step:one} に戻る。

labelref 값은 이동 인수이므로 깨지기 쉬운 명령에는 \protect이 필요할 수 있습니다(별표 표시된 카운터 자체는 괜찮습니다). 또한 label=을 변경하면 해당 수준(\theenumi 등)의 카운터 표현도 함께 업데이트된다는 점을 기억하는 데 도움이 됩니다.

간격 및 여백(itemep, leftmargin, …)

내부적으로 사용되는 LaTeX 길이는 enumitem에서 직접 키 이름이 됩니다. 세로 방향: topsep(목록 위 및 아래), partopsep(목록이 단락 뒤에 오는 경우 추가 비트), parsep(한 항목 내의 단락 사이) 및 itemsep(항목 사이). 가로: leftmargin / rightmargin(측면 여백), labelsep(라벨과 본문 사이의 간격), labelwidth(라벨 상자 너비), itemindentenumitem 고유의 labelindent(라벨 상자 외부에서 왼쪽 가장자리까지의 간격).

열쇠의미
topsep목록 위와 아래에 공백수직
partopsep목록이 단락 뒤에 오는 경우 추가 공간수직
parsep한 항목 내 단락 사이의 공백수직
itemsep항목 사이의 공백수직
leftmargin목록 본문의 왼쪽 여백가로
labelsep라벨과 항목 본문 사이의 간격가로
labelwidth라벨을 담는 상자의 너비가로
labelindent외부에서 라벨 상자까지의 간격(enumitem에 의해 추가됨)가로
align라벨 정렬(left / right(기본값) / parleft)

이들은 독립적이지 않습니다. \leftmargin + \itemindent = \labelindent + \labelwidth + \labelsep으로 묶여 있습니다. 따라서 일부 키에 * 또는 !을 지정하면 enumitem이 나머지를 계산할 수 있습니다. 특히 leftmargin=*는 라벨의 왼쪽 여백 크기를 조정하는 일상적인 패턴이며, labelsep=*는 고정된 위치에서 본체를 시작하려는 경우에 유용합니다. align=은 레이블이 왼쪽 정렬, 오른쪽 정렬(기본값) 또는 왼쪽 정렬 parbox에 배치되는지 제어하여 숫자와 마커가 정렬되는 방식을 정리합니다.

압축 목록 및 단축키(nosep, noitemsep, wide)

몇 가지 단축키를 사용하면 간격을 빠르게 조정할 수 있습니다. nosep 항목(topsep, partopsep, parsepitemsep을 0pt에 함께 포함) 주위와 항목 사이의 모든 수직 공백을 0으로 설정하여 꽉 찬 목록을 만듭니다. noitemsep 목록 위와 아래의 공백은 유지하면서 항목 사이 및 단락 사이 공백(itemsep=0pt, parsep=0pt)만 제거합니다.

document.tex
\begin{itemize}[nosep]
  \item 詰まった項目その一
  \item 詰まった項目その二
  \item 詰まった項目その三
\end{itemize}

또 다른 단축 키는 wide입니다. 레이블이 일반 단락처럼 설정된 텍스트 및 항목의 일부로 읽혀지도록 왼쪽 여백을 null로 만듭니다(내부적으로는 align=left, leftmargin=0pt, labelindent=\parindent, labelwidth=0pt, itemindent=! 등으로 확장됩니다). 들여쓰기를 변경하려면 wide=\parindent과 같이 값을 전달합니다.

그리고 enumerate 패키지의 짧은 스타일로 enumerate 라벨을 작성하려면 \usepackage[shortlabels]{enumitem}로 로드합니다. 그런 다음 A, a, I, i 또는 1을 괄호 안의 첫 번째 요소로 쓰면 각각 \Alph*, \alph*, \Roman*, \roman* 또는 \arabic*(예: \begin{enumerate}[(1)])을 의미합니다.

번호 시작 및 재개(시작, 재개)

번호 매기기 키도 있습니다. start= 첫 번째 항목의 번호를 설정합니다(start=5은 5부터 시작). 단락을 중단한 다음 이전 enumerate에서 계속 번호를 매기려면 resume을 사용하세요. 이전 목록의 옵션 설정을 이어받으려면 resume*을 사용하세요(이 별표 형식은 해당 환경의 대괄호에서만 의미가 있음).

document.tex
\begin{enumerate}
  \item 最初の項目
  \item 二つめの項目
\end{enumerate}
途中に説明の段落が入る。
\begin{enumerate}[resume]
  \item 三つめの項目(番号が続く)
\end{enumerate}

resume은 로컬에서 계속됩니다. 여러 개의 분리된 목록에 걸쳐 하나의 전역 단위로 번호를 매기려면 "시리즈" 기능을 사용하십시오. 시작 목록에 series=name 태그를 지정한 다음 이후 목록에 resume=name 또는 resume*=name을 지정하십시오.

전역 설정 및 새 목록 유형(\setlist, \newlist)

매번 같은 설정을 작성하는 것은 지루한 작업입니다. \setlist 선택한 목록 유형 및 수준에 설정을 일괄 적용합니다. \setlist[enumerate,1]{...}enumerate의 레벨 1을 대상으로 하고, \setlist[itemize]{...}itemize의 모든 레벨을 대상으로 하며, \setlist{...}(괄호 없음)은 모든 목록의 모든 레벨에 도달합니다. 별표 표시된 \setlist*은 이전 설정을 재정의하는 대신 추가합니다.

latex
% プリアンブルで一括設定
\setlist{nosep}                       % すべてのリストの空きを詰める
\setlist[itemize]{leftmargin=*}       % itemize の左余白を自動調整
\setlist[enumerate,1]{label=(\arabic*), ref=\arabic*}

더 나아가 자신만의 목록 유형을 정의할 수 있습니다. \newlist{name}{type}{max-depth}는 세 가지 기본 목록(enumerate, itemize 또는 description) 중 하나를 새 환경에 복제한 다음 \setlist[name]{...}으로 살펴봅니다(적어도 레이블을 설정해야 함). 논리적인 이름을 붙일 수 있기 때문에 원고의 의도가 더 명확하게 읽혀집니다.

latex
\newlist{steps}{enumerate}{1}
\setlist[steps]{label=\textbf{Step \arabic*.}, leftmargin=*}
% 本文では独自の環境として使える
\begin{steps}
  \item お湯を沸かす
  \item 麺を入れる
\end{steps}

인라인(런인) 목록

단락 내에서 목록을 수평으로 설정할 수도 있습니다(“인라인 목록”). \usepackage[inline]{enumitem}으로 패키지를 로드하면 별표 표시된 환경 enumerate*, itemize*description*을 얻게 됩니다. 표시된 대응 항목의 레이블을 공유하며 label=과 같은 키는 평소대로 작동합니다.

document.tex
\usepackage[inline]{enumitem}
% ...
必要なものは
\begin{enumerate*}[label=(\arabic*)]
  \item 小麦粉
  \item 砂糖
  \item\end{enumerate*}
の三つです。

인라인 목록의 구두점은 itemjoin(항목 사이, 기본적으로 공백), itemjoin*(마지막 항목 바로 앞의 다른 구분 기호용) 및 afterlabel(레이블 바로 뒤, 기본적으로 ~)과 같은 키로 조정됩니다. 인라인 목록 항목은 기본적으로 상자로 표시되므로 부동 소수점, 중첩 목록 및 표시된 수학은 내부에 들어갈 수 없습니다(필요한 경우 mode=unboxed 사용). 짧은 실행 문구에 적합합니다.