> 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/43-step-7-using-noto-sans-and-roboto-mono-variable-fonts-with-latex.md).

# Bước 7: Dùng phông chữ biến đổi Noto Sans và Roboto Mono với LaTeX

[Giới thiệu](https://www.overleaf.com/learn/latex/Articles/How_to_use_OpenType_variable_fonts_with_LaTeX?preview=true) [Bước 1](https://www.overleaf.com/learn/latex/Articles/Step_1:_Setting_up_an_Overleaf_project_to_use_variable_fonts?preview=true) [Bước 2](https://www.overleaf.com/learn/latex/Articles/Step_2:_An_introduction_to_LaTeX_fonts?preview=true) [Bước 3](https://www.overleaf.com/learn/latex/Articles/Step_3:_Replacing_LaTeX’s_default_fonts_with_variable_fonts?preview=true) [Bước 4](https://www.overleaf.com/learn/latex/Articles/Step_4:_How_to_configure_an_italic_variable_font_using_fontspec?preview=true) [Bước 5](https://www.overleaf.com/learn/latex/Articles/Step_5:_LaTeX_font_weights_and_named_instances_of_variable_fonts?preview=true) [Bước 6](https://www.overleaf.com/learn/latex/Articles/Step_6:_Using_variable_fonts_to_add_bold_fonts_to_an_Overleaf_project?preview=true) [Bước 7](https://www.overleaf.com/learn/latex/Articles/Step_7:_Using_Noto_Sans_and_Roboto_Mono_variable_fonts_with_LaTeX?preview=true) [Bước 8](https://www.overleaf.com/learn/latex/Articles/Step_8:_How_to_create_a_simple_LaTeX_package_to_configure_your_variable_fonts?preview=true) [Ví dụ và dự án](https://www.overleaf.com/learn/latex/Articles/Overleaf_projects_showing_how_to_use_variable_fonts_with_LaTeX?preview=true)

Trong bước này, chúng ta cấu hình các kiểu phông đậm, nghiêng và đậm-nghiêng cho Noto Sans và Roboto Mono, đồng thời minh họa cách dùng chúng để dàn chữ small caps ở dạng đậm, nghiêng và đậm-nghiêng.

Mở dự án Overleaf hiện tại đã được cấu hình ở Bước 6.

## Cấu hình Noto Sans và Roboto Mono

Chúng ta muốn bật các kiểu phông đậm, nghiêng và đậm-nghiêng cho Noto Sans và Roberto Mono. Các yêu cầu này được tóm tắt trong bảng sau bằng các ký hiệu chuỗi và hình dạng phông chuẩn của LaTeX. Hãy nhớ rằng m bị lược bỏ khỏi ký hiệu chuỗi *ngoại trừ* trong đó *cả hai* chiều rộng và độ đậm là m (trung bình).

| **Mô tả phông**                                                | **Mã định danh dãy kiểu chữ** | **Độ đậm** | **Độ rộng** | **Kiểu** |
| -------------------------------------------------------------- | ----------------------------- | ---------- | ----------- | -------- |
| phông đậm, độ rộng trung bình, ở dạng bình thường (thẳng đứng) | b                             | b          | m           | n        |
| phông độ đậm trung bình, độ rộng trung bình, ở dạng nghiêng    | m                             | m          | m           | nghiêng  |
| phông đậm, độ rộng trung bình, ở dạng nghiêng                  | b                             | b          | m           | nghiêng  |

Các phần sau đây trình bày cách cấu hình Noto Sans và Roberto Mono để sử dụng các chuỗi và hình dạng phông này. Phần [Ghép tất cả lại với nhau](#putting-it-all-together) cho thấy cách kích hoạt các kiểu phông này bằng `\setsansfont` và `\setmonofont` lệnh.

### Chọn giá trị trục trọng lượng cho độ đậm trung bình và đậm

Chúng ta sẽ bắt đầu bằng cách chọn các giá trị trục trọng lượng để xác định các phiên bản độ đậm trung bình và độ đậm cao (LINK TO TUTORIAL SECTION) của Noto Sans và Roberto Mono. Trục [trọng lượng của Noto Sans](https://fonts.google.com/specimen/Noto+Sans/tester) dao động từ 100 đến 900, còn đối với [Roboto Mono](https://fonts.google.com/specimen/Roboto+Mono/tester) phạm vi là 100 đến 700, gợi ý các giá trị trọng lượng sau:

| **Tên phông** | **Độ đậm trung bình** | **Độ đậm cao** |
| ------------- | --------------------- | -------------- |
| Noto Sans     | 400                   | 600            |
| Roboto Mono   | 300                   | 550            |

### Cấu hình phông nghiêng độ đậm trung bình cho Noto Sans và Roboto Mono

Để thêm các phông nghiêng, chúng ta dùng khóa `ItalicFont` của fontspec, khóa này có dạng

```
ItalicFont=⟨font name⟩
```

trong đó ⟨font name⟩ là tên của một phông, hoặc tên của một tệp phông.

Thư mục `VariableFonts` của dự án Overleaf chứa các tệp phông nghiêng mà chúng ta cần dùng:

* NotoSans-Italic-VariableFont-wdth-wght.ttf
* RobotoMono-VariableFont-wght.ttf

Dựa trên các tên tệp này và các giá trị trục trọng lượng đã liệt kê ở trên, có thể thêm phần nghiêng độ đậm trung bình bằng các lệnh được nêu trong các phần sau.

#### Thiết lập cho phông đứng và nghiêng độ đậm trung bình của Noto Sans

Đối với Noto Sans, đoạn mã sau sẽ được thêm vào phần tiền định của tài liệu (xem phần [Ghép tất cả lại với nhau](#putting-it-all-together)).

```latex
\setsansfont{NotoSans-VariableFont-wdth-wght.ttf}[
Weight=400,
ItalicFont=NotoSans-Italic-VariableFont-wdth-wght.ttf
]
```

#### Thiết lập cho phông đứng và nghiêng độ đậm trung bình của Roboto Mono

Đối với Roboto Mono, đoạn mã sau sẽ được thêm vào phần tiền định của tài liệu (xem phần [Ghép tất cả lại với nhau](#putting-it-all-together)).

```latex
\setmonofont{RobotoMono-VariableFont-wght.ttf}[
Weight=300,
ItalicFont=RobotoMono-Italic-VariableFont-wght.ttf
]
```

### Cấu hình đậm và đậm-nghiêng cho Noto Sans và Roboto Mono

Như trình bày ở Bước XXX (Link), chúng ta sẽ thêm các phông đậm bằng khóa `FontFace` của fontspec, khóa này có dạng sau

```
FontFace = {⟨series⟩}{⟨shape⟩}{ Font = ⟨font name⟩ , ⟨features⟩ }
```

trong đó

* `⟨series⟩` là mã chuỗi của LaTeX (liên kết tới phần)
* `⟨shape⟩` là mã hình dạng của LaTeX (liên kết tới phần)
* `⟨font name⟩` là tên của một tệp phông hoặc tên của một phông
* `⟨features⟩` chứa các thiết lập chúng ta sẽ dùng để cấu hình các phông biến, chẳng hạn như đặt các giá trị cho trục chiều rộng hoặc trọng lượng

#### Thiết lập cho phông đậm và đậm-nghiêng của Noto Sans

Đối với kiểu đậm, dạng bình thường (thẳng đứng) chúng ta có:

* `⟨series⟩` = b
* `⟨shape⟩` = n
* `⟨font name⟩` = NotoSans-VariableFont-wdth-wght.ttf
* `⟨features⟩` = Weight=600

kết quả là

```
FontFace = {b}{n}{Font = NotoSans-VariableFont-wdth-wght.ttf, Weight=600}
```

Đối với kiểu đậm, dạng nghiêng:

* `⟨series⟩` = b
* `⟨shape⟩` = it
* `⟨font name⟩` = NotoSans-VariableFont-wdth-wght.ttf
* `⟨features⟩` = Weight=600

kết quả là

```
FontFace = {b}{it}{Font = NotoSans-VariableFont-wdth-wght.ttf, Weight=600}
```

#### Thiết lập cho phông đậm và đậm-nghiêng của Roboto Mono

Đối với kiểu đậm, dạng bình thường (thẳng đứng) chúng ta có:

* `⟨series⟩` = b
* `⟨shape⟩` = n
* `⟨font name⟩` = RobotoMono-VariableFont-wght.ttf
* `⟨features⟩` = Weight=550

kết quả là

```
FontFace = {b}{n}{Font = RobotoMono-VariableFont-wght.ttf, Weight=550}
```

Đối với kiểu đậm, dạng nghiêng chúng ta có:

* `⟨series⟩` = b
* `⟨shape⟩` = it
* `⟨font name⟩` = RobotoMono-VariableFont-wght.ttf
* `⟨features⟩` = Weight=550

kết quả là

```
FontFace = {b}{it}{Font = RobotoMono-VariableFont-wght.ttf, Weight=550}
```

## Ghép tất cả lại với nhau

Để áp dụng các cấu hình đã thảo luận ở trên, hãy mở dự án Overleaf hiện tại và thay thế các `\setsansfont` và `\setmonofont` lệnh hiện có bằng các phiên bản sau.

```latex
% Phông serif của gia đình tài liệu
\setsansfont{NotoSans-VariableFont-wdth-wght.ttf}[
Weight=400,
ItalicFont=NotoSans-Italic-VariableFont-wdth-wght.ttf,
FontFace = {b}{n}{Font = NotoSans-VariableFont-wdth-wght.ttf, Weight=600},
FontFace = {b}{it}{Font =NotoSans-Italic-VariableFont-wdth-wght.ttf,Weight=600}
]
```

```latex
% Phông đơn cách của gia đình tài liệu
\setmonofont{RobotoMono-VariableFont-wght.ttf}[
Weight=400,
ItalicFont=RobotoMono-Italic-VariableFont-wght.ttf,
FontFace = {b}{n}{Font =RobotoMono-VariableFont-wght.ttf, Weight=550},
FontFace = {b}{it}{Font = RobotoMono-Italic-VariableFont-wght.ttf, Weight=550}
]
```

## Cách sử dụng các phông mới của chúng ta

Bằng fontspec, chúng ta đã cấu hình các phông đậm, nghiêng và đậm-nghiêng cho cả ba họ phông của tài liệu. Ngoài các phông đã cấu hình, fontspec cũng đã bật các phiên bản chữ hoa nhỏ như có thể thấy bằng cách dán đoạn mã sau vào tài liệu của bạn (sau \begin{document}):

```latex
\begin{itemize}
\item Họ phông văn bản chính (Noto Serif):
\begin{itemize}
    \item \textsc{chữ hoa nhỏ thông thường}
    \item \textit{\scshape chữ hoa nhỏ nghiêng}  
    \item \textbf{\scshape chữ hoa nhỏ đậm}
    \item \textbf{\itshape\scshape chữ hoa nhỏ đậm nghiêng}
\end{itemize}
\item Họ phông sans serif (Noto Sans):
\begin{itemize}
    \item \textsc{\sffamily chữ hoa nhỏ thông thường}
    \item \textit{\sffamily\scshape chữ hoa nhỏ nghiêng}  
    \item \textbf{\sffamily\scshape chữ hoa nhỏ đậm}
    \item \textbf{\sffamily\itshape\scshape chữ hoa nhỏ đậm nghiêng}
\end{itemize}
\item Họ phông đơn cách (Roboto Mono):
\begin{itemize}
    \item \textsc{\ttfamily chữ hoa nhỏ thông thường}
    \item \textit{\ttfamily\scshape chữ hoa nhỏ nghiêng}  
    \item \textbf{\ttfamily\scshape chữ hoa nhỏ đậm}
    \item \textbf{\ttfamily\itshape\scshape chữ hoa nhỏ đậm nghiêng}
\end{itemize}
```

Đoạn mã này tạo ra đầu ra sau

![Hình ảnh cho thấy chữ hoa nhỏ được dàn ở dạng thường, đậm và đậm-nghiêng bằng cả ba họ phông của tài liệu.](/files/fd3c5a7d4112092ba6f8545ce831bd717415f7c9)

## Trong bước tiếp theo

Phần tiền định của tài liệu dự án của chúng ta giờ đây khá lộn xộn với nhiều mã cấu hình fontspec. Ở Bước 8, chúng ta chuyển mã thiết lập fontspec sang một dự án đơn giản, qua đó đơn giản hóa phần tiền định của tài liệu và giúp việc cập nhật các phông của chúng ta dễ dàng hơn.


---

# 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/43-step-7-using-noto-sans-and-roboto-mono-variable-fonts-with-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.
