> 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/33-mathtools-for-beautiful-math.md).

# Mathtools - cho toán học đẹp

**Tác giả: Robert Murrish (tháng 6 năm 2012)**

`mathtools` là gói mà có lẽ bạn chưa bao giờ biết mình cần đến. LaTeX giúp việc dàn trang các phương trình trở nên dễ dàng, và `mathtools` làm cho những phương trình đó trở nên đẹp mắt.

`mathtools` là một phần mở rộng của `amsmath`. Nếu bạn bao gồm `mathtools`thì bạn có thể dùng bất kỳ hàm hay macro nào từ gói đó. `amsmath` là một bộ công cụ rộng lớn để dàn trang các phương trình, và được sử dụng rất phổ biến. `mathtools` mở rộng `amsmath` các hàm để cung cấp thêm tùy chọn định dạng và khắc phục một số vấn đề thường gặp hơn trong việc dàn trang toán học.

### Một vài ví dụ

#### Phân số hai dòng

Một phân số phức tạp có thể rộng đến mức vượt quá chiều rộng cột. Tách tử số và/hoặc mẫu số thành nhiều dòng là một cách tinh tế để giữ nó gọn trong một chỗ.

```latex
z=\frac{ab+cd+ef+gh+ij+kl+mn+op+qr}{y}
z=\frac{\splitfrac{ab+cd+ef+gh+ij}{+kl+mn+op+qr}}{y}
```

![Fract.png](/files/1806d90b089adf3522e378403ec069acf421f827)

#### Tham số tổng dài

Không có `mathtools` hàm `\mathclap`, sẽ tạo ra thêm khoảng trắng ở hai bên ký hiệu tổng, do các chỉ số ở bên dưới. Một lệnh `mathtools` đơn giản sẽ nén kết quả lại.

```latex
P_e_i_\Delta = \sum_{j=1, j\not=k,i}E_iE_jB_i_j cos\delta_i_j\delta_i_j_\Delta + V_kE_iB_i_k cos\delta_i_k_o \delta_i_k_\Delta

P_e_i_\Delta = \sum_{\mathclap{j=1, j\not=k,i}}E_iE_jB_i_j cos\delta_i_j \delta_i_j_\Delta + V_kE_iB_i_k cos\delta_i_k_o \delta_i_k_\Delta
```

![Mathclap.png](/files/52f66279787ee01d1c8ad964f7b7c30c8feddc4b)

#### Chỉ số trước

Cho phép đặt số mũ và chỉ số ở bên trái (phía trước) của một ký hiệu. Đây là một ví dụ hóa học:

```latex
\prescript{238}{92}{\mathbf{U}}
```

![U238.png](/files/02e1ba6959e18895c999ecf12b96965c079add22)

