summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/easybook/doc/easybook.tex
blob: c84a11e20905659c9e620b5ff0205ceb62006bf1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
\documentclass{ctxdoc}
\hypersetup
  {
    colorlinks,
    linkcolor = blue,
    urlcolor = blue
  }

\title{\sffamily easybook书籍文档类}
\author{瞿毅}
\date{2021/01/14\hskip\ccwd\relax v1.21d\thanks{\url{https://gitee.com/texl3/easybook}}}

\begin{document}
\maketitle
\changes{v1.20}{2021/01/09}{修改和完善用户文档。}
\changes{v1.20}{2021/01/09}{模板更改为使用CC-BY许可协议。}
\begin{abstract}
  \cls{easybook} 是基于 \cls{ctexbook} 书籍文档类创建以极简为风格的模板,可以看作对 \cls{ctexbook} 的进一步包装。虽然\CTeX 文档类提供了较好的中文支持,但想实现个性化功能一般需要在其基础上载入更多宏包来定制。\cls{easybook} 考虑了一些细节并载入一些常用宏包实现一般的排版需求,它适用于排版中英文书籍或笔记,甚至可稍加调整成为学位论文模板。
\end{abstract}
\tableofcontents

\section{编译方式}
模板含有一个使用示例文件,编译前建议满足以下的条件
\begin{itemize}
  \item 使用 \hologo{XeLaTeX}(推荐)或 \hologo{LuaLaTeX} 两种编译方式,
  \item 参考文献支持用 \hologo{BibTeX}(默认)或 \hologo{biber} 后端处理。
  \item 由于用到了一些较新的宏包,建议安装最新的\TeX 发行版并将宏包升级为最新。
\end{itemize}

\subsection{编译步骤}
\begin{frameverb}
    xelatex -shell-escape easybook-demo
    bibtex easybook-demo
    makeindex easybook-demo
    xelatex -shell-escape easybook-demo
    xelatex -shell-escape easybook-demo
\end{frameverb}

需注意,正确\textsf{编译索引}需要增加 \opt{-shell-escape} 命令行选项。若不需要索引和参考文献,可以在正文中注释掉命令。若出现以下警告,再编译一次即可。
\begin{frameverb}
    LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.
\end{frameverb}

\subsection{字体设置}\label{subsec1}
默认使用\CTeX 预置中文字库,当开启 \opt{font = myfont} 选项时需要安装开源字体,中文使用方正系列的{\songti 方正书宋}、{\heiti 方正黑体}、{\kaishu 方正楷体}和{\fangsong 方正仿宋},英文使用思源系列的{\rmfamily Noto Serif}、{\sffamily Noto Sans}和{\ttfamily Noto Sans Mono},数学字体使用 \pkg{notomath}。相关选项可以见小节 \ref{subsec2},字体点击此处下载\href{https://wws.lanzous.com/b01ns361i}{下载地址}。

如果您不想使用\CTeX 默认字体和方正、思源字体,\textsf{自定义字体}需启用选项 \opt{font = none},并可在导言区设置中文字体,粗体与斜体不设置会产生警告。
\begin{ctexexam}
    \setCJKmainfont{SimSun}[BoldFont = SimHei,ItalicFont = KaiTi]
    \setCJKsansfont{SimHei}
    \setCJKmonofont{FangSong}
\end{ctexexam}

\section{文档类选项}\label{subsec2}
标准 \cls{book} 文类与 \cls{ctexbook} 文类的选项同样适用于本文档。除此之外选项分为两类
\begin{itemize}
  \item 带有 \rexptarget\rexpstar{} 号的选项,需要在引入文档类的时候设定。
  \item 带有 \exptarget\expstar{} 号的选项,需要通过\CTeX 宏集提供的用户接口命令 \tn{ctexset} 设定。
\end{itemize}

\begin{function}[rEXP,added = 2021-01-05]{draft}
开启草稿模式会加快编译速度,表现有显示页面边框、行溢出的地方显示黑色方块、图片变成占位方框、显示当前日期和关闭超链接渲染。
\end{function}

\begin{function}[rEXP,added = 2021-01-05]{newline}
章标题风格为另起一行,英文模式使用较为常见。类似下面的效果
\begin{flushleft}\sffamily\LARGE
  Chapter 1\vskip 1.3pc
  This is a title
\end{flushleft}
\end{function}

\begin{function}[rEXP,added = 2021-01-05]{entitle}
部分标题编号由中文数字变为大写罗马数字,章标题编号由中文数字变为阿拉伯数字。比如\textsf{第一部分}变为\textsf{第I部分},\textsf{第一章}变为\textsf{第1章}。
\end{function}
\begin{function}[rEXP,added = 2021-01-05]{english}
使各类标题变为英文形式。包括章节标题、图表标题和定理标题等。如\textsf{第一章}变为\textsf{Chapter 1},\textsf{图1.1} 变为 \textsf{Table 1.1}。
\end{function}
\begin{function}[rEXP,added = 2021-01-05]{enstyle}
同时开启 \opt{newline}、\opt{entitle} 和 \opt{english} 三个选项以符合英文原生风格。
\end{function}

\begin{function}[rEXP,added = 2021-01-05,updated = 2021-01-12]{font}
\begin{syntax}
  font = <adobe|founder|mac|windows|linux|(overleaf)|none|myfont>
\end{syntax}
\changes{v1.21b}{2021/01/12}{默认字体与\CTeX 一致,不再是自定义字体。}
传递给 \cls{ctexbook} 设置字体,最好不要使用原有的 \opt{fontset} 选项,默认情况下使用自定义字体而不开启这个选项,可根据安装的字体及电脑系统选取。\opt{myfont} 与 \opt{none} 选项的相关描述见小节 \ref{subsec1},\opt{overleaf} 是一个各系统通用选项,会检测系统环境选取对应字体。
\end{function}

\begin{function}[rEXP,added = 2021-01-05,updated = 2021-01-13]{paper}
\begin{syntax}
  paper = <(a4paper)|b5paper|letterpaper|...>
\end{syntax}
设置页面大小,交给 \pkg{geometry} 宏包处理,可使用它支持的所有规格。建议选项 \opt{b5paper} 和 \opt{zihao = 5},选项 \opt{a4paper} 和 \opt{zihao = -4} 配合。
\end{function}

\section{接口选项}
\begin{function}[added = 2021-01-05]{\ctexset}
\begin{syntax}
  \tn{ctexset}\marg{键值列表}
\end{syntax}
\cls{easybook} 扩展了\CTeX 宏集\LaTeX 3风格键值的通用控制命令 \tn{ctexset},接口选项同样用它设置, 原有的键值列表仍然可用。
\end{function}

\begin{function}[added = 2021-01-08]{config}
\begin{syntax}
  config = <配置文件名>
\end{syntax}
\changes{v1.10}{2021/01/08}{加入载入用户配置选项。}
\opt{config}为载入用户配置选项,配置文件名不需加括号但需带有后缀名如 \opt{tex}、\opt{def} 和 \opt{cfg}。
\end{function}

\subsection{风格}
\begin{function}[EXP,added = 2021-01-05,updated = 2021-01-12]{style/color,style/capdash,style/multoc,style/withpart,style/perchap,style/perpage}
\begin{syntax}
  color = <(none)|forest|energy|cyberpunk>
  capdash = <true|(false)>
  multoc = <true|(false)>
  withpart = <true|(false)>
  perchap = <true|(false)>
  perpage = <true|(false)>
\end{syntax}
\changes{v1.10}{2021/01/08}{更改颜色实现方式与选项名。}
\opt{style} 选项控制文章的风格。
\end{function}

\begin{optdesc}
  \item[color] 主题颜色,包括标题、页眉颜色等,选项 \opt{none} 为黑白页面,但不包括超链接。
    \begin{function}{ctex@frame,ctex@emph,ctex@verb}
    \begin{syntax}
      \tn{definecolor}\oarg{类型}\marg{名称}\marg{模式列表}\marg{参数列表}
    \end{syntax}
    \changes{v1.10}{2021/01/08}{可以自定义主题颜色。}
    主题颜色用到这三个颜色,可以使用 \tn{definecolor} 命令进行更改,类似地更改超链接颜色见小节 \ref{subsec3}。
    \end{function}
  \item[capdash] 将图表代码标题风格由例如\textsf{图1.1}变为\textsf{图1\textendash 1}的形式。
  \item[multoc] 开启双栏目录,可与 \opt{onecolumn} 和 \opt{twocolumn} 选项配合出单栏正文、单栏目录,双栏正文、单栏目录,单栏正文、双栏目录和双栏正文、双栏目录四种方式 。
  \item[withpart] 使章跟随每一部分编号,默认不跟随。
  \item[perchap] 使脚注跟随每一章编号,默认不跟随。
  \item[perpage] 使脚注跟随每一页编号,默认不跟随。
\end{optdesc}

\subsection{超链接}\label{subsec3}
\begin{function}[EXP,added = 2021-01-05,updated = 2021-01-08]{link/hyperlink,link/linkcolor,link/linktopage}
\begin{syntax}
  hyperlink = <(edge)|various|none>
  linkcolor = <(graphite)|cutepink|skyblue|crimson>
  linktopage = <true|(false)>
\end{syntax}
\changes{v1.10}{2021/01/08}{修复了 \opt{linktopage} 选项关闭时目录中标题编号无超链接的问题。}
\end{function}

\begin{optdesc}
  \item[hyperlink] \opt{edge} 使超链接为边框形式,\opt{various} 使超链接为彩色字体,有四种颜色风格。\opt{none} 关闭超链接边框与颜色,此时 \opt{linkcolor} 选项无效。
  \item[linkcolor] 超链接颜色样式。
    \begin{function}{ctex@link,ctex@url,ctex@cite}
    \begin{syntax}
      \tn{definecolor}\oarg{类型}\marg{名称}\marg{模式列表}\marg{参数列表}
    \end{syntax}超链接颜色用到这三个颜色,可以使用 \tn{definecolor} 命令进行更改。
    \changes{v1.10}{2021/01/08}{可以自定义超链接颜色。}
    \end{function}
  \item[linktopage] 将目录中的超链接置于页码上,默认是置于标题上。
\end{optdesc}

\subsection{行距}
\begin{function}[EXP,added = 2021-01-05,updated = 2021-01-12]{spread/linespread,spread/tabspread,spread/mathspread,spread/capspread,spread/fnspread,spread/fnsep}
\begin{syntax}
  linespread = <(1.3)>
  tabspread = <(1)>
  mathspread = <(1)>
  capspread = <(1)>
  fnspread = <(1)>
  fnsep = <(0ex)>
\end{syntax}
\changes{v1.21b}{2021/01/12}{增加脚注线间的距离选项。}
除了 \opt{fnsep} 选项,其它是行距因子用于设置各种行距倍数,只能是浮点数,不能带有长度单位。\tn{ctexset} 原有的行距选项\opt{linespread}失效。各行距既可在导言区全局设置也可正文中设置对后面生效,行距的意义为
\end{function}

\begin{optdesc}
  \item[linespread] 正文行距。
  \item[tabspread] 表格行距。
  \item[mathspread] 数学环境行距。
  \item[capspread] 图表代码标题行距。
  \item[fnspread] 脚注行距。
  \item[fnspread] 脚注与脚注线间的距离,需带有长度单位。
\end{optdesc}

\subsection{其它字体}
\begin{function}[EXP,added = 2021-01-08]{elfont/tabfont,elfont/figfont,elfont/lstfont,elfont/fnfont,elfont/marfont}
\begin{syntax}
  tabfont = <\tn{sffamily}\tn{small}>
  figfont = <\tn{sffamily}\tn{small}>
  lstfont = <\tn{sffamily}\tn{small}>
  fnfont = <\tn{rmfamily}>
  marfont = <\tn{rmfamily}\tn{footnotesize}>
\end{syntax}
\changes{v1.10}{2021/01/08}{加入自定义非正文字体选项。}
\end{function}

\begin{optdesc}
  \item[tabfont] 表格标题的字体设置。
  \item[figfont] 图片标题的字体设置。
  \item[lstfont] 代码标题的字体设置。
  \item[fnfont] 脚注的字体设置,请不要使用字号命令。
  \item[marfont] 边注的字体设置。
\end{optdesc}

\subsection{参考文献}
\begin{function}[EXP,added = 2021-01-11]{bibset/backend,bibset/bibstyle,bibset/citestyle,bibset/bibfile,\printbibliography}
\begin{syntax}
  backend = <(bibtex)|biblatex>
  bibstyle = <(number)|authoryear|其它格式>
  citestyle = <引用格式>
  bibfile = <ref/refs.bib>
  \tn{printbibliography}\oarg{选项列表}
\end{syntax}
\changes{v1.21}{2021/01/11}{增加 \opt{bibset} 选项,可以使用 \hologo{BibTeX} 或 \hologo{biber} 编译参考文献。}
\end{function}

\begin{optdesc}
  \item[backend] 参考文献处理后端,默认用传统的 \hologo{BibTeX} 处理参考文献。
  \item[bibstyle] 参考文献格式为中国的参考文献推荐标准GB/T 7714-2015,有顺序编码制和著者-出版年制两种风格,理工科类一般使用顺序编码制,文科类一般使用著者-出版年制。若使用其它格式,使用 \hologo{BibTeX} 处理时需确保正确的 \opt{bst} 文件,使用 \hologo{biber} 处理可使用 \pkg{biblatex} 宏包支持的参考文献风格名称。
  \item[citestyle] 引用参考文献的格式,对 \opt{backend = bibtex} 选项\textsf{无效},可使用 \pkg{biblatex} 宏包支持的引用文献风格名称。
  \item[bibfile] 参考文献的数据文件,使用 \hologo{biber} 处理时要带有 \opt{bib} 后缀,默认为一个在 \opt{ref} 文件夹中以 \opt{refs.bib} 命名的文件。
  \item[\tn{printbibliography}] 两种方式\textsf{均使用}此命令打印参考文献,其中可选项仅在 \hologo{biber} 处理时有效。
\end{optdesc}

\subsection{定理样式}
\begin{function}[EXP,added = 2021-01-12]{thmset/thmbox,thmset/numberwith,thmset/headpunct,thmset/bodyfont,thmset/notefont,thmset/headindent,thmset/spaceabove,thmset/spacebelow}
\begin{syntax}
  thmbox = <true|(false))>
  numberwith = <(chapter)|section|其它环境|空置>
  headpunct = <(未设置)>
  bodyfont = <(未设置)>
  notefont = <(未设置)>
  headindent = <(0\tn{ccwd})>
  spaceabove = <(0.75ex plus .1ex)>
  spacebelow = <(0.75ex plus .1ex)>
\end{syntax}
\changes{v1.21b}{2021/01/12}{增加配置定理环境样式的选项。}
\end{function}

\begin{optdesc}
  \item[thmbox] 开启定理及习题环境的盒子边框。
  \item[numberwith] 定理编号格式,默认跟随章的编号,也可以与其它定理环境共享编号,空置时不跟随其它计数器编号。
  \item[headpunct] 定理标题后的标记。
  \item[bodyfont] 定理内容部分的字体。
  \item[notefont] 定理标题内容的字体。
  \item[headindent] 定理标题的缩进,默认无缩进,可用 \tn{parindent} 命令设置为段落缩进。
  \item[spaceabove] 定理环境前的间距。
  \item[spacebelow] 定理环境后的间距。
\end{optdesc}

\subsubsection{新的定理样式}
定理由 \pkg{thmtools} 设置,自带定理的样式为 \opt{mythm},如果使用这个样式而只是增加新的定理名称,可以这样
\begin{ctexexam}
    \declaretheorem[style = mythm,name = 定理名]{定理环境名}
\end{ctexexam}
若要重新定义一个全新的定理样式,具体参数可以查看 \pkg{thmtools} 宏包帮助文档。

\subsection{页面边距}
\begin{function}[EXP,added = 2021-01-13]{geoset/left,geoset/top,geoset/hmargin,geoset/textwidth,geoset/includehead,...}
\begin{syntax}
  left = <长度>
  top = <长度>
  hmargin = \marg{左边距,右边距}
  textwidth = <长度>
  includehead = <true|(false)>
\end{syntax}
\changes{v1.21c}{2021/01/13}{增加配置页面边距的选项。}
\opt{geoset} 将选项交给 \pkg{geometry} 宏包接口命令 \tn{geometry} 处理,并且选项的键值列表与之相同,支持的参数可查阅宏包帮助文档。当在此设置页面大小时,会覆盖 \opt{paper} 选项的设置。
\begin{ctexexam}
    \ctexset
      {
        geoset =
          {
            top = 2.5cm,
            bottom = 2.5cm,
            left = 3.2cm,
            right = 3.2cm
          }
      }
\end{ctexexam}
\end{function}

\subsection{页眉页脚}
\begin{function}[EXP,added = 2021-01-13]{hdrset/elhead,hdrset/echead,hdrset/ochead,hdrset/orhead,hdrset/olfoot,...}
\begin{syntax}
  elhead = \tn{color{ctex@frame}}\tn{thepage}
  echead = \tn{color{ctex@frame}}\tn{kaishu}\tn{leftmark}
  ochead = \tn{color{ctex@frame}}\tn{kaishu}\tn{rightmark}
  orhead = \tn{color{ctex@frame}}\tn{thepage}
  olfoot = <未设置>
\end{syntax}
\changes{v1.21}{2021/01/11}{修复单面文档时页眉横线消失的问题。}
\changes{v1.21c}{2021/01/13}{增加配置页眉页脚的选项。}
\opt{hdrset} 将选项交给 \pkg{fancyhdr} 宏包页面风格命令 \tn{fancyhf} 处理,设置的是一个名为 \opt{fancy} 的页面风格。\pkg{fancyhdr} 将页眉页脚分成左中右和奇数页(odd)、偶数页(even)共12个部分,所以设置了对应的12个选项。\opt{head} 与 \opt{foot} 表示页眉与页脚区域,前缀e、o代表偶数、奇数,前缀l、c、r代表左、中、右部分。单面打印时,偶数前缀的选项无效。
\begin{ctexexam}
    \ctexset
      {
        hdrset =
          {
            erhead = \leftmark,
            elhead = \textbf{\thepage},
            olhead = \rightmark,
            orhead = \textbf{\thepage}
          }
      }
\end{ctexexam}
\end{function}

\subsection{目录样式}
\begin{function}[EXP,added = 2021-01-13,updated = 2021-01-14]{tocset/.../format,tocset/.../indent,tocset/.../rule,tocset/lolskip,tocset/belowoffset,\tocrule}
\begin{syntax}
  format = <目录标题格式>
  indent = <目录标题左边缩进>
  rule = <目录引导线样式>
  lolskip = <(0.8pc)>
  belowoffset = <(-1pc)>
  \tn{tocrule} = \oarg{引导点间距}\oarg{引导点大小}\marg{引导点}\oarg{页码格式}
\end{syntax}
\changes{v1.21c}{2021/01/13}{增加配置目录样式的选项。}
\opt{tocset} 将目录样式交给 \pkg{titletoc} 处理,预置了 \opt{part}、\opt{chapter}、\opt{section}、\opt{subsection} 和 \opt{lists} 五种级别的目录标题,键值列表中的...代表它们。\opt{lists} 为图片、表格和代码目录格式的级别。\opt{lolskip} 是代码目录标题后的距离,与\CTeX 的 \opt{lotskip} 和 \opt{lofskip} 不太一样。\opt{belowoffset} 选项为目录总标题 \tn{contentsname} 后的间距补偿,一般为负值,用于抵消 \opt{format} 中设置的间距。建议 \opt{lolskip+lists/format/addvspace = -belowoffset}。\tn{tocrule} 命令生成目录引导线,需要在 \opt{rule} 选项中使用,其中引导线间距需带有长度单位,引导点大小不带单位,为引导点符号正常大小的倍数,引导点一般为英文句号或 \tn{cdot} 中心点符号。页码格式的内容位于页码前面,可以设置页码字体、距离。
\begin{ctexexam}
    \ctexset
      {
        tocset =
          {
            chapter =
              {
                format = \addvspace{8pt}\large,
                indent = 1.5\ccwd,
                rule = \tocrule[0.6pc][1.1]{.}[\zihao{5}]
              }
          }
      }
\end{ctexexam}
\end{function}

\section{常用环境}

\subsection{公式}
\begin{function}[added = 2021-01-05]{equation,multline,gather,align}
\begin{syntax}
  \tn{begin}\marg{环境名}
  \tn{item} <行间公式>
  \tn{end}\marg{环境名}
\end{syntax}
\opt{amsmath} 宏包提供了一系列数学环境,它们可以排布各种对齐或不对齐的公式组。\opt{multline} 环境用于一行无法放下的长公式,\opt{gather} 环境用于每行居中的公式组,\opt{align} 环境用于多列对齐的公式组。
\end{function}

\subsection{列表}
\begin{function}[added = 2021-01-05]{enumerate,itemize,description}
\begin{syntax}
  \tn{begin}\marg{环境名}\oarg{键值列表}
  \tn{item} <列表内容>
  \tn{end}\marg{环境名}
\end{syntax}
\pkg{enumitem} 宏包为系统自带的列表环境提供了更灵活的标签以及间距的控制。已设置默认格式,若自定义标签可例如
\begin{ctexexam}
    \begin{enumerate}[label = \arabic*(a),leftmargin = 1cm,resume]
    \begin{itemize}[label = \textbullet]
    \begin{description}[font = \sffamily\bfseries,style = nextline]
\end{ctexexam}
\end{function}

\subsubsection{排序列表}\label{ssubsec1}
使用 \opt{enumerate} 环境可创建排序列表,使用 \opt{enumerate*} 环境产生行内部列表,可以使用\textsf{A、a、I、i和1}作为可选项为 \opt{enumerate} 与 \opt{enumerate*} 格式化标签。若生成\textsf{Item I、Item II、Item III}格式可以这样
\begin{ctexexam}
    \begin{enumerate*}[(a)]
    \begin{enumerate}[\bfseries{Item} I]
\end{ctexexam}

\subsubsection{常规列表}
使用 \opt{itemize} 环境可创建不计数列表,列表环境中若换行不缩进,若在列表中分段后则缩进两字符。 \opt{itemize*} 为行内常规列表,也提供一个可选参数。

用$\star$取代默认的符号
\begin{ctexexam}
    \begin{itemize*}[$\star$]
    \begin{itemize}[$\star$]
\end{ctexexam}

\subsubsection{主题列表}
使用 \opt{description} 环境可创建带有主题词的列表。
\begin{ctexexam}
    \begin{description}
        \item[主题一] 内容一
        \item[主题二] 内容二
    \end{description}
\end{ctexexam}

\subsection{定理}
\begin{function}[added = 2021-01-05,updated = 2021-01-08]{theorem,definition,lemma,corollary,proposition,example,remark,proof}
\begin{syntax}
  \tn{begin}\marg{环境名}
  <定理内容>
  \tn{end}\marg{环境名}
\end{syntax}
定理环境除了注和证明跟随章编号并可带有边框,边框和习题标题盒子可使用 \opt{thmbox = false} 开启,证明末尾会自动添加证明结束符。
\end{function}

\subsection{习题}
\begin{function}[added = 2021-01-05]{exercise}
  \begin{syntax}
  \tn{begin}\marg{exercise}\oarg{颜色名}\oarg{编号}\oarg{标题}
  \tn{item} <习题内容>
  \tn{end}\marg{exercise}
\end{syntax}
习题环境 \opt{exercise} 的标题紧接上一节编号并加入目录与页眉,当使用星号环境时不进行编号。三个可选参数中颜色为自定义或 \pkg{xcolor} 包含的颜色名称(深色),正文编号格式与小节 \ref{ssubsec1} 排序列表相同,标题名默认为摘要,参数只能\textsf{从右往左}省略。
\begin{ctexexam}
    \begin{exercise}[black][1.][习题]
    \item 习题内容
    \item 习题内容
    \end{exercise}
\end{ctexexam}
\end{function}

\subsection{盒子}

\subsubsection{摘要盒子}
\begin{function}[added = 2021-01-05]{outline}
\begin{syntax}
  \tn{begin}\marg{outline}\oarg{标题名称}
  \tn{item} <摘要内容>
  \tn{end}\marg{outline}
\end{syntax}
摘要盒子可用于章前摘要,它的标题是可选参数,默认标题是摘要。
\begin{ctexexam}
    \begin{outline}[标题名称]
      \item 摘要内容
      \item 摘要内容
    \end{outline}
\end{ctexexam}
\end{function}

\subsubsection{段落盒子}
\begin{function}[added = 2021-01-05]{mybox}
\begin{syntax}
  \tn{begin}\marg{mybox}\oarg{段落标题}
  <盒子内容>
  \tn{end}\marg{mybox}
\end{syntax}
环境 \opt{mybox} 创建一个段落盒子,可以添加可选参数的标题,否则无标题框。带有星号的环境会生成浅灰背景,否则是纯白背景。
\begin{ctexexam}
    \begin{mybox}*[段落标题]
      盒子内容
      \tcblower   % 盒子上下部分分界线
      盒子内容
    \end{mybox}
\end{ctexexam}
\end{function}

\subsubsection{行内盒子}
\begin{function}[added = 2021-01-05]{\concise,\fuzzy}
\begin{syntax}
  \tn{concise}\oarg{颜色名}\oarg{配置}\marg{内容}
  \tn{fuzzy}\oarg{颜色名}\oarg{配置}\marg{内容}
\end{syntax}
设置了两个参数选项相同的行内盒子,盒子 \opt{concise} 可以为抄录盒子有三个参数,行内盒子内容是必选参数其他可选。盒子 \opt{fuzzy} 不是抄录盒子,具有模糊边缘类似高亮的效果。
\end{function}

\section{其它格式}

\subsection{代码}
\begin{function}[added = 2021-01-05]{\lstinline,lstlisting,\listoflistings}
\begin{syntax}
  \tn{lstinline}\oarg{键值列表}\marg{行内代码}
  \tn{begin}\marg{lstlisting}\oarg{键值列表}
  <行间代码>
  \tn{end}\marg{lstlisting}
\end{syntax}
使用 \pkg{listings} 宏包可以对代码格式进行高度定制,\tn{listoflistings} 命令用于输出代码目录。
\end{function}

\subsection{物理量}
\begin{function}[added = 2021-01-05]{\num,\si,\SI}
\begin{syntax}
  \tn{num}\oarg{选项}\marg{数字}
  \tn{si}\oarg{选项}\marg{单位}
  \tn{SI}\oarg{选项}\marg{数字}\oarg{前缀}\marg{单位}
\end{syntax}
\pkg{siunitx} 宏包的 \tn{num} 命令可以输出科学计数法,而 \tn{SI} 命令可用来输出带有单位的量,\tn{si} 命令支持数学模式,可以代替数学行内公式输入。
\begin{ctexexam}
    \num{-21x.3e5}
    \si{mL.min^{-1}}
    \SI{5}{\mole}
\end{ctexexam}
\end{function}

\subsection{化学式}
\begin{function}[added = 2021-01-05]{\ch,\chemfig}
\begin{syntax}
  \tn{ch}\oarg{选项}\marg{输入}
  \tn{chemfig}\oarg{键值列表}\marg{分子代码}
\end{syntax}
除了以普通公式的方式,化学式还可用 \pkg{chemformula} 实现,无机化学式使用 \tn{ch} 命令书写。有机化学式推荐使用 \pkg{chemfig} 的 \tn{chemfig} 命令完成。
\end{function}

\subsection{引用}
\begin{function}[added = 2021-01-05]{\cref}
  \begin{syntax}
  \tn{cref}\marg{标签}
  \end{syntax}
使用 \pkg{cleveref} 宏包的 \tn{cref} 命令进行引用,将会自动检测环境并添加相应的前缀。
\end{function}

\subsubsection{索引}
\begin{function}[added = 2021-01-05]{\index,\printindex}
\begin{syntax}
  \tn{index}\marg{标签}
  \tn{printindex}\oarg{索引名}
\end{syntax}
使用 \pkg{imakeidx} 生成索引,\tn{printindex} 命令用于生成索引目录。仅做了简单的设置如将索引设为双栏并加入目录,其他选项可另外配置。
\end{function}

\subsubsection{脚注}
\begin{function}[added = 2021-01-05]{\Footnote,\Footnotetext,\Footnotemark}
\begin{syntax}
  \tn{Footnote}\marg{标记}\marg{插入文本}
  \tn{Footnotetext}\marg{标记}\marg{插入文本}
  \tn{Footnotemark}\marg{标记}
\end{syntax}
自定义标记且不影响正常编号的脚注命令。
\begin{ctexexam}
    \Footnote{*}{这是可以自定义标记的脚注。}
\end{ctexexam}
\end{function}

\subsubsection{边注}
\begin{function}[added = 2021-01-05]{\marginnote}
\begin{syntax}
  \tn{marginnote}\oarg{左文本}\marg{右文本}\oarg{垂直偏移}
\end{syntax}
命令 \tn{marginnote} 可以生成简单的边注,如果只给定了\meta{右文本},那么边注在奇偶数页文字相同。如果同时给定了\meta{左文本},则偶数页使用\meta{左文本}的文字。
\end{function}

\IndexLayout
\PrintChanges
\PrintIndex
\end{document}