> 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/te-ding-ling-yu/05-chess-notation.md).

# 西洋棋記號

## 簡介

本文探討國際象棋排版的基礎，包括 [一些國際象棋慣例的簡短回顧／摘要](#chess-conventions-a-brief-review) 這些你可能會在 LaTeX 國際象棋套件文件中遇到。不需要這些入門材料的讀者可以直接跳到 [LaTeX 套件範例](#a-first-example-with-the-xskak-package).

## 一個套件統御一切

CTAN 倉庫列出了許多 [與國際象棋相關的套件](https://ctan.org/search?phrase=chess\&ext=false&_PKG=\&PKG=on&_AUTHORS=\&AUTHORS=on&_TOPICS=\&TOPICS=on&_FILES=&_PORTAL=\&PORTAL=on\&wildcard=on\&max=32)，所以你可能會想該選哪一個？本文使用 [`xskak` 套件](https://ctan.org/pkg/xskak?lang=en)，由於其功能豐富、設定選項廣泛且文件優良，非常推薦用於國際象棋排版。 `xskak` 會載入並擴充原始的 [`skak` 套件](https://ctan.org/pkg/skak?lang=en) 並且也會載入 [`chessboard` 套件](https://ctan.org/pkg/chessboard?lang=en) ，它提供大量選項來設定與建立棋盤。

本文提供的範例無法取代 *優秀的* 隨附於這些 [`xskak`](https://texdoc.org/serve/xskak/0) 和 [`chessboard`](https://texdoc.org/serve/chessboard/0) 套件的文件，我們強烈建議你瀏覽、檢閱並深入探索，因為這兩套文件都包含許多非常有幫助的範例。

**注意**：兩者都 `skak` 和 `xskak` 可以解析並排版（某個子集的） [可攜式棋局記譜法（PGN）](#portable-game-notation). `xskak` 擴充了由 `skak`.

**小知識**：skak 在丹麥語中是「國際象棋」之意。

### 一些注意事項

以下是 `xskak` 說明文件：

> `xskak` 會載入該套件 `skak` 且不帶選項（也不會將選項傳遞給它）。因此，如果你想以選項載入 `skak` 帶有選項，必須在載入套件之前先做 `xskak`.

> `xskak` 是對 **主要工作仍由套件 `skak`**……請先閱讀套件的文件 `skak`...

* **注意**：在與國際象棋相關的套件中 [列在 CTAN 上的](https://ctan.org/search?phrase=chess\&ext=false&_PKG=\&PKG=on&_AUTHORS=\&AUTHORS=on&_TOPICS=\&TOPICS=on&_FILES=&_PORTAL=\&PORTAL=on\&wildcard=on\&max=32) 有一個名為 [`skaknew`](https://ctan.org/pkg/skaknew)。儘管名稱如此，這個 `skaknew` 套件是 *不* 原始版本的新版或增強版 `skak` 套件：它是一組 Type 1 國際象棋字型。 `xskak` 套件會使用這些 `skaknew` 字型，因此你不需要手動將它們載入到專案中。

### 最小 xskak 範例

為了「營造情境」，且不再進一步解釋，以下是一個最小的 `xskak` 套件範例，它會排版兩個棋盤：一個是空的，另一個則包含所有棋子在初始位置：

```latex
\documentclass{article}
% 注意：你只需要載入 xskak，
% 不需要載入 skak 或 chessboard 套件。
\usepackage{xskak}
\begin{document}
% 這個 \chessboard 指令會繪製
% 一個空的棋盤：選項
% showmover=false 稍後會討論
% 稍後在本文中
\chessboard[showmover=false]
% \newchessgame 指令
% 會初始化一盤新棋局：
\newchessgame
% 因為已初始化新棋局，
% \chessboard 現在會繪製一個
% 帶有棋子的棋盤：
\chessboard
第二個棋盤右側的小白方塊稱為 \textit{mover}。
\end{document}
```

[在 Overleaf 中開啟這個範例](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=A+basic+xskak+package+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Note%3A+you+only+need+to+load+xskak%2C%0A%25+not+the+skak+or+chessboard+packages.%0A%5Cusepackage%7Bxskak%7D%0A%5Cbegin%7Bdocument%7D%0A%25+This+%5Cchessboard+command+draws+%0A%25+an+empty+chess+board%3A+the+option%0A%25+showmover%3Dfalse+will+be+discussed%0A%25+later+in+the+article%0A%5Cchessboard%5Bshowmover%3Dfalse%5D%0A%25+The+%5Cnewchessgame+command+%0A%25+initializes+a+new+game%3A%0A%5Cnewchessgame%0A%25+Because+a+new+game+was+initialized%2C+%0A%25+%5Cchessboard+now+draws+a+%0A%25+board+with+chess+pieces%3A%0A%5Cchessboard%0AThe+small+white+square+to+the+right+of+the+second+board+is+called+the+%5Ctextit%7Bmover%7D.%0A%5Cend%7Bdocument%7D)

這個 `xskak` 範例會產生以下輸出：

![](/files/622e1a8196baad7f9e95cc9e4a91c2372290c2ec)

## 國際象棋慣例：簡短回顧

為了幫助國際象棋新手，特別是排版方面的新手，以下各節提供 *簡短的* 對你在 LaTeX 國際象棋套件及其隨附文件中會遇到的主題與慣例的介紹。熟悉國際象棋慣例的讀者可以跳過這些部分，直接前往 LaTeX 範例。

### 可攜式棋局記譜法

skak 與 xskak 套件支援以下標準的一個子集： [可攜式棋局記譜法](https://en.wikipedia.org/wiki/Portable_Game_Notation) （PGN），這是一項約於 1994 年由 [Steven Edwards](https://www.chessprogramming.org/Steven_Edwards)。1994 年的原始 PGN 規格可 [在 archive.org 上取得](https://archive.org/details/pgn-standard-1994-03-12)。標準的直接連結是 <https://tim-mann.org/Standard>.

根據 [PGN 標準的原文](https://tim-mann.org/Standard):

> PGN 是「Portable Game Notation」，一種用 ASCII 文字檔表示國際象棋對局資料的標準。PGN 的結構便於人類使用者閱讀與撰寫，也便於電腦程式解析與產生……PGN 被提議作為資料交換的通用可攜式表示法。

請注意，PGN 檔案是為了 *交換 **棋局** 資料*；也就是說，PGN 檔案旨在包含 *完整的棋局* 資訊——例如選手姓名、賽事／日期等細節，以及一份以代數記譜法記錄的 *所有著法* 。

**注意**：若要查看另一個 PGN 的簡短介紹，請造訪 <http://www.enpassant.dk/chess/palview/p3manual/p3pgn.htm>

### 棋盤的橫列與縱列

棋盤是由 8×8 個方格組成的網格，通常可描述為 8 條水平列與 8 條垂直欄；然而，描述棋盤時會使用不同的術語：

* 有 8 條水平 ***橫列*** （而不是列）
* 有 8 條垂直 ***檔案*** （而不是欄）

棋盤上的每個方格都可以使用 [多種慣例](https://en.wikipedia.org/wiki/Chessboard#Board_notation) 但 [代數記譜法](https://en.wikipedia.org/wiki/Algebraic_notation_\(chess\)) （座標系）作為公認的國際標準。

### 代數記譜法

在代數記譜法系統中，橫列與縱列的標示如下：

* 這 8 條水平 ***橫列*** 以數字標示 `1` 改為 `8`
* 這 8 條垂直 ***檔案*** 以字母標示 `a` 改為 `h`.

下一張圖顯示一個棋盤，並標出用於縱列與橫列的代數記譜標籤：

![](/files/1fabef1835d57984ad888d8cb279f3cf8158f754)

棋盤上的每個方格都位於某一特定縱列（欄）與橫列（列）的交點：相對應的縱列與橫列值可作為座標，唯一識別每個方格，以描述棋子的位置與移動。

例如，以下圖示顯示位於 **e7** 的方格，接著是第二個棋盤，列出全部 64 個方格的位置：

![](/files/f210a459961cde3d05b3e6c02d05e406ec1df4aa)

如果你是國際象棋新手，Wikipedia 頁面 [代數記譜法](https://en.wikipedia.org/wiki/Algebraic_notation_\(chess\)) 包含一些有用的背景資訊，其中部分我們在下方摘要。

### 棋子記號

每種棋子類型，通常除了兵以外，都以一個大寫字母來識別，而該字母會依所使用的語言而有所不同。英語使用者採用以下字母：

| 字母 | 棋子 |
| -- | -- |
| K  | 國王 |
| Q  | 皇后 |
| R  | 車  |
| B  | 主教 |
| N  | 馬  |

在標準代數記譜法中，兵不會 *通常* 以大寫字母識別；相反地，它們可由 *缺少* 大寫字母的缺席來辨識。然而，這項慣例並非總是採用；大寫字母 P 也可用來識別兵。在 [Forsyth-Edwards 記譜法（FEN）](#forsyth-edwards-notation-fen) 中，會使用大寫與小寫字母來表示棋子。

### 單一步著的記譜

要記錄一枚棋子的移動，你需要識別該棋子及其目的方格。這可以透過使用棋子的大寫字母加上目的方格的座標來達成。

**注意**：在描述兵的著法時，表示該棋子為兵的字母不會 *通常* 使用；只會給出目的方格 *通常* ，如下列範例所示：

* *非兵* 著法：
  * **Be5**: **B**主教移至方格 **e5**
  * **Nf3**：k**N**馬移至方格 **f3**
* *兵* 著法：
  * **c5**：一枚兵移至方格 **c5**
  * **注意**：在某些情況下（例如某些 LaTeX 指令）兵 *會被識別* 為大寫字母 **P**；因此 **c5** 可寫作 **Pc5**.

#### 三個點（...）黑方著法指示

以下標準的第 8.2.2.2 節： [可攜式棋局記譜法標準](https://tim-mann.org/Standard) 說明了在著法編號指示之後使用三個點（...）的用法（例如， **3...e6**):

> 白方著法編號指示由表示完整回合數的整數加上一個句點字元所構成。黑方著法編號指示由表示完整回合數的整數加上 ***三個句點字元所構成***.

### 一連串著法的慣例

如 Wikipedia 上關於 [代數記譜法](https://en.wikipedia.org/wiki/Algebraic_notation_\(chess\)#Formatting)的文章所解釋，要描述一連串著法：

* 每一個單獨著法 *通常* 非兵棋子使用大寫字母，儘管如上所述，在某些情況（慣例）下可能會使用大寫字母 P 來表示兵的著法。
* 一系列國際象棋著法是一連串的 `<white piece move> <black piece move>` 成對著法——請注意每一對著法都有編號（見下方範例）

### 其他國際象棋記譜法：FAN 與 FEN

#### 圖像代數記譜法（或 FAN）

用於表示棋子的語言專屬字母，常會被通用且易識別的棋子符號所取代。這種符號化表示稱為圖像代數記譜法，或 FAN。例如，符號 ♞（或 ♘）可用來取代 N（表示馬）。

Unicode 規範將國際象棋字元編碼於 [雜項符號集合](https://www.unicode.org/charts/PDF/U2600.pdf)。下表列出每個國際象棋字元的 Unicode 值、名稱與代表符號——實際用來顯示國際象棋符號的字形（字元設計）將取決於你的裝置／瀏覽器字型設定。

| <p>代表符號<br>（字形）</p> | <p>Unicode 值<br>（十六進位）</p> | <p>Unicode 字元名稱<br>（正式）</p> |
| ------------------- | -------------------------- | --------------------------- |
| ♔                   | 2654                       | 白方國王                        |
| ♕                   | 2655                       | 白方皇后                        |
| ♖                   | 2656                       | 白方車                         |
| ♗                   | 2657                       | 白方主教                        |
| ♘                   | 2658                       | 白方馬                         |
| ♙                   | 2659                       | 白方兵                         |
| ♚                   | 265A                       | 黑方國王                        |
| ♛                   | 265B                       | 黑方皇后                        |
| ♜                   | 265C                       | 黑方車                         |
| ♝                   | 265D                       | 黑方主教                        |
| ♞                   | 265E                       | 黑方馬                         |
| ♟                   | 265F                       | 黑方兵                         |

#### Forsyth-Edwards 記譜法（FEN）

如前所述，PGN 用於儲存與交換 *整盤棋局*，包括該局中所下的所有著法。相較之下， [Forsyth-Edwards 記譜法（FEN）](https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation) 則提供某個時間點上棋局的快照。FEN 記譜法使用大寫與小寫字母來表示棋子：

* 白方棋子以大寫字母（PNBRQK）識別
* 黑方棋子以小寫字母（pnbrqk）識別

其中 P 代表白兵，而 p 代表黑兵。

對 FEN 的詳細討論，以及與 PGN 的比較，超出本文範圍。想更深入了解 PGN 與 FEN 差異的讀者，可以參考以下影片：

{% embed url="<https://www.youtube.com/embed/3PvmsmqKF_I>" %}

## xskak 套件的第一個範例

### 下著法

要在棋局進行時排版著法，你可以使用指令 `\mainline{*list of moves*}` 其中 `*著法清單*` 以 [國際象棋代數記譜法](#algebraic-notation)表示。我們將示範排版以下著法序列：

1. **e4 e5**：白兵移至 **e4**，黑兵移至 **e5**
2. **Nf3 Nc6**：白方 k**N**馬移至 **f3**，黑方 k**N**馬移至 **c6**
3. **Bb5 a6**：白方 **B**主教移至 **b5**，黑兵移至 **a6**

這一連串著法可以使用 [`xskak` 套件](https://ctan.org/pkg/xskak?lang=en) 指令 `\mainline{1.e4 e5 2.Nf3 Nc6 3.Bb5 a6}`——請注意每一對著法都有編號（例如， `**1.**e4 e5`):

```latex
\documentclass{article}
\usepackage{xskak}
\begin{document}
\newchessgame
\mainline{1.e4 e5 2.Nf3 Nc6 3.Bb5 a6}
\showboard % skak 套件指令。未來範例將使用 \chessboard[...]
\end{document}
```

[在 Overleaf 中開啟這個範例](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=First+xskak+package+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bxskak%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewchessgame%0A%5Cmainline%7B1.e4+e5+2.Nf3+Nc6+3.Bb5+a6%7D%0A%5Cshowboard+%25+A+skak+package+command.+Future+examples+will+use+%5Cchessboard%5B...%5D%0A%5Cend%7Bdocument%7D)

這個 `xskak` 範例會產生以下輸出：

![](/files/ac9442215d85f5888ea7b8c16f5664fbe625dc67)

以下指令會用到：

* **`\newchessgame[〈key=value list〉]`**：開始一盤新棋局並初始化棋盤。 `[〈key=value list〉]` 是可選的，因此你也可以寫成 `\newchessgame` 並依賴預設的棋盤設定。可選鍵的列表載於 [`xskak` 說明文件](https://texdoc.org/serve/xskak/0).
* **`\mainline{〈list of chess moves〉}`**：處理 `〈list of chess moves〉` 並更新棋盤，使 `\showboard` （或 `\chessboard`）排版棋盤的目前狀態。
* **`\showboard`**：排版棋盤。 `\showboard` 此指令源自底層的 `skak` 套件，其 `xskak` 所擴充。 [`chessboard` 套件](https://ctan.org/pkg/chessboard?lang=en)，由 `xskak`載入，並提供非常多用途的 **`\chessboard[〈key=value list〉]`** 指令，而 `xskak` 套件會加入額外的鍵。由於 `\chessboard[...]` 旨在取代 `\showboard`，本文後續範例將只使用 `\chessboard[...]` 指令。

### 介紹 \chessboard 指令

命令 **`\chessboard[〈key=value list〉]`**：使用可選的 `〈key=value list〉`。 `鍵` 可用的是 *大量*，可對棋盤的大小、內容、版面、設計、註解等提供高度控制。鼓勵讀者閱讀 [`chessboard` （PDF）](https://texdoc.org/serve/chessboard/0) 和 [`xskak` （PDF）](https://texdoc.org/serve/xskak/0)的優秀套件文件，兩者都包含許多有幫助的範例——*許多* 遠超過本文所能示範的數量。

由於這些鍵是可選的，你可以寫成 `\chessboard` ，它會使用套件預設值來排版棋盤；例如，下列程式碼使用 `\chessboard` 而不帶任何選項。其他註解則在 Inkscape 中手動加入，用來顯示 *移子方塊* （此處以方塊表示），它們會預設排版：

```latex
\documentclass{article}
\usepackage{xskak}
\begin{document}
\newchessgame
\mainline{1.e4 e5 2.Nf3 Nc6 3.Bb5}
\chessboard % 代替 \showboard

\newchessgame
\mainline{1.e4 e5 2.Nf3 Nc6 3.Bb5 a6}
\chessboard % 代替 \showboard
\end{document}
```

[在 Overleaf 中開啟此範例。](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=chessboard+command+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bxskak%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewchessgame%0A%5Cmainline%7B1.e4+e5+2.Nf3+Nc6+3.Bb5%7D%0A%5Cchessboard+%25+instead+of+%5Cshowboard%0A%0A%5Cnewchessgame%0A%5Cmainline%7B1.e4+e5+2.Nf3+Nc6+3.Bb5+a6%7D%0A%5Cchessboard+%25+instead+of+%5Cshowboard%0A%5Cend%7Bdocument%7D)

下圖顯示上述程式碼產生的兩個棋盤，兩者皆使用 `\chessboard`:

![](/files/121e3e1f77aef3e678f43c5cc5010de78cde3fbe)

不意外地，系統提供了各種鍵來控制移子方塊，包括顯示或隱藏它；例如，要隱藏移子方塊，可以使用 `showmover` 鍵，並將其值設為 `false`:

```latex
\documentclass{article}
\usepackage{xskak}
\begin{document}
\newchessgame
\mainline{1.e4 e5 2.Nf3 Nc6 3.Bb5 a6}\par
\chessboard[showmover=false] % 隱藏移子方塊
\end{document}
```

[在 Overleaf 中開啟此範例。](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Hiding+the+chessboard+mover\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bxskak%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewchessgame%0A%5Cmainline%7B1.e4+e5+2.Nf3+Nc6+3.Bb5+a6%7D%5Cpar%0A%5Cchessboard%5Bshowmover%3Dfalse%5D+%25+Hide+the+mover%0A%5Cend%7Bdocument%7D)

這個範例會產生以下輸出——一個沒有移子方塊的棋盤：

![](/files/7063e942ad9c9630493b16d84f4d5147485ad4a1)

該 [`chessboard` 套件文件（PDF）](https://texdoc.org/serve/chessboard/0) 提供一份用於自訂移子方塊的鍵清單，並附上如何設計你自己的移子方塊的說明！

## 其他 xskak 範例

### 文字註解

PGN 規格支援使用大括號將註解文字括起來來撰寫註解： `{〈Text〉}`；然而， `xskak` 套件偏好將文字註解寫成 `\xskakcomment{〈Text〉}`，如下列範例所示：

```latex
\documentclass{article}
\usepackage{xskak}
\begin{document}
\newchessgame %開始一盤新的棋局
\mainline{1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 \xskakcomment{ 這是一則註解。 }}\vspace{3mm}

\chessboard
\end{document}
```

[在 Overleaf 中開啟此範例。](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=xskak+chess+comment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bxskak%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewchessgame+%25Start+a+new+chess+game%0A%5Cmainline%7B1.e4+e5+2.Nf3+Nc6+3.Bb5+a6+%5Cxskakcomment%7B+This+is+a+comment.+%7D%7D%5Cvspace%7B3mm%7D%0A%0A%5Cchessboard%0A%5Cend%7Bdocument%7D)

此範例會產生以下輸出：

![](/files/5fb5618b911725a9770c315012145ca79f37fa80)

### 使用 FEN 記譜法初始化棋盤

你可以使用 FEN 讓棋盤從任何位置開始。以下範例使用 `setfen` 在一個 `\chessboard` 用來示範一個取自……的 FEN 範例的指令 `skak` 套件文件：

```latex
\documentclass{article}
\usepackage{xskak}
\begin{document}
\newchessgame
\chessboard[setfen=r5k1/1b1p1ppp/p7/1p1Q4/2p1r3/PP4Pq/BBP2b1P/R4R1K w - - 0 20]
\end{document}
```

[在 Overleaf 中開啟此範例。](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=FEN+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bxskak%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewchessgame%0A%5Cchessboard%5Bsetfen%3Dr5k1%2F1b1p1ppp%2Fp7%2F1p1Q4%2F2p1r3%2FPP4Pq%2FBBP2b1P%2FR4R1K+w+-+-+0+20%5D%0A%5Cend%7Bdocument%7D)

此範例會產生以下輸出：

![](/files/b16481d784fedd413200a01d2679330e852b7d58)

FEN 記譜法會從最上方的橫列（第 8 列）開始填入棋盤，並向下依序填入後續橫列。例如，要初始化上方棋盤，第 8 列可用 **r5k1**:

* **r**車
* **5** 空格
* 該 **k**ing
* **1** 空格

因此使用記號 **r5k1**。請注意，使用小寫字母來描述黑方棋子，同時使用大寫 **P** 表示白方兵，而小寫 **p** 表示黑方兵。

### 使用 \lastmove

該 `\lastmove` 指令可用來註解最後一步走法：

```latex
\documentclass{article}
\usepackage{xskak}
\begin{document}
\newchessgame
\mainline{1.e4}

\chessboard

\lastmove{} 是最常見的開局走法。
\end{document}
```

[在 Overleaf 中開啟此範例。](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=xskak+lastmove+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bxskak%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewchessgame%0A%5Cmainline%7B1.e4%7D%0A%0A%5Cchessboard%0A%0A%5Clastmove%7B%7D+is+the+most+common+opening+move.%0A%5Cend%7Bdocument%7D)

此範例會產生以下輸出：

![](/files/3b4cda7c1784f7b99f8b3346ef213e67fc611a69)

### 變化分支與 ... 記法的範例

以下重現了收錄於……中的範例 `skak` 套件文件中的範例，已更新為使用 `xskak` 指令。這裡我們看到一個 `\variation` 指令與三點（...）語法 [用於表示黑方走法](#three-dots-black-piece-move-indication):

```latex
\documentclass{article}
\usepackage{xskak}
\begin{document}
\newchessgame
\mainline{1.e4 e5 2.Nf3 Nc6 3.Bb5}

\chessboard

\mainline{3...a6}

這裡使用變體 \variation{3...Nf6} 來示範 \texttt{\string\variation} 指令。

\mainline{4.Ba4}

\chessboard
\end{document}
```

[在 Overleaf 中開啟此範例。](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=xskak+variations+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bxskak%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewchessgame%0A%5Cmainline%7B1.e4+e5+2.Nf3+Nc6+3.Bb5%7D%0A%0A%5Cchessboard%0A%0A%5Cmainline%7B3...a6%7D%0A%0AA+variant+%5Cvariation%7B3...Nf6%7D+is+used+here+to+show+a+%5Ctexttt%7B%5Cstring%5Cvariation%7D+command.%0A%0A%5Cmainline%7B4.Ba4%7D%0A%0A%5Cchessboard%0A%5Cend%7Bdocument%7D)

此範例會產生以下輸出：

![](/files/c0b5797f81debe929724c72e5c997ec40e402e7a)

### 只顯示特定棋子

因為 `xskak` 載入 `chessboard` 套件中，你可以使用這個極為強大的 **`\chessboard[〈key=value list〉]`** 指令來顯示或隱藏棋盤上的區域，或特定的棋子集合。 [chessboard 文件](https://texdoc.org/serve/chessboard/0) 包含許多範例，例如下方重現的那些。

#### 使用鍵來隱藏特定欄位

此範例使用以下鍵 `hideall`, `showpieces` 和 `addpieces`:

```latex
\documentclass{article}
\usepackage{xskak}
\begin{document}
\newchessgame
\chessboard[hideall,
showpieces={P,p},
addpieces=pe5]
\end{document}
```

[在 Overleaf 中開啟這個範例](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Showing+selected+pieces+in+xskak+example+1\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bxskak%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewchessgame%0A%5Cchessboard%5Bhideall%2C%0Ashowpieces%3D%7BP%2Cp%7D%2C%0Aaddpieces%3Dpe5%5D%0A%5Cend%7Bdocument%7D)

這個 `xskak` 範例會產生以下輸出：

![](/files/ee154491a4bbb5c24d3f66fc404be1a7785a00cb)

此範例使用以下鍵 `hidefiles`, `showfiles` 和 `showranks`:

```latex
\documentclass{article}
\usepackage{xskak}
\begin{document}
\newchessgame
\def\myfiles{a,b}
\chessboard[hidefiles=\myfiles,
addpieces=Ra2,
showfiles=a,
showranks=2]
\end{document}
```

[在 Overleaf 中開啟這個範例](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Showing+selected+pieces+in+xskak+example+2\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bxskak%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewchessgame%0A%5Cdef%5Cmyfiles%7Ba%2Cb%7D%0A%5Cchessboard%5Bhidefiles%3D%5Cmyfiles%2C%0Aaddpieces%3DRa2%2C%0Ashowfiles%3Da%2C%0Ashowranks%3D2%5D%0A%5Cend%7Bdocument%7D)

這個 `xskak` 範例會產生以下輸出：

![](/files/e9082e696af89f63bdb3de8cefae7efcc1394deb)

#### 使用鍵來隱藏所有白方或所有黑方棋子

以下範例示範了這些鍵 `hidewhite` 和 `hideblack`:

```latex
\documentclass{article}
\usepackage{xskak}
\begin{document}
\newchessgame
\mainline{1.e4 e5 2.Nf3 Nc6}\chessboard[hidewhite]

\newchessgame
\mainline{1.e4 e5 2.Nf3 Nc6}\chessboard[hideblack]
\end{document}
```

[在 Overleaf 中開啟這個範例](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Showing+selected+pieces+in+xskak+example+3\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bxskak%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewchessgame%0A%5Cmainline%7B1.e4+e5+2.Nf3+Nc6%7D%5Cchessboard%5Bhidewhite%5D%0A%0A%5Cnewchessgame%0A%5Cmainline%7B1.e4+e5+2.Nf3+Nc6%7D%5Cchessboard%5Bhideblack%5D%0A%5Cend%7Bdocument%7D)

這個 `xskak` 範例會產生以下輸出：

![](/files/3fd485a91db754896c17071aac0cfa4a3c172f3c)

## 來自 tex.stackexchange 的更多範例

以下範例使用了在……上找到的解答 [tex.stackexchange.com](https://tex.stackexchange.com).

### 如何標示格子？

來源：參考自 <https://tex.stackexchange.com/a/215334>

```latex
\documentclass{article}
\usepackage{xskak}
\begin{document}
\newgame
\chessboard[setfen=8/8/8/3Q4/8/8/8/8 w - - 0 0,
            pgfstyle=border,markfields={d4,d6},
            color=blue!50,
            colorbackfield=c5,
            pgfstyle=color,
            opacity=0.5,
            color=red,
            markfield={d5}]
\end{document}
```

[在 Overleaf 中開啟此範例。](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Highlighting+chess+board+squares\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bxskak%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewgame%0A%5Cchessboard%5Bsetfen%3D8%2F8%2F8%2F3Q4%2F8%2F8%2F8%2F8+w+-+-+0+0%2C%0A++++++++++++pgfstyle%3Dborder%2Cmarkfields%3D%7Bd4%2Cd6%7D%2C%0A++++++++++++color%3Dblue%2150%2C%0A++++++++++++colorbackfield%3Dc5%2C%0A++++++++++++pgfstyle%3Dcolor%2C%0A++++++++++++opacity%3D0.5%2C%0A++++++++++++color%3Dred%2C%0A++++++++++++markfield%3D%7Bd5%7D%5D%0A%5Cend%7Bdocument%7D)

![](/files/649490e6d2ff6155840bbb38e22215ceeb8a02ce)

### 建立不同的棋盤樣式

來源：參考自 <https://tex.stackexchange.com/a/358041>

```latex
\documentclass{article}
\usepackage{xskak}
\begin{document}
\storechessboardstyle{4x16}{%
  maxfield=d16,
  borderwidth=1mm,
  color=white,
  colorwhitebackfields,
  color=black,
  colorblackbackfields,
  blackfieldmaskcolor=black,
  whitepiececolor=yellow,
  whitepiecemaskcolor=red,
  blackpiececolor=cyan,
  blackpiecemaskcolor=blue,
  addfontcolors,
  pgfstyle=border,
  color=white,
  markregion=a1-d16,
  showmover=false,
  hlabelwidth=18pt,
  vlabellift=16pt}
  \chessboard[
    style=4x16,
    setpieces={Qa8,Qb4,Qc1,Qd3,Qb16,Qc12,Qa7,Qc15,qa1,qb14,qc11,qd13,qb6,qc2,qa4,qc5},
    padding=1ex,
  ]
\end{document}
```

[在 Overleaf 中開啟此範例。](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Creating+a+custom+chess+board\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bxskak%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cstorechessboardstyle%7B4x16%7D%7B%25%0A++maxfield%3Dd16%2C%0A++borderwidth%3D1mm%2C%0A++color%3Dwhite%2C%0A++colorwhitebackfields%2C%0A++color%3Dblack%2C%0A++colorblackbackfields%2C%0A++blackfieldmaskcolor%3Dblack%2C%0A++whitepiececolor%3Dyellow%2C%0A++whitepiecemaskcolor%3Dred%2C%0A++blackpiececolor%3Dcyan%2C%0A++blackpiecemaskcolor%3Dblue%2C%0A++addfontcolors%2C%0A++pgfstyle%3Dborder%2C%0A++color%3Dwhite%2C%0A++markregion%3Da1-d16%2C%0A++showmover%3Dfalse%2C%0A++hlabelwidth%3D18pt%2C%0A++vlabellift%3D16pt%7D%0A++%5Cchessboard%5B%0A++++style%3D4x16%2C%0A++++setpieces%3D%7BQa8%2CQb4%2CQc1%2CQd3%2CQb16%2CQc12%2CQa7%2CQc15%2Cqa1%2Cqb14%2Cqc11%2Cqd13%2Cqb6%2Cqc2%2Cqa4%2Cqc5%7D%2C%0A++++padding%3D1ex%2C%0A++%5D%0A%5Cend%7Bdocument%7D)

這個 `xskak` 範例會產生以下輸出：

![](/files/56a8cb275eccadfa41408bd06c0170829800ff2d)

## 延伸閱讀

詳情請見：

* [在 LaTeX 中建立文件](/latex/zh-tw/latex-ji-chu/01-learn-latex-in-30-minutes.md)
* [插入圖片](/latex/zh-tw/geng-duo-zhu-ti/27-inserting-images.md)
* [圖片與表格的定位](/latex/zh-tw/tu-biao-yu-biao-ge/02-positioning-images-and-tables.md)
* [國際語言支援](/latex/zh-tw/yu-yan/03-international-language-support.md)
* [字型大小、字族與樣式](/latex/zh-tw/zi-xing/01-font-sizes-families-and-styles.md)
* [字型字體](/latex/zh-tw/zi-xing/02-font-typefaces.md)
* [大型專案中的管理](/latex/zh-tw/wen-jian-jie-gou/07-management-in-a-large-project.md)
* [該 `skak` 套件](https://ctan.org/pkg/skak?lang=en)
* [該 `xskak` 套件](https://ctan.org/pkg/xskak?lang=en)
* [國際象棋代數記譜法（維基百科）](http://en.wikipedia.org/wiki/Algebraic_notation_\(chess\))
* [Forsyth-Edwards 記譜法（維基百科）](http://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation)
* [該 `chessboard` 套件](https://ctan.org/pkg/chessboard?lang=en)
* [PGN 標準文本](https://tim-mann.org/Standard)


---

# 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/te-ding-ling-yu/05-chess-notation.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.
