summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/fduthesis/fduthesis-en.tex
blob: 1cb6b78578274111c884db03f57c0b0da75510b7 (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
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
%%
%% This is file `fduthesis-en.tex',
%% generated with Lua script `get-doc-en.lua'.
%%
%% The original source files were:
%%
%% fduthesis.dtx
%% 
%%     Copyright (C) 2017--2020 by Xiangdong Zeng <xdzeng96@gmail.com>
%% 
%%     This work may be distributed and/or modified under the
%%     conditions of the LaTeX Project Public License, either
%%     version 1.3c of this license or (at your option) any later
%%     version. The latest version of this license is in:
%% 
%%       http://www.latex-project.org/lppl.txt
%% 
%%     and version 1.3 or later is part of all distributions of
%%     LaTeX version 2005/12/01 or later.
%% 
%%     This work has the LPPL maintenance status `maintained'.
%% 
%%     The Current Maintainer of this work is Xiangdong Zeng.
%% 
%%     This work consists of the files fduthesis.dtx,
%%                                     fduthesis-doc.dtx,
%%                                     fduthesis-logo.dtx,
%%                                     fduthesis-template.tex,
%%               and the derived files fduthesis.ins,
%%                                     fduthesis.cls,
%%                                     fduthesis-en.cls,
%%                                     fduthesis.def,
%%                                     fdudoc.cls,
%%                                     fdulogo.sty,
%%                                     fdulogo-example.tex,
%%                                     fduthesis-cover.tex,
%%                                     fduthesis-en.tex,
%%                                     fudan-emblem.pdf,
%%                                     fudan-emblem-new.pdf,
%%                                     fudan-name.pdf,
%%                                     fduthesis.pdf,
%%                                     fduthesis-en.pdf,
%%                                     fduthesis-code.pdf,
%%                                 and README.md.
%% 
\PassOptionsToPackage{scheme=plain, linespread=1.1}{ctex}
\documentclass{fdudoc}
\hypersetup{
  pdftitle  = {fduthesis: LaTeX Thesis Template for Fudan University},
  pdfauthor = {Xiangdong Zeng}}
\ctexset{
  section = {name = {}, format+ = \raggedright},
  subsubsection/tocline = {\CTEXnumberline{#1}#2}}
\pagestyle{headings}
\def\FSID{{\xeCJKsetup{PunctStyle=banjiao}。}}
\def\FSFW{{\xeCJKsetup{PunctStyle=banjiao}.}}

\title{\textcolor{MaterialIndigo800}{%
  \textbf{The \textsf{fduthesis} Class \\
    \LaTeX{} Thesis Template for Fudan University}}}
\author{Xiangdong Zeng}
\date{2020/08/30\quad v0.7e%
  \thanks{\url{https://github.com/stone-zeng/fduthesis}.}}

\begin{document}

\DeleteShortVerb\"

\newgeometry{
  left   = 1.25 in,
  right  = 1.25 in,
  top    = 1.25 in,
  bottom = 1.00 in
}

\maketitle
\vfill
\begin{center}
  \includegraphics[width=8cm]{../logo/fduthesis-cover.pdf}
\end{center}
\vfill
\thispagestyle{plain}
\clearpage

\tableofcontents

\newgeometry{
  left   = 1.65 in,
  right  = 0.80 in,
  top    = 1.25 in,
  bottom = 1.00 in
}

\section{Introduction}

\cls{fduthesis} is a thesis template for Fudan University.
This template is mostly written in \LaTeX3 syntax, and
provides a simple interface for users.

\subsection*{Getting started with \LaTeX{}}

This documentation is \emph{not} a \LaTeX{} tutorial at
starter's level. If you are totally a newbie, please read some
introductions like the famous \pkg{lshort}. Of course, there
are countless \LaTeX{} tutorials on the Internet. You can
choose whatever you like.

\subsection*{About this documentation}

In this documentation, different typefaces are used to
represent different contents. Packages and classes are shown
in sans-serif font, e.g.\ \pkg{xeCJK} package and
\cls{fduthesis} class. Commands and file names are shown in
monospaced font, e.g.\ command \cs{fdusetup}, environment
\env{abstract} and \TeX{} document \file{thesis.tex}.
Italic-shaped font with angle brackets outside means arguments,
e.g.\ \meta{English title}. However, you do not need to type
the brackets when using these commands. The example code has
proper syntax highlighting so it will be much easier to read.

\LaTeX{} code lines will have a blue line on their left, while
for command lines there will be a pink line. The options,
commands and environments in \cls{fduthesis} will be surrounded
by two horizontal lines. Their usages and descriptions are
provided at the same time.

The options, commands and environments in \cls{fduthesis} can be
divided into the following three types:
\begin{itemize}
  \item Those can be only used in \emph{Chinese templates} are
    indicated by \rexptarget\rexpstar{}.
  \item Those can be only used in \emph{English templates} are
    indicated by \rexptarget\expstar{}.
  \item If they do not have special characters afterwards, then
    you can use them in both Chinese and English templates.
\end{itemize}

If you want to read the implementation part, please turn to the
Chinese version. Any issues or feature requests can be submitted
in the \href{https://github.com/stone-zeng/fduthesis/issues}%
{GitHub repository}.

\section{Installation}

\subsection{Obtaining \cls{fduthesis}}

\subsubsection{Standard installation}

If there are no special reasons, it is always recommended to
install \cls{fduthesis} with a package manager. For example,
the following command will install the package in \TeXLive{}
(administrator permission may be required):
\begin{shellexample}[gobble=1,morekeywords={tlmgr,install}]
  tlmgr install fduthesis
\end{shellexample}

In \TeXLive{} and \MiKTeX{}, you can also install \cls{fduthesis}
through a graphical interface. It's rather simple and will not be
described here.

\subsubsection{Install manually}

If you want to download the template from CTAN and install it
manually, the recommended way is to use the TDS ZIP file:
\begin{itemize}
  \item Download the \href{http://mirror.ctan.org/install/macros/latex/contrib/fduthesis.tds.zip}%
    {TDS ZIP file} for \cls{fduthesis};
  \item Copy all the files in \file{fduthesis.tds.zip} into the
    local TDS directory of \TeX{} distribution.
  \item Run \bashcmd{mktexlsr} to update the ls-R database.
\end{itemize}
Although not recommended, you may generate the whole template
from source code as well:
\begin{itemize}
  \item Open the project's \href{https://github.com/stone-zeng/fduthesis}%
    {homepage}, click ``Clone or download'' and choose
    ``Download ZIP'' to download \file{fduthesis-master.zip}.
    If you have git program on your computer, you can also
    clone the repository directly:
    \begin{shellexample}[gobble=5,alsoletter={.},%
        morekeywords={git,clone}]
      git clone https://github.com/stone-zeng/fduthesis.git
    \end{shellexample}
  \item Extract files, and get into the \file{source} directory.
    Run the following command to generate all the components:
    \begin{shellexample}[gobble=5,morekeywords={xetex}]
      xetex fduthesis.dtx
    \end{shellexample}
  \item Copy the generated document classes (\file{.cls}),
    packages (\file{.sty}) and configuration files (\file{.def})
    into \path{texmf-local/tex/latex/fduthesis/} under the local
    TDS tree of \TeX{} distribution. Then run \bashcmd{mktexlsr}
    to update the ls-R database.
  \item When writing your thesis with \cls{fduthesis}, you need
    to copy the file \file{fudan-name.pdf} (can be found in the
    \file{testfiles/support} directory of the Git repository) to
    your working directory, to make sure that the logo in the
    cover can be displayed correctly.
\end{itemize}

\subsubsection{\cls{fduthesis} on the fly}

If you don't want to install \cls{fduthesis} but need to use it
at once, you can try the installation scripts. Download the
repository from GitHub, run \file{install-win.bat} (on Windows)
or \file{install-linux.sh} (on Linux), then all the necessary
files will be found in the \file{thesis} folder.

\subsection{Composition of the template}

There are several parts in \cls{fduthesis}, including kernel
template classes, configuration files, affiliated packages and
user's guides. More details are listed in table~%
\ref{tab:fduthesis-components}.

\begin{table}[ht]
  \caption{The main components of \cls{fduthesis}}
  \label{tab:fduthesis-components}
  \centering
  \begin{tabular}{lp{24em}}
    \toprule
    \textbf{Files} & \textbf{Descriptions} \\
    \midrule
    \file{fduthesis.cls}          & Document class for Chinese thesis. \\
    \file{fduthesis-en.cls}       & Document class for English thesis.\\
    \file{fduthesis.def}          & Configuration parameters file
      for \cls{fduthesis}. Please do \emph{not} modify it. \\
    \file{fdudoc.cls}             & Document class for user guides. \\
    \file{fdulogo.sty}            & Fudan University's visual identity. \\
    \file{fudan-emblem.pdf}       & University emblem. \\
    \file{fudan-emblem-new.pdf}   & University emblem (revised version). \\
    \file{fudan-name.pdf}         & Figure of university name. \\
    \file{README.md}              & The brief introduction. \\
    \file{fduthesis.pdf}          & User's guide in Chinese. \\
    \file{fduthesis-en.pdf}       & User's guide in English (this
      document). \\
    \file{fduthesis-code.pdf}     & Code implementation. \\
    \file{fduthesis-template.tex} & An empty thesis template, and you can
      write your thesis based on it. \\
    \bottomrule
  \end{tabular}
\end{table}

\section{User's guide}

\subsection{Getting started}

Here is a minimal \TeX{} file for \cls{fduthesis}:
\begin{latexexample}[gobble=1,deletetexcs={\documentclass},%
    moretexcs={\chapter},morekeywords={\documentclass},%
    emph={[2]document}]
  % thesis.tex
  \documentclass{fduthesis}
  \begin{document}
    \chapter{欢迎}
    \section{Welcome to fduthesis!}
    你好,\LaTeX{}!
  \end{document}
\end{latexexample}

Compile this file under the instructions in subsection~%
\ref{subsec:compilation}, you will get a 5-page article.
Of course, most of it will be blank, as you may predicate.

The English version can be used in the same way:
\begin{latexexample}[gobble=1,deletetexcs={\documentclass},%
    moretexcs={\chapter},morekeywords={\documentclass},%
    emph={[2]document}]
  % thesis-en.tex
  \documentclass{fduthesis-en}
  \begin{document}
    \chapter{Welcome}
    \section{Welcome to fduthesis!}
    Hello, \LaTeX{}!
  \end{document}
\end{latexexample}
The differences between English and Chinese version only
live in the main body. Thesis cover, instructors list and
declaration page are still printed in Chinese.

\subsection{Compilation} \label{subsec:compilation}

\cls{fduthesis} does NOT support \pdfTeX{}. Please use
\XeLaTeX{} or \LuaLaTeX{} to compile, and \XeLaTeX{} is
recommended. To get the correct table of contents, footnotes
and cross-references, you need to compile the source file at
least twice.

In the following example, suppose your \TeX{} source file is
\file{thesis.tex}. Please execute the following commands if
you want to use \XeLaTeX{}:
\begin{shellexample}[gobble=1,morekeywords={xelatex}]
  xelatex thesis
  xelatex thesis
\end{shellexample}
You can use \pkg{latexmk} as well:
\begin{shellexample}[gobble=1,morekeywords={latexmk},emph={-xelatex}]
  latexmk -xelatex thesis
\end{shellexample}

\LuaLaTeX{} can be used in a similar way:
\begin{shellexample}[gobble=1,morekeywords={lualatex}]
  lualatex thesis
  lualatex thesis
\end{shellexample}
or
\begin{shellexample}[gobble=1,morekeywords={latexmk},emph={-lualatex}]
  latexmk -lualatex thesis
\end{shellexample}

\subsection{Options of the template}

You can specify some \emph{template options} when loading
\cls{fduthesis}:
\begin{latexexample}[gobble=1,deletetexcs={\documentclass},%
    morekeywords={\documentclass}]
  \documentclass(*\oarg{options}*){fduthesis}
  \documentclass(*\oarg{options}*){fduthesis-en}
\end{latexexample}

Some options are \emph{boolean} --- they only take the value
\opt{true} or \opt{false}. For these options, you can
abbreviate ``\kvopt{\meta{option}}{true}'' simply to
``\opt{\meta{option}}''.

\begin{function}[added=2018-02-01]{type}
  \begin{fdusyntax}[gobble=4,emph={[1]type}]
    type = (*<doctor|master|(bachelor)>*)
  \end{fdusyntax}
  Choose the type of your thesis. The three options represent
  doctoral dissertation, master degree thesis and undergraduate
  thesis, respectively.
\end{function}

\begin{function}{oneside,twoside}
  Specify whether single or double sided output should be
  generated. \opt{twoside} will be chosen by default. These
  option will determine where the new chapters begin and how
  the headers display. The option \opt{twoside} does
  \emph{not} tell the printer to actually make a two-sided
  printout.
\end{function}

If choosing \opt{twoside}, chapters will begin at the odd pages
(right hand). However, they will begin at arbitrary pages
available when choosing \opt{oneside}. Table of contents,
abstract and the list of symbols are considered as chapters and
processed in the same way.

At two-sided mode, left headers on the even pages (left hand)
in \emph{main body} will show the title of chapters, while the
right headers on the odd pages (right hand) will show the
title of sections. Headers in \emph{front matter} have the
same style, but they will only show the title as ``Contents'',
``Abstract'', etc.

At one-sided mode, both left and right headers on \emph{all}
pages in main body will be shown. The text is the title of
chapters and sections, respectively. In front matter, there
are only middle headers, which show the corresponding titles.

\begin{function}{draft}
  \begin{fdusyntax}[gobble=4,emph={[1]draft}]
    draft = (*<\TFF>*)
  \end{fdusyntax}
  Enable draft mode. Default off.
\end{function}

\opt{draft} is a global option and will affect many packages.
You may notice the following changes when using \opt{draft}:
\begin{itemize}
  \item Lines with overfull \tn{hbox}'s will be marked with
    a thick black square on the right margin.
  \item Will not include graphics files actually, but instead
    print a box of the size the graphic would take up, as well
    as the file name.
  \item Will not make hyperlinks and PDF bookmarks.
  \item Show the page frames.
\end{itemize}

\begin{function}[added=2018-01-31]{config}
  \begin{fdusyntax}[gobble=4,emph={[1]config}]
    config = (*\marg{file}*)
  \end{fdusyntax}
  File name of user profile. Default value is empty, so no
  profile is loaded automatically.
\end{function}

\subsection{More options}

\begin{function}{\fdusetup}
  \begin{fdusyntax}[gobble=4,morekeywords={\fdusetup}]
    \fdusetup(*\marg{key-value list}*)
  \end{fdusyntax}
  \cls{fduthesis} has provided a number of options, which
  can be given via the general command \cs{fdusetup}.
\end{function}

The argument of \cs{fdusetup} is a set of comma-separated option
list. The options usually have the form of \kvopt{\meta{key}}%
{\meta{value}} and in some cases \meta{value} can be omitted.
For the same option, the values given later will override the
the previous ones. Default values are indicated in
\textbf{boldface} in the following descriptions.

\cs{fdusetup} follows \LaTeX3 key-value style, and different
types as well as various levels options are supported. In the
key-value list, spaces around ``|=|'' will be trimmed; however,
blank lines should never appear in the argument.

Similar with template options, ``\kvopt{\meta{option}}{true}''
can be abbreviated to \opt{\meta{option}} for boolean type.

Some options, such as \opt{style} and \opt{info}, may have
sub-options. They can be set by the following two equivalent
methods:
\begin{latexexample}[gobble=1,morekeywords={\fdusetup},%
    emph={[1]style,cjk-font,font-size,info,title,title*,author,author*,department}]
  \fdusetup{
    style = {cjk-font = adobe, font-size = -4},
    info  = {
      title      = {论动体的电动力学},
      title*     = {On the Electrodynamics of Moving Bodies},
      author     = {阿尔伯特·爱因斯坦},
      author*    = {Albert Einstein},
      department = {物理学系}
    }
  }
\end{latexexample}
or
\begin{latexexample}[gobble=1,morekeywords={\fdusetup},%
    emph={[1]style,cjk-font,font-size,info,title,title*,author,author*,department}]
  \fdusetup{
    style/cjk-font  = adobe,
    style/font-size = -4,
    info/title      = {论动体的电动力学},
    info/title*     = {On the Electrodynamics of Moving Bodies},
    info/author     = {阿尔伯特·爱因斯坦},
    info/author*    = {Albert Einstein},
    info/department = {物理学系}
  }
\end{latexexample}

Note that you may \emph{not} put spaces around ``|/|''.

\subsubsection{Style and format} \label{subsubsec:style-and-format}

\begin{function}{style}
  \begin{fdusyntax}[gobble=4,emph={[1]style}]
    style = (*\marg{key-value list}*)
    style/(*\meta{key}*) = (*\meta{value}*)
  \end{fdusyntax}
  This general option is for setting the thesis style and format.
  See the following details.
\end{function}

\begin{function}[updated=2019-03-05]{style/font}
  \begin{fdusyntax}[gobble=4,emph={[1]font}]
    font = (*<garamond|libertinus|lm|palatino|(times)|times*|none>*)
  \end{fdusyntax}
  Set fonts (including math fonts). The details can be found in table~\ref{tab:font}.
\end{function}

\begin{table}[ht]
\begin{threeparttable}
  \caption{Font configuration}
  \label{tab:font}
  \centering
  \begin{tabular}{ccccc}
    \toprule
      & \strong{Roman} & \strong{Sans-serif} & \strong{Monospaced} & \strong{Math} \\
    \midrule
      |garamond|        & EB Garamond         & Libertinus Sans & LM Mono\tnote{a} & Garamond Math   \\
      |libertinus|      & Libertinus Serif    & Libertinus Sans & LM Mono          & Libertinus Math \\
      |lm|              & LM Roman            & LM Sans         & LM Mono          & LM Math         \\
      |palatino|        & TG Pagella\tnote{b} & Libertinus Sans & LM Mono          & TG Pagella Math \\
      |times|           & XITS                & TG Heros        & TG Cursor        & XITS Math       \\
      |times*|\tnote{c} & Times New Roman     & Arial           & Courier New      & XITS Math       \\
    \bottomrule
  \end{tabular}
  \begin{tablenotes}
    \item[a] ``LM'' is the abbreviation of Latin Modern.
    \item[b] ``TG'' is the abbreviation of TeX Gyre.
    \item[c] Here, Times New Roman, Arial and Courier New are commercial fonts. They are
      installed on Windows and macOS by default.
  \end{tablenotes}
\end{threeparttable}
\end{table}
\begin{function}[rEXP,updated=2019-03-05]{style/cjk-font}
  \begin{fdusyntax}[gobble=4,emph={[1]cjk-font}]
    cjk-font = (*<adobe|(fandol)|founder|mac|sinotype|sourcehan|windows|none>*)
  \end{fdusyntax}
  Set CJK (Chinese, Japanese and Korean) fonts. The details can be found in
  table~\ref{tab:cjk-font}.
\end{function}

\begin{table}[ht]
  \caption{CJK font configuration}
  \label{tab:cjk-font}
  \centering
  \begin{tabular}{cccc}
    \toprule
      & \strong{Roman (song)} & \strong{Sans-serif (hei)} & \strong{Monospaced (fang)} \\
    \midrule
      |adobe|     & Adobe Song Std      & Adobe Heiti Std    & Adobe Fangsong Std \\
      |fandol|    & FandolSong          & FandolHei          & FandolFang         \\
      |founder|   & FZShuSong-Z01       & FZHei-B01          & FZFangSong-Z02     \\
      |mac|       & Songti SC           & Heiti SC           & STFangsong         \\
      |sinotype|  & STSong              & STHeiti            & STFangsong         \\
      |sourcehan| & Source Han Serif SC & Source Han Sans SC & ---                \\
      |windows|   & SimSun              & SimHei             & FangSong           \\
    \bottomrule
  \end{tabular}
\end{table}

When you choose \kvopt{font}{none} or \kvopt{cjk-font}{none},
\cls{fduthesis} will disable the default western/CJK font
settings. You may use \cs{setmainfont}, \cs{setCJKmainfont}
and \cs{set\-math\-font}, etc.\ to configure the fonts manually.

\begin{function}{style/font-size}
  \begin{fdusyntax}[gobble=4,emph={[1]font-size}]
    font-size = (*<(-4)|5>*)
  \end{fdusyntax}
  Specify the basic font size in your thesis.
\end{function}

\begin{function}[rEXP,updated=2017-10-14]{style/fullwidth-stop}
  \begin{fdusyntax}[gobble=4,emph={[1]fullwidth-stop}]
    fullwidth-stop = (*<catcode|mapping|(false)>*)
  \end{fdusyntax}
  Let full-width full stop ``\FSFW'' as the default full stop.
  Generally, this punctuation is used for scientific articles,
  where ``\FSID'' is easily to be confused with subscript
  ``$_o$'' or ``$_0$''.
\end{function}

If you choose \kvopt{fullwidth-stop}{catcode}, only
\emph{explicit} ``\FSID'' will be replaced by ``\FSFW''; when
choosing \kvopt{fullwidth-stop}{mapping}, however, \emph{all}
the ``\FSID'' will be replaced.

\opt{mapping} is valid only under \XeTeX{}. When compiling
with \LuaTeX{}, it is equivalent to \opt{catcode}.

If you want to display ``\FSID'' temporarily after setting
\kvopt{fullwidth-stop}{mapping}, the following code snippet
will be helpful:
\begin{latexexample}[gobble=1,moretexcs={\CJKfontspec},emph={[1]Mapping}]
  % Compiled with XeTeX
  % The outside braces is used for group
  这是一个句号{\CJKfontspec{(*\meta{font name}*)}[Mapping=full-stop]。}
\end{latexexample}

\begin{function}{style/footnote-style}
  \begin{fdusyntax}[gobble=4,emph={[1]footnote-style}]
    footnote-style = (*<plain|\\
      XXXX\mbox{}~~~~~~~~~~~~~~~~~libertinus|libertinus*|libertinus-sans|\\
      XXXX\mbox{}~~~~~~~~~~~~~~~~~pifont|pifont*|pifont-sans|pifont-sans*|\\
      XXXX\mbox{}~~~~~~~~~~~~~~~~~xits|xits-sans|xits-sans*>*)
  \end{fdusyntax}
  Set the style of footnote numbers. Note that western fonts
  will affect its default value (see table~\ref{tab:footnote-font}),
  so you may put it after |font| option. The one with |sans|
  is for the corresponding sans-serif version, while |*|
  for white on black version.
\end{function}

\begin{table}[ht]
  \caption{Relationship between option \opt{font} and the
    default value of \opt{footnote-style}}
  \label{tab:footnote-font}
  \centering
  \begin{tabular}{ccccc}
    \toprule
    \textbf{Western fonts settings} &
      |libertinus| & |lm|     & |palatino| & |times| \\
    \midrule
    \textbf{Default value of footnote number style} &
      |libertinus| & |pifont| & |pifont|   & |xits|  \\
    \bottomrule
  \end{tabular}
\end{table}

\begin{function}[added=2017-08-13]{style/hyperlink}
  \begin{fdusyntax}[gobble=4,emph={[1]hyperlink}]
    hyperlink = (*<border|(color)|none>*)
  \end{fdusyntax}
  Set the style of hyperlinks. \opt{border} draws borders around
  hyperlinks; \opt{color} displays hyperlinks in colorful text;
  \opt{none} leads to plain text, which is useful when printing
  the final document.
\end{function}

\begin{function}[added=2017-08-13,updated=2017-12-08]{style/hyperlink-color}
  \begin{fdusyntax}[gobble=4,emph={[1]hyperlink-color}]
    hyperlink-color = (*<(default)|classic|elegant|fantasy|material|\\
      XXXX\mbox{}~~~~~~~~~~~~~~~~~~business|science|summer|autumn|graylevel|prl>*)
  \end{fdusyntax}
  Set the color of hyperlinks. It is invalid if
  \kvopt{hyperlink}{none}. The related colors can be found
  in table~\ref{tab:hyperlink-color}.
\end{function}

\begin{table}[ht]
\centering
\newcommand\linkcolorexam[3]{%
  {\small Fig.~\textcolor[HTML]{#1}{1-2},
    Eq.~(\textcolor[HTML]{#1}{3.4})} &
  {\small \textcolor[HTML]{#2}{\texttt{http://g.cn}}} &
  {\small Ref.~[\textcolor[HTML]{#3}{1}],
    (\textcolor[HTML]{#3}{Knuth~1986})}}
\begin{threeparttable}
\caption{Pre-defined hyperlink color schemes}
\label{tab:hyperlink-color}
\begin{tabular}{c*{3}{>{\hspace{0.2cm}}c<{\hspace{0.2cm}}}}
  \toprule
  \textsf{Options} & \textsf{Cross references} & \textsf{URL} & \textsf{Citation} \\
  \midrule
  \opt{default}            & \linkcolorexam{990000}{0000B2}{007F00} \\
  \opt{classic}            & \linkcolorexam{FF0000}{0000FF}{00FF00} \\
  \opt{elegant}\tnote{a}   & \linkcolorexam{961212}{C31818}{9B764F} \\
  \opt{fantasy}\tnote{b}   & \linkcolorexam{FF4A19}{FF3F94}{934BA1} \\
  \opt{material}\tnote{c}  & \linkcolorexam{E91E63}{009688}{4CAF50} \\
  \opt{business}\tnote{d}  & \linkcolorexam{D14542}{295497}{1F6E43} \\
  \opt{science}\tnote{e}   & \linkcolorexam{CA0619}{389F9D}{FF8920} \\
  \opt{summer}\tnote{f}    & \linkcolorexam{00AFAF}{5F5FAF}{5F8700} \\
  \opt{autumn}\tnote{f}    & \linkcolorexam{D70000}{D75F00}{AF8700} \\
  \opt{graylevel}\tnote{c} & \linkcolorexam{616161}{616161}{616161} \\
  \opt{prl}\tnote{g}       & \linkcolorexam{2D3092}{2D3092}{2D3092} \\
  \bottomrule
\end{tabular}
\begin{tablenotes}
  \item[a] From \href{https://tex.stackexchange.com/}%
    {\TeX{} - \LaTeX{} Stack Exchange}.
  \item[b] Adobe CC.
  \item[c] Material Design color palette
    (See \url{https://material.io/guidelines/style/color.html}).
  \item[d] Microsoft Office 2016.
  \item[e] From \href{https://www.wolfram.com/}{Wolfram Research website}.
  \item[f] Solarized color palette
    (See \url{http://ethanschoonover.com/solarized}).
  \item[g] \textit{Physical Review Letter} magazine.
\end{tablenotes}
\end{threeparttable}
\end{table}

\begin{function}[added=2018-01-25]{style/bib-backend}
  \begin{fdusyntax}[gobble=4,emph={[1]bib-backend}]
    bib-backend = (*<bibtex|biblatex>*)
  \end{fdusyntax}
  Specify the backend or driver of bibliography processing.
  \BibTeX{} and \pkg{natbib} package will be used if you choose
  \opt{bibtex}, while \biber{} and \pkg{biblatex} will be used
  if you choose \opt{biblatex}.
\end{function}

\begin{function}[added=2017-10-28,updated=2018-01-25]%
    {style/bib-style}
  \begin{fdusyntax}[gobble=4,emph={[1]bib-style}]
    bib-style = (*<author-year|(numerical)|\meta{other style}>*)
  \end{fdusyntax}
  Set the style of bibliography. \opt{author-year} and
  \opt{numerical} will follow the standard GB/T 7714--2015.
  By setting \kvopt{bib-style}{\meta{other style}}, you can use
  other bibliography style (\file{.bst} file for
  \kvopt{bib-backend}{bibtex} and \file{.bbx} file for
  \kvopt{bib-backend}{biblatex}). Suffix is not needed.
\end{function}

\begin{function}[added=2018-01-25]{style/cite-style}
  \begin{fdusyntax}[gobble=4,emph={[1]cite-style}]
    cite-style = (*\marg{style}*)
  \end{fdusyntax}
  Select citation style. Default value is empty, which means
  the citation style will follow your bibliography style
  (author-year or numeric). If you want change the citation
  style, the corresponding \file{.cbx} file must be available.
  This option is invalid when \kvopt{bib-backend}{bibtex}.
\end{function}

\begin{function}[added=2018-01-25]{style/bib-resource}
  \begin{fdusyntax}[gobble=4,emph={[1]bib-resource}]
    bib-resource = (*\marg{bib file\symbol{"28}s\symbol{"29}}*)
  \end{fdusyntax}
  Specify the bibliography database (usually in \file{.bib}
  format). If using more than one files, the file names should
  be separated with comma. When \kvopt{bib-backend}{biblatex},
  you must type in the ``\file{.bib}'' suffix.
\end{function}

\begin{function}[added=2017-08-10]{style/logo}
  \begin{fdusyntax}[gobble=4,emph={[1]logo}]
    logo = (*\marg{file}*)
  \end{fdusyntax}
  File name of the logo in thesis cover. Default value is
  \file{fudan-name.pdf}.
\end{function}

\begin{function}[added=2017-08-10]{style/logo-size}
  \begin{fdusyntax}[gobble=4,emph={[1]logo-size}]
    logo-size = (*\marg{width}*)
    logo-size = {(*\meta{width}*), (*\meta{height}*)}
  \end{fdusyntax}
  Size of the logo. By default, only width is set to
  |0.5\textwidth|. To set height only, you can put an
  empty group ``|{}|'' at \meta{width}.
\end{function}

\begin{function}[added=2017-07-06]{style/auto-make-cover}
  \begin{fdusyntax}[gobble=4,emph={[1]auto-make-cover}]
    auto-make-cover = (*<\TTF>*)
  \end{fdusyntax}
  Whether generate thesis cover, list of instructors (inside
  front cover) and declaration page (inside back cover)
  automatically. Entries in the cover can be specified also
  via \cs{fdusetup}, and you can find more details in
  subsubsection~\ref{subsubsec:information}.
\end{function}

\begin{function}{\makecoveri,\makecoverii,\makecoveriii}
  For generating thesis cover, list of instructors and
  declaration page manually. These commands cannot ensure
  the correct page numbers, hence you should always use the
  auto-generated thesis cover unless necessary.
\end{function}

\subsubsection{Personal information} \label{subsubsec:information}

\begin{function}{info}
  \begin{fdusyntax}[gobble=4,emph={[1]info}]
    info = (*\marg{key-value list}*)
    info/(*\meta{key}*) = (*\meta{value}*)
  \end{fdusyntax}
  This general option is for entering your personal information.
  See the following details. Note that options with ``|*|'' are
  the corresponding English items.
\end{function}

\begin{function}[added=2018-02-01,updated=2019-03-12]{info/degree}
  \begin{fdusyntax}[gobble=4,emph={[1]degree}]
    degree = (*<(academic)|professional>*)
  \end{fdusyntax}
  Degree type. This option can only be used in master degree
  thesis.
\end{function}

\begin{function}{info/title,info/title*}
  \begin{fdusyntax}[gobble=4,emph={[1]title,title*}]
    title  = (*\marg{title in Chinese}*)
    title* = (*\marg{title in English}*)
  \end{fdusyntax}
  Title of your thesis. The line width is about \SI{30}{em} by
  default, but you may break it with |\\| manually.
\end{function}

\begin{function}{info/author,info/author*}
  \begin{fdusyntax}[gobble=4,emph={[1]author,author*}]
    author  = (*\marg{name in Chinese}*)
    author* = (*\marg{name in English \lparen or Pinyin\rparen}*)
  \end{fdusyntax}
  Author's name.
\end{function}

\begin{function}{info/supervisor}
  \begin{fdusyntax}[gobble=4,emph={[1]supervisor}]
    supervisor = (*\marg{name}*)
  \end{fdusyntax}
  Supervisor's name.
\end{function}

\begin{function}{info/department}
  \begin{fdusyntax}[gobble=4,emph={[1]department}]
    department = (*\marg{name}*)
  \end{fdusyntax}
  Name of the department.
\end{function}

\begin{function}{info/major}
  \begin{fdusyntax}[gobble=4,emph={[1]major}]
    major = (*\marg{name}*)
  \end{fdusyntax}
  Name of the major.
\end{function}

\begin{function}{info/student-id}
  \begin{fdusyntax}[gobble=4,emph={[1]student-id}]
    student-id = (*\marg{number}*)
  \end{fdusyntax}
  Author's student ID.
\end{function}

In Fudan University, student ID has 11 digits. The first two
are the year of attendance; next one represents the student's
type (1 for doctor, 2 for master and 3 for bachelor); the
following five digits are major ID while the last three are
serial number.

\begin{function}{info/school-id}
  \begin{fdusyntax}[gobble=4,emph={[1]school-id}]
    school-id = (*\marg{number}*)
  \end{fdusyntax}
  School ID. Default value is 10246 (school ID of Fudan University).
\end{function}

\begin{function}{info/date}
  \begin{fdusyntax}[gobble=4,emph={[1]date}]
    date = (*\marg{date}*)
  \end{fdusyntax}
  Finish date of your thesis. Default value is the compilation
  date (\tn{today}).
\end{function}

\begin{function}[added=2017-07-04]{info/secret-level}
  \begin{fdusyntax}[gobble=4,emph={[1]secret-level}]
    secret-level = (*<(none)|i|ii|iii>*)
  \end{fdusyntax}
  Secret level. \opt{i}, \opt{ii} and \opt{iii} means
  ``秘密'' (secret), ``机密'' (confidential) and ``绝密''
  (top secret) respectively. \opt{none} means your thesis is
  not secret-related and secret level and year will not be
  shown.
\end{function}

\begin{function}[added=2017-07-04]{info/secret-year}
  \begin{fdusyntax}[gobble=4,emph={[1]secret-year}]
    secret-year = (*\marg{year}*)
  \end{fdusyntax}
  Secret year. It's recommended to use Chinese word as ``五年''
  (5 years) here. This option is invalid if you have set
  \kvopt{secret-level}{none}.
\end{function}

\begin{function}{info/instructors}
  \begin{fdusyntax}[gobble=4,emph={[1]instructors}]
    instructors = (*\marg{member 1, member 2, ...}*)
  \end{fdusyntax}
  Instructors' name. Each name should be separated with
  comma. To disambiguate, you may put text containing comma
  into a group ``|{...}|''.
\end{function}

\begin{function}{info/keywords,info/keywords*}
  \begin{fdusyntax}[gobble=4,emph={[1]keywords,keywords*}]
    keywords  = (*\marg{keywords in Chinese}*)
    keywords* = (*\marg{keywords in English}*)
  \end{fdusyntax}
  Keywords list. Each keyword should be separated with comma.
  To disambiguate, you may put text containing comma into a
  group ``|{...}|''.
\end{function}

\begin{function}{info/clc}
  \begin{fdusyntax}[gobble=4,emph={[1]clc}]
    clc = (*\marg{classification codes}*)
  \end{fdusyntax}
  Chinese Library Classification (CLC).
\end{function}

\subsection{Writing your thesis}

\subsubsection{Front matter}

\begin{function}{\frontmatter}
  Declare the beginning of front matter.
\end{function}

Front matter contains table of contents, abstracts and notation
list. The page numbers in front matter will be shown in
lowercase Roman numerals, and will be counted separately with
main matter.

\begin{function}{\tableofcontents}
  Generate the table of contents (TOC). You need to compile
  the source file at least \emph{twice} to get the correct TOC.
  If your thesis contains many figures or tables, you may also
  use \cs{listoffigures} or \cs{listoftables} to generate a list
  of them.
\end{function}

\begin{function}{abstract}
  \begin{fdusyntax}[gobble=4,emph={[2]abstract}]
    % fduthesis (Chinese thesis)    % fduthesis-en (English thesis)
    \begin{abstract}                \begin{abstract}
      (*\meta{Chinese abstract} \hspace{3cm} \meta{English abstract}*)
    \end{abstract}                  \end{abstract}
  \end{fdusyntax}
\end{function}
\begin{function}[rEXP]{abstract*}
  \begin{fdusyntax}[gobble=4,emph={[2]abstract*}]
    % Only for fduthesis
    \begin{abstract*}
      (*\meta{English abstract}*)
    \end{abstract*}
  \end{fdusyntax}
  Abstract environment. In \cls{fduthesis}, \env{abstract} and
  \env{abstract*} are used for Chinese and English abstract,
  respectively; while in \cls{fduthesis-en}, there is no
  \env{abstract*} environment and you need to write the English
  abstract merely.
\end{function}

At the end of abstract (both Chinese and English, if available),
keywords list and CLC number will be shown. They can be
specified via command \cs{fdusetup} and you may refer to
subsubsection~\ref{subsubsec:information} for more details.

\begin{function}{notation}
  \begin{fdusyntax}[gobble=4,emph={[2]notation}]
    \begin{notation}(*\oarg{column format}*)
      (*\meta{symbol 1}*)  &  (*\meta{description}*)  \\
      (*\meta{symbol 2}*)  &  (*\meta{description}*)  \\
      (*\phantom{\meta{symbol $n$}}*)  (*$\vdots$*)
      (*\meta{symbol \kern-0.1em$n$}*)  &  (*\meta{description}*)
    \end{notation}
  \end{fdusyntax}
  Notation list (or symbol list, nomenclature) environment.
  The optional argument \meta{column format} is the same as
  in a standard \LaTeX{} table. The default value is
  ``|lp{7.5cm}|'', which means auto-width for the first column
  and fix-width (\SI{7.5}{cm}) for the second; both columns will
  be left-aligned.
\end{function}

\subsubsection{Main matter}

\begin{function}{\mainmatter}
  Declare the beginning of main matter.
\end{function}

As the name suggests, ``main matter'' is the main body of your
thesis. When working on a big projects, it's usually a good
idea to split the source file into several parts. The page
numbers in main matter are shown in arabic numerals.

\begin{function}[updated=2018-01-15]{\footnote}
  \begin{fdusyntax}[gobble=4,deletetexcs={\footnote},%
      morekeywords={\footnote}]
    \footnote(*\marg{text}*)
  \end{fdusyntax}
  Insert a footnote. The style of footnote numbers can be set
  with option \opt{style/foot\-note\-style}. See subsubsection~%
  \ref{subsubsec:style-and-format} for more details.
\end{function}

\begin{function}{axiom,corollary,definition,example,lemma,
  proof,theorem}
  \begin{fdusyntax}[gobble=4,emph={[2]proof}]
    \begin{proof}(*\oarg{subheading}*)
      (*\meta{procedure of proof}*)
    \end{proof}
  \end{fdusyntax}
  A series of pre-defined math environments.
\end{function}

A QED\footnote{Abbreviation of Latin phrase \emph{quod erat
  demonstrandum}, means ``what was to be demonstrated''.}
symbol ``$\QED$'' will be added at the end of \env{proof}
environment. You need to compile the source file \emph{twice}
as in subsection~\ref{subsec:compilation} in order to make
the position of QED symbol correct.

\begin{function}[updated=2017-12-12]{\newtheorem}
  \begin{fdusyntax}[gobble=4,deletetexcs={\newtheorem},
      morekeywords={\newtheorem,\newtheorem*}]
    \newtheorem(*\oarg{options}\marg{environment}\marg{title}*)
    \newtheorem*(*\oarg{options}\marg{environment}\marg{title}*)
    \begin(*\marg{environment}\oarg{subheading}*)
      (*\meta{contents}*)
    \end(*\marg{environment}*)
  \end{fdusyntax}
  Declare new math environments (theorems). If you use
  \cs{newtheorem*}, then the theorem will not be numbered, and
  a QED symbol ``$\QED$'' will be added at the end of the
  environment. All the theorem environments defined by yourself
  can be used as the pre-defined ones.
\end{function}

Actually, the pre-defined math environments are just defined
with \cs{new\-the\-o\-rem} and \cs{new\-the\-o\-rem*}:
\begin{latexexample}[gobble=1,deletetexcs={\newtheorem},
    morekeywords={\newtheorem,\newtheorem*}]
  \newtheorem*{proof}{proof}
  \newtheorem{axiom}{axiom}
  \newtheorem{corollary}{corollary}
  ...
\end{latexexample}

Similar with \cs{fdusetup}, the optional argument \meta{options}
of \cs{newtheorem} is a key-value list as well. The available
are described below. Note that you don't need to type in the
``|theorem/|'' prefix.

\begin{function}{theorem/style}
  \begin{fdusyntax}[gobble=4,emph={[1]style}]
    style = (*<(plain)|margin|change|\\
      XXXX\mbox{}~~~~~~~~break|marginbreak|changebreak>*)
  \end{fdusyntax}
  The overall style of the theorem environment.
\end{function}

\begin{function}{theorem/header-font}
  \begin{fdusyntax}[gobble=4,emph={[1]header-font}]
    header-font = (*\marg{font}*)
  \end{fdusyntax}
  Font of the theorem header. Default value is \tn{sffamily}
  and |\bfseries\upshape| for Chinese and English template,
  respectively.
\end{function}

\begin{function}{theorem/body-font}
  \begin{fdusyntax}[gobble=4,emph={[1]body-font}]
    body-font = (*\marg{font}*)
  \end{fdusyntax}
  Font of the theorem body. Default value is \tn{fdu@kai}
  (\textit{楷体}) and \tn{itshape} for Chinese and English
  template, respectively.
\end{function}

\begin{function}{theorem/qed}
  \begin{fdusyntax}[gobble=4,emph={[1]qed}]
    qed = (*\marg{symbol}*)
  \end{fdusyntax}
  Theorem end mark. For \cs{newtheorem}, default value is
  empty; for \cs{newtheorem*}, default value is
  |\ensuremath{\QED}| (i.e.\ ``$\QED$'').
\end{function}

\begin{function}{theorem/counter}
  \begin{fdusyntax}[gobble=4,emph={[1]counter}]
    counter = (*\marg{counter}*)
  \end{fdusyntax}
  The theorem will be enumerated within \meta{counter}. For
  example, the default value is |chapter|, which means with
  each new \tn{chapter}, the enumeration begins again with 1.
  This option is invalid for \cs{newtheorem*}.
\end{function}

\begin{function}{\caption}
  \begin{fdusyntax}[gobble=4,deletetexcs={\caption},morekeywords={\caption}]
    \caption(*\marg{caption}*)
    \caption(*\oarg{short caption}\marg{long caption}*)
  \end{fdusyntax}
  Insert the caption of figure or table. The optional argument
  \meta{short caption} will be shown in the list of figures/tables.
  In \meta{long caption}, you can write descriptions for several
  paragraphs, but \meta{short caption} and the single
  \meta{caption} will not allow multi-paragraph text (i.e.\
  text containing \tn{par}) inside.
\end{function}

By convention, caption of a table is usually put \emph{before}
the table itself, while for figure it's the opposite.
In addition, command \tn{caption} must be put inside float
environments (e.g.\ \env{table} and \env{figure}).

\subsubsection{Back matter}

\begin{function}{\backmatter}
  Declare the beginning of back matter.
\end{function}

Back matter contains bibliography, declaration page, etc.

\begin{function}[updated=2018-01-25]{\printbibliography}
  \begin{fdusyntax}[gobble=4,morekeywords={\printbibliography}]
    \printbibliography(*\oarg{options}*)
  \end{fdusyntax}
  Print the bibliography. When \kvopt{bib-backend}{bibtex}, then
  \meta{options} is invalid and this command is equivalent to
  \tn{bibliography} \texttt{\marg{bib files}}, where
  \meta{bib files} should be specified with option
  \opt{style/bib-resource} (see subsubsection~%
  \ref{subsubsec:style-and-format}). When \kvopt{bib-backend}%
  {bibtex}, then \tn{printbibliography} is provided by
  \pkg{biblatex} and the available options can be found in its
  documentation.
\end{function}

\section{Packages dependencies}

Different compilation methods and options will result in a
different packages dependency. Details are as follows:
\begin{itemize}
  \item In any case, \cls{fduthesis} will load the following
    packages \emph{explicitly}:
    \begin{itemize}
      \item \pkg{expl3}, \pkg{xparse}, \pkg{xtemplate} and
        \pkg{l3keys2e}, belong to \pkg{l3kernel} and
        \pkg{l3packages} bundles
      \item \cls{ctexbook}, belongs to \CTeX{} bundle
      \item \pkg{amsmath}, belongs to \AmSLaTeX{} bundle
      \item \pkg{unicode-math}
      \item \pkg{geometry}
      \item \pkg{fancyhdr}
      \item \pkg{footmisc}
      \item \pkg{ntheorem}
      \item \pkg{graphicx}
      \item \pkg{longtable}
      \item \pkg{caption}
      \item \pkg{xcolor}
      \item \pkg{hyperref}
    \end{itemize}
  \item When chosen \kvopt{style/footnote-style}{pifont},
    package \pkg{pifont} will be loaded. It belongs to
    \pkg{psnfss} bundle.
  \item When chosen \kvopt{style/bib-backend}{bibtex},
    package \pkg{natbib} will be loaded. Meanwhile, program
    \BibTeX{} will be required for compilation. The
    bibliography style is provided by \pkg{gbt7714}.
  \item When chosen \kvopt{style/bib-backend}{biblatex},
    package \pkg{biblatex} will be loaded. Program \biber{}
    will be required then. The bibliography style is provided
    by \pkg{biblatex-gb7714-2015}.
\end{itemize}

Only the packages loaded directly by \cls{fduthesis} are listed
here. If you need to know the dependencies of the packages
themselves, please refer to the corresponding manuals.

\end{document}