forked from StickCui/XDUthesis-personal
-
Notifications
You must be signed in to change notification settings - Fork 1
/
XDUthesis.dtx
1669 lines (1601 loc) · 63.8 KB
/
XDUthesis.dtx
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
% \iffalse meta-comment
% !TeX program = xelatex
% !TeX encoding = UTF-8
%
% Copyright (C) 2015--2019 by Stick Cui <Stick_Cui@163.com>
%
% This file 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.3c or later is part of all distributions of LaTeX
% version 2008/05/04 or later.
%<*internal>
\def\nameofplainTeX{plain}
\ifx\fmtname\nameofplainTeX\else
\expandafter\begingroup
\fi
%</internal>
%<*install>
\input docstrip
\keepsilent
\askforoverwritefalse
\preamble
This is a generated file.
Copyright (C) 2015--\the\year by Stick Cui <Stick_Cui@163.com>
This file 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.3c or later is part of all distributions of LaTeX
version 2008/05/04 or later.
To produce the documentation run the original source files ending with `.dtx'
through LaTeX.
\endpreamble
\postamble
This package consists of the file XDUthesis.dtx,
and the derived files XDUthesis.cls,
XDUthesis.cfg.
\endpostamble
\usedir{tex/latex/XDUthesis}
\generate
{
\file{XDUthesis.cls}{\from{\jobname.dtx}{cls}}
\file{XDUthesis.cfg}{\from{\jobname.dtx}{cfg}}
}
\Msg{***********************************************************}
\Msg{*}
\Msg{* To finish the installation you have to move the following}
\Msg{* files into a directory searched by TeX:}
\Msg{*}
\Msg{* The recommended directory is TEXMF/tex/latex/XDUthesis}
\Msg{*}
\Msg{* \space\space XDUthesis.cls}
\Msg{* \space\space XDUthesis.cfg}
\Msg{*}
\Msg{* To produce the documentation run the files ending with}
\Msg{* `.dtx' through LaTeX.}
\Msg{*}
\Msg{* Happy TeXing!}
\Msg{***********************************************************}
%</install>
%<install>\endbatchfile
%<*internal>
\usedir{tex/latex/XDUthesis}
\generate
{
\file{\jobname.ins}{\from{\jobname.dtx}{install}}
}
\nopreamble\nopostamble
\ifx\fmtname\nameofplainTeX
\expandafter\endbatchfile
\else
\expandafter\endgroup
\fi
%</internal>}
%<cls>\NeedsTeXFormat{LaTeX2e}
%<cls>\ProvidesClass{XDUthesis}
%<cfg>\ProvidesFile{XDUthesis.cfg}
%<cls|cfg>[2021/02/25 0.1.10 Xidian University Thesis Template]
%<*driver>
\ProvidesFile{XDUthesis.dtx}[2021/02/25 0.1.10 Xidian University Thesis Template]
\documentclass[10pt]{ltxdoc}
\usepackage[left=4cm,right=3cm,top=3cm,bottom=2cm]{geometry}
\usepackage[SlantFont,BoldFont,CJKchecksingle]{xeCJK}
\usepackage{indentfirst}
\setlength{\parindent}{2em}
\usepackage[toc,page,title,titletoc,header]{appendix}
\usepackage{longtable,multirow,hhline,tabularx,array,makecell,booktabs,diagbox}
\usepackage{metalogo,xcolor}
\usepackage{pst-barcode}%
\usepackage{fancyvrb,CJKfntef}
\makeatletter
\@ifundefined{CJKunderline}%
{%
% \CJKunderline not defined
\usepackage{xeCJKfntef}
}
{%
% \CJKunderline defined
}%
\makeatother
\usepackage[bookmarks=true,%
linkcolor=black,%
citecolor=black,%
unicode=true,%
colorlinks=true,%
pdfborder=001,%
urlcolor=black,
bookmarksnumbered=true%
]{hyperref}
\def\XDUthesis{X\kern -.1667em\lower .5ex\hbox {D}\kern -.125emU\textit{thesis}{}}
\renewcommand{\abstractname}{摘\quad 要}
\renewcommand{\contentsname}{目\quad 录}
\renewcommand{\appendixname}{附\quad 录}
\renewcommand{\figurename}{图}
\renewcommand{\tablename}{表}
\renewcommand\refname{参考文献}
\renewcommand{\indexname}{索\quad 引}
\def\pkg#1{\texttt{#1}}
\usepackage{fancyhdr}
\setlength{\headheight}{15pt}
\fancyhf{}
\fancyhead[L]{\leftmark}
\fancyhead[R]{\thepage}
\renewcommand\headrulewidth{0.5pt}
\renewcommand{\footrulewidth}{0pt}
\fancypagestyle{headings}{
\fancyhf{}
\fancyhead[C]{\contentsname}
\renewcommand{\headrulewidth}{0.5pt}
\renewcommand{\footrulewidth}{0pt}}
\pagestyle{fancy}
\def\XDU@codebasicfont{\fontfamily{pcr}\selectfont}
\DefineVerbatimEnvironment{example}{Verbatim}%
{frame=single,framerule=0.3mm,rulecolor=\color{red!70!green!20!blue!20},%
fillcolor=\color{red!75!green!50!blue!15},framesep=0.5mm,baselinestretch=1.2,%
fontsize=\small,gobble=1}
\DefineVerbatimEnvironment{shell}{Verbatim}%
{frame=single,framerule=0.3mm,rulecolor=\color{red!0!green!25!blue!51},%
fillcolor=\color{red!20!green!20!blue!50},framesep=0.5mm,fontsize=\small,gobble=1}
\EnableCrossrefs
\CodelineIndex
\RecordChanges
\begin{document}
\DocInput{\jobname.dtx}
\PrintChanges
\PrintIndex
\end{document}
%</driver>
% \fi
%
% \CheckSum{1058}
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
% Digits \0\1\2\3\4\5\6\7\8\9
% Exclamation \! Double quote \" Hash (number) \#
% Dollar \$ Percent \% Ampersand \&
% Acute accent \' Left paren \( Right paren \)
% Asterisk \* Plus \+ Comma \,
% Minus \- Point \. Solidus \/
% Colon \: Semicolon \; Less than \<
% Equals \= Greater than \> Question mark \?
% Commercial at \@ Left bracket \[ Backslash \\
% Right bracket \] Circumflex \^ Underscore \_
% Grave accent \` Left brace \{ Vertical bar \|
% Right brace \} Tilde \~}
%
% \GetFileInfo{\jobname.dtx}
%
% \changes{v0.1}{2015/12/02}{finish bachelor thesis}
%
% \DoNotIndex{\begin,\end,\begingroup,\endgroup}
% \DoNotIndex{\ifx,\ifdim,\ifnum,\ifcase,\else,\or,\fi}
% \DoNotIndex{\let,\def,\xdef,\newcommand,\renewcommand}
% \DoNotIndex{\expandafter,\csname,\endcsname,\relax,\protect}
% \DoNotIndex{\Huge,\huge,\LARGE,\Large,\large,\normalsize}
% \DoNotIndex{\small,\footnotesize,\scriptsize,\tiny}
% \DoNotIndex{\normalfont,\bfseries,\slshape,\interlinepenalty}
% \DoNotIndex{\hfil,\par,\hskip,\vskip,\vspace,\quad}
% \DoNotIndex{\centering,\raggedright}
% \DoNotIndex{\c@secnumdepth,\@startsection,\@setfontsize}
% \DoNotIndex{\ ,\@plus,\@minus,\p@,\z@,\@m,\@M,\@ne,\m@ne}
% \DoNotIndex{\@@par,\DeclareOperation,\RequirePackage,\LoadClass}
% \DoNotIndex{\AtBeginDocument,\AtEndDocument}
%
% \IndexPrologue{\section*{索~~~~引}}
% \GlossaryPrologue{\section*{修改记录}}
%
% \title{\XDUthesis 西安电子科技大学本科生毕业设计论文模板\thanks{Xidian University \LaTeX{} Thesis Template}}
% \author{崔元顺\thanks{西安电子科技大学数学与统计学院2012级本科生}}
% \date{v\fileversion\ (\filedate)}
%
% \maketitle\thispagestyle{empty}
% \begin{abstract}
% 本模板旨在减轻排版工作量,使得学生专注于论文质量本身。鉴于项目仍处于初级阶段,仅包含本科毕业设计论文部分。
% \end{abstract}
%
% \vspace*{2em}
% \def\abstractname{免责声明}
% \begin{abstract}
% \noindent
% \begin{enumerate}
% \item 本模板的前期制作部分参考\href{http://www.ctan.org/pkg/thuthesis}{清华大学学位论文模板}以及\href{https://github.com/mohuangrui/ucasthesis}{中国科学院大学学位论文 \LaTeX{} 模板},且遵守 \LaTeX{} Project Public License,使用前请认真阅读协议内容。
% \item 本模板的制作过程参考\href{http://jwc.xidian.edu.cn}{西安电子科技大学教务处}发布的《本科生毕业设计(论文)工作手册》,仅供\href{http://www.xidian.edu.cn}{西安电子科技大学}本科生撰写毕业设计论文使用。
% \item 本模板为作者参考官方工作手册要求个人制作,使用仅供参考,任何由于使用本模板而引起的论文格式审查问题均与本模板作者无关。
% \item 任何个人或组织以本模板为基础进行修改、扩展而生成的新的专用模板,请严格遵守 \LaTeX{} Project Public License 协议。由于违犯协议而引起的任何纠纷争端均与本模板作者无关。
% \end{enumerate}
% \end{abstract}
%
% \clearpage
% \thispagestyle{headings}
% \begin{multicols}{2}[
% \setlength{\columnseprule}{.4pt}
% \setlength{\columnsep}{18pt}]
% \tableofcontents
% \end{multicols}
% \clearpage
% \pagenumbering{arabic}
%
% \section{模板介绍}
% \XDUthesis{} 是为西安电子科技大学毕业生而写的\LaTeX{} 模板,目前仅支持本科生毕业论文,硕博暂不支持。
%
% 在此,有关本模板的使用方法以及相关注意事项,将尽可能地在本文中叙述;
% 遵守本模板中的一些规则,将大大减少论文排版时间。\footnote{因使用者个人修改或未遵守本模板规范,而造成的论文版式不规范,与\XDUthesis{} 模板作者无关。}
%
% 在 \ref{SubSec:HowToMake} 小节,介绍了如何去编译文档,对于没接触过\BibTeX{} 的用户,在 \ref{SubSec:ForBibTeX} 小节还补充介绍了配合\BibTeX{}编译文档的原理。除了本模板自带的使用样例,本文档的 \ref{SubSec:ThesisSample} 小节中还给出了一个十分简洁的小样例,供大家入门学习。
%
% \section{模板信息}
% \subsection{模板组成}
% \begin{longtable}[c]{l|m{9cm}}
% \caption{\XDUthesis{} 模板主要文件(夹)及功能介绍}\label{Tab:XDUthesisALL}\\
% \hline
% \textbf{文件(夹)} & \textbf{功能描述}\\\hline\hline
% \endfirsthead
% \multicolumn{2}{l}{(续表)}\\
% \hline
% \textbf{文件(夹)} & \textbf{功能描述}\\\hline\hline
% \endhead
% \hline
% \multicolumn{2}{c}{接下页$\cdots$}
% \endfoot
% \hline
% \endlastfoot
%
% XDUthesis.dtx & 模板主文件\\
% XDUthesis.cls & 模板文档类文件(需生成)\\
% XDUthesis.cfg & 模板配置文件(需生成)\\
% Demo.tex & 模板示例拆分文档的主文档\footnote{将整个论文拆分为几个部分,汇总在本文件}\\
% gbt7714-plain.bst & 参考文献样式文件(排序)\\
% gbt7714-unsrt.bst & 参考文献样式文件(不排序)\\
% ThesisFiles/ & 模板示例拆分文档的存储目录\\
% Abstract.tex & 模板示例拆分文档的摘要部分(存放于ThesisFiles)\\
% Chapters.tex & 模板示例拆分文档的主要章节部分(存放于ThesisFiles)\footnote{可根据需要再行修改或拆分,添加到Main.tex中;}\\
% Thanks.tex & 模板示例拆分文档的致谢部分(存放于ThesisFiles)\\
% Appendix.tex & 模板示例拆分文档的附录部分(存放于ThesisFiles)\\
% RefFile.bib & 参考文献库示例文档(存放于ThesisFiles)\\
% Code/ & 源代码文件夹,存放各种程序源代码(附录用)\\
% Figure/ & 图片文件夹,存放各种文章中用到的图\footnote{\textbf{\color{red}目录里面的logo.pdf和xidian.pdf勿动,模板封面要用!!!}}\\
% make.bat & 生成模板类、说明文档等Windows脚本\\
% \textbf{XDUthesis.pdf} & 用户手册(本文档,需生成)\\
% \end{longtable}
% \textbf{注:}使用前,请仔细阅读\textbf{XDUthesis.pdf},即本文档。
%
% \subsection{使用前的准备}
%
% \XDUthesis{} 模板基于ctex中文套件中的\pkg{ctexbook}而写,因此用户需要确保安装了ctex套件,如没有安装可前往\textbf{CTAN: \url{http://www.ctan.org}} 或者前往\textbf{GitHub(CTeX-org): \url{https://github.com/CTeX-org/ctex-kit/releases}} 下载。
%
% 除以上,本模板还依赖以下宏包:
%
% \begin{table}[ht]
% \centering
% \caption{\XDUthesis{} 依赖宏包}\label{Tab:pkg}
% \begin{tabular}{*{6}l}
% \hline
% \pkg{ifxetex} & \pkg{xcolor} & \pkg{fontenc} & \pkg{amsmath} & \pkg{amssymb} & \pkg{graphicx}\\
% \pkg{ntheorem} & \pkg{natbib} & \pkg{appendix} & \pkg{listings} & \pkg{longtable} & \pkg{multirow}\\
% \pkg{hhline} & \pkg{tabularx} & \pkg{array} & \pkg{makecell} & \pkg{colortbl} & \pkg{booktabs}\\
% \pkg{hyperref} & \pkg{geometry} & \pkg{fancyhdr} & \pkg{CJKfntef} & \pkg{subcaption} & \pkg{setspace}\\
% \pkg{blindtext} & \pkg{pifont} & \pkg{algpseudocode} & \pkg{algorithm} & \pkg{algorithmicx} &\\
% \hline
% \end{tabular}
% \end{table}
% 表 \ref{Tab:pkg} 中宏包,常见的\TeX{} 发行版都会集成好,比如作者本人开发时使用的TeXLive2015既涵盖了ctex中文套件,也包含了表 \ref{Tab:pkg} 中的所有宏包。 如使用的其他系统\footnote{比如CTeX中文小组维护的CTeX 2.9版本,里面集成的宏包都比较老,需要手动下载更新。一般用户根本不知道如何去做。因此作者推荐TeXLive2015.}缺少表 \ref{Tab:pkg} 中宏包任几个,可去往\textbf{CTAN: \url{http://www.ctan.org}} 下载。
%
% \section{如何提问}
% 这一节本想只介绍如何联系作者本人解决问题呢,后来想想,肯定忙不过来就算了。还是将 \XDUthesis{} 和 \LaTeX{} 本身的疑问分开来叙述比较妥当。
% \subsection[关于XDUthesis模板的疑问]{关于\XDUthesis{} 模板的疑问}
% 使用本模板的过程中,如有任何关于本模板的疑问或是不懂之处可通过GitHub提issue或者邮箱联系作者本人:\href{mailto:Stick\_Cui@163.com}{Stick\_Cui@163.com}
%
% \subsection[关于LaTeX的疑问]{关于\LaTeX{} 的疑问}
%
% 使用\LaTeX{} 排版写作的过程不是一帆风顺的。一个完整的文章往往需要几十上百次,有的甚至上千次的编译调试才能完成。
%
% 中间碰到的任何问题都有可能把写作人绊住。因为不是所有问题都能单独去解决的,这时就需要去上网检索解决方案,但不是所有检索到的解决方案都是适用的,有些可能已过时。这就需要写作人一一辨别、尝试。
%
% 在这里作者给大家提几条网上检索的工具:
% \begin{itemize}
% \item 谷歌搜索: \href{https://www.google.com}{https://www.google.com}
%
% 这个一般国内用户无法使用,原因不提。但无疑它是最好的,有能力科学上网的用户可以选择它,如何检索不提了。
%
% \item 知乎: \href{http://www.zhihu.com}{http://www.zhihu.com}
%
% 知乎里面的\textbf{\LaTeX{}} 话题以及\textbf{\LaTeX{} 排版与设计}话题下有很多关于排版难题以及技巧的高质量答案。这方面领域的牛人有:\href{http://www.zhihu.com/people/qinglee}{李清}、\href{http://www.zhihu.com/people/li-a-ling}{李阿玲}\footnote{本名:马起园,男,pTeX-ng开发者}、\href{http://www.zhihu.com/people/liu-haiyang}{刘海洋}、\href{http://www.zhihu.com/people/LiamHuang}{孟晨}等。
%
% \item 百度:不多说。
% \end{itemize}
% {\color{red} 写作时不要太过于追求文章格式,先把握好内容!!!写作时不要太过于追求文章格式,先把握好内容!!!写作时不要太过于追求文章格式,先把握好内容!!!} 文章版式排的再完美再漂亮,内容不好也没用!!!规范自己文章的学术表达,组织好语言。
%
% \section{使用模板}
% \subsection{如何编译}\label{SubSec:HowToMake}
% 首先,要感谢一下\href{http://www.zhihu.com/people/qinglee}{李清}等前辈们的贡献,基于ctex中文套件开发,省了不少功夫。\footnote{减少了对不同编译引擎的处理工作。}
%
% 本模板支持的编译命令有:\textbf{xelatex}, \textbf{pdflatex}, \textbf{latexmk}.
% 作者在这里推荐使用\textbf{xelatex} 或者 \textbf{latexmk} + \textbf{xelatex}.原因见后文。
%
% \subsubsection{pdflatex命令}
% 对于一些\LaTeX{} 初入门者,就我身边的人而言,大多数人喜欢用各种编辑器默认的\textbf{pdflatex} 去编译文件。所以,首先说一下\textbf{pdflatex} 的编译方法。以编译Template.tex为例。
%
% \begin{enumerate}
% \item \textbf{命令行}
%
% \begin{shell}
% pdflatex Demo
% bibtex Demo
% pdflatex Demo
% pdflatex Demo
% \end{shell}
%
% \item \textbf{编辑器}
%
% 编译顺序同上,在编辑器里
%
% 点击\textbf{PDFLaTeX} 编译按钮编译一次;
%
% 点击\textbf{BibTeX} 编译按钮编译一次;
%
% 再次点击\textbf{PDFLaTeX} 编译按钮编译两次;
% \end{enumerate}
%
% PDF\LaTeX{} 引擎不支持eps矢量图的插入,需要先转为pdf文件才可。\footnote{不用担心,使用TeXLive2010及之后版本,会自动将其转为pdf.}且pdf使用的CJK方式处理的中文有些蹩脚,不是很好,尤其是中英文之间的空格以及标点符号的处理。故此不推荐使用此方式编译文档。
%
% \subsubsection{xelatex命令}
%
% \begin{enumerate}
% \item \textbf{命令行}
%
% \begin{shell}
% xelatex Demo
% bibtex Demo
% xelatex Demo
% xelatex Demo
% \end{shell}
%
% \item \textbf{编辑器}
%
% 编译顺序同上,在编辑器里
%
% 点击\textbf{XeLaTeX} 编译按钮编译一次;
%
% 点击\textbf{BibTeX} 编译按钮编译一次;
%
% 再次点击\textbf{XeLaTeX} 编译按钮编译两次;
% \end{enumerate}
%
% 此方式对中文处理的很好,推荐此方式。
%
% \subsubsection{latexmk + xelatex命令}
%
% \textbf{latexmk} 命令能够自动编译\LaTeX{} 文档,并可以支持不同工具链接来生成;它会自动运行多次工具直到交叉引用都被解决。也就是说,它只需要运行一遍就行了。
% 下面是\textbf{latexmk} 命令结合\textbf{xelatex} 命令编译的示例:
%
% \begin{shell}
% latexmk -xelatex Demo
% \end{shell}
%
% 此处,就不说编辑器里的了,不同的编辑器需要不同的配置。
%
% 以上。
%
% \subsection[补充介绍BibTeX]{补充介绍\BibTeX}\label{SubSec:ForBibTeX}
% \BibTeX{} 是\LaTeX{} 自动化工具里面一个强大的参考文献管理工具,依据用户指定的参考文献样式,它能够出色完成参考文献的排序以及生成。
%
% 参考文献样式有命令:\verb=\bibliographystyle{}= 控制;命令:\verb=\bibliography{}= 将参考文献库通过处理后写入正文。以下以\textbf{xelatex} 命令编译Template.tex文件为例,进行详细描述该过程。
%
% \begin{enumerate}
% \item 首次运行 \verb=xelatex Template.tex= ,程序执行到 \verb=\bibliography{RefFile}= 时,会进行判断有无指定的Template.bbl文件,有则加载进来;紧接着无论有无Template.bbl 文件,都会把 \verb=\cite{}= 命令产生的文档引用信息、\verb=\bibliography{RefFile}= 指定的RefFile.bib数据库名字以及\\ \verb=\bibliographystyle{XDUbib}= 指定的XDUbib.bst文献格式名都写入Template.aux辅助文件;此时生成的PDF 参考文献只有标题,没有列表。
%
% \item 运行 \verb=bibtex Template.aux= ,按照其中记录的引用、文献信息,从RefFile.bib数据库中提取出来排版参考文献列表(\LaTeX{}代码),写入Template.bbl文件。
%
% \item 再次运行 \verb=xelatex Template.tex= ,读入对应Template.bbl,生成有参考文献列表的PDF,同时将 \verb=\cite{}= 产生的引用信息再次写入Template.aux辅助文件;
%
% \item 最后一次运行 \verb=xelatex Template.tex= ,读入对应Template.bbl,在指定位置生成参考文献列表,读入上步生成的Template.aux辅助文件,在引用处生成正确的引用编号信息,得到有正确文献列表和引用的PDF文件。
% \end{enumerate}
%
% \noindent 以上就是一般需要编译四次的原因。
%
% \subsection{一个简单的使用样例}\label{SubSec:ThesisSample}
% 以下,给出一个使用本模板写作的样例,并在注释信息中说明每一部分的作用。
%
% \begin{example}
% \documentclass[WordOneHalf,print]{XDUthesis}
% \title{基于ctex套件的模板制作过程}
% \author{崔元顺}
% \date{\qquad 年\qquad 月\qquad 日}%据说,论文诚信声明书里的签名和时间都要手写
% %题目拆分:用于封面
% %如果论文题目长度<=11中文字符只需填此项即可B项空着
% \septitleA{基于ctex套件的模板}
% %如果论文题目长度>11中文字符, 建议拆分为10+x or 11+x 将剩余x个字符填在此处。
% \septitleB{制作过程}
% \class{0712**}%班级号
% \schoolnumber{0712****}%学号
% \major{统计学}%专业
% \school{数学与统计学院}%学院
% \supervisor{崔元顺}%指导老师
%
% \begin{document}
%
% % 中文摘要
% \begin{abstract}
% 摘要测试,朕要测试一下\textit{斜体}
% 模板名字\XDUthesis~
% \end{abstract}
% \keywords{朕, 模板}中文关键词,这里注意用半角字符,分隔
%
% % 英文摘要
% \begin{enabstract}
% Abstract test. I want to test \textit{italic}
% The template's name is \XDUthesis~
% \end{enabstract}
% \enkeywords{I, template} %英文关键词
%
% % 往PDF属性里面写下关键词信息,勿动
% \makeatletter
% \XDU@setpdf@keywords
% \makeatother
%
% % 显示封面、诚信声明书、摘要以及目录
% \maketitle
%
% % 正文内容
% \chapter{引言}
%
% balabala
%
% \chapter{结束语}
%
% \begin{thanksfor}
% 这里是致谢部分。感谢爸爸妈妈把我们带到这个世界,并含辛茹苦地把我们抚养长大。
%
% \end{thanksfor}
%
% %参考文献
% \phantomsection%生成该页的链接
% \addcontentsline{toc}{chapter}{\bibname}
% \bibliographystyle{XDUbib}
% \bibliography{RefFile}%在正文中必须引用,才能显示对应的参考文献
%
% % 附录部分
% \appendix
% % 附录A
% \chapter{数据}
% 这里是附录的数据部分
%
% \end{document}
% \end{example}
%
% \subsection{关于配置文件}\label{SubSec:aboutCFG}
%
% \textbf{XDUthesis.cfg} 是本模板的配置文件,关于论文中的相关标题名称,配色,相关关键词名称,摘要关键词分隔符,定理类环境的定义,字体等相关设置,均存放于此文件。
%
% 关于上述相关配置,哪些可以修改,哪些禁止修改,里面的注释中均有说明。再次声明:个人因需要修改、删除或添加的配置信息,如发生论文排版不合格等意外,与本模板作者无关。
%
% \subsection{字体配置}
% 根据西安电子科技大学教务处印发的《本科生毕业设计(论文)工作手册》规定,主要用的字体有:中文--黑体,宋体;英文--Times News Roman.
%
% 本模板开发之时是基于Windows 10上的TeXLive2015,默认字体刚好符合;作者由于经济等原因并未在其他操作系统平台或其他\TeX{} 发行版中进行测试。如在使用中发现字体不符合学校要求字体,可通过以下命令查找到正确字体,并参考《C\TeX{} 套件手册》在 \ref{SubSec:aboutCFG} 小节中提到的配置文件里面进行修改:
%
% \begin{shell}
% fc-list :lang=zh file family style > zhfonts.txt
% \end{shell}
%
% \noindent\textbf{注:}以上命令,会在终端当前状态所处的文件夹下生成zhfonts.txt文件,里面列出了当前系统下已安装的所有中文字体。
%
% \subsection{命令}
% \subsubsection{基础命令}
% 鉴于本文档基于的是ctex套件,故而,作者先叙述ctexbook中的基础命令。
% \begin{enumerate}
%
% \item \textbf{字号}
%
% \begin{table}[ht]
% \centering
% \caption{基础字号命令}\label{Tab:basicFontSize}
% \begin{tabular}{l c | l c}
% \hline
% 字体命令 & 字号 & 字体命令 & 字号\\
% \hline
% \verb=\tine= & 小六 & \verb=\large= & 小三\\
% \verb=\scriptsize= & 六号 & \verb=\Large= & 小二\\
% \verb=\footnotesize= & 小五 & \verb=\LARGE= & 二号\\
% \verb=\small= & 五号 & \verb=\huge= & 小一\\
% \verb=\normalsize= & 小四 & \verb=\Huge= & 一号\\
% \hline
% \end{tabular}
% \end{table}
%
% 除了表 \ref{Tab:basicFontSize} 中的基础字号命令外,ctex套件还提供了 \verb=\zihao{<字号>}= 命令用以修改或设置字号,具体设置详情见表 \ref{Tab:setFontSize}.
%
% \begin{table}[ht]
% \centering
% \caption{中文字号}\label{Tab:setFontSize}
% \begin{tabular}{c c l}
% \hline
% <字号> & 大小(bp) & 意义\\
% \hline
% 0 & 42 & 初号\\
% -0 & 36 & 小初号\\
% 1 & 26 & 一号\\
% -1 & 24 & 小一号\\
% 2 & 22 & 二号\\
% -2 & 18 & 小二号\\
% 3 & 16 & 三号\\
% -3 & 15 & 小三号\\
% 4 & 14 & 四号\\
% -4 & 12 & 小四号\\
% 5 & 10.5 & 五号\\
% -5 & 9 & 小五号\\
% 6 & 7.5 & 六号\\
% -6 & 6.5 & 小六号\\
% 7 & 5.5 & 七号\\
% 8 & 5 & 八号\\
% \hline
% \end{tabular}
% \end{table}
%
% \item \textbf{字体选择}
%
% ctex套件预定义了一些常用字体的快捷调用命令,详情如下:
%
% \begin{itemize}
%
% \item[\textbf{\textbackslash songti}] 宋体,CJK等价命令\verb=\CJKfamily{zhsong}=;
% \item[\textbf{\textbackslash heiti}] 黑体,CJK等价命令\verb=\CJKfamily{zhhei}=;
% \item[\textbf{\textbackslash fangsong}] 仿宋,CJK等价命令\verb=\CJKfamily{zhfs}=;
% \item[\textbf{\textbackslash kaishu}] 楷书,CJK等价命令\verb=\CJKfamily{zhkai}=;
%
% 其中 \verb=\fangsong= 在ubuntu字库中没有定义。在windows和founder字库中,还有 \verb=\lishu= % 和 \verb=\youyuan=。
%
% \item[\textbf{\textbackslash lishu}] 隶书,CJK等价命令\verb=\CJKfamily{zhli}=;Fandol字库中没有定义。
% \item[\textbf{\textbackslash youyuan}] 幼圆,CJK等价命令\verb=\CJKfamily{zhyou}=;Fandol字库中没有定义。
%
% 在windowsnew字库中,还有 \verb=\yahei=。
%
% \item[\textbf{\textbackslash yahei}] 微软雅黑,CJK等价命令\verb=\CJKfamily{zhyahei}=;Fandol字库中没有定义。
% \end{itemize}
%
% \item \textbf{下划线}
%
% 借助\pkg{CJKfntef}宏包,拥有了很多样式的下划线种类。以下是常用到的五类。\footnote{为了展示% 效果,没有去修改颜色,模板里均为黑色。}
% \begin{itemize}
% \item[\textbf{\textbackslash CJKunderline\{\}}] 下划线:\CJKunderline{下划线}
% \item[\textbf{\textbackslash CJKunderdblline\{\}}] 双下划线:\CJKunderdblline{双下划线}
% \item[\textbf{\textbackslash CJKunderwave\{\}}] 波浪线:\CJKunderwave{波浪线}
% \item[\textbf{\textbackslash CJKunderdot\{\}}] 加点着重符号:\CJKunderdot{加点着重符号}
% \item[\textbf{\textbackslash CJKsout\{\}}] 删除线:\CJKsout{删除线}
% \end{itemize}
%
% \item \textbf{其他}
%
% 在图表的浮动环境里,支持使用 \verb=\subcaptionbox{<子图(表)标题>}{<子图(表)内容>}= 命令去插入子图或者子表。
%
% 将一个计数器显示为中文数字可以使用命令 \verb=\chinese{<counter>}=,将一个普通数字(整数、浮点数、分数)可以使用 \verb=\zhnumber{<number>}=,将一串阿拉伯数字转换为中文字符串可以使用 \verb=\zhdigits{<number>}=,等等。其他详见《C\TeX{} 套件手册》。\footnote{以TeXLive2015为例,命令行终端运行 \textbf{texdoc ctex} 即可。}
%
% \end{enumerate}
%
% \subsubsection{可选参数}
% 使用时,在模板开始时,即\verb=\documentclass[para]{XDUthesis}=,其中para可以是以下一个或多个,其中的字体设置中
% 仅在XeLaTeX和LuaLaTeX下有效;不设置由系统自动检测确定:Windows下为windowsn, Mac下为mac,其他系统默认为Fandol。
% \begin{itemize}
% \item \textbf{nologo}:封面不使用学校的Logo
% \item \textbf{WordOneHalf}:设置行距为Word版的1.5倍行距(近似,默认关闭,但在Demo.txt里默认填写上了)
% \item \textbf{contentsnd}: 目录去除点的连接
% \item \textbf{print}: 打印样式,保留装订线,默认为预览样式
% \item \textbf{windowsn}: 由工作手册指定的字体设置,xelatex 下复制会乱码(不影响打印)
% \item \textbf{windowsf}: 宋体的粗体版本由华文中宋替代,PDF复制不会有乱码;粗体黑体会有乱码
% \item \textbf{adobe}: 采用对应的Adobe宋体和黑体作为中易宋体和黑体的替代;PDF复制无乱码
% \item \textbf{mac}: Mac系统下的字体
% \end{itemize}
%
% \subsubsection{控制命令}
% \begin{enumerate}
%
% \item \textbf{封面页控制命令}
%
% 以下命令均需要用在 \verb=\maketitle= 之前。
%
% \begin{enumerate}
% \item[\textbf{\textbackslash title\{\}}] 论文标题;
% \item[\textbf{\textbackslash septitleA\{\}}] 论文标题拆分之A 部分;
% \item[\textbf{\textbackslash septitleB\{\}}] 论文标题拆分之B 部分;
%
% 这里解释一下为什么还要将论文题目拆分。由于我校的封面部分给论文题目留了两条线,且每条线极限容纳字数为11个中文字符;因此,如果题目超过11个中文字符,有必要对论文题目拆分,如何拆分?
% 作者原本是想要自动拆分的,然而,能力有限,目前还不会。而且自动拆分如果效果不理想还是要手动,所以干脆手动吧。在 \ref{SubSec:ThesisSample} 小节的样例中给了一种解决方法,实际应用时还是要具体问题具体分析。
%
% \item[\textbf{\textbackslash author\{\}}] 论文作者;
% \item[\textbf{\textbackslash date\{\}}] 论文写作时间or提交时间;
% \item[\textbf{\textbackslash class\{\}}] 作者班级号;
% \item[\textbf{\textbackslash schoolnumber\{\}}] 作者学号;
% \item[\textbf{\textbackslash major\{\}}] 作者专业;
% \item[\textbf{\textbackslash school\{\}}] 作者所在学院;
% \item[\textbf{\textbackslash supervisor\{\}}] 作者的论文指导老师;
% \item[\textbf{\textbackslash keywords\{\}}] 中文摘要关键词,与\textbf{abstract}环境配合使用;
% \item[\textbf{\textbackslash enkeywords\{\}}] 英文摘要关键词与\textbf{enabstract}环境配合使用;
% \end{enumerate}
%
% \item \textbf{其他命令}
%
% \begin{itemize}
% \item[\textbf{L{<length>}}] 表格控制参数:水平左对齐,列宽为 \verb=<length>= 指定值;
% \item[\textbf{R{<length>}}] 表格控制参数:水平右对齐,列宽为 \verb=<length>= 指定值;
% \item[\textbf{C{<length>}}] 表格控制参数:水平居中对齐,列宽为 \verb=<length>= 指定值;
%
% \hspace*{-2em} 以下命令太长,反过来叙述。(别打我)\SaveVerb{zhuanyi}|`|
% \item[\textbf{代码文件插入}] \verb=\lstinputlisting[<para>]{<file>}=;\footnote{针对PDF\LaTeX{} 引擎,专门添加了转义字符“\,{\UseVerb{zhuanyi}}\,”,用于代码中显示中文注释、字符串等。}
%
% \verb=<file>= 是文件路径及文件名,UTF-8编码(尤其是有中文注释时)。
%
% \verb=<para>= 可以有许多参数,最重要的是 \verb|language = ?| 问号是编程语言,具体支持的较多,可自行查阅参考文献。如果需要对源代码加标题可以使用 \verb|caption = {}| 带编号、\verb|title = {}| 不带编号。加引用标签可以使用 \verb|label = ?|。 选择不同的代码显示风格可以使用\verb|style = ?|,代码显示风格可以通过 \verb|\lstdefinestyle{<stylename>}{<style>}| 命令自定义,本模板预定义好了\verb|nonumbers| 无行号风格。
%
% 不同参数之间以半角字符“,”分隔。
%
% \item[\textbf{超链接}] \verb=\href{<url>}{<obj>}= : 对 \verb=<obj>= 加上超链接 \verb=<url>=;
%
% \verb=\url{<url>}= : 在文中显示链接 \verb=<url>= 并加上超链接 \verb=<url>=;
% \end{itemize}
%
% \end{enumerate}
% \begin{macro}{\onlinecite}
% 非上角标式参考文献引用命令。
% \end{macro}
%
% \subsection{环境}
%
% \subsubsection{控制环境}
%
% \begin{itemize}
% \item[\textbf{abstract}] 中文摘要,需用在 \verb=\maketitle= 之前;
% \item[\textbf{enabstract}] 英文摘要,需用在 \verb=\maketitle= 之前;
% \item[\textbf{thanksfor}] 致谢环境,需用在指定位置即可;
% \end{itemize}
%
% \subsubsection{数学环境}
% 主要涉及到的是定理类环境。\footnote{“借鉴”清华大学学位论文模板}
% \begin{multicols}{2}[
% \setlength{\columnseprule}{0pt}
% \setlength{\columnsep}{18pt}]
% \begin{itemize}
% \item[\textbf{proof}] 证明,证明定理或结论用;
% \item[\textbf{assumption}] 假设;
% \item[\textbf{definition}] 定义;
% \item[\textbf{proposition}] 命题;
% \item[\textbf{lemma}] 引理;
% \item[\textbf{theorem}] 定理;
% \item[\textbf{axiom}] 公理;
% \item[\textbf{corollary}] 推论;
% \item[\textbf{exercise}] 练习;
% \item[\textbf{example}] 例,举例用;
% \item[\textbf{remark}] 注释;
% \item[\textbf{problem}] 问题;
% \item[\textbf{conjecture}] 猜想;
% \item[\textbf{convention}] 惯例;
% \item[\textbf{property}] 性质;
% \item[\textbf{transformation}] 变换;
% \end{itemize}
% \end{multicols}
%
% \subsection{参考文献数据库}
%
% 首先说明一下本模板的参考文献样式\textbf{gbt7714-unsrt.bst}和\textbf{gbt7714-plain.bst}文件;该样式为GB/T 7714-2015参考文献国家标准。
%
% 下面给出两个参考文献库书写的例子,其他的请参考\textbf{Template.tex} 和\textbf{RefFile.bib} 或者 \textbf{ThesisFiles} 文件夹下的\textbf{Chapters.tex} 和 \textbf{RefFile.bib} 进一步学习如何使用。
%
% \begin{example}
% @Article{Art,
% author = {作者1 and 作者2 and 作者3 and others},
% title = {文献名},
% journal = {期刊名},
% year = {2015},
% month = {6},
% volume = {23},
% number = {9},
% pages = {1-13}
% }
%
% @Article{ArtE,
% author = {Author1 and Author2 and Author3 and others},
% title = {Article Title},
% journal = {Journal Name},
% year = {2015},
% month = {6},
% volume = {23},
% number = {9},
% pages = {1-13}
% }
% \end{example}
%
% \section{致谢}
% 感谢吴凌云、李清、刘海洋等C\TeX{} 套件制作小组的贡献,感谢\textsc{ThuThesis}清华大学学位论文模板的开发人员以及莫晃锐师兄写的国科大学位论文模板,在他们这些前辈基础上,才开发出了\XDUthesis{} 西安电子科技大学本科生毕业设计论文模板。
%
% \phantomsection
% \addcontentsline{toc}{section}{\refname}
% \begin{thebibliography}{}
% \bibitem{clsguide}
% The \LaTeX 3 Project. \LaTeXe{} for class and package writers[M]. http://www.ctan.org, 2006, 2.
%
% \bibitem{startLaTeX}
% 刘海洋. \LaTeX{} 入门[M]. 北京:电子工业出版社, 2013, 6.
%
% \bibitem{learnLaTeXe}
% 胡伟. \LaTeXe{} 完全学习手册[M]. 第二版. 北京:清华大学出版社, 2013, 4.
%
% \bibitem{ctex}
% ctex.org. C\TeX 套件手册[M]. http://www.ctex.org, 2015, 6.
%
% \bibitem{ThuThesis}
% 薛瑞尼. \textsc{ThuThesis}:清华大学学位论文模板[M]. http://www.ctan.org/pkg/thuthesis, 2014, 12.
%
% \bibitem{ThuThesis}
% 莫晃锐. ucasthesis:国科大学位论文 LaTeX 模板[M]. http://www.ctan.org/pkg/thuthesis, 2014, 12.
%
% \end{thebibliography}
%
% \appendix
% \StopEventually{\PrintChanges\PrintIndex}
% \clearpage
% \section{源代码}
% \subsection{功能类宏包相关}
% 本部分将模板能用到的大部分宏包加载在了此处,并进行了相关参数的配置。
% \changes{v0.1}{2015/12/02}{本模板用到的大部分宏包及相关参数配置于此处}
% \changes{v0.1.4}{2016/4/27}{修复生成的PDF乱码问题,新添加两个可选指令}
% \changes{v0.1.5}{2016/05/03}{添加WordOneHalf参数,可选择行间距为Word下的1.5倍行间距}
% \changes{v0.1.8}{2019/04/16}{修正字体设置}
% \changes{v0.1.9}{2019/05/11}{新增fandol字体判断;新增print参数增加电子版预览样式(两边等宽)}
% \begin{macrocode}
%<*cls>
\hyphenation{XDU-Thesis}
\def\XDUthesis{X\kern -.1667em\lower .5ex\hbox {D}\kern -.125emU\textit{thesis}{}}
\def\version{0.1.10}
\LoadClass[a4paper,UTF8,zihao=-4]{ctexbook}
% LaTeX3 programming environment
\RequirePackage{expl3}% LaTeX3 programming environment
\ExplSyntaxOn%
\providecommand{\g__ctex_fontset_tl}{}% platform fontset state variable
\edef\XDU@ctexfontset{\g__ctex_fontset_tl}% expanded platform fontset state variable
\ExplSyntaxOff%
% For theis logo
\newif\if@nologo \@nologofalse %默认使用校徽Logo
\DeclareOption{nologo}{\@nologotrue}
%
\newif\ifXDU@windowsn \XDU@windowsnfalse % 正常windows字体,XeLaTeX下可能会乱码
\newif\ifXDU@windowsf \XDU@windowsffalse % 修正的windows字体,XeLaTeX下不能会乱码
\newif\ifXDU@mac \XDU@macfalse
\newif\ifXDU@adobe \XDU@adobefalse
\newif\ifXDU@times \XDU@timesfalse
%
\DeclareOption{windowsn}{\XDU@windowsntrue\XDU@timestrue}%
\DeclareOption{windowsf}{\XDU@windowsftrue\XDU@timestrue}%
\DeclareOption{mac}{\XDU@mactrue\XDU@timestrue}%
\DeclareOption{adobe}{\XDU@adobetrue\XDU@timestrue}%
\newif\ifXDU@ctex@windows \XDU@ctex@windowsfalse
\newif\ifXDU@ctex@mac \XDU@ctex@macfalse
\newif\ifXDU@ctex@adobe \XDU@ctex@adobefalse
\newif\ifXDU@ctex@fandol \XDU@ctex@fandolfalse
\newif\if@WordOneHalf \@WordOneHalffalse % 默认为LaTeX下的1.5倍行距
\DeclareOption{WordOneHalf}{\@WordOneHalftrue}
\newif\if@print \@printfalse %% 打印样式
\DeclareOption{print}{\@printtrue}
\newif\ifXDU@contentsnd \XDU@contentsndfalse
\DeclareOption{contentsnd}{\XDU@contentsndtrue}
\DeclareOption*{%
\PassOptionsToClass{\CurrentOption}{ctexbook}%
}
\ProcessOptions\relax%
% \end{macrocode}
% 加载 \pkg{ifxetex,ifluatex} 用于判断编译引擎是否为xetex或luatex
% \begin{macrocode}
\newif\ifXDU@pdftex \XDU@pdftexfalse
\newif\ifXDU@luatex \XDU@luatexfalse
\newif\ifXDU@xetex \XDU@xetexfalse
\RequirePackage{ifxetex,ifluatex}% LaTeX engine detection
\ifxetex%
\XDU@xetextrue
\else\ifluatex%
\XDU@luatextrue
\else%
\XDU@pdftextrue
\fi\fi%
% \end{macrocode}
% 若用户无字体设置要求,则获取ctexbook根据系统自动设置参数
% \changes{v0.1.9}{2019/05/11}{新增fandol字体判断}
% \begin{macrocode}
\RequirePackage{etoolbox}% a toolbox of programming facilities
\newcommand{\xduifstreq}{\expandafter\ifstrequal\expandafter}%
\xduifstreq{\XDU@ctexfontset}{windows}{\XDU@ctex@windowstrue\XDU@timestrue}{%
\xduifstreq{\XDU@ctexfontset}{mac}{\XDU@ctex@mactrue\XDU@timestrue}{%
\xduifstreq{\XDU@ctexfontset}{adobe}{\XDU@ctex@adobetrue\XDU@timestrue}{%
\xduifstreq{\XDU@ctexfontset}{fandol}{\XDU@ctex@fandoltrue\XDU@timesfalse}{%
\XDU@timesfalse}}}}
% \end{macrocode}
% \changes{v0.1.7}{2016/05/23}{删除fontenc宏包,使得正文英文字体相关设置生效}
% \changes{v0.1.10}{2021/02/25}{调整数学公式宏包的加载位置}
% 数学公式宏包
% \begin{macrocode}
\RequirePackage{amsmath,amssymb}
% \end{macrocode}
% 加载 \pkg{ifthen} 用于判断传入参数。确定加载文档类型
% \changes{v0.1.4}{2016/4/27}{非Windows系统需要修改为Fandol字体族}
% \changes{v0.1.7}{2016/05/23}{中文Fandol字体族下,添加英文字体设置,防止默认字体不符合要求}
% \changes{v0.1.8}{2019/04/16}{修正字体设置,去除Fandol字体族}
% \begin{macrocode}
\RequirePackage{ifthen}
\ifXDU@pdftex
\RequirePackage[utf8]{inputenc}% set input encoding, document must use utf-8 encoding
\RequirePackage[T1]{fontenc}% set font encoding to enable modern font encoding
%- Call font package options:
%- Text + Math: Times Roman
\RequirePackage{newtxtext}%
\RequirePackage[cmintegrals]{newtxmath}% load after math packages
\else% XeTeX or LuaTeX
\ifXDU@windowsn%
\setCJKmainfont[AutoFakeBold,ItalicFont=KaiTi]{SimSun}%
\setCJKsansfont[AutoFakeBold]{SimHei}%
\setCJKmonofont{FangSong}%
\else\ifXDU@windowsf
\setCJKmainfont[BoldFont={STZhongsong},ItalicFont={KaiTi}]{SimSun}%
\setCJKsansfont[AutoFakeBold]{SimHei}%
\setCJKmonofont{FangSong}%
% \setmonofont{Courier New}
\else\ifXDU@mac
\setCJKmainfont[ItalicFont=Kaiti SC,BoldItalicFont=Kaiti SC Bold]{Songti SC Light}%
\setCJKsansfont{Heiti SC}%
\setCJKmonofont{STFangsong}%
\else\ifXDU@adobe
\setCJKmainfont[AutoFakeBold,ItalicFont=AdobeKaitiStd-Regular]{AdobeSongStd-Light}%
\setCJKsansfont[AutoFakeBold]{AdobeHeitiStd-Regular}%
\setCJKmonofont{AdobeFangsongStd-Regular}%
\else
\ifXDU@ctex@windows
\setCJKmainfont[AutoFakeBold,ItalicFont=KaiTi]{SimSun}%
\setCJKsansfont[AutoFakeBold]{SimHei}%
\setCJKmonofont{FangSong}%
\else\ifXDU@ctex@mac
\setCJKmainfont[ItalicFont=Kaiti SC,BoldItalicFont=Kaiti SC Bold]{Songti SC Light}%
\setCJKsansfont{Heiti SC}%
\setCJKmonofont{STFangsong}%
\else\ifXDU@ctex@adobe
\setCJKmainfont[AutoFakeBold,ItalicFont=AdobeKaitiStd-Regular]{AdobeSongStd-Light}%
\setCJKsansfont[AutoFakeBold]{AdobeHeitiStd-Regular}%
\setCJKmonofont{AdobeFangsongStd-Regular}%
\fi\fi\fi
\fi\fi\fi\fi
\ifXDU@times
\setmainfont[NFSSFamily=entextrm]{Times New Roman}%
\setsansfont[NFSSFamily=entextsf]{Times New Roman}%
\else
\setmainfont[NFSSFamily=entextrm]{FreeSerif}%
\setsansfont[NFSSFamily=entextsf]{FreeSerif}%
\fi
%
\fi
% \end{macrocode}
% 色彩宏包
% \begin{macrocode}
\RequirePackage{xcolor}
% \end{macrocode}
% 插图宏包
% \begin{macrocode}
\RequirePackage{graphicx}
% \end{macrocode}
% 定理类宏包
% \begin{macrocode}
\RequirePackage[amsmath,thmmarks,hyperref]{ntheorem}
% \end{macrocode}
% 参考文献引用功能宏包
% \changes{v0.1.7}{2016/05/23}{调整参考文献条目间距为0.2ex}
% \begin{macrocode}
\RequirePackage[numbers,super,square,sort&compress]{natbib}
\setlength{\bibsep}{0.2ex}%默认设置参考文献条目间距过宽,先设置为0.2ex调窄些。
% \end{macrocode}
% 附录相关宏包
% \begin{macrocode}
\RequirePackage[toc,page,title,titletoc,header]{appendix}
% \end{macrocode}
% 源代码抄录宏包
% \begin{macrocode}
\RequirePackage{listings}
% \end{macrocode}
% 色中文的下划线类宏包
% \changes{v0.1.10}{2021/02/25}{修复 ctex 移除 xeCJKfntef 默认加载以及CJKfntef宏包xetex下不起作用导致的下划线相关命令未定义错误}
% \begin{macrocode}
\RequirePackage{CJKfntef}
\@ifundefined{CJKunderline}%
{%
% \CJKunderline not defined
\usepackage{xeCJKfntef}
}
{%
% \CJKunderline defined
}%
% \end{macrocode}
% 表格相关的宏包(含设置)以及图表标题、子图表相关宏包
% \changes{v0.1.6}{2016/05/18}{修该原来图表编号后冒号为大空格,符合工作手册的样例。感谢 \href{https://github.com/git4xuan}{git4xuan} 同学。}
% \begin{macrocode}
\RequirePackage{longtable,multirow,hhline,tabularx,array,
makecell,diagbox,colortbl,booktabs}
\RequirePackage[labelsep=quad]{caption}[2011/11/10]
\RequirePackage[labelformat=simple,skip=10pt]{subcaption}
\newcommand{\PreserveBackslash}[1]{\let\temp=\\#1\let\\=\temp}
\newcolumntype{C}[1]{>{\PreserveBackslash\centering}p{#1}}
\newcolumntype{R}[1]{>{\PreserveBackslash\raggedleft}p{#1}}
\newcolumntype{L}[1]{>{\PreserveBackslash\raggedright}p{#1}}
% \end{macrocode}
% 超链接以及PDF书签相关宏包
% \begin{macrocode}
\RequirePackage[bookmarks=true,
linkcolor=black,
citecolor=black,
unicode=true,
colorlinks=true,
pdfborder=001,
urlcolor=black,
bookmarksnumbered=true
]{hyperref}
% \end{macrocode}
%
% 算法宏包
% \begin{macrocode}
\RequirePackage[chapter]{algorithm}
\RequirePackage{algpseudocode,algorithmicx}
\def\ALG@name{{算法}} %% 更改 “Algorithm” 为 “算法”,这里借鉴中国科学院大学Latex模板
\renewcommand{\thealgorithm}{\arabic{chapter}.\arabic{algorithm}} %% 算法编号跟随章编号
% \end{macrocode}
% \subsection{页面设置部分}
% 按照我校工作手册,进行页面设置;
%
% 此部分设置纸型,页边距以及行距。
% \changes{v0.1.5}{2016/05/03}{修正页面边距,添加装订线距离1cm. 增加设置word下1.5倍行距判断}
% \changes{v0.1.9}{2019/05/11}{默认页面两边对其,便于电子版书写时预览,添加打印参数,打印时恢复手册要求}
% \begin{macrocode}
\if@print
\RequirePackage[a4paper,left=4cm,right=2cm,top=3cm,bottom=2cm]{geometry}
\else
\RequirePackage[a4paper,left=3cm,right=3cm,top=3cm,bottom=2cm]{geometry}
\fi
\RequirePackage{setspace}
\if@WordOneHalf
\setstretch{1.62}%设置Word下的行距1.5倍
\else
\setstretch{1.5}%设置行距1.5倍
\fi
% \end{macrocode}
%
% 此部分设置以及定义全文不同部分用到的页眉格式。
% \changes{v0.1.9}{2019/05/11}{重定义了目录命令,文章内容目录标题以页眉标题分别设置}
% \begin{macrocode}
\RequirePackage{fancyhdr}
\setlength{\headheight}{15pt}