중첩 목록

목록은 중첩될 수 있습니다. itemize 또는 enumerate\item 본문 내부에 다른 목록 환경을 작성하기만 하면 됩니다. LaTeX은 중첩 깊이(레벨)를 계산하고 해당 깊이에 따라 각 줄의 머리에 있는 레이블을 자동으로 전환합니다. 유형을 혼합할 수도 있습니다. 예를 들어 글머리 기호 안에 번호가 매겨진 목록이 있습니다. 하지만 itemizeenumerate 모두 최대 4개 수준까지 중첩된다는 제한이 있습니다. 이 페이지에서는 중첩 방법, 각 수준의 기본 레이블, 유형 혼합 방법 및 4개 이상의 수준이 필요한 경우 수행할 작업에 대해 설명합니다.

중첩 방법

다른 목록의 \item본문 내부에 목록 환경을 배치하여 중첩된 목록을 만듭니다. 외부 \items 중 하나 뒤에 새로운 \begin{itemize}\end{itemize}(또는 enumerate)을 작성합니다. 내부 목록은 해당 외부 항목에 "속하며" LaTeX은 깊이에 따라 레이블과 들여쓰기를 자동으로 조정합니다. 특별한 명령이나 옵션이 필요하지 않습니다.

document.tex
\begin{itemize}
  \item 果物
  \begin{itemize}
    \item りんご
    \item みかん
  \end{itemize}
  \item 野菜
\end{itemize}

여기서 "과일"과 "야채"는 레벨 1에 있고 "사과"와 "오렌지"는 그 아래 레벨 2에 있습니다. 내부 목록은 외부 \end 전에 닫혀야 합니다(환경은 깔끔하게 중첩되어야 함). 들여쓰기는 단지 사용자의 가독성을 위한 것이며 출력에는 영향을 주지 않습니다. 수준을 결정하는 것은 전적으로 \begin/\end 중첩 구조입니다.

수준별 기본 라벨

레벨에 따라 레이블(각 줄의 머리에 있는 표시 또는 숫자)이 자동으로 변경됩니다. itemize의 경우 기본값은 레벨 1은 굵은 점 •, 레벨 2는 굵은 대시 -, 레벨 3은 별표 *, 레벨 4는 가운데 점입니다. 각각은 \labelitemi, \labelitemii, \labelitemiii\labelitemiv 명령에 있습니다(i / ii / iii / iv는 레벨을 나타내는 로마 숫자입니다).

enumerate의 경우 기본값은 레벨 1 "1.", 레벨 2 "(a)", 레벨 3 "i." 및 레벨 4 "A."입니다. 이러한 형식은 \labelenumi부터 \labelenumiv까지 존재하며, 숫자 자체는 enumi부터 enumiv까지 4개의 카운터에 보관됩니다. 아래 표에는 두 가지 기본값이 모두 수집되어 있습니다.

레벨항목화(마커)항목화 명령열거하다(번호)열거 명령
Level 11위• 글머리 기호\labelitemi1.\labelenumi
Level 22위– 대시(굵게)\labelitemii(아)\labelenumii
Level 33번째* 별표\labelitemiii나.\labelenumiii
Level 44번째· 중앙 점\labelitemiv아.\labelenumiv

일부 문서 클래스는 다른 기본값을 설정하지만 표준 클래스(article 및 그 친구들)는 위의 값을 사용합니다. 각 enumerate 카운터가 *인쇄*되는 방법은 \theenumi에서 \theenumiv에 의해 결정됩니다. 기본적으로 이는 각각 \arabic{enumi}, \alph{enumii}, \roman{enumiii}\Alph{enumiv}입니다(둘러싸는 "." 및 괄호는 \labelenum… 명령에 의해 추가됩니다). 항목이 \label/\ref과 상호 참조될 때 표시되는 결합 숫자는 상위 카운터에서 생성됩니다. 예를 들어 레벨 2 참조를 "2.1"과 같이 읽으려면 상위 \theenumi 접두사(\renewcommand{\theenumii}{\theenumi.\arabic{enumii}})를 사용하여 재정의합니다.

혼합 목록 유형

