> 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/bai-viet-chuyen-sau/25-how-to-create-a-multilingual-customisable-cd-disk-jewel-case-calendar-using-latex.md).

# Cách tạo lịch hộp đĩa CD đa ngôn ngữ, có thể tùy chỉnh bằng LaTeX

Tính linh hoạt của LaTeX khiến nó trở thành một công cụ khá tiện dụng (và miễn phí!) để tạo ra nhiều thứ hay ho, bao gồm cả lịch tháng. Vì vậy, đây là thử sức của tôi trong việc tạo ra một [lớp và mẫu LaTeX](https://www.overleaf.com/read/vtqtzgbcvmbg) để tạo ra các lịch tháng có thể tùy chỉnh, đa ngôn ngữ, vừa với hộp đĩa CD hoặc hộp đĩa mềm 3,5". Có thể thêm hình ảnh và sự kiện, và bạn có thể chọn bất kỳ khoảng tháng nào cho lịch của mình—không nhất thiết phải bắt đầu từ tháng Một và kết thúc vào tháng Mười Hai.

[![{{{alt}}}](/files/d7e2c324a91da8097b5e5c640732dffb55b6b183)](https://www.overleaf.com/read/vtqtzgbcvmbg)

Bạn có thể làm chúng để dùng cá nhân, làm quà tặng hoặc kỷ vật cho các sự kiện đặc biệt, ví dụ như kỷ niệm ngày cưới. Chúng cũng có thể được dùng cho mục đích quảng bá hoặc làm hàng hóa nếu bạn đang điều hành một câu lạc bộ hay hội nhóm nào đó. Ví dụ, bạn có thể làm một cuốn lịch giới thiệu những loài chim thường lui tới khu vực của bạn cho câu lạc bộ ngắm chim địa phương. Trong công việc, bạn có thể muốn làm một cuốn lịch cho nhóm đọc bài báo khoa học của mình, nhấn mạnh những ngày quan trọng cho bài tập và các bài nộp hội nghị trong lĩnh vực của bạn ở học kỳ tới.

### Các lịch tháng

Tính năng `cdcalendar` sẽ thiết lập kích thước lịch thành [vừa với hộp đựng đĩa CD](https://www.overleaf.com/read/htkctjjgmxjx), và sắp xếp chúng trên giấy khổ A4:

```latex
\documentclass[12pt]{cdcalendar}
\begin{document}

%% Tháng 6 năm 2015
\monthCalendar{2015}{06}
\clearpage

%% Tháng 7 năm 2015
\monthCalendar{2015}{07}
\end{document}
```

Nếu bạn muốn tạo một lịch nhỏ hơn để [vừa với hộp đựng đĩa mềm 3,5"](https://www.overleaf.com/read/vtqtzgbcvmbg) thay vào đó, hãy truyền `small` tùy chọn `cdcalendar` cho lớp:

```latex
\documentclass[9pt,small]{cdcalendar}
```

Đối với những ai quan tâm đến chi tiết kỹ thuật: lịch được hiển thị bằng `tikz`, và bố cục 2 trang hoặc 4 trang trên một tờ được thực hiện bằng `pgfpages`.

### Thêm hình minh họa

Tôi đã định nghĩa một `\illustration` lệnh để thêm đồ họa vào mỗi trang của lịch:

```latex
\usepackage{graphicx}

%% cú pháp: \illustration[caption]{width}{image-file-name}
\illustration[Chúng tôi đã rất vui trong bữa tiệc sinh nhật!]{8.5cm}{Party.jpg}
```

Hình ảnh sẽ được thêm ở góc trên bên trái của trang hiện tại. Tỷ lệ gốc sẽ được giữ nguyên, vì vậy bạn cần chọn một hình minh họa có tỷ lệ phù hợp để vừa với khoảng trống.

### Thêm/đánh dấu sự kiện

Bạn có thể đánh dấu sự kiện cho từng tháng bằng `\event` lệnh:

```latex
\event{2015-10-25}{Kết thúc giờ mùa hè}
```

Sự kiện sẽ được liệt kê phía trên lịch tháng, và ngày sẽ được khoanh tròn ngay trên lịch. Các sự kiện phải được đặt *sau* tháng liên quan `\monthCalendar` và trên cùng một trang.

Nếu sự kiện của bạn kéo dài qua nhiều ngày, bạn có thể cho thời lượng (tính bằng ngày) làm tùy chọn cho `\event`:

```latex
\event[5]{2015-07-26}{ACL 2015, Bắc Kinh}
```

Ngoài ra, bạn cũng có thể truyền *ngày kết thúc* làm tùy chọn thay thế:

```latex
\event[2015-07-31]{2015-07-26}{ACL 2015, Bắc Kinh}
```

Cả hai dạng lệnh đều sẽ cho ra cùng một kết quả.

Nếu một sự kiện kéo dài qua hai tháng, ví dụ `\event[9]{2015-06-27}{Trại hè}`, bạn sẽ phải thực hiện lệnh này trong cả hai tháng, tức là một lần cho tháng Sáu và một lần cho tháng Bảy:

```latex
\monthCalendar{2015}{06}
\event[9]{2015-06-27}{Trại hè}
\clearpage

\monthCalendar{2015}{07}
\event[9]{2015-06-27}{Trại hè}
\clearpage
```

### Lịch đa ngôn ngữ

Ngày tháng, tên tháng và chữ cái đầu của các ngày trong tuần có thể được bản địa hóa sang các ngôn ngữ được hỗ trợ bởi `babel`, `translator` và `datetime2`.

Ví dụ, để có một cuốn lịch với ngày tháng tiếng Tây Ban Nha, chỉ cần truyền `spanish` làm tùy chọn của lớp:

```latex
\documentclass[12pt,spanish]{cdcalendar}
```

Chúng tôi đã thử các tùy chọn ngôn ngữ sau: `Anh, Tây Ban Nha, Pháp, Đức mới, Ý, Bồ Đào Nha, Ba Lan, Croatia, Hy Lạp`.

Chỉ cần nhớ [dùng LuaLaTeX](https://www.overleaf.com/blog/167) để biên dịch dự án của bạn nếu nó ở `tiếng Pháp`—nó không hoạt động tốt với PDFLaTeX, và XeLaTeX cũng không hoạt động tốt với mẫu này.

### Tùy chỉnh kiểu dáng

Phông chữ và màu sắc của hầu hết các thành phần có thể được tùy chỉnh ở bất kỳ thời điểm nào trong lịch; hãy xem các mẫu để xem một vài ví dụ. Để tiện lợi, một `\makeCover` lệnh (và các lệnh siêu dữ liệu cần thiết) cũng được cung cấp.

Việc tạo ra [mẫu này](https://www.overleaf.com/read/vtqtzgbcvmbg)—chúng tôi chắc chắn bạn sẽ còn tìm thấy nhiều cách dùng khác cho lịch này nữa. Hãy tận hưởng!


---

# 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/bai-viet-chuyen-sau/25-how-to-create-a-multilingual-customisable-cd-disk-jewel-case-calendar-using-latex.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.
