> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/zh-tw/latex-ji-chu/04-lists.md).

# 清單

## 在 Overleaf 中插入清單的三種方法

Overleaf 提供 3 種使用 LaTeX 建立清單的方法：

1. 使用 **插入項目符號清單** (![Image of the menu icon for insert a bulleted list in Overleaf](/files/3d154a693240d29f675fac7f40b1d6841e219753)) 或 **插入編號清單** (![Image of the menu icon for insert a numbered list in Overleaf](/files/1d8e69caa74f480aca96b2a496dc0e33d669e57e)) 在編輯器工具列上，將清單插入到 **視覺編輯器** 或 **程式碼編輯器**.
2. [將格式化的清單貼到 **視覺編輯器**](/latex/zh-tw/zhi-shi-ku/075-how-to-paste-formatted-content-into-overleaf.md#pasteformattedlist).
3. 使用你自己的 LaTeX 程式碼 **程式碼編輯器**.

選項 1 和 2 旨在自動產生進行清單排版所需的 LaTeX 程式碼。不過，對於想要自行撰寫 LaTeX 程式碼的人來說，選項 3 可能是較佳選擇。它提供最大的彈性，也是本文的重點。

## 簡介

本文提供 LaTeX 中各種類型清單的排版與自訂入門介紹：

* 該 `itemize` 用於建立項目符號（無序）清單的環境
* 該 `enumerate` 用於建立編號（有序）清單的環境
* 該 `說明` 用於建立描述清單的環境

清單排版是一個很大的主題，因為 LaTeX 清單是 *極其* 可設定的，能夠建立各式各樣極為豐富的清單類型與結構。我們將概述並示範一些你可以用來 [設定與自訂清單](#customizing-lists).

## 基本清單範例

### 用於項目符號（無序）清單的 itemize 環境

無序（項目符號）清單是由 `itemize` 環境產生的，其中每個清單項目都以 `\item` 指令開頭，這也會產生項目符號。

```latex
清單很容易建立：
\begin{itemize}
  \item 清單項目以 \verb|\item| 指令開頭。
  \item 個別項目以黑點表示，也就是所謂的 bullet。
  \item 項目中的文字可以長短不拘。
\end{itemize}
```

[在 Overleaf 中開啟此範例。](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+unordered+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0ALists+are+easy+to+create%3A%0A%5Cbegin%7Bitemize%7D%0A++%5Citem+List+entries+start+with+the+%5Cverb%7C%5Citem%7C+command.%0A++%5Citem+Individual+entries+are+indicated+with+a+black+dot%2C+a+so-called+bullet.%0A++%5Citem+The+text+in+the+entries+may+be+of+any+length.%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

此範例會產生以下輸出：

![List1bOLV2.png](/files/ac526e24c77ab3536f238764259389bc693aef4f)

### 用於編號（有序）清單的 enumerate 環境

編號（有序）清單具有相同的語法，但使用 `enumerate` 環境：每個項目前都必須加上控制序列 `\item`，這會自動產生數字來標示項目。這些數字會在每次使用 `enumerate` 環境時從 1 開始——請注意，此預設的 LaTeX 編號行為可透過 [`enumitem` 套件](https://ctan.org/pkg/enumitem).

```latex
編號（有序）清單很容易建立：
\begin{enumerate}
  \item 項目會自動編號。
  \item 每次使用 \texttt{enumerate} 環境時，數字都從 1 開始。
  \item 清單中的另一個項目
\end{enumerate}
```

[在 Overleaf 中開啟此範例。](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+ordered+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0ANumbered+%28ordered%29+lists+are+easy+to+create%3A%0A%5Cbegin%7Benumerate%7D%0A++%5Citem+Items+are+numbered+automatically.%0A++%5Citem+The+numbers+start+at+1+with+each+use+of+the+%5Ctexttt%7Benumerate%7D+environment.%0A++%5Citem+Another+entry+in+the+list%0A%5Cend%7Benumerate%7D%0A%5Cend%7Bdocument%7D)

此範例會產生以下輸出：

![List2OLV2.png](/files/a30528f5c3816c7737f93d81e1fb1e79bfd0d81c)

### description 環境

以下範例展示了 `說明` 環境。每個項目的（可選）標籤會放在 `\item` 命令：

```latex
\item[label text] 你的描述文字放在這裡...
```

我們也使用 `blindtext` 套件來在第三個項目中產生一些虛構的英文文字。要取得英文，我們需要使用 `babel` 套件並搭配語言選項 `[english]`:

```latex
\usepackage[english]{babel}
```

範例如下：

```latex
\documentclass{article}
\usepackage[english]{babel} % 以便使用 blindtext 套件取得英文文字
\usepackage{blindtext}
\begin{document}

\begin{description}
   \item 這是一個\textit{沒有}標籤的項目。
   \item[Something short] 一行的簡短描述。
   \item[Something long] 更長的描述。\blindtext[1]
\end{description}
\end{document}
```

[在 Overleaf 中開啟此範例。](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+description+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Benglish%5D%7Bbabel%7D+%25+To+obtain+English+text+with+the+blindtext+package%0A%5Cusepackage%7Bblindtext%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cbegin%7Bdescription%7D%0A+++%5Citem+This+is+an+entry+%5Ctextit%7Bwithout%7D+a+label.%0A+++%5Citem%5BSomething+short%5D+A+short+one-line+description.%0A+++%5Citem%5BSomething+long%5D+A+much+longer+description.+%5Cblindtext%5B1%5D%0A%5Cend%7Bdescription%7D%0A%5Cend%7Bdocument%7D)

此範例會產生以下輸出：

![Descriptionlist2.png](/files/95aa07f20416b1f8cf4d1f3c25e2a545899c8269)

## 變更個別項目的標籤

如同 `說明` 環境範例所示， `\item` \item 指令會接受一個可選參數，放在方括號中。你可以在 `itemize` 和 `enumerate` 環境中使用這個功能來變更清單中個別項目的預設標籤：

```latex
\item[label text] 你的項目文字放在這裡...
```

該 `標籤文字` 會用來產生這個項目的標籤。

```latex
在 \texttt{itemize} 環境中使用 \verb|\item[label text]| 變更標籤
\begin{itemize}
  \item 這是我的第一個重點
  \item 我想提出的另一個重點
  \item[!] 一個用來驚嘆的重點！
  \item[$\blacksquare$] 把重點端端正正地說明白。
  \item[NOTE] 這個項目沒有項目符號
  \item[] 空白標籤？
\end{itemize}

\vspace{10pt}

在 \texttt{enumerate} 環境中使用 \verb|\item[label text]| 變更標籤
\begin{enumerate}
  \item 這是我的第一個重點
  \item 我想提出的另一個重點
  \item[!] 一個用來驚嘆的重點！
  \item[$\blacksquare$] 把重點端端正正地說明白。
  \item[NOTE] 這個項目沒有項目符號
  \item[] 空白標籤？
\end{enumerate}
```

[在 Overleaf 中開啟此範例。](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Changing+list+labels\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bamssymb%7D%25+to+access+%24%5Cblacksquare%24%0A%5Cbegin%7Bdocument%7D%0AChange+the+labels+using+%5Cverb%7C%5Citem%5Blabel+text%5D%7C+in+an+%5Ctexttt%7Bitemize%7D+environment%0A%5Cbegin%7Bitemize%7D%0A++%5Citem+This+is+my+first+point%0A++%5Citem+Another+point+I+want+to+make+%0A++%5Citem%5B%21%5D+A+point+to+exclaim+something%21%0A++%5Citem%5B%24%5Cblacksquare%24%5D+Make+the+point+fair+and+square.%0A++%5Citem%5BNOTE%5D+This+entry+has+no+bullet%0A++%5Citem%5B%5D+A+blank+label%3F%0A%5Cend%7Bitemize%7D%0A%0A%5Cvspace%7B10pt%7D%0A%0AChange+the+labels+using+%5Cverb%7C%5Citem%5Blabel+text%5D%7C+in+an+%5Ctexttt%7Benumerate%7D+environment%0A%5Cbegin%7Benumerate%7D%0A++%5Citem+This+is+my+first+point%0A++%5Citem+Another+point+I+want+to+make+%0A++%5Citem%5B%21%5D+A+point+to+exclaim+something%21%0A++%5Citem%5B%24%5Cblacksquare%24%5D+Make+the+point+fair+and+square.%0A++%5Citem%5BNOTE%5D+This+entry+has+no+bullet%0A++%5Citem%5B%5D+A+blank+label%3F%0A%5Cend%7Benumerate%7D%0A%5Cend%7Bdocument%7D)

此範例會產生以下輸出：

![ChangeBullets.png](/files/a22997bc108272e5732652d46910125e17254cc4)

## 巢狀清單

在 LaTeX 中，你可以在一個清單內插入另一個清單。上述清單類型可以彼此巢狀包含，無論混合或同一類型，最深可達 4 層。

```latex
\begin{enumerate}
   \item 標籤由連續數字組成
   \begin{itemize}
     \item 個別項目以黑點表示，也就是所謂的 bullet
     \item 項目中的文字可長可短
     \begin{description}
     \item[Note:] 我想在這裡描述一些內容
     \item[Caveat!] 並在這裡提出警告
     \end{description}
   \end{itemize}
   \item 每次使用 \texttt{enumerate} 環境時，數字都從 1 開始
\end{enumerate}
```

[在 Overleaf 中開啟此範例。](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+nested+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Benumerate%7D%0A+++%5Citem+The+labels+consists+of+sequential+numbers%0A+++%5Cbegin%7Bitemize%7D%0A+++++%5Citem+The+individual+entries+are+indicated+with+a+black+dot%2C+a+so-called+bullet%0A+++++%5Citem+The+text+in+the+entries+may+be+of+any+length%0A+++++%5Cbegin%7Bdescription%7D%0A+++++%5Citem%5BNote%3A%5D+I+would+like+to+describe+something+here%0A+++++%5Citem%5BCaveat%21%5D+And+give+a+warning+here%0A+++++%5Cend%7Bdescription%7D%0A+++%5Cend%7Bitemize%7D%0A+++%5Citem+The+numbers+starts+at+1+with+each+use+of+the+%5Ctexttt%7Benumerate%7D+environment%0A%5Cend%7Benumerate%7D%0A%5Cend%7Bdocument%7D)

此範例會產生以下輸出：

![List3bOLV2.png](/files/4ebd72b158d2828d864a8eace210e4838a4103a8)

### 巢狀清單：標籤樣式

巢狀清單的標籤樣式會根據其在清單中的深度而改變。對於巢狀 `itemize` 清單，項目符號類型會改變；對於 `enumerate` 清單，數字格式會隨項目深度增加而改變。兩者都僅限於 4 層深度。

#### 巢狀 enumerate 清單：數字格式

```latex
\begin{enumerate}
   \item 第一層項目
   \item 第一層項目
   \begin{enumerate}
     \item 第二層項目
     \item 第二層項目
     \begin{enumerate}
       \item 第三層項目
       \item 第三層項目
       \begin{enumerate}
         \item 第四層項目
         \item 第四層項目
       \end{enumerate}
     \end{enumerate}
   \end{enumerate}
 \end{enumerate}
```

[在 Overleaf 中開啟此範例。](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+nested+ordered+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Benumerate%7D%0A+++%5Citem+First+level+item%0A+++%5Citem+First+level+item%0A+++%5Cbegin%7Benumerate%7D%0A+++++%5Citem+Second+level+item%0A+++++%5Citem+Second+level+item%0A+++++%5Cbegin%7Benumerate%7D%0A+++++++%5Citem+Third+level+item%0A+++++++%5Citem+Third+level+item%0A+++++++%5Cbegin%7Benumerate%7D%0A+++++++++%5Citem+Fourth+level+item%0A+++++++++%5Citem+Fourth+level+item%0A+++++++%5Cend%7Benumerate%7D%0A+++++%5Cend%7Benumerate%7D%0A+++%5Cend%7Benumerate%7D%0A+%5Cend%7Benumerate%7D%0A%5Cend%7Bdocument%7D)

此範例會產生以下輸出：

![List4OLV2.png](/files/3b2de301401301755bed5e7ae8cdce30eba2345b)

#### 巢狀 itemize 清單：項目符號樣式

項目符號樣式會根據巢狀清單的深度而改變：

```latex
\begin{itemize}
   \item 第一層項目
   \item 第一層項目
   \begin{itemize}
     \item 第二層項目
     \item 第二層項目
     \begin{itemize}
       \item 第三層項目
       \item 第三層項目
       \begin{itemize}
         \item 第四層項目
         \item 第四層項目
       \end{itemize}
     \end{itemize}
   \end{itemize}
 \end{itemize}
```

[在 Overleaf 中開啟此範例。](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+nested+ordered+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bitemize%7D%0A+++%5Citem+First+level+item%0A+++%5Citem+First+level+item%0A+++%5Cbegin%7Bitemize%7D%0A+++++%5Citem+Second+level+item%0A+++++%5Citem+Second+level+item%0A+++++%5Cbegin%7Bitemize%7D%0A+++++++%5Citem+Third+level+item%0A+++++++%5Citem+Third+level+item%0A+++++++%5Cbegin%7Bitemize%7D%0A+++++++++%5Citem+Fourth+level+item%0A+++++++++%5Citem+Fourth+level+item%0A+++++++%5Cend%7Bitemize%7D%0A+++++%5Cend%7Bitemize%7D%0A+++%5Cend%7Bitemize%7D%0A+%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

此範例會產生以下輸出：

![List5OLV2.png](/files/489418db315974bbdd79342905229c489182b4fd)

## 自訂清單

LaTeX 的清單是 *高度* 可設定的，為建立許多不同類型的自訂清單提供了充足空間。你可以直接修改 LaTeX 的標準清單類型，或者， *更好地*，使用功能極為多樣的 [enumitem 套件](https://ctan.org/pkg/enumitem) 來代你完成。

CTAN 收錄了許多 [與清單相關的套件](https://ctan.org/topic/list) 如果你有特定的自訂需求，值得一探。此外，tex.stackexchange 也提供了大量的 [與清單相關的問題](https://tex.stackexchange.com/questions/tagged/lists) 及其答案，提供實用見解與絕佳範例！

我們會先介紹一些修改清單標籤的範例，接著再說明清單版面配置的自訂。

### 自訂清單：變更標籤

首先，我們示範如何在不使用 [enumitem 套件](https://ctan.org/pkg/enumitem).

#### 標準標籤產生指令

可透過使用 [enumitem](https://ctan.org/pkg/enumitem) 套件或直接修改標準清單來產生自訂清單。這裡，我們會概述一些你可能需要注意的標準 LaTeX 指令、計數器變數與清單參數。

下表列出在各層級的 `itemize` 和 `enumerate` 清單環境中用於產生標籤的 LaTeX 指令：

|        |                      |                    |
| ------ | -------------------- | ------------------ |
| **層級** | **`enumerate`** 標籤指令 | **`itemize`** 標籤指令 |
| 第 1 層  | `\labelenumi`        | `\labelitemi`      |
| 第 2 層  | `\labelenumii`       | `\labelitemii`     |
| 第 3 層  | `\labelenumiii`      | `\labelitemiii`    |
| 第 4 層  | `\labelenumiv`       | `\labelitemiv`     |

#### enumerate 的計數器變數

該 `enumerate` 清單環境也使用四個 *計數器* 變數，它們追蹤每一層目前的標籤值：

|        |                       |
| ------ | --------------------- |
| **層級** | **`enumerate`** 計數器變數 |
| 第 1 層  | `enumi`               |
| 第 2 層  | `enumii`              |
| 第 3 層  | `enumiii`             |
| 第 4 層  | `enumiv`              |

#### 範例：自訂 enumerate 清單的標籤

你可以透過使用 `\renewcommand` 來重新定義產生標籤的指令，而且對於 `enumerate` 環境，你也可以使用相應的計數器變數。

以下是一些在不使用 `enumitem` 套件。

**實作範例**

```latex
\documentclass{article}
\begin{document}
\renewcommand{\labelenumii}{\arabic{enumi}.\arabic{enumii}}
\renewcommand{\labelenumiii}{\arabic{enumi}.\arabic{enumii}.\arabic{enumiii}}
\renewcommand{\labelenumiv}{\arabic{enumi}.\arabic{enumii}.\arabic{enumiii}.\arabic{enumiv}}

\begin{enumerate}
\item 一
\item 二
\item 三
\begin{enumerate}
    \item 三點一
    \begin{enumerate}
    \item 三點一，點一
        \begin{enumerate}
        \item 三點一，點一，點一
        \item 三點一，點一，點二
        \end{enumerate}
    \end{enumerate}
\end{enumerate}
\item 四
\item 五
\end{enumerate}

\end{document}
```

[在 Overleaf 中開啟此範例。](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Configuring+list+layout\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Crenewcommand%7B%5Clabelenumii%7D%7B%5Carabic%7Benumi%7D.%5Carabic%7Benumii%7D%7D%0A%5Crenewcommand%7B%5Clabelenumiii%7D%7B%5Carabic%7Benumi%7D.%5Carabic%7Benumii%7D.%5Carabic%7Benumiii%7D%7D%0A%5Crenewcommand%7B%5Clabelenumiv%7D%7B%5Carabic%7Benumi%7D.%5Carabic%7Benumii%7D.%5Carabic%7Benumiii%7D.%5Carabic%7Benumiv%7D%7D%0A%0A%5Cbegin%7Benumerate%7D%0A%5Citem+One%0A%5Citem+Two%0A%5Citem+Three%0A%5Cbegin%7Benumerate%7D%0A++++%5Citem+Three+point+one%0A++++%5Cbegin%7Benumerate%7D%0A++++%5Citem+Three+point+one%2C+point+one%0A++++++++%5Cbegin%7Benumerate%7D%0A++++++++%5Citem+Three+point+one%2C+point+one%2C+point+one%0A++++++++%5Citem+Three+point+one%2C+point+one%2C+point+two%0A++++++++%5Cend%7Benumerate%7D%0A++++%5Cend%7Benumerate%7D%0A%5Cend%7Benumerate%7D%0A%5Citem+Four%0A%5Citem+Five%0A%5Cend%7Benumerate%7D%0A%0A%5Cend%7Bdocument%7D)

此範例會產生以下輸出：

![List9OLV2.png](/files/41d94cd614777f30608664373017326463b4900b)

**列印計數器變數**

在前一個範例中，指令 `\arabic` 被用來排版各種標籤 *計數器變數*。請注意，「阿拉伯數字」以及指令 `\arabic`，是指 0 到 9 的數字：請參閱這篇 [Wikipedia 上的阿拉伯數字條目](https://en.wikipedia.org/wiki/Arabic_numerals) 以了解更多背景。

一般而言， *計數器變數* 可使用以下 5 個指令之一，以不同格式輸出

* `\arabic{*counter variable*}`
* `\roman{*counter variable*}`
* `\Roman{*counter variable*}`
* `\Alph{*counter variable*}`
* `\alph{*counter variable*}`

例如：

```latex
\documentclass{article}
\begin{document}
\begin{verbatim}
\newcounter{foo}
\setcounter{foo}{5}
\end{verbatim}
\newcounter{foo}
\setcounter{foo}{5}

\begin{itemize}
\item \verb|\arabic{foo}| 會產生 \arabic{foo}
\item \verb|\roman{foo}| 會產生 \roman{foo}
\item \verb|\Roman{foo}| 會產生 \Roman{foo}
\item \verb|\Alph{foo}| 會產生 \Alph{foo}
\item \verb|\alph{foo}| 會產生 \alph{foo}
\end{itemize}

\end{document}
```

[在 Overleaf 中開啟此範例。](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Configuring+list+layout\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bverbatim%7D%0A%5Cnewcounter%7Bfoo%7D%0A%5Csetcounter%7Bfoo%7D%7B5%7D++++%0A%5Cend%7Bverbatim%7D%0A%5Cnewcounter%7Bfoo%7D%0A%5Csetcounter%7Bfoo%7D%7B5%7D+%0A%0A%5Cbegin%7Bitemize%7D%0A%5Citem+%5Cverb%7C%5Carabic%7Bfoo%7D%7C+produces+%5Carabic%7Bfoo%7D%0A%5Citem+%5Cverb%7C%5Croman%7Bfoo%7D%7C+produces+%5Croman%7Bfoo%7D+%0A%5Citem+%5Cverb%7C%5CRoman%7Bfoo%7D%7C+produces+%5CRoman%7Bfoo%7D%0A%5Citem+%5Cverb%7C%5CAlph%7Bfoo%7D%7C+produces+%5CAlph%7Bfoo%7D%0A%5Citem+%5Cverb%7C%5Calph%7Bfoo%7D%7C+produces+%5Calph%7Bfoo%7D%0A%5Cend%7Bitemize%7D%0A%0A%5Cend%7Bdocument%7D)

此範例會產生以下輸出：

![List8OLV2.png](/files/1029bc4207aae310ac4f59230b3f221d6383ed00)

**非實用（有趣）範例**

此範例使用 OpenType 彩色字型來排版 emoji，因此它只會 *僅能在 LuaLaTeX 中運作*。請參閱 Overleaf 文章 [《在 LaTeX 中支援彩色 emoji 字型的技術概覽》](/latex/zh-tw/shen-ru-wen-zhang/10-an-overview-of-technologies-supporting-the-use-of-colour-emoji-fonts-in-latex.md) 以取得更多關於 emoji 排版的資訊。

雖然這只是一個有趣的 LuaLaTeX 範例，但它示範了如何自訂全部四個標籤產生指令，並使用標籤計數器變數來建立一些不尋常的標籤……點擊「Open in Overleaf」連結即可查看完整程式碼。

```latex
\renewcommand{\labelenumi}{\duck{enumi}}
\renewcommand{\labelenumii}{\duck{enumi}.\duckegg{enumii}}
\renewcommand{\labelenumiii}{\duck{enumi}.\duckegg{enumii}.\duckegg{enumiii}}
\renewcommand{\labelenumiv}{\duck{enumi}.\duckegg{enumii}.\duckegg{enumiii}.\duckchick{enumiv}}

\begin{enumerate}
\item 一隻鴨子
\item 更多鴨子
\item 一陣鴨群
\begin{enumerate}
    \item 鴨子和蛋
    \begin{enumerate}
    \item 我看到……
    \item 鴨子和預備鴨
       \begin{enumerate}
       \item 哇啊……
       \item 好可愛！
       \end{enumerate}
    \end{enumerate}
\end{enumerate}
\item 回到鴨子
\item 再一次
\end{enumerate}
```

[若要查看 ***完整程式碼***，請在 Overleaf 中開啟這個 LuaLaTeX 範例。](https://www.overleaf.com/docs?engine=lualatex\&snip_name=Fun+example+of+configuring+a+list\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bfontspec%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewfontfamily%5Cemojifont%5BRenderer%3DHarfbuzz%2CSizeFeatures%3D%7BSize%3D6%7D%5D%7BNotoColorEmoji.ttf%7D%0A%0A%5Cnewcount%5Cduckcount%0A%5Cnewcount%5Ceggcount%0A%5Cnewcount%5Cchickcount%0A%0A%5Cdef%5Cduck%231%7B%25%0A%5Cduckcount%3D%5Cvalue%7B%231%7D%25%0A%5Cloop%7B%5Cemojifont%5CUchar%221F986%7D%25%0A%5Cadvance%5Cduckcount+by+-1%0A%5Cunless%5Cifnum%5Cduckcount%3D0+%0A%5Crepeat%7D%0A%0A%5Cdef%5Cduckegg%231%7B%25%0A%5Ceggcount%3D%5Cvalue%7B%231%7D%25%0A%5Cloop%7B%5Cemojifont%5CUchar%221F95A%7D%25%0A%5Cadvance%5Ceggcount+by+-1%0A%5Cunless%5Cifnum%5Ceggcount%3D0+%0A%5Crepeat%7D%0A%0A%5Cdef%5Cduckchick%231%7B%25%0A%5Cchickcount%3D%5Cvalue%7B%231%7D%25%0A%5Cloop%7B%5Cemojifont%5CUchar%221F424%7D%25%0A%5Cadvance%5Cchickcount+by+-1%0A%5Cunless%5Cifnum%5Cchickcount%3D0+%0A%5Crepeat%7D%0A%5Crenewcommand%7B%5Clabelenumi%7D%7B%5Cduck%7Benumi%7D%7D%0A%5Crenewcommand%7B%5Clabelenumii%7D%7B%5Cduck%7Benumi%7D.%5Cduckegg%7Benumii%7D%7D%0A%5Crenewcommand%7B%5Clabelenumiii%7D%7B%5Cduck%7Benumi%7D.%5Cduckegg%7Benumii%7D.%5Cduckegg%7Benumiii%7D%7D%0A%5Crenewcommand%7B%5Clabelenumiv%7D%7B%5Cduck%7Benumi%7D.%5Cduckegg%7Benumii%7D.%5Cduckegg%7Benumiii%7D.%5Cduckchick%7Benumiv%7D%7D+%0A%0A%5Cbegin%7Benumerate%7D%0A%5Citem+A+duck%0A%5Citem+More+ducks%0A%5Citem+A+flurry+of+ducks%0A%5Cbegin%7Benumerate%7D%0A++++%5Citem+Ducks+and+eggs%0A++++%5Cbegin%7Benumerate%7D%0A++++%5Citem+Do+I+see...+%0A++++%5Citem+Ducks+and+pre-ducks+%0A+++++++%5Cbegin%7Benumerate%7D%0A+++++++%5Citem+Awww...%0A+++++++%5Citem+So+cute%21%0A+++++++%5Cend%7Benumerate%7D%0A++++%5Cend%7Benumerate%7D%0A%5Cend%7Benumerate%7D%0A%5Citem+Back+to+ducks%0A%5Citem+Again%0A%5Cend%7Benumerate%7D%0A%5Cend%7Bdocument%7D)

此範例產生以下輸出

![Ducklist.png](/files/74a2fdc92ef6380b07f08182b4f80d7a68ec881e)

### 自訂清單：變更版面配置

除了自訂標籤之外，也可以修改清單間距與版面配置，但首先我們需要了解決定清單排版與版面配置的各種 LaTeX 參數。

#### LaTeX 清單參數

您可以使用 [layouts 套件](https://ctan.org/pkg/layouts?lang=en) 以產生一張顯示 LaTeX 清單參數的圖表：

```latex
\documentclass{article}
\usepackage{layouts}
\begin{document}
\begin{figure}
\listdiagram
\caption{定義清單排版與版面的 \LaTeX{} 參數。}
\end{figure}
\end{document}
```

[在 Overleaf 中開啟此範例。](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+the+layout+package+to+view+list+structures\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Blayouts%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bfigure%7D%0A%5Clistdiagram%0A%5Ccaption%7BThe+%5CLaTeX%7B%7D+parameters+which+define+typesetting+and+layout+of+lists.%7D+%0A%5Cend%7Bfigure%7D%0A%5Cend%7Bdocument%7D)

此範例會產生以下輸出：

![](/files/0d88e86e835d3c722992277ee479d5353e3cf8c8)

這些參數的意義說明於 [LaTeX2e 非官方參考手冊的清單章節](https://tug.org/texinfohtml/latex2e.html#list) ，因此我們不在此重複。

#### 使用 list 環境建立自訂清單

LaTeX 提供通用的 `清單` 環境，可作為建立你自己的清單類型的架構。根據上方圖表中的資訊，以下範例是對 [清單章節](https://tug.org/texinfohtml/latex2e.html#list) 中的參數 [LaTeX2e 非官方參考手冊](https://tug.org/texinfohtml/latex2e.html)

```latex
\documentclass{article}
\begin{document}
\newcounter{boxlblcounter}
\newcommand{\makeboxlabel}[1]{\fbox{#1.}\hfill}% \hfill 會填滿標籤框
\newenvironment{boxlabel}
  {\begin{list}
    {\arabic{boxlblcounter}}
    {\usecounter{boxlblcounter}
     \setlength{\labelwidth}{3em}
     \setlength{\labelsep}{0em}
     \setlength{\itemsep}{2pt}
     \setlength{\leftmargin}{1.5cm}
     \setlength{\rightmargin}{2cm}
     \setlength{\itemindent}{0em}
     \let\makelabel=\makeboxlabel
    }
  }
{\end{list}}

\newcommand{\randomtext}{你好，這裡有一些沒有意義的文字。你好，這裡有一些沒有意義的文字。你好，這裡有一些沒有意義的文字。}

\noindent\randomtext

\begin{boxlabel}
\item \randomtext
\item \randomtext
\item \randomtext
\end{boxlabel}
\end{document}
```

[在 Overleaf 中開啟此範例。](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+the+list+environment\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewcounter%7Bboxlblcounter%7D++%0A%5Cnewcommand%7B%5Cmakeboxlabel%7D%5B1%5D%7B%5Cfbox%7B%231.%7D%5Chfill%7D%25+%5Chfill+fills+the+label+box%0A%5Cnewenvironment%7Bboxlabel%7D%0A++%7B%5Cbegin%7Blist%7D%0A++++%7B%5Carabic%7Bboxlblcounter%7D%7D%0A++++%7B%5Cusecounter%7Bboxlblcounter%7D%0A+++++%5Csetlength%7B%5Clabelwidth%7D%7B3em%7D%0A+++++%5Csetlength%7B%5Clabelsep%7D%7B0em%7D%0A+++++%5Csetlength%7B%5Citemsep%7D%7B2pt%7D%0A+++++%5Csetlength%7B%5Cleftmargin%7D%7B1.5cm%7D%0A+++++%5Csetlength%7B%5Crightmargin%7D%7B2cm%7D%0A+++++%5Csetlength%7B%5Citemindent%7D%7B0em%7D+%0A+++++%5Clet%5Cmakelabel%3D%5Cmakeboxlabel%0A++++%7D%0A++%7D%0A%7B%5Cend%7Blist%7D%7D%0A%0A%5Cnewcommand%7B%5Crandomtext%7D%7BHello%2C+here+is+some+text+without+a+meaning.+Hello%2C+here+is+some+text+without+a+meaning.+Hello%2C+here+is+some+text+without+a+meaning.%7D%0A%0A%5Cnoindent%5Crandomtext%0A%0A%5Cbegin%7Bboxlabel%7D%0A%5Citem+%5Crandomtext%0A%5Citem+%5Crandomtext%0A%5Citem+%5Crandomtext%0A%5Cend%7Bboxlabel%7D%0A%5Cend%7Bdocument%7D)

此範例會產生以下輸出：

![Listenvironmemt2.png](/files/ec5051a44402cf0b95991cac701eb6297b06b4a5)

### 使用 enumitem 套件來修改與建立清單

該 [`enumitem` 套件](https://ctan.org/pkg/enumitem?lang=en) 是修改標準 LaTeX 清單或建立你自己的自訂清單格式的建議方法。 `enumitem` 提供了 *豐富的* 功能，因此我們無法全部涵蓋，但可以提供幾個基本範例幫助你上手。任何想更深入探索這個多功能套件的人，都 *非常* 建議到 tex.stackexchange 瀏覽 [與 `enumitem` 套件](https://tex.stackexchange.com/questions/tagged/enumitem)相關的問題、答案（以及範例） [套件說明文件](http://mirrors.ctan.org/macros/latex/contrib/enumitem/enumitem.pdf).

#### ，並閱讀

該 `enumitem` 提供一個名為 `shortlabels` 的可選設定參數，你可以透過

```latex
\usepackage[shortlabels]{enumitem}
```

該 `shortlabels` 選項模擬了 `enumerate` 套件的行為，提供一種簡潔的方法來定義 enumerate 環境的編號方案。請參閱 [`enumerate` 套件說明文件](https://ctan.org/pkg/enumerate?lang=en) 以取得更多資訊。

#### 修改標準清單

參照 [LaTeX 參數圖表](#latex-list-parameters) 中的值，可以使用 `enumitem` ，即可輕鬆自訂標準 LaTeX 清單，例如 `itemize`:

```latex
\documentclass{article}
\usepackage{enumitem}

\begin{document}

\newcommand{\randomtext}{你好，這裡有一些沒有意義的文字。你好，這裡有一些沒有意義的文字。}

\section*{使用 LaTeX 的 \texttt{itemize} 預設設定}

\randomtext

\begin{itemize}
\item \randomtext
   \begin{itemize}
      \item \randomtext
        \begin{itemize}
        \item \randomtext
        \end{itemize}
   \item \randomtext
   \end{itemize}
\item \randomtext
\end{itemize}

\section*{使用 \texttt{enumitem} 自訂 \texttt{itemize}}

\subsection*{請注意左邊與右邊邊界設定的影響}

\randomtext

\begin{itemize}[leftmargin=30pt, rightmargin=2cm]
\item \randomtext
   \begin{itemize}
      \item \randomtext
        \begin{itemize}
        \item \randomtext
        \end{itemize}
   \item \randomtext
   \end{itemize}
\item \randomtext
\end{itemize}

\end{document}
```

[在 Overleaf 中開啟這個 `enumitem` Overleaf 中的範例。](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Modifying+a+LaTeX+list+with+enumitem\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Benumitem%7D%0A%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cnewcommand%7B%5Crandomtext%7D%7BHello%2C+here+is+some+text+without+a+meaning.+Hello%2C+here+is+some+text+without+a+meaning.%7D%0A%0A%5Csection%2A%7BUsing+LaTeX%27s+default+settings+for+%5Ctexttt%7Bitemize%7D%7D%0A%0A%5Crandomtext%0A%0A%5Cbegin%7Bitemize%7D%0A%5Citem+%5Crandomtext%0A+++%5Cbegin%7Bitemize%7D%0A++++++%5Citem+%5Crandomtext%0A++++++++%5Cbegin%7Bitemize%7D%0A++++++++%5Citem+%5Crandomtext%0A++++++++%5Cend%7Bitemize%7D%0A+++%5Citem+%5Crandomtext%0A+++%5Cend%7Bitemize%7D%0A%5Citem+%5Crandomtext%0A%5Cend%7Bitemize%7D%0A%0A%5Csection%2A%7BUsing+a+custom+%5Ctexttt%7Bitemize%7D+via+%5Ctexttt%7Benumitem%7D%7D%0A%0A%5Csubsection%2A%7BNote+the+effect+of+left+and+right+margin+settings%7D%0A%0A%5Crandomtext%0A%0A%5Cbegin%7Bitemize%7D%5Bleftmargin%3D30pt%2C+rightmargin%3D2cm%5D%0A%5Citem+%5Crandomtext%0A+++%5Cbegin%7Bitemize%7D%0A++++++%5Citem+%5Crandomtext%0A++++++++%5Cbegin%7Bitemize%7D%0A++++++++%5Citem+%5Crandomtext%0A++++++++%5Cend%7Bitemize%7D%0A+++%5Citem+%5Crandomtext%0A+++%5Cend%7Bitemize%7D%0A%5Citem+%5Crandomtext%0A%5Cend%7Bitemize%7D%0A%0A%5Cend%7Bdocument%7D)

此範例會產生以下輸出：

![Tweakitemize2.png](/files/5039b23384db65ae16a1dae90f511e3be8bb1028)

#### 使用 enumitem 建立新清單

若要使用 `enumitem` 建立新的清單類型，你可以使用 `\newlist` 指令，它需要 3 個引數：

```latex
\newlist{name}{list-type}{max-depth}
```

* **`名稱`**：你的清單名稱，將作為環境名稱使用：

  ```
  \begin{name}
  ...
  \end{name}
  ```
* **`list-type`** 它必須是標準 LaTeX 清單類型之一：
* `enumerate`
* `itemize`
* `說明`
* **`max-depth`**：這個清單可巢狀嵌套的最大深度。 **注意** 對於超過 LaTeX 預設 4 層巢狀限制的清單，你還必須下達指令 `\setlistdepth{*integer*}` 其中 `*integer*` 是你打算使用的最大巢狀深度。請參閱 [律師用清單](#lists-for-lawyers-nesting-lists-to-an-arbitrary-depth) 範例以示範。

建立新清單後，你可以用 `\setlist` 指令。

**使用 \setlist 設定以 enumitem 建立的自訂清單**

在這個範例中，我們將建立一個名為 `myitems` 的清單，它是以 `enumerate`為基礎。我們將把 [`**最大深度**`](#maxdepth) 設為 3：

```latex
\newlist{myitems}{enumerate}{3}
```

最低要求是使用 `\setlist` 指令來為這個自訂清單定義標籤。一種做法是，對於基於 enumerate 的清單，使用由 `enumitem` 套件建立的計數器變數——這些計數器變數使用 `**名稱**` 你的清單： `myitems` 在我們的範例中。

以下是我們在標籤設定中使用對應計數器變數的方式：

* `myitems**i**` 用於第 1 層項目
* `myitems**ii**` 用於第 2 層項目
* `myitems**iii**` 用於第 3 層項目

如果我們有超過 3 層，對應的計數器變數會稱為 `myitems**iv**` （第 4 層）， `myitems**v**` （第 5 層）等等，並持續使用小寫羅馬數字。

除了標籤之外，我們也會為 `leftmargin` 和 `rightmargin` （請參見 [LaTeX 參數圖表](#latex-list-parameters)).

```latex
\documentclass{article}
\usepackage{enumitem}
\begin{document}

\newcommand{\randomtext}{你好，這裡有一些沒有意義的文字。你好，這裡有一些沒有意義的文字。}

\newcommand{\shortrandomtext}{Hello, here is some text.}
% 以 enumerate 為基礎建立一個自訂清單
% 它稱為「myitems」
% 我們將建立一個 3 層深的清單
\newlist{myitems}{enumerate}{3}

% 設定第 1 層項目的行為
% 注意：我們使用清單計數器「myitemsi」
\setlist[myitems, 1]
{label=\arabic{myitemsi}., %1., 2., 3., ...
leftmargin=\parindent,
rightmargin=10pt
}

% 設定第 2 層項目的行為
% 注意：我們使用清單計數器「myitemsii」
\setlist[myitems, 2]
{label=\arabic{myitemsi}.\arabic{myitemsii}, %1.1, 1.2, 1.3...
leftmargin=15pt,
rightmargin=15pt}

% 設定第 3 層項目的行為
% 注意：我們使用清單計數器「myitemsiii」
\setlist[myitems, 3]
% 使用 1.1:<kern>(a), 1.1:<kern>(b) 等的標籤
{label=\arabic{myitemsi}.\arabic{myitemsii}:\kern1.5pt(\alph{myitemsiii}),
leftmargin=30pt,
rightmargin=30pt}

\randomtext
\begin{myitems}
\item \randomtext
    \begin{myitems}
    \item \randomtext
        \begin{myitems}
        \item \randomtext
        \item \randomtext
        \end{myitems}
    \item \shortrandomtext
    \item \shortrandomtext
    \end{myitems}
\item \randomtext
\end{myitems}
\end{document}
```

[在 Overleaf 中開啟這個 `enumitem` Overleaf 中的範例。](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Create+a+custom+list+with+enumitem\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Benumitem%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cnewcommand%7B%5Crandomtext%7D%7BHello%2C+here+is+some+text+without+a+meaning.+Hello%2C+here+is+some+text+without+a+meaning.%7D%0A%0A%5Cnewcommand%7B%5Cshortrandomtext%7D%7BHello%2C+here+is+some+text.%7D%0A%25+Create+a+custom+list+based+on+enumerate%0A%25+It+is+called+%22myitems%22%0A%25+We%27ll+create+a+list+that+is+3+levels+deep%0A%5Cnewlist%7Bmyitems%7D%7Benumerate%7D%7B3%7D%0A%0A%25+Configure+the+behaviour+of+level+1+entries%0A%25+NOTE%3A+we+use+the+list+counter+%22myitemsi%22%0A%5Csetlist%5Bmyitems%2C+1%5D%0A%7Blabel%3D%5Carabic%7Bmyitemsi%7D.%2C+%251.%2C+2.%2C+3.%2C+...%0Aleftmargin%3D%5Cparindent%2C%0Arightmargin%3D10pt%0A%7D%0A%0A%25+Configure+the+behaviour+of+level+2+entries%0A%25+NOTE%3A+we+use+the+list+counter+%22myitemsii%22%0A%5Csetlist%5Bmyitems%2C+2%5D%0A%7Blabel%3D%5Carabic%7Bmyitemsi%7D.%5Carabic%7Bmyitemsii%7D%2C+%251.1%2C+1.2%2C+1.3...%0Aleftmargin%3D15pt%2C%0Arightmargin%3D15pt%7D%0A%0A%25+Configure+the+behaviour+of+level+3+entries%0A%25+NOTE%3A+we+use+the+list+counter+%22myitemsiii%22%0A%5Csetlist%5Bmyitems%2C+3%5D%0A%25+Use+a+label+of+1.1%3A%3Ckern%3E%28a%29%2C+1.1%3A%3Ckern%3E%28b%29+etc++%0A%7Blabel%3D%5Carabic%7Bmyitemsi%7D.%5Carabic%7Bmyitemsii%7D%3A%5Ckern1.5pt%28%5Calph%7Bmyitemsiii%7D%29%2C%0Aleftmargin%3D30pt%2C%0Arightmargin%3D30pt%7D%0A%0A%5Crandomtext%0A%5Cbegin%7Bmyitems%7D%0A%5Citem+%5Crandomtext%0A++++%5Cbegin%7Bmyitems%7D%0A++++%5Citem+%5Crandomtext%0A++++++++%5Cbegin%7Bmyitems%7D%0A++++++++%5Citem+%5Crandomtext%0A++++++++%5Citem+%5Crandomtext%0A++++++++%5Cend%7Bmyitems%7D%0A++++%5Citem+%5Cshortrandomtext%0A++++%5Citem+%5Cshortrandomtext%0A++++%5Cend%7Bmyitems%7D%0A%5Citem+%5Crandomtext%0A%5Cend%7Bmyitems%7D%0A%5Cend%7Bdocument%7D)

此範例會產生以下輸出：

![CustomItemizeList.png](/files/19c88b68f7a8aba590ef58cee652ddbc2095bac4)

#### 律師用的清單：將清單巢狀至任意深度

該 `enumitem` 套件可讓你建立可巢狀至任意深度的清單，移除 LaTeX 的 4 層限制。任何準備具有複雜（深度巢狀）條款結構合約的人都可能受益，雖然這段巢狀程式碼看起來確實有點嚇人……

```latex
\documentclass{article}
\usepackage{enumitem}

\begin{document}

\newlist{contract}{enumerate}{10}
\setlist[contract]{label*=\arabic*.}
\setlistdepth{10}

\section*{巢狀至 10 層深的自訂清單！}

\begin{contract}
\item 第 1 層
 \begin{contract}
 \item 第 2 層
   \begin{contract}
   \item 第 3 層
     \begin{contract}
     \item 第 4 層
       \begin{contract}
       \item 第 5 層
        \begin{contract}
        \item 第 6 層
         \begin{contract}
         \item 第 7 層
          \begin{contract}
          \item 第 8 層
           \begin{contract}
           \item 第 9 層
            \begin{contract}
            \item 第 10 層
          \end{contract}
         \end{contract}
        \end{contract}
       \end{contract}
      \end{contract}
     \end{contract}
    \end{contract}
   \end{contract}
  \end{contract}
 \end{contract}
\end{document}
```

[在 Overleaf 中開啟這個 `enumitem` Overleaf 中的範例。](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+the+enumitem+package+to+create+deeply+nested+lists\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Benumitem%7D%0A%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cnewlist%7Bcontract%7D%7Benumerate%7D%7B10%7D%0A%5Csetlist%5Bcontract%5D%7Blabel%2A%3D%5Carabic%2A.%7D%0A%5Csetlistdepth%7B10%7D+%0A%0A%5Csection%2A%7BCustom+list+nested+to+10+levels+deep%21%7D%0A%0A%5Cbegin%7Bcontract%7D%0A%5Citem+Level+1%0A+%5Cbegin%7Bcontract%7D%0A+%5Citem+Level+2%0A+++%5Cbegin%7Bcontract%7D%0A+++%5Citem+Level+3%0A+++++%5Cbegin%7Bcontract%7D%0A+++++%5Citem+Level+4%0A+++++++%5Cbegin%7Bcontract%7D%0A+++++++%5Citem+Level+5%0A++++++++%5Cbegin%7Bcontract%7D%0A++++++++%5Citem+Level+6%0A+++++++++%5Cbegin%7Bcontract%7D%0A+++++++++%5Citem+Level+7%0A++++++++++%5Cbegin%7Bcontract%7D%0A++++++++++%5Citem+Level+8%0A+++++++++++%5Cbegin%7Bcontract%7D%0A+++++++++++%5Citem+Level+9%0A++++++++++++%5Cbegin%7Bcontract%7D%0A++++++++++++%5Citem+Level+10%0A++++++++++%5Cend%7Bcontract%7D%0A+++++++++%5Cend%7Bcontract%7D%0A++++++++%5Cend%7Bcontract%7D%0A+++++++%5Cend%7Bcontract%7D%0A++++++%5Cend%7Bcontract%7D%0A+++++%5Cend%7Bcontract%7D%0A++++%5Cend%7Bcontract%7D%0A+++%5Cend%7Bcontract%7D%0A++%5Cend%7Bcontract%7D%0A+%5Cend%7Bcontract%7D%0A%5Cend%7Bdocument%7D)

此範例會產生以下輸出：

![10levels.png](/files/f8caabe82ff417cace31f338a699cdb9d4919865)

#### 使用 enumitem 套件與 MetaPost 的自訂項目符號

以下範例僅能與 LuaLaTeX 搭配使用，旨在提供一些可能性的示意——當然，你也可以用自己偏好的繪圖應用程式／工具取代 MetaPost！

這些範例使用 `luamplib` 套件，並且也示範可展開的命令，例如 `\the` 和 `\directlua`，可在 MetaPost 程式碼中使用。

**範例 1：自動調整大小的項目符號**

此範例會產生隨清單深度增加而縮小的項目符號。按一下「在 Overleaf 中開啟」連結即可執行範例並檢視完整程式碼。

```latex
% 透過 enumitem 宣告一個新的基於 itemize 的清單
\newlist{myEnumerate}{itemize}{6}

% nosep 選項會移除所有垂直間距
% label=\protect\mpbullet 會使所有項目符號都由
% 以使用 MetaPost 程式碼的巨集繪製。\protect
% 如 enumitem 手冊所述，這是必要的

\setlist[myEnumerate]{nosep,label=\protect\mpbullet}
\setlistdepth{6}

\begin{myEnumerate}
\item 第 1 層
  \begin{myEnumerate}
   \item 第 2 層
    \begin{myEnumerate}
     \item 第 3 層
      \begin{myEnumerate}
       \item 第 4 層
        \begin{myEnumerate}
         \item 第 5 層
          \begin{myEnumerate}
           \item 第 6 層
           \end{myEnumerate}
        \end{myEnumerate}
       \end{myEnumerate}
    \end{myEnumerate}
   \end{myEnumerate}
\end{myEnumerate}
```

[若要查看 ***完整程式碼***，請在 Overleaf 中開啟這個 LuaLaTeX 範例。](https://www.overleaf.com/docs?engine=lualatex\&snip_name=Using+MetaPost+with+the+enumitem+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bluamplib%7D%0A%5Cusepackage%7Benumitem%7D%0A%5Ceverymplib%7Bbeginfig%280%29%3B%7D%0A%5Ceveryendmplib%7Bendfig%3B%7D%0A%0A%5Cbegin%7Bdocument%7D%0A%0AThis+list+configuration+example+uses+MetaPost+code+that+contains+Lua+code+via+%5Cverb%7C%5Cdirectlua%7C.+Bullets+are+created+by+MetaPost+code%2C+size+is+calculated+from+the+depth+of+the+entry.%0A%0A%25+It+is+convenient+to+use+%5Clet%5Cmpdepth%5C%40listdepth%3A+makes+it+%0A%25+easier+to+use+in+MetaPost+code%0A%0A%5Ccatcode%60%40%3D11%0A%5Clet%5Cmpdepth%5C%40listdepth%0A%5Ccatcode%60%40%3D12%0A%0A%5Cnewcommand%7B%5Cmpbullet%7D%7B%25%0A%5Cbegin%7Bmplibcode%7D%25%0Adraw+%280%2C0%29..%280%2C-%5Cdirectlua%7Btex.print%28%5Cthe%5Cmpdepth%2F2%29%7D%29+withpen+pencircle+scaled+2pt+withcolor+white%3B%0Adrawdot%280%2C0%29+withpen+pencircle+scaled+%5Cdirectlua%7Btex.print%285%2Fmath.sqrt%28%5Cthe%5Cmpdepth%29%29%7Dbp%3B%0A%5Cend%7Bmplibcode%7D%7D%0A%25+Declare+a+new+itemize-based+list+via+enumitem%0A%5Cnewlist%7BmyEnumerate%7D%7Bitemize%7D%7B6%7D%0A%0A%25+The+nosep+option+removes+all+vertical+spacing%0A%25+the+label%3D%5Cprotect%5Cmpbullet+causes+all+bullets+to+be+%0A%25+drawn+by+a+macro+that+uses+MetaPost+code.+%5Cprotect%0A%25+is+required+as+noted+in+the+enumitem+manual+%0A%0A%5Csetlist%5BmyEnumerate%5D%7Bnosep%2Clabel%3D%5Cprotect%5Cmpbullet%7D%0A%5Csetlistdepth%7B6%7D%0A%0A%5Cbegin%7BmyEnumerate%7D%0A%5Citem+Level+1%0A++%5Cbegin%7BmyEnumerate%7D%0A+++%5Citem+Level+2%0A++++%5Cbegin%7BmyEnumerate%7D%0A+++++%5Citem+Level+3%0A++++++%5Cbegin%7BmyEnumerate%7D%0A+++++++%5Citem+Level+4%0A++++++++%5Cbegin%7BmyEnumerate%7D%0A+++++++++%5Citem+Level+5%0A++++++++++%5Cbegin%7BmyEnumerate%7D%0A+++++++++++%5Citem+Level+6%0A+++++++++++%5Cend%7BmyEnumerate%7D%0A++++++++%5Cend%7BmyEnumerate%7D%0A+++++++%5Cend%7BmyEnumerate%7D%0A++++%5Cend%7BmyEnumerate%7D%0A+++%5Cend%7BmyEnumerate%7D%0A%5Cend%7BmyEnumerate%7D%0A%5Cend%7Bdocument%7D)

此範例會產生以下輸出：

![Autosize.png](/files/53d39c00608f3dd9009881d33d5d21f4b2f34dfc)

**範例 2：有趣的自訂項目符號**

此範例的靈感來自於一個 [tex.stackexchange 上的範例](https://tex.stackexchange.com/a/313337) Overleaf 已對其加以修改，使用 MetaPost 程式碼來建立自訂項目符號。按一下「在 Overleaf 中開啟」連結即可執行範例並檢視完整程式碼。

```latex
\newlist{todolist}{itemize}{2}

\begin{itemize}
  \item 開始思考我們希望達成什麼
  \begin{todolist}
  \item[\mpdot] 辨識目標
  \item[\mpyingyang] 平衡環境影響
  \item[\mpsquare{0}{5}{0}] 執行計畫
    \begin{todolist}
    \item[\mpsquare{-0.5}{4}{0}] 第 1 階段計畫
    \item[\mpsquare{-0.5}{4}{-20}] 第 2 階段計畫
    \item[\mpsquare{-0.5}{4}{-40}] 第 3 階段計畫
    \item[\mpsquare{-0.5}{4}{-60}] 第 4 階段計畫
    \end{todolist}
  \end{todolist}
\end{itemize}
```

[若要查看 ***完整程式碼***，請在 Overleaf 中開啟這個 LuaLaTeX 範例。](https://www.overleaf.com/docs?engine=lualatex\&snip_name=Second+example+using+MetaPost+with+the+enumitem+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Benumitem%7D%0A%5Cusepackage%7Bluamplib%7D%0A%5Ceverymplib%7Bbeginfig%280%29%3B%7D%0A%5Ceveryendmplib%7Bendfig%3B%7D%0A%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cnewcommand%7B%5Cmpyingyang%7D%7B%25%0A%5Clower1.5pt%5Chbox%7B%5Cbegin%7Bmplibcode%7D%25%0Apath+p%3B%0Ap%3A%3D%28-1%2C0%29..%280%2C-1%29..%281%2C0%29%3B%0Afill+%28p%7Bup%7D..%7Bdown%7D%280%2C0%29%7Bdown%7D..%7Bup%7Dcycle%29+scaled+0.15cm%3B%0Adraw+%28p..%280%2C1%29..cycle%29+scaled+0.15cm+%3B%0A%5Cend%7Bmplibcode%7D%7D%25%0A%7D%25%0A%5Cnewcommand%7B%5Cmpdot%7D%7B%25%0A%5Clower1.5pt%5Chbox%7B%5Cbegin%7Bmplibcode%7D%25%0Adrawdot%280%2C0%29+withpen+pencircle+scaled+2bp%3B%0Adraw+fullcircle+scaled+0.2cm%3B%0Adraw+fullcircle+scaled+0.3cm%3B%0A%5Cend%7Bmplibcode%7D%7D%25%0A%7D%25%0A%5Cnewcommand%7B%5Cmpsquare%7D%5B3%5D%7B%25%0A%5Clower%231pt%5Chbox%7B%5Cbegin%7Bmplibcode%7D%25%0Adraw+unitsquare+rotated+%233+scaled+%232pt%3B%0A%5Cend%7Bmplibcode%7D%25%0A%7D%7D%25%0A%5Cnewlist%7Btodolist%7D%7Bitemize%7D%7B2%7D%0A%0A%5Cbegin%7Bitemize%7D%0A++%5Citem+Start+thinking+about+what+we+hope+to+achieve%0A++%5Cbegin%7Btodolist%7D%0A++%5Citem%5B%5Cmpdot%5D+Identify+objectives%0A++%5Citem%5B%5Cmpyingyang%5D+Balance+environmental+impact+%0A++%5Citem%5B%5Cmpsquare%7B0%7D%7B5%7D%7B0%7D%5D+Implement+plans%0A++++%5Cbegin%7Btodolist%7D%0A++++%5Citem%5B%5Cmpsquare%7B-0.5%7D%7B4%7D%7B0%7D%5D+Stage+1+plans%0A++++%5Citem%5B%5Cmpsquare%7B-0.5%7D%7B4%7D%7B-20%7D%5D+Stage+2+plans%0A++++%5Citem%5B%5Cmpsquare%7B-0.5%7D%7B4%7D%7B-40%7D%5D+Stage+3+plans%0A++++%5Citem%5B%5Cmpsquare%7B-0.5%7D%7B4%7D%7B-60%7D%5D+Stage+4+plans%0A++++%5Cend%7Btodolist%7D%0A++%5Cend%7Btodolist%7D%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

此範例會產生以下輸出：

![CustomBullets2.png](/files/5e8578f9335cb4610c61d77860f4172e80d15080)

## enumitem 套件的其他功能

如前所述， `enumitem` 套件功能極為多樣，並提供許多用於清單的使用與自訂功能。例如，我們尚未介紹的功能包括：

* 引用清單項目：例如，請參見這個 [tex.stackexchane 的問題與範例](https://tex.stackexchange.com/questions/524822/help-for-formatting-the-ref-of-nested-enumerate)
* 控制 `enumerate` 清單編號：
  * 設定第一個項目的起始編號
  * 延續不同的 `enumerate` 清單

還有更多！請瀏覽 [tex.stackexchange 以找出許多精彩範例](https://tex.stackexchange.com/questions/tagged/enumitem) 看看你可以透過 `enumitem`——當然還有， [閱讀套件文件](https://ctan.org/pkg/enumitem).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/zh-tw/latex-ji-chu/04-lists.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