중첩 목록은 동일한 유형일 필요가 없습니다. itemize 안에 enumerate을, enumerate 안에 itemize을 자유롭게 넣을 수 있습니다. 수준(깊이)은 유형에 관계없이 계산됩니다. 레이블은 외부에서 목록의 깊이에 따라 선택됩니다. 따라서 itemize(레벨 1)의 항목 안에 enumerate을 배치하면 해당 enumerate레벨 2에 있으므로 “(a) (b) …”를 얻습니다.

중요한 점은 itemizeenumerate에 대한 "4개 수준" 제한이 환경 유형별로 별도로 계산된다는 것입니다. itemize에는 4개의 레이블 세트만 존재하고 enumerate에는 4개의 레이블 세트만 존재하므로 동일한 유형의 다섯 번째 목록이 중첩 체인 내에 나타나면 레이블이 소진됩니다. 혼합 스택에서도 단일 유형의 5번째 수준에 도달하면 아래에 설명된 오류가 발생합니다. 게다가 *모든* 유형의 목록은 6개의 중첩 수준이라는 전체 상한선을 공유합니다. LaTeX은 6개의 목록 형식 매개변수 세트(들여쓰기, 항목 분리 등)만 유지하므로 일곱 번째 중첩 목록(유형이 혼합된 경우에도)은 여전히 ​​동일한 Too deeply nested 오류로 중단됩니다.

3레벨 혼합 예시

다음은 유형을 혼합하는 3단계 예입니다. 가장 바깥쪽 목록은 번호가 매겨진 단계를 제공하는 enumerate(레벨 1)입니다. 그 안에 itemize(레벨 2)은 성분을 글머리 기호로 나열합니다. 그 안에 또 다른 enumerate(레벨 3)이 준비의 번호가 매겨진 하위 단계를 제공합니다.

document.tex
\begin{enumerate}
  \item 生地を作る
  \begin{itemize}
    \item 小麦粉
    \item\begin{enumerate}
      \item 半分を加えて混ぜる
      \item 残りを少しずつ加える
    \end{enumerate}
  \end{itemize}
  \item 寝かせる
\end{enumerate}

출력에서 ​​"Make the Dough"와 "Let it Rest"는 레벨 1 enumerate에 있으므로 번호가 "1"로 지정됩니다. 그리고 “2.”. 그 아래에는 "Flour"와 "Water"가 레벨 2 itemize에 있으므로 굵은 en-dash -가 표시됩니다. "Water" 내에 중첩된 가장 안쪽 enumerate은 레벨 3에 있으므로 해당 항목의 기본값은 로마 숫자 "i"입니다. 그리고 "ii.". 유형이 혼합된 경우에도 동일한 규칙이 전체적으로 적용됩니다. 레이블은 항상 목록이 외부에서 얼마나 많은 수준 깊이에 있는지에 따라 결정됩니다.

4단계를 넘어 라벨을 바꾸다

itemize 또는 enumerate5개 레벨 이상에 중첩하면 Too deeply nested 오류가 발생합니다. 이는 표준 LaTeX이 유형당 4개의 레이블 세트만 제공하고 천장이라는 일반 표준 환경을 제공하기 때문입니다. 더 깊은 중첩이 필요하거나 수준별 레이블을 한꺼번에 깔끔하게 변경하려는 경우 표준 해결 방법은 enumitem 패키지입니다.

enumitem을 로드하고 \setlistdepth{<integer>}을 사용하여 최대 중첩 깊이를 높인 다음 유형 및 레벨 이름을 지정하여 지정된 레벨에 대한 레이블과 형식을 설정할 수 있습니다(예: \setlist[itemize,5]{...}). 대신 일반적인 4개 수준 내에서 한 수준의 레이블만 변경하려면 \renewcommand을 사용하여 일치하는 명령을 재정의하는 것만으로도 충분합니다.

latex
% 階層ごとに記号・番号を再定義(標準環境のまま)
\renewcommand{\labelitemii}{$\diamond$}      % itemize 第 2 階層 → 菱形
\renewcommand{\labelenumii}{\theenumii)}     % enumerate 第 2 階層 → a) b) ...

이 예에서는 itemize의 레벨 2 마커를 다이아몬드(⋄)로 변경하고 enumerate의 레벨 2 레이블을 "a)", "b)" 형식으로 변경합니다. 여러 목록에서 일관된 스타일을 원하는 경우 enumitem 옵션(예: label=)을 통해 이름을 지정하는 것이 직접 재정의하는 것보다 관리하기 쉽습니다. 자세한 내용은 아래 링크를 참조하세요.