Những ví dụ đầy đủ này là một điểm khởi đầu tốt để khám phá `mathtools`, nhưng còn nhiều công cụ khác có sẵn trong gói này. Dưới đây là danh sách đầy đủ tất cả các macro có trong gói (tính đến ngày bài viết này được viết). Để xem danh sách cập nhật và các chi tiết cụ thể về cách dùng từng cái, hãy xem [tài liệu cho `mathtools` gói](https://ctan.org/pkg/mathtools?lang=en).

|                                                                                                                               |                                                                                                                                                                                                                                                                                                                                              |
| ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Tên hàm**                                                                                                                   | **Mô tả**                                                                                                                                                                                                                                                                                                                                    |
| mathclap                                                                                                                      | Hàm này dàn trang đối số của nó mà không chiếm bất kỳ khoảng ngang nào, nhô ra cân xứng ở cả hai bên. Như đã ցույց ở trên, hàm này có thể dùng để loại bỏ một số khoảng trắng thừa có thể xuất hiện trong chỉ số dưới, số mũ, v.v.                                                                                                           |
| <p>mathrlap<br>mathllap</p>                                                                                                   | Giống như mathclap, nhưng chỉ nhô ra về phía bên phải hoặc bên trái, tương ứng.                                                                                                                                                                                                                                                              |
| cramped                                                                                                                       | Tương tự như mathclap, hàm này nén một số mục nhất định. Ví dụ, nó kéo các số mũ lại gần hơn một chút, điều này có thể hữu ích đặc biệt khi có nhiều hơn một cấp số mũ.                                                                                                                                                                      |
| <p>crampedclap<br>crampedrlap<br>crampedllap</p>                                                                              | Áp dụng cả cramped và mathclap (hoặc mathrlap, v.v.). Tác dụng giống như áp dụng riêng từng cái, nhưng xử lý nhanh hơn.                                                                                                                                                                                                                      |
| smashoperator                                                                                                                 | Nén văn bản như một sự kết hợp của tất cả các hàm ở trên. Cách dùng này đơn giản hơn trong hầu hết trường hợp, nhưng bạn mất đi một phần khả năng kiểm soát và có thể không hài lòng lắm với kết quả. Trong trường hợp đó, hãy dùng các hàm ở trên riêng lẻ.                                                                                 |
| adjustlimits                                                                                                                  | Hoạt động trên các giới hạn (\lim) để căn thẳng đứng các giới hạn phức tạp hơn.                                                                                                                                                                                                                                                              |
| SwapAboveDisplaySkip                                                                                                          | Loại bỏ một phần khoảng trắng phía trên một phương trình.                                                                                                                                                                                                                                                                                    |
| <p>newtagform<br>renewtagform<br>usetagform</p>                                                                               | Các "tag" là số của phương trình, và bộ hàm này cho phép bạn sửa đổi chúng, ví dụ như đổi dấu ngoặc, kiểu chữ, v.v.                                                                                                                                                                                                                          |
| refeq                                                                                                                         | Một cách thay thế để tham chiếu các hàm trong phần văn bản của tài liệu mà không gây ra vấn đề lệch phông chữ.                                                                                                                                                                                                                               |
| showonlyrefs                                                                                                                  | Đây là một cờ, không phải là một hàm, nhưng vẫn rất hữu ích. Nếu được bật, chỉ những phương trình được tham chiếu trong văn bản mới được đánh số phương trình.                                                                                                                                                                               |
| showmanualtags                                                                                                                | Giống như showonlyrefs, nhưng dành cho các phương trình đã được đặt tag thủ công.                                                                                                                                                                                                                                                            |
| noeqref                                                                                                                       | Cho phép bạn tạo một ngoại lệ cho hai cờ ở trên, để hiển thị số hoặc tag của phương trình ngay cả khi nó không được tham chiếu trong văn bản.                                                                                                                                                                                                |
| <p>xleftrightarrow<br>xLeftarrow<br>xRightarrow<br>xhookleftarrow<br>xhookrightarrow<br>xmapsto</p>                           | Một bộ hàm để vẽ nhiều loại mũi tên khác nhau, sẽ giãn ra khi cần để vừa với văn bản liên quan.                                                                                                                                                                                                                                              |
| <p>xrightharpoondown<br>xleftharpoondown<br>xrightharpoonup<br>xleftharpoonup<br>xrightleftharpoons<br>xleftrightharpoons</p> | Một bộ 'harpoon' hoặc mũi tên dọc. Tương tự như các mũi tên, chúng sẽ giãn ra khi cần                                                                                                                                                                                                                                                        |
| <p>overbrace<br>underbrace</p>                                                                                                | Đặt một dấu ngoặc móc lên trên hoặc dưới phương trình. Giống như các hàm tích hợp sẵn trong LaTeX, nhưng thường sẽ được dàn trang đẹp hơn. Bạn có thể dùng \LaTeXoverbrace và \LaTeXunderbrace nếu cần các hàm LaTeX gốc.                                                                                                                    |
| <p>overbracket<br>underbracket</p>                                                                                            | Đặt lên trên hoặc dưới một phương trình giống như overbrace và underbrace, nhưng với dấu ngoặc vuông.                                                                                                                                                                                                                                        |
| begin{matrix} và các lệnh tương tự                                                                                            | Có một số tùy chọn để dàn trang ma trận. Chúng chủ yếu phục vụ để căn giữa các phần tử tốt hơn so với cài đặt mặc định, nhưng cũng có một số tùy chọn khác, như smallmatrix. Tôi khuyên bạn nên xem tài liệu chính thức của mathtools để xác định tùy chọn nào phù hợp nhất với nhu cầu của bạn, sau khi bạn đã định nghĩa xong một ma trận. |
| multlined                                                                                                                     | Tách một phương trình dài thành nhiều phần, tương tự như các phân số tách dòng trong ví dụ đầu tiên ở trên.                                                                                                                                                                                                                                  |
| begin{cases} và các lệnh tương tự                                                                                             | Các công cụ để dàn trang đúng cách cho các phương trình từng phần. Một lần nữa, có rất nhiều tùy chọn, thay vì trình bày hết tất cả, tôi xin chuyển bạn đến tài liệu chính thức của mathtools sau khi bạn đã biết phương trình từng phần của mình trông như thế nào.                                                                         |
| MoveEqLeft                                                                                                                    | Một cách để tạo thụt lề cho các phương trình nếu cần.                                                                                                                                                                                                                                                                                        |
| Aboxed                                                                                                                        | Vẽ một khung quanh một phương trình.                                                                                                                                                                                                                                                                                                         |
| <p>ArrowBetweenLines<br>vdotswithin<br>shortvdotswithin<br>MTFlushSpaceAbove<br>MTFlushSpaceBelow</p>                         | Các hàm này cho phép vẽ trong khoảng trắng giữa các phương trình, mũi tên, dấu chấm, v.v.                                                                                                                                                                                                                                                    |
| shortintertext                                                                                                                | Giống như hàm \intertext trong amsmath, hàm này cho phép chèn một đoạn văn bản vào giữa chuỗi phương trình mà không làm ảnh hưởng đến sự căn chỉnh. Phiên bản này tạo ra ít khoảng trắng hơn.                                                                                                                                                |
| DeclarePairedDelimiter                                                                                                        | Cho phép định nghĩa các dấu phân tách mới, và ví dụ trong tài liệu là tạo ra một cặp dấu giá trị tuyệt đối có chiều cao phù hợp cho một phân số. Hàm này có một số tùy chọn nâng cao.                                                                                                                                                        |
| <p>lparen<br>rparen</p>                                                                                                       | Tương đương với \left(, \right). Được cung cấp để tương thích.                                                                                                                                                                                                                                                                               |
| vcentcolon                                                                                                                    | Vẽ dấu hai chấm được căn giữa theo chiều dọc.                                                                                                                                                                                                                                                                                                |
| <p>nuparrow<br>ndownarrow<br>bigtimes</p>                                                                                     | Cung cấp các ký tự đôi khi không có sẵn theo cách khác.                                                                                                                                                                                                                                                                                      |
| prescript                                                                                                                     | Cho phép đặt số mũ và chỉ số trước một ký tự, như minh họa trong ví dụ 3 ở trên.                                                                                                                                                                                                                                                             |
| begin{spreadlines}                                                                                                            | Môi trường spreadlines cho phép bạn xác định rõ ràng khoảng cách dọc giữa các phương trình.                                                                                                                                                                                                                                                  |
| <p>splitfrac<br>splitdfrac</p>                                                                                                | Cho phép tách tử số hoặc mẫu số trong các phân số, như trong ví dụ 1 ở trên.                                                                                                                                                                                                                                                                 |

Sau đây là các liên kết trực tiếp đến một số tài liệu mathtools có sẵn:

* [`mathtools` gói và tài liệu trên CTAN](https://ctan.org/pkg/mathtools?lang=en);
* [bài viết trong TUGboat](http://www.tug.org/TUGboat/Articles/tb22-4/tb72perlS.pdf).


---

# 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/33-mathtools-for-beautiful-math.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.
