Skip to content

Commit f8b3c43

Browse files
committed
L-more-06 translation
1 parent a798e3f commit f8b3c43

1 file changed

Lines changed: 112 additions & 0 deletions

File tree

zh-hant/more-06.md

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
---
2+
layout: "lesson"
3+
lang: "zh-hant"
4+
title: "更多內容:使用宏包和定義擴充套件 LaTeX"
5+
description: "本課提供了更多關於宏包載入的細節,展示了用於語言選擇的`babel`宏包,並提供了更多關於自定義命令的細節。"
6+
toc-anchor-text: "更多內容:使用宏包和定義擴充套件 LaTeX"
7+
---
8+
9+
## 載入多個宏包
10+
11+
`\usepackage`命令可以接受一個用逗號分隔的宏包列表,所以你可以一次性載入多個宏包:例如`\usepackage{color,graphicx}`。如果你要給宏包傳遞選項,這些選項會應用到列表中的每個宏包。如果宏包是分開載入的,註釋掉其中一些會更容易。因此我們會堅持每個宏包單獨一行載入。
12+
13+
## `babel`宏包
14+
15+
我們在[主課程](lesson-06)中展示了`babel`宏包作為選擇不同連字規則的方式。它做的遠不止這些,具體取決於使用的語言。例如,在德語中,它提供了一些用於建立"軟"連字元的快捷方式,還提供了一種不需要德語鍵盤就能快速輸入變音符號的方法。注意`\tableofcontents`(目錄)命令通常生成的 "Table of Contents" 標題也會被改為德語的 Inhaltsverzeichnis。
16+
17+
```latex
18+
% !TEX program=lualatex
19+
20+
\documentclass{ctexart}
21+
\usepackage[ngerman]{babel} % 注意選項名稱是'ngerman'
22+
23+
\begin{document}
24+
25+
\tableofcontents
26+
27+
\section{"Uber "Apfel und Birnen}
28+
29+
\subsection{Äpfel}
30+
Äpfel sind rot.
31+
32+
\subsection{Birnen}
33+
Birnen sind gelb.
34+
35+
\end{document}
36+
```
37+
38+
其他語言設定會做一些設計上的改變:例如,在傳統的法語排版中,某些標點符號(如`:`)前會有空格,如果你使用`french`選項載入`babel`,這個空格會被自動新增。
39+
40+
## 全局選項
41+
42+
有時,你希望一個選項對所有載入的宏包都可用。這可以通過在`\documentclass`行上給出選項來實現:每個宏包都能"看到"這個選項列表。所以要將文件的語言傳遞給所有宏包,我們可以使用:
43+
44+
```latex
45+
% !TEX program=lualatex
46+
47+
\documentclass{ctexart}
48+
\usepackage{babel}
49+
50+
\begin{document}
51+
52+
\tableofcontents
53+
54+
\section{"Uber "Apfel und Birnen}
55+
56+
\subsection{Äpfel}
57+
Äpfel sind rot.
58+
59+
\subsection{Birnen}
60+
Birnen sind gelb.
61+
62+
\end{document}
63+
```
64+
65+
## 更多定義
66+
67+
`\newcommand`允許命令最多有九個參數,其中第一個可以是可選的。
68+
69+
如果我們以主課程中的示例為例,我們可以讓顏色成為可選的,預設為藍色。
70+
71+
```latex
72+
% !TEX program=lualatex
73+
74+
\documentclass{ctexart}
75+
\usepackage{xcolor}
76+
77+
\newcommand\kw[2][blue]{\textcolor{#1}{\itshape #2}}
78+
79+
\begin{document}
80+
81+
關於\kw{蘋果}和\kw[red]{橙子}的一些內容。
82+
83+
\end{document}
84+
```
85+
86+
可選參數用`[]`括起來,如果省略,則使用定義中指定的預設值。
87+
88+
## `\NewDocumentCommand`
89+
90+
從2020年10月的 LaTeX 釋出版本開始,提供了一個擴充套件的定義系統。在較舊的 LaTeX 釋出版本中,這個系統通過`xparse`宏包提供,為了相容性,我們在這裡使用這個宏包。
91+
92+
我們可以重複上面的示例,但使用`\NewDocumentCommand`
93+
94+
```latex
95+
% !TEX program=lualatex
96+
97+
\documentclass{ctexart}
98+
\usepackage{xparse} % 僅在較舊的LaTeX版本中需要
99+
\usepackage{xcolor}
100+
101+
\NewDocumentCommand\kw{O{blue} m}{\textcolor{#1}{\itshape #2}}
102+
103+
\begin{document}
104+
105+
關於\kw{蘋果}和\kw[red]{橙子}的一些內容。
106+
107+
\end{document}
108+
```
109+
110+
`\newcommand`的相同點:`\NewDocumentCommand`接受要定義的命令(`\kw`)和定義主體,使用`#1``#9`表示參數,但是參數的指定方式不同。
111+
112+
`\newcommand`的不同點:`\newcommand`只給出參數的數量,可選地為第一個參數提供預設值,而`\NewDocumentCommand`中每個參數都用一個字母指定,所以一個兩參數的命令會用`{mm}`而不是`[2]`來指定。這稍微更冗長一些,但允許定義更多形式的命令。這裡我們只給出這個簡單的例子,其中第一個參數是可選的,預設為藍色(`O{blue}`),第二個參數是強制的(`m`)。

0 commit comments

Comments
 (0)