> 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/vi/theo-linh-vuc/05-chess-notation.md).

# Ký hiệu cờ vua

## Giới thiệu

Bài viết này khám phá những kiến thức cơ bản về dàn trang cờ vua, bao gồm [các bài đánh giá/tóm tắt ngắn gọn về một số quy ước cờ vua](#chess-conventions-a-brief-review) mà bạn có thể gặp trong tài liệu của gói cờ vua LaTeX. Độc giả không cần phần giới thiệu này có thể chuyển thẳng đến các [ví dụ gói LaTeX](#a-first-example-with-the-xskak-package).

## Một gói để thống trị tất cả

Kho CTAN liệt kê một số [gói liên quan đến cờ vua](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), vì vậy bạn có thể đang tự hỏi nên chọn gói nào? Bài viết này sử dụng [`xskak` gói](https://ctan.org/pkg/xskak?lang=en), gói này rất được khuyến nghị để dàn trang cờ vua nhờ phạm vi tính năng rộng, nhiều tùy chọn cấu hình và tài liệu hướng dẫn tuyệt vời. `xskak` tải và mở rộng gói gốc [`skak` gói](https://ctan.org/pkg/skak?lang=en) và cũng tải [`chessboard` gói](https://ctan.org/pkg/chessboard?lang=en) gói cung cấp rất nhiều tùy chọn để cấu hình và tạo bàn cờ.

Các ví dụ trong bài viết này không thể thay thế cho *tuyệt vời* tài liệu đi kèm với các [`xskak`](https://texdoc.org/serve/xskak/0) và [`chessboard`](https://texdoc.org/serve/chessboard/0) gói, và chúng tôi đặc biệt khuyến khích bạn đọc, xem xét và khám phá vì cả hai bộ tài liệu đều chứa nhiều ví dụ rất hữu ích.

**Lưu ý**: Cả hai `skak` và `xskak` có thể phân tích và dàn trang các ván cờ trong (một phần của) định dạng [Portable Game Notation (PGN)](#portable-game-notation). `xskak` mở rộng phần PGN được hỗ trợ bởi `skak`.

**Thông tin thú vị**: skak là từ tiếng Đan Mạch chỉ cờ vua.

### Một số lưu ý

Dưới đây là một số điểm quan trọng được lưu ý trong `xskak` tài liệu hướng dẫn:

> `xskak` sẽ tải gói `skak` mà không có tùy chọn (và sẽ không truyền các tùy chọn cho nó). Vì vậy, nếu bạn muốn tải `skak` với các tùy chọn, bạn phải làm điều đó trước khi tải gói `xskak`.

> `xskak` là một phần mở rộng (không phải là sự thay thế) của **công việc chính vẫn do gói `skak`**... vui lòng đọc trước tài liệu của gói `skak`...

* **Lưu ý**: Trong số các gói liên quan đến cờ vua [được liệt kê trên 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) có một gói tên là [`skaknew`](https://ctan.org/pkg/skaknew). Dù tên gọi như vậy, gói `skaknew` là *không* một phiên bản mới hoặc nâng cấp của gói gốc `skak` : nó là một bộ phông chữ cờ vua Type 1. Gói `xskak` sử dụng các `skaknew` phông chữ nên bạn không cần tải thủ công chúng vào dự án của mình.

### Ví dụ tối thiểu xskak

Để “đặt bối cảnh”, và không giải thích thêm, dưới đây là một ví dụ tối thiểu `xskak` gói dàn trang hai bàn cờ: một bàn trống, bàn còn lại có tất cả các quân cờ ở vị trí khởi đầu:

```latex
\documentclass{article}
% Lưu ý: bạn chỉ cần tải xskak,
% không phải các gói skak hoặc chessboard.
\usepackage{xskak}
\begin{document}
% Lệnh \chessboard này vẽ
% một bàn cờ trống: tùy chọn
% showmover=false sẽ được thảo luận
% sau trong bài viết
\chessboard[showmover=false]
% Lệnh \newchessgame
% khởi tạo một ván cờ mới:
\newchessgame
% Vì một ván cờ mới đã được khởi tạo,
% \chessboard giờ vẽ một
% bàn cờ với các quân cờ:
\chessboard
Ô vuông trắng nhỏ bên phải bàn cờ thứ hai được gọi là \textit{mover}.
\end{document}
```

[Mở ví dụ này trong 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)

Tệp này `xskak` ví dụ tạo ra kết quả sau:

![](/files/9767fedb1f575a4bf34ee48dfbc6a71c2d8b4336)

## Các quy ước cờ vua: tổng quan ngắn gọn

Vì lợi ích của độc giả mới làm quen với cờ vua, đặc biệt là việc dàn trang nó, các phần sau cung cấp *ngắn gọn* phần giới thiệu về các chủ đề và quy ước mà bạn sẽ gặp trong các gói cờ vua LaTeX và tài liệu đi kèm của chúng. Độc giả quen thuộc với các quy ước cờ vua có thể bỏ qua các phần này và chuyển đến các ví dụ LaTeX.

### Portable Game Notation

Các gói skak và xskak hỗ trợ một phần của [Portable Game Notation](https://en.wikipedia.org/wiki/Portable_Game_Notation) (PGN), một tiêu chuẩn được phát minh vào khoảng năm 1994 bởi [Steven Edwards](https://www.chessprogramming.org/Steven_Edwards). Bản đặc tả PGN gốc, đề ngày 1994, có thể [tìm trên archive.org](https://archive.org/details/pgn-standard-1994-03-12). Liên kết trực tiếp đến tiêu chuẩn là <https://tim-mann.org/Standard>.

Theo [văn bản của tiêu chuẩn PGN](https://tim-mann.org/Standard):

> PGN là "Portable Game Notation", một tiêu chuẩn được thiết kế để biểu diễn dữ liệu ván cờ bằng các tệp văn bản ASCII. PGN được cấu trúc để con người dễ đọc và dễ viết, đồng thời để các chương trình máy tính dễ phân tích và tạo ra... PGN được đề xuất như một biểu diễn di động phổ quát cho việc trao đổi dữ liệu.

Lưu ý rằng các tệp PGN được thiết kế cho việc *trao đổi **dữ liệu** ván cờ*; tức là, các tệp PGN được thiết kế để chứa *thông tin toàn bộ ván* —chẳng hạn như tên người chơi, chi tiết về sự kiện/ngày tháng v.v., cùng với bản ghi, bằng ký hiệu đại số, của *tất cả các nước đi* trong ván cờ.

**Lưu ý**: Để có một phần giới thiệu ngắn khác về PGN, hãy truy cập <http://www.enpassant.dk/chess/palview/p3manual/p3pgn.htm>

### Hàng và cột trên bàn cờ

Bàn cờ vua là một lưới 8×8 ô vuông, thông thường có thể mô tả là 8 hàng ngang và 8 cột dọc; tuy nhiên, một thuật ngữ khác được dùng để mô tả bàn cờ:

* có 8 ***hàng*** (thay vì hàng ngang)
* có 8 ***tệp có thể chỉnh sửa*** (thay vì cột)

Mỗi ô trên bàn cờ có thể được xác định (đặt tên) bằng cách sử dụng [một số quy ước](https://en.wikipedia.org/wiki/Chessboard#Board_notation) nhưng [ký hiệu đại số](https://en.wikipedia.org/wiki/Algebraic_notation_\(chess\)) (hệ tọa độ) là tiêu chuẩn quốc tế được chấp nhận.

### Ký hiệu đại số

Trong hệ ký hiệu đại số, các hàng và cột được đặt nhãn như sau:

* 8 hàng ngang ***hàng*** được gắn nhãn bằng các số `1` sang `8`
* 8 cột dọc ***tệp có thể chỉnh sửa*** được gắn nhãn bằng các chữ cái `a` sang `h`.

Sơ đồ tiếp theo cho thấy một bàn cờ với các nhãn ký hiệu đại số được dùng cho các cột và hàng:

![](/files/44561dcf523a256cadb492091ca1e8295743bc25)

Mỗi ô trên bàn cờ nằm tại giao điểm của một cột (file) và một hàng (rank) cụ thể: giá trị cột và hàng tương ứng có thể được dùng làm tọa độ để xác định duy nhất từng ô nhằm mô tả vị trí và sự di chuyển của các quân cờ.

Ví dụ, sơ đồ sau cho thấy ô tại **e7** tiếp theo là bàn cờ thứ hai liệt kê vị trí của tất cả 64 ô:

![](/files/3f89cd5ae74a6af66bb444c1fe04988018479cf7)

Nếu bạn mới làm quen với cờ vua, trang Wikipedia [Ký hiệu đại số](https://en.wikipedia.org/wiki/Algebraic_notation_\(chess\)) chứa một số thông tin nền hữu ích, một phần trong đó chúng tôi tóm tắt bên dưới.

### Ký hiệu cho các quân cờ

Mỗi loại quân cờ, thường trừ tốt, được nhận diện bằng một chữ cái viết hoa có thể thay đổi tùy theo ngôn ngữ được dùng. Người nói tiếng Anh dùng các chữ cái sau:

| Chữ cái | Quân cờ |
| ------- | ------- |
| K       | Vua     |
| Q       | Hậu     |
| R       | Xe      |
| B       | Tượng   |
| N       | Mã      |

Trong ký hiệu đại số chuẩn, tốt không *thường* được nhận diện bằng một chữ cái viết hoa; thay vào đó, chúng được nhận biết qua *sự vắng mặt* của một chữ cái viết hoa. Tuy nhiên, quy ước đó không phải lúc nào cũng được áp dụng; chữ viết hoa P có thể được dùng để xác định tốt. Trong [Ký hiệu Forsyth-Edwards (FEN)](#forsyth-edwards-notation-fen) các chữ cái viết hoa và viết thường được dùng để biểu diễn các quân cờ.

### Ký hiệu cho một nước đi đơn lẻ

Để ghi lại sự di chuyển của một quân cờ, bạn cần xác định quân cờ và ô đích của nó. Điều đó có thể được thực hiện bằng cách dùng chữ cái viết hoa của quân cờ cộng với tọa độ của ô đích.

**Lưu ý**: khi mô tả một nước đi của tốt, không *thường* dùng chữ cái chỉ quân cờ; chỉ ô đích *thường* được nêu ra, như trong các ví dụ sau:

* *không phải tốt* các nước đi:
  * **Be5**: **B**tượng đi đến ô **e5**
  * **Nf3**: m**N**ã đi đến ô **f3**
* *tốt* các nước đi:
  * **c5**: một tốt đi đến ô **c5**
  * **Lưu ý**: trong một số trường hợp nhất định (ví dụ, một số lệnh LaTeX), tốt *được xác định* bằng chữ viết hoa **P**; vì vậy **c5** có thể được viết là **Pc5**.

#### Ba dấu chấm (...) chỉ nước đi của quân đen

Mục 8.2.2.2 của [Tiêu chuẩn Portable Game Notation](https://tim-mann.org/Standard) giải thích việc dùng ba dấu chấm (...) sau chỉ số nước đi (ví dụ, **3...e6**):

> Chỉ số nước đi của quân trắng được tạo từ số nguyên biểu thị số nước đi đầy đủ với một dấu chấm đơn ở cuối. Chỉ số nước đi của quân đen được tạo từ số nguyên biểu thị số nước đi đầy đủ với ***ba dấu chấm***.

### Quy ước cho một chuỗi nước đi

Như được giải thích trong bài viết Wikipedia về [Ký hiệu đại số](https://en.wikipedia.org/wiki/Algebraic_notation_\(chess\)#Formatting), để mô tả một chuỗi nước đi:

* mỗi nước đi riêng lẻ *thường* dùng chữ viết hoa cho các quân không phải tốt, mặc dù, như đã lưu ý ở trên, trong một số trường hợp (quy ước) chữ P viết hoa có thể được dùng để chỉ một nước đi của tốt.
* một chuỗi nước đi cờ vua là một dãy các `<nước đi quân trắng> <nước đi quân đen>` theo cặp—lưu ý rằng mỗi cặp nước đi đều được đánh số (xem ví dụ bên dưới)

### Các ký hiệu cờ khác: FAN và FEN

#### Ký hiệu đại số dạng quân cờ (hoặc FAN)

Các chữ cái đặc thù theo ngôn ngữ dùng để biểu diễn quân cờ thường được thay bằng các biểu tượng được nhận diện phổ biến đại diện cho quân cờ. Biểu diễn bằng biểu tượng này được gọi là Ký hiệu đại số dạng quân cờ, hay FAN. Ví dụ, ký hiệu ♞ (hoặc ♘) có thể được dùng thay cho N (cho quân mã).

Đặc tả Unicode mã hóa các ký tự cờ vua trong bộ [Ký hiệu linh tinh](https://www.unicode.org/charts/PDF/U2600.pdf). Bảng sau liệt kê giá trị Unicode, tên và biểu tượng đại diện cho từng ký tự cờ vua—các glyph thực tế (thiết kế ký tự) được dùng để hiển thị các biểu tượng cờ vua sẽ phụ thuộc vào cài đặt phông chữ trên thiết bị/trình duyệt của bạn.

| <p>Biểu tượng đại diện<br>(glyph)</p> | <p>Giá trị Unicode<br>(ở HEX)</p> | <p>Tên ký tự Unicode<br>(chính thức)</p> |
| ------------------------------------- | --------------------------------- | ---------------------------------------- |
| ♔                                     | 2654                              | VUA CỜ TRẮNG                             |
| ♕                                     | 2655                              | HẬU CỜ TRẮNG                             |
| ♖                                     | 2656                              | XE CỜ TRẮNG                              |
| ♗                                     | 2657                              | TƯỢNG CỜ TRẮNG                           |
| ♘                                     | 2658                              | MÃ CỜ TRẮNG                              |
| ♙                                     | 2659                              | TỐT CỜ TRẮNG                             |
| ♚                                     | 265A                              | VUA CỜ ĐEN                               |
| ♛                                     | 265B                              | HẬU CỜ ĐEN                               |
| ♜                                     | 265C                              | XE CỜ ĐEN                                |
| ♝                                     | 265D                              | TƯỢNG CỜ ĐEN                             |
| ♞                                     | 265E                              | MÃ CỜ ĐEN                                |
| ♟                                     | 265F                              | TỐT CỜ ĐEN                               |

#### Ký hiệu Forsyth-Edwards (FEN)

Như đã lưu ý, PGN được dùng để lưu trữ và trao đổi *toàn bộ ván cờ*, bao gồm tất cả các nước đi đã được thực hiện trong ván đó. Ngược lại, [Ký hiệu Forsyth-Edwards (FEN)](https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation) cung cấp một ảnh chụp nhanh của ván cờ tại một thời điểm nào đó. Ký hiệu FEN sử dụng chữ viết hoa và viết thường để biểu diễn các quân cờ:

* các quân trắng được xác định bằng chữ viết hoa (PNBRQK)
* các quân đen được xác định bằng chữ viết thường (pnbrqk)

trong đó P là tốt trắng và p là tốt đen.

Một thảo luận chi tiết về FEN, và so sánh nó với PGN, nằm ngoài phạm vi của bài viết này. Độc giả muốn hiểu rõ hơn sự khác biệt giữa PGN và FEN có thể muốn xem video sau:

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

## Một ví dụ đầu tiên với gói xskak

### Thực hiện các nước đi của bạn

Để dàn trang các nước đi cờ vua khi ván cờ diễn ra, bạn dùng lệnh `\mainline{*danh sách các nước đi*}` trong đó `*danh sách các nước đi*` được biểu diễn bằng [ký hiệu cờ vua đại số](#algebraic-notation). Chúng ta sẽ minh họa việc dàn trang chuỗi nước đi sau:

1. **e4 e5**: tốt trắng đi đến **e4**, tốt đen đi đến **e5**
2. **Nf3 Nc6**: quân trắng m**N**ã đi đến **f3**, quân đen m**N**ã đi đến **c6**
3. **Bb5 a6**: quân trắng **B**tượng đi đến **b5**, tốt đen đi đến **a6**

Chuỗi nước đi này có thể được viết bằng [`xskak` gói](https://ctan.org/pkg/xskak?lang=en) lệnh `\mainline{1.e4 e5 2.Nf3 Nc6 3.Bb5 a6}`—lưu ý rằng mỗi cặp nước đi được đánh số (ví dụ, `**1.**e4 e5`):

```latex
\documentclass{article}
\usepackage{xskak}
\begin{document}
\newchessgame
\mainline{1.e4 e5 2.Nf3 Nc6 3.Bb5 a6}
\showboard % Một lệnh của gói skak. Các ví dụ sau sẽ dùng \chessboard[...]
\end{document}
```

[Mở ví dụ này trong 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)

Tệp này `xskak` ví dụ tạo ra kết quả sau:

![](/files/32041c43eb7e9e053644964d24a93911f915b0ca)

Các lệnh sau được sử dụng:

* **`\newchessgame[〈danh sách key=value〉]`**: bắt đầu một ván cờ mới và khởi tạo bàn cờ. Phần `[〈danh sách key=value〉]` là tùy chọn nên bạn cũng có thể viết `\newchessgame` và dựa vào thiết lập bàn cờ mặc định. Tập hợp các khóa tùy chọn được liệt kê trong [`xskak` tài liệu](https://texdoc.org/serve/xskak/0).
* **`\mainline{〈danh sách các nước đi cờ〉}`**: xử lý `〈danh sách các nước đi cờ〉` và cập nhật bàn cờ sao cho `\showboard` (hoặc `\chessboard`) dàn trang trạng thái hiện tại của bàn cờ.
* **`\showboard`**: dàn trang bàn cờ. Lệnh `\showboard` lệnh này xuất phát từ gói `skak` , gói này `xskak` mở rộng. Gói [`chessboard` gói](https://ctan.org/pkg/chessboard?lang=en), được tải bởi `xskak`, cung cấp lệnh rất linh hoạt **`\chessboard[〈danh sách key=value〉]`** mà `xskak` gói bổ sung thêm các khóa. Vì `\chessboard[...]` được dự định để thay thế `\showboard`, các ví dụ trong tương lai của bài viết này sẽ chỉ dùng `\chessboard[...]` lệnh này.

### Giới thiệu lệnh \chessboard

Lệnh **`\chessboard[〈danh sách key=value〉]`**: dàn trang bàn cờ bằng một `〈danh sách key=value〉`. Danh sách `các khóa` có thể dùng là *rộng rãi*, cung cấp khả năng kiểm soát rất lớn đối với kích thước, nội dung, bố cục, thiết kế, chú thích v.v. của bàn cờ. Độc giả được khuyến khích đọc tài liệu gói tuyệt vời của [`chessboard` (PDF)](https://texdoc.org/serve/chessboard/0) và [`xskak` (PDF)](https://texdoc.org/serve/xskak/0), cả hai đều chứa nhiều ví dụ hữu ích—*nhiều* nhiều hơn mức chúng ta có thể minh họa trong bài viết này.

Vì các khóa là tùy chọn, bạn có thể viết `\chessboard` lệnh này dùng các giá trị mặc định của gói để dàn trang một bàn cờ; ví dụ, đoạn mã sau dàn trang hai bàn cờ bằng `\chessboard` mà không có bất kỳ tùy chọn nào. Các chú thích bổ sung, được thêm thủ công trong Inkscape, cho thấy *các mover* (ở đây là các ô vuông) được dàn trang theo mặc định:

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

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

[Mở ví dụ này trong 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)

Đồ họa sau cho thấy hai bàn cờ được tạo ra bởi đoạn mã trên, cả hai đều được dàn trang bằng `\chessboard`:

![](/files/bc7f6d423cbdc846a3c325c645f022ef7c19c1ba)

Không có gì ngạc nhiên, có nhiều khóa khác nhau để điều khiển mover, bao gồm hiển thị hoặc ẩn nó; ví dụ, để ẩn mover bạn có thể dùng `showmover` khóa với giá trị `false`:

```latex
\documentclass{article}
\usepackage{xskak}
\begin{document}
\newchessgame
\mainline{1.e4 e5 2.Nf3 Nc6 3.Bb5 a6}\par
\chessboard[showmover=false] % Ẩn mover
\end{document}
```

[Mở ví dụ này trong 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)

Ví dụ này tạo ra kết quả sau—một bàn cờ không có mover:

![](/files/ebfe2f29d553879b029ba18eaa416dcc1258ce05)

Tính năng [`chessboard` tài liệu gói (PDF)](https://texdoc.org/serve/chessboard/0) cung cấp danh sách các khóa để tùy chỉnh mover, cùng với ghi chú về cách thiết kế mover của riêng bạn!

## Các ví dụ xskak bổ sung

### Bình luận văn bản

Đặc tả PGN hỗ trợ việc thêm bình luận bằng cách đặt dấu ngoặc nhọn bao quanh phần văn bản của bình luận: `{〈Văn bản〉}`; tuy nhiên, `xskak` gói này ưu tiên viết bình luận văn bản dưới dạng `\xskakcomment{〈Văn bản〉}`, như được minh họa trong ví dụ sau:

```latex
\documentclass{article}
\usepackage{xskak}
\begin{document}
\newchessgame %Khởi tạo một ván cờ mới
\mainline{1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 \xskakcomment{ Đây là một bình luận. }}\vspace{3mm}

\chessboard
\end{document}
```

[Mở ví dụ này trong 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)

Ví dụ này tạo ra kết quả sau:

![](/files/102dc5c72d2cf94ec50b8136affabcd683d70476)

### Khởi tạo bàn cờ bằng ký hiệu FEN

Bạn có thể dùng FEN để bắt đầu bàn cờ ở bất kỳ vị trí nào. Ví dụ sau dùng `setfen` một khóa trong `\chessboard` lệnh để minh họa một ví dụ FEN lấy từ `skak` tài liệu của gói:

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

[Mở ví dụ này trong 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)

Ví dụ này tạo ra kết quả sau:

![](/files/d75bd981e1a328eeeeb439a8309bc69c942e8fb3)

Ký hiệu FEN điền vào bàn cờ bắt đầu từ hàng trên cùng (hàng số 8) và đi xuống để điền các hàng tiếp theo. Ví dụ, để khởi tạo bàn cờ ở trên, hàng 8 được mô tả bằng **r5k1**:

* **r**ook
* **5** ô trống
* trang **k**ing
* **1** ô trống

do đó sử dụng ký hiệu **r5k1**. Lưu ý việc sử dụng chữ cái thường để mô tả các quân cờ đen cùng với việc sử dụng chữ cái in hoa **P** cho các tốt trắng và chữ cái thường **p** cho các tốt đen.

### Sử dụng \lastmove

Tính năng `\lastmove` lệnh có thể được dùng để chú thích nước đi cuối cùng đã thực hiện:

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

\chessboard

\lastmove{} là nước khai cuộc phổ biến nhất.
\end{document}
```

[Mở ví dụ này trong 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)

Ví dụ này tạo ra kết quả sau:

![](/files/cdcef570cd937dd0ae6e8407aacd130693f06302)

### Các biến thể và một ví dụ về ký hiệu ...

Phần sau tái hiện một ví dụ có trong `skak` tài liệu gói, đã được cập nhật để dùng `xskak` các lệnh. Ở đây, chúng ta thấy một ví dụ về `\variation` lệnh và cú pháp ba chấm (...) [được dùng để chỉ một nước đi của quân đen](#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}

Một biến thể \variation{3...Nf6} được dùng ở đây để minh họa lệnh \texttt{\string\variation}.

\mainline{4.Ba4}

\chessboard
\end{document}
```

[Mở ví dụ này trong 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)

Ví dụ này tạo ra kết quả sau:

![](/files/327095cf4042aa319e029fb7b395e2b6464d4048)

### Chỉ hiển thị một số quân cờ nhất định

Bởi vì `xskak` tải `chessboard` gói, bạn có thể sử dụng lệnh cực kỳ mạnh mẽ **`\chessboard[〈danh sách key=value〉]`** để hiển thị hoặc ẩn các khu vực của bàn cờ, hoặc các nhóm quân cờ mà bạn quan tâm. Tài liệu [tài liệu chessboard](https://texdoc.org/serve/chessboard/0) chứa nhiều ví dụ, chẳng hạn như các ví dụ được tái hiện dưới đây.

#### Sử dụng các khóa để ẩn một số ô

Ví dụ này sử dụng các khóa `hideall`, `showpieces` và `addpieces`:

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

[Mở ví dụ này trong 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)

Tệp này `xskak` ví dụ tạo ra kết quả sau:

![](/files/2ac8fb0559a74ffd7b84874f56badfd4be4e29e1)

Ví dụ này sử dụng các khóa `hidefiles`, `showfiles` và `showranks`:

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

[Mở ví dụ này trong 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)

Tệp này `xskak` ví dụ tạo ra kết quả sau:

![](/files/4d1c8d5b60ff8270a97dcecddd89c5dd148a0a3d)

#### Sử dụng các khóa để ẩn tất cả các quân trắng hoặc tất cả các quân đen

Ví dụ sau minh họa các khóa `hidewhite` và `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}
```

[Mở ví dụ này trong 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)

Tệp này `xskak` ví dụ tạo ra kết quả sau:

![](/files/914d1c568d3b4e4335148d44ceffb4ad11c872fd)

## Các ví dụ khác từ tex.stackexchange

Các ví dụ sau sử dụng các giải pháp được tìm thấy trên [tex.stackexchange.com](https://tex.stackexchange.com).

### Làm thế nào để tô sáng các ô?

Nguồn: dựa trên <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}
```

[Mở ví dụ này trong 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/b393c654575e962bb6a1bf91764cddbb9ae223bc)

### Tạo các kiểu bàn cờ khác nhau

Nguồn: dựa trên <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}
```

[Mở ví dụ này trong 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)

Tệp này `xskak` ví dụ tạo ra kết quả sau:

![](/files/88656262d0bf1a7cde9be99172e11029f84d8fa7)

## Đọc thêm

Để biết thêm thông tin, xem:

* [Tạo một tài liệu trong LaTeX](/latex/vi/kien-thuc-co-ban-ve-latex/01-learn-latex-in-30-minutes.md)
* [Chèn hình ảnh](/latex/vi/chu-de-khac/27-inserting-images.md)
* [Định vị hình ảnh và bảng](/latex/vi/hinh-va-bang/02-positioning-images-and-tables.md)
* [Hỗ trợ ngôn ngữ quốc tế](/latex/vi/ngon-ngu/03-international-language-support.md)
* [Kích thước phông chữ, họ phông và kiểu chữ](/latex/vi/phong-chu/01-font-sizes-families-and-styles.md)
* [Kiểu chữ](/latex/vi/phong-chu/02-font-typefaces.md)
* [Quản lý trong một dự án lớn](/latex/vi/cau-truc-tai-lieu/07-management-in-a-large-project.md)
* [Tính năng `skak` gói](https://ctan.org/pkg/skak?lang=en)
* [Tính năng `xskak` gói](https://ctan.org/pkg/xskak?lang=en)
* [Ký hiệu đại số trong cờ vua (trên Wikipedia)](http://en.wikipedia.org/wiki/Algebraic_notation_\(chess\))
* [Ký hiệu Forsyth-Edwards (FEN) (trên Wikipedia)](http://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation)
* [Tính năng `chessboard` gói](https://ctan.org/pkg/chessboard?lang=en)
* [Văn bản của tiêu chuẩn 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/vi/theo-linh-vuc/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.
