-
-
Notifications
You must be signed in to change notification settings - Fork 109
/
yanputhesis.cls
927 lines (925 loc) · 62.5 KB
/
yanputhesis.cls
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
%%
%% This is file `yanputhesis.cls',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% yanputhesis.dtx (with options: `class')
%% Copyright (C) 2022 by Shangkun Shen
%%
%% It may be distributed and/or modified under the conditions of the LaTeX
%% Project Public License, either version 1.3b of this license or (at your
%% option) any later version. The latest version of this license is in
%% https://www.latex-project.org/lppl.txt
%% and version 1.3b or later is part of all distributions of LaTeX version
%% 2005/12/01 or later.
\NeedsTeXFormat{LaTeX2e}[2005/12/01]
\ProvidesClass{yanputhesis}
[2023/03/07 v1.8.5 Yet Another NPU Thesis Template]
%%=============================================================================%
%% 文档选项和基础文档类型控制
%%-----------------------------------------------------------------------------%
\RequirePackage{xkeyval} % 参数控制相关
\newif\if@npu@lang@chs % 中文版本标记
\newif\if@npu@type@phd % 博士版本标记
\newif\if@npu@type@mst % 硕士版本标记
\newif\if@npu@type@bcl % 本科版本标记
\newif\if@npu@output@blindreview % 盲评版本标记
\newif\if@npu@font@adobe % Adobe 字体标记
\newif\if@npu@font@winfonts % 强制使用 Win 字体
\def\set@lang@chs{\@npu@lang@chstrue} % 设置中文版本
\def\set@lang@eng{\@npu@lang@chsfalse} % 设置英文版本
\def\set@type@phd{ \@npu@type@phdtrue\@npu@type@mstfalse\@npu@type@bclfalse}
\def\set@type@master{ \@npu@type@phdfalse\@npu@type@msttrue\@npu@type@bclfalse}
\def\set@type@bachelor{\@npu@type@phdfalse\@npu@type@mstfalse\@npu@type@bcltrue}
\DeclareOptionX{lang}[chs]{\csname set@lang@#1\endcsname}
\DeclareOptionX{degree}[phd]{\csname set@type@#1\endcsname}
\DeclareOptionX{blindreview}[true]{\csname @npu@output@blindreview#1\endcsname}
\DeclareOptionX{adobe}[true]{\csname @npu@font@adobe#1\endcsname}
\DeclareOptionX{winfonts}[true]{\csname @npu@font@winfonts#1\endcsname}
\DeclareOptionX*{\PassOptionsToClass{\CurrentOption}{book}} % 传递参数到 book 类
\ExecuteOptionsX{lang=chs} % 默认为中文版本
\ExecuteOptionsX{degree=phd} % 默认为博士版本
\ExecuteOptionsX{blindreview=false} % 默认不开启盲评模式
\ExecuteOptionsX{adobe=false} % 默认不用 Adobe 字体
\ExecuteOptionsX{winfonts=false} % 默认不开启强制选项
\ProcessOptionsX \relax %
\LoadClass[11pt, a4paper, openany, twoside]{book} % 默认双面印刷
\RequirePackage{etoolbox} % LaTeX 补丁工具
\RequirePackage{amssymb} % AMS 数学符号
%%=============================================================================%
%%=============================================================================%
%% 盲评版本的文字替换功能
%%-----------------------------------------------------------------------------%
\newcommand\@npu@replaceitwithblank[1]{{\setlength{% % 替换成相同宽度空白
\fboxsep}{0pt}\colorbox{white}{\phantom{#1}}}}
\newcommand\@npu@replaceitwithblack[1]{{\setlength{% % 替换成涂黑方块
\fboxsep}{0pt}\colorbox{black}{\phantom{#1}}}}
\newcommand\@npu@replaceitwithstars{ *** } % 替换成 3 个星号
\newcommand{\blindreview}[1]{\if@npu@output@blindreview% % 空白盲评标记
\@npu@replaceitwithblank{#1}\relax\else #1\fi} %
\newcommand{\blackbox}[1]{\if@npu@output@blindreview% % 涂黑盲评标记
\@npu@replaceitwithblack{#1}\relax\else #1\fi} %
\newcommand{\markname}[1]{\if@npu@output@blindreview% % 打星盲评标记
\@npu@replaceitwithstars\relax\else #1\fi} %
%%=============================================================================%
%%=============================================================================%
%% 格式控制及组件控制
%%-----------------------------------------------------------------------------%
\RequirePackage{geometry} % 纸张尺寸及页边距
\geometry{a4paper, % A4 纸张
left=2.5cm, right=2.5cm, top=2.54cm, bottom=2.54cm, % 页边距
headheight=0.53cm, headsep=0.51cm, footskip=0.79cm} % 页眉页脚位置
%%-----------------------------------------------------------------------------%
\RequirePackage[ % 超链接设置
unicode=true, % 允许 Unicode
colorlinks=false, % 不改变文字颜色
pdfborder={0 0 0}]{hyperref} % 不显示边框
\hypersetup{ % Acrobat 默认设置
bookmarks=true, % 显示书签页
pdftoolbar=true, % 显示工具栏
pdfmenubar=true, % 显示菜单栏
pdffitwindow=true, % 缩放以适应窗口大小
pdfstartview={FitH}, % 适合窗口宽度
pdfnewwindow=true, % 以新窗口打开链接
} %
\RequirePackage{bookmark} %
%%-----------------------------------------------------------------------------%
\RequirePackage{type1cm} % 设置字号与行距
\newcommand{\sChuhao}{\fontsize{42pt}{63pt}\selectfont} % 初号,1.5 倍
\newcommand{\sYihao}{\fontsize{26pt}{36pt}\selectfont} % 一号,1.4 倍
\newcommand{\sErhao}{\fontsize{22pt}{28pt}\selectfont} % 二号,1.25 倍
\newcommand{\sXiaoer}{\fontsize{18pt}{18pt}\selectfont} % 小二,单倍
\newcommand{\sSanhao}{\fontsize{16pt}{24pt}\selectfont} % 三号,1.5 倍
\newcommand{\sXiaosan}{\fontsize{15pt}{22pt}\selectfont} % 小三,1.5 倍
\newcommand{\sSihao}{\fontsize{14pt}{21pt}\selectfont} % 四号,1.5 倍
\newcommand{\sHgXiaosi}{\fontsize{13pt}{19pt}\selectfont} % 半小四,1.5 倍
\newcommand{\sLgXiaosi}{\fontsize{12.5pt}{13pt}\selectfont} % 半小四,约 1 倍
\newcommand{\sXiaosi}{\fontsize{12pt}{14.4pt}\selectfont} % 小四,1.2 倍
\newcommand{\sLargeWuhao}{\fontsize{11pt}{11pt}\selectfont} % 大五,单倍
\newcommand{\sWuhao}{\fontsize{10.5pt}{10.5pt}\selectfont} % 五号,单倍
\newcommand{\sXiaowu}{\fontsize{9pt}{9pt}\selectfont} % 小五,单倍
\newcommand{\sDefault}{\fontsize{12pt}{20pt}\selectfont} % 小四,1.67 倍
%%-----------------------------------------------------------------------------%
\RequirePackage{ifplatform} % 跨平台字体控制依赖
\newcommand\defaultSog{SimSun} % 宋体,用于正文
\newcommand\defaultHei{SimHei} % 黑体,用于标题
\newcommand\defaultKai{KaiTi} % 楷体,一般用于强调
\newcommand\defaultFag{FangSong} % 仿宋,一般用于强调
\if@npu@font@winfonts\relax % 检测 winfonts 选项
\else %
\if@npu@font@adobe % 检测 Adobe 选项
\renewcommand\defaultSog{Adobe Song Std} % 宋体,用于正文
\renewcommand\defaultHei{Adobe Heiti Std} % 黑体,用于标题
\renewcommand\defaultKai{Adobe Kaiti Std} % 楷体,一般用于强调
\renewcommand\defaultFag{Adobe Fangsong Std} % 仿宋,一般用于强调
\else % 使用系统自带字体
\ifwindows\relax\fi % Windows 使用默认字体
\iflinux\relax\fi % Linux 使用默认字体
\ifmacosx % macOS 环境
\renewcommand\defaultSog{STSongti-SC-Regular} % 宋体,用于正文
\renewcommand\defaultHei{STHeiti} % 黑体,用于标题
\renewcommand\defaultKai{STKaiti} % 楷体,一般用于强调
\renewcommand\defaultFag{STFangSong} % 仿宋,一般用于强调
\fi %
\fi %
\fi %
\newcommand\defaultEngFont{Times New Roman} % 英文文本默认字体
\newcommand\defaultEngSansFont{\defaultHei} % 英文 Sans 字体
\newcommand\codeFont{Consolas} % 等宽英文默认字体
%%-----------------------------------------------------------------------------%
\RequirePackage{fontspec} % 设置字体
\RequirePackage[SlantFont, BoldFont, CJKchecksingle]{xeCJK} % 设置中文字体
\defaultfontfeatures{Mapping=tex-text} % 启用 TeX Ligatures
\setCJKmainfont[ItalicFont=\defaultKai, AutoFakeBold]{\defaultSog}
\setCJKsansfont[ItalicFont=\defaultKai, AutoFakeBold]{\defaultSog}
\setCJKfamilyfont{song}{\defaultSog} % 设置 CJK 字体族
\setCJKfamilyfont{hei}{\defaultHei} %
\setCJKfamilyfont{kai}{\defaultKai} %
\setCJKfamilyfont{fang}{\defaultFag} %
\setCJKfamilyfont{eng}{\defaultEngFont} %
\setsansfont{\defaultEngSansFont} %
\setmonofont{\codeFont} %
\setmainfont{\defaultEngFont} %
\newcommand{\fSong}{\CJKfamily{song}} % 宋体: fSong
\newcommand{\fHei}{\CJKfamily{hei}} % 黑体: fHei
\newcommand{\fKai}{\CJKfamily{kai}} % 楷体: fKai
\newcommand{\fFang}{\CJKfamily{fang}} % 仿宋: fFang
\newcommand{\fEng}{\CJKfamily{eng}} % 英文: fEng
\XeTeXlinebreaklocale "zh" % 使用中文的换行风格
\XeTeXlinebreakskip = 0pt plus 1pt % 换行逻辑的弹性大小
%%-----------------------------------------------------------------------------%
\RequirePackage{indentfirst} % 段首空格设置
\setlength\parindent{24pt} % 段首空格长度
\setlength\parskip{0pt} % 段落间距
\renewcommand{\baselinestretch}{1.0} % 行距
%%-----------------------------------------------------------------------------%
\RequirePackage{ulem} % 下划线
\newcommand\dlmu@underline[2][5cm]{\hspace{1pt}\underline{ %
\hb@xt@ #1{\hss#2\hss}}\hspace{3pt}} %
\let\coverunderline\dlmu@underline %
%%-----------------------------------------------------------------------------%
\RequirePackage{layouts} % 页面具体尺寸信息
%%-----------------------------------------------------------------------------%
\RequirePackage[sf]{titlesec} % 章节标题格式
\RequirePackage{titletoc} % 目录格式
\setcounter{secnumdepth}{3} % 标题计数器深度
\setcounter{tocdepth}{2} % 目录中标题深度
\titleformat{\chapter}[hang]{\normalfont\sSanhao\filcenter %
\sffamily\fHei}{\sffamily\fHei\sSanhao{\chaptertitlename}}{20pt}{\sSanhao}%
\titleformat{\section}[hang]{\sffamily\fHei\sSihao}{% %
\sffamily\fHei\sSihao\thesection}{0.5em}{}{} %
\titleformat{\subsection}[hang]{\sffamily\fHei\sHgXiaosi}{% %
\sffamily\fHei\sHgXiaosi\thesubsection}{0.5em}{}{} %
\titleformat{\subsubsection}[hang]{\sffamily\fHei}{% % 小标题: (4) 标题
(\arabic{subsubsection})}{0.5em}{}{} %
\titlespacing{\chapter}{0pt}{-2pt}{14pt} % 缩小标题之间缩进
\titlespacing{\section}{0pt}{7pt}{0em} %
\titlespacing{\subsection}{0pt}{6.5pt}{0em} %
\titlespacing{\subsubsection}{0pt}{0.25em}{0pt} %
\titlespacing{\paragraph}{0pt}{0.25em}{0pt} %
\dottedcontents{section}[1.16cm]{}{1.8em}{5pt} % 定义目录中各级标题
\dottedcontents{subsection}[2.00cm]{}{2.7em}{5pt} % 之间的格式以及缩进
\dottedcontents{subsubsection}[2.86cm]{}{3.4em}{5pt} %
\newcommand{\nwpu@chs@chaptercname}[1]{第 #1 章} % 目录章节中文标题
\newcommand{\nwpu@eng@chaptercname}[1]{Chapter #1} % 目录章节英文标题
\if@npu@lang@chs % 中文本地化显示
\titlecontents{chapter}[0pt]{\fSong\sLgXiaosi\vspace{ %
0.5em}}{\contentsmargin{0pt}\fSong\makebox[0pt %
][l]{\nwpu@chs@chaptercname{\thecontentslabel}}\hspace{%
3.5em}}{\contentsmargin{0pt}\fSong}{\titlerule*[%
.5pc]{.}\contentspage}[\vspace{0em}] %
\else %
\newlength{\contents@titlewidth} %
\newlength{\contents@appendixwidth} %
\settowidth{\contents@titlewidth}{\sLgXiaosi Chapter 000}%
\settowidth{\contents@appendixwidth}{\sLgXiaosi Appendix M00}
\titlecontents{chapter}[0pt]{\fSong\sLgXiaosi\vspace{ %
0.5em}}{\contentsmargin{0pt}\fSong\makebox[0pt %
][l]{\nwpu@eng@chaptercname{\thecontentslabel}}\hspace{%
\contents@titlewidth}}{\contentsmargin{0pt}\fSong}{
\titlerule*[.5pc]{.}\contentspage}[\vspace{0em}] %
\fi %
%%-----------------------------------------------------------------------------%
\RequirePackage{fancyhdr} % 页眉设置
\RequirePackage{fancyref} %
\newcommand{\npu@headrule}{ %
\rlap{\rule[.7\baselineskip]{\headwidth}{3.4pt}} %
\vspace{-1.07\baselineskip} %
\rule[.5\baselineskip]{\headwidth}{0.6pt} %
\vspace{-.8\baselineskip} %
} %
\renewcommand{\headrule}{ %
\if@fancyplain\let\headrulewidth\plainheadrulewidth\fi %
\npu@headrule %
} %
\if@npu@lang@chs % 中英文章节页眉设置
\renewcommand{\chaptermark}[1]{ %
\markboth{\nwpu@chs@chaptercname\thechapter~~ #1}{}}%
\else %
\renewcommand{\chaptermark}[1]{ %
\markboth{\nwpu@eng@chaptercname\thechapter~~ #1}{}}%
\fi %
\pagestyle{fancyplain} % 新增版式 fancyplain
\fancyhf{} % 清空原有页眉页脚
\fancyfoot[C, C]{\sWuhao{\thepage}} % 页脚中央显示页码
\fancyhead{} % 页眉清除原有设置
\fancyhead[COH]{\sXiaowu{\leftmark}} %
\if@npu@lang@chs % 中文论文环境
\fancyhead[CEH]{\sXiaowu{\nwpu@chs@header}} %
\else % 英文论文环境
\fancyhead[CEH]{\sXiaowu{\nwpu@eng@header}} %
\fi %
%%-----------------------------------------------------------------------------%
\RequirePackage[numbers, sort&compress]{natbib} % 参考文献
\let\oldcite\cite % 参考文献
\renewcommand{\cite}[1]{\textsuperscript{\oldcite{#1}}} % 上标引用形式
%%-----------------------------------------------------------------------------%
\RequirePackage{enumerate} % 编号列表
\RequirePackage{enumitem} % 列表格式控制
\setlist{nosep} % 消除间距
\setlist{noitemsep} % 消除列表间距
\setlist{nolistsep} % 消除列表间距
%%-----------------------------------------------------------------------------%
\RequirePackage{graphicx} % 插图功能
\RequirePackage[final]{pdfpages} % 插入其他 pdf 文件
\RequirePackage{xcolor} % 颜色库
\RequirePackage{tikz} % tikz 矢量图绘制
\RequirePackage[labelsep=quad]{caption} % 浮动体标题控制
\RequirePackage{subcaption} % 子图
\RequirePackage{wrapfig} % 文字环绕
\RequirePackage{multirow, makecell} % 合并单元格
\RequirePackage{longtable} % 长表格(跨页表格)
\RequirePackage{booktabs} % 三线表
\RequirePackage{tabularx} % 定宽表格
\RequirePackage{setspace} % 空白长度控制
\RequirePackage{ragged2e} % 对齐
\DeclareCaptionFont{cWuhao}{\sWuhao} % 图表标题为五号
\captionsetup[table]{labelfont=cWuhao, textfont=cWuhao, aboveskip=10pt, belowskip=0pt}
\captionsetup[figure]{labelfont=cWuhao, textfont=cWuhao, aboveskip=10pt, belowskip=0pt}
\captionsetup[subtable]{labelformat=simple, aboveskip=10pt, belowskip=-5pt}
\captionsetup[subfigure]{labelformat=simple, aboveskip=10pt, belowskip=-5pt}
\AtBeginEnvironment{tabular}{\sWuhao} % 表格内容为五号
\AtBeginEnvironment{tabularx}{\sWuhao} %
\newcolumntype{C}{>{\centering\arraybackslash}X} % 等宽居中
\newcolumntype{L}{>{\raggedright\arraybackslash}X} % 等宽左对齐
\newcolumntype{R}{>{\raggedleft\arraybackslash}X} % 等宽右对齐
\newcolumntype{Q}[1]{>{\raggedleft\let\newline\\% % 指定宽度右对齐
\arraybackslash\hspace{0pt}}p{#1}} %
\newcolumntype{O}[1]{>{\centering\let\newline\\% % 指定宽度居中
\arraybackslash\hspace{0pt}}p{#1}} %
\newcolumntype{P}[1]{>{\raggedright\let\newline\\% % 指定宽度左对齐
\arraybackslash\hspace{0pt}}p{#1}} %
\renewcommand{\arraystretch}{1.4} % 表格行高为 1.4 倍
\setlength\heavyrulewidth{1.5pt} % 表格上下线宽 1.5 磅
\setlength\lightrulewidth{1pt} % 表格中线宽 1.0 磅
%%-----------------------------------------------------------------------------%
\RequirePackage[thmmarks]{ntheorem} % 定理环境格式
\theorembodyfont{\normalfont\itshape} % 主体文字格式
\theoremseparator{\quad} % 标题与主体间隔
\setlength\topsep{0pt} % 设置定理环境间距
\theorempreskip{0pt} % 节前空白大小
\theorempostskip{0pt} % 节后空白大小
\def\thm@space@setup{ %
\thm@preskip=0pt %
\thm@postskip=0pt} %
\AtBeginDocument{ %
\setlength{\abovedisplayskip}{0pt} %
\setlength{\belowdisplayskip}{0pt} %
\setlength{\abovedisplayshortskip}{0pt} %
\setlength{\belowdisplayshortskip}{0pt}} %
{\theoremsymbol{\ensuremath{\square}} % 证明环境 囗
\if@npu@lang@chs\newtheorem*{proof}{证明}\else\newtheorem*{proof}{Proof}\fi}
\newcommand{\qedinEquation}{{\rlap{$\qquad\square$}}} % 公式中添加证毕符号
\if@npu@lang@chs % 定制中文定理环境
\newtheorem{theorem}{定理}[chapter] %
\newtheorem{axiom}[theorem]{公理} %
\newtheorem{corollary}[theorem]{推论} %
\newtheorem{lemma}[theorem]{引理} %
\newtheorem{definition}[theorem]{定义} %
\newtheorem{example}[theorem]{例} %
\newtheorem{proposition}[theorem]{命题} %
\else % 定制英文定理环境
\newtheorem{theorem}{Theorem}[chapter] %
\newtheorem{axiom}[theorem]{Axiom} %
\newtheorem{corollary}[theorem]{Corollary} %
\newtheorem{lemma}[theorem]{Lemma} %
\newtheorem{definition}[theorem]{Definition} %
\newtheorem{example}[theorem]{Example} %
\newtheorem{proposition}[theorem]{Proposition} %
\fi %
%%-----------------------------------------------------------------------------%
\RequirePackage{listings} % 添加插入代码控制
\lstset{ % 代码样式
basicstyle=\color[HTML]{000000}\small\ttfamily, % 等宽字体 10pt 字号
numbers=left, % 左侧加入行号
numberstyle=\tiny, % 行号 6pt 字号
numbersep=5pt, % 行号与代码间隔
tabsize=4, % 制表符大小
extendedchars=true, % 拓展字符集显示汉字
breaklines=true, % 允许自动换行
keywordstyle=\color[HTML]{0000FF}\bfseries, % 关键字样式
numberstyle=\color[HTML]{ff8000}, % 数字样式
commentstyle=\color[HTML]{008000}\bfseries, % 注释样式
stringstyle=\color[HTML]{A31515}\ttfamily, % 字符串样式
showspaces=false, % 不显示空格字符
showtabs=false, % 不显示制表符
frame=shadowbox, % 添加阴影边框
framexrightmargin=5pt, % 边框右边缩进
framexbottommargin=4pt, % 边框底端缩进
rulesepcolor=\color[HTML]{C0C0C0}, % 边框颜色
showstringspaces=false, % 显示字符串内空格
escapeinside=`', % 逃逸字符以显示公式
} %
\lstloadlanguages{C++, Java, Python, Matlab, R, Mathematica}% 默认加载常用语言
%%-----------------------------------------------------------------------------%
\RequirePackage{algorithm} % 算法流程
\RequirePackage{algpseudocode} % 伪代码
%%-----------------------------------------------------------------------------%
\RequirePackage{appendix} % 添加附录功能
%%-----------------------------------------------------------------------------%
\RequirePackage{nomencl} % 添加符号表功能
\RequirePackage{multicol} % 页面具体尺寸信息
\makenomenclature % 单栏符号表
\@ifundefined{chapter}{\def\npu@nomsec{section}}{\def\npu@nomsec{chapter}}
\def\thenomenclature{%
% \newlength{\npu@columnsep@save}
% \setlength{\npu@columnsep@save}{\columnsep}
% \setlength{\columnsep}{20pt}
% \begin{multicols}{2}[%
\csname\npu@nomsec\endcsname*{\nomname}
\if@intoc\addcontentsline{toc}{\npu@nomsec}{\nomname}\fi
\nompreamble % \raggedcolumns
% ]
\list{}{\labelsep=15pt\labelwidth\nom@tempdim\leftmargin\labelwidth\advance
\leftmargin\labelsep\itemsep\nomitemsep\let\makelabel\nomlabel}%
}
\def\endthenomenclature{\endlist
% \end{multicols}
% \setlength{\columnsep}{\npu@columnsep@save}
\nompostamble}
%%=============================================================================%
%%=============================================================================%
%% 引用设置及本地化处理
%%-----------------------------------------------------------------------------%
\if@npu@lang@chs % 中文引用提示文字
\renewcommand{\figurename}{图} %
\renewcommand{\figureautorefname}{图} %
\renewcommand{\tablename}{表} %
\renewcommand{\tableautorefname}{表} %
\renewcommand{\bibname}{参考文献} %
\renewcommand{\contentsname}{目{\quad}录} %
\renewcommand{\listfigurename}{图目录} %
\renewcommand{\listtablename}{表目录} %
\renewcommand{\appendixautorefname}{附录} %
\def\equationautorefname#1#2\null{式#1(#2\null)} %
\def\sectionautorefname#1#2\null{#2\null{ }节} %
\def\subsectionautorefname#1#2\null{#2\null{ }小节} %
\renewcommand{\theoremautorefname}{定理} %
\newcommand{\axiomautorefname}{公理} %
\newcommand{\corollaryautorefname}{推论} %
\newcommand{\lemmaautorefname}{引理} %
\newcommand{\definitionautorefname}{定义} %
\newcommand{\exampleautorefname}{例} %
\newcommand{\propositionautorefname}{命题} %
\newcommand{\algorithmname}{算法} %
\newcommand{\algorithmautorefname}{算法} %
\floatname{algorithm}{算法} %
\renewcommand{\lstlistingname}{代码片段} %
\newcommand{\lstlistingautorefname}{代码片段} %
\renewcommand{\nomname}{符号表} %
\else % 英文引用提示文字
\renewcommand{\figureautorefname}{Fig.} %
\renewcommand{\tableautorefname}{Table} %
\def\equationautorefname#1#2\null{Eq.#1(#2\null)} %
\renewcommand{\lstlistingname}{Code Snippet} %
\newcommand{\lstlistingautorefname}{Code Snippet} %
\renewcommand{\nomname}{Symbols} %
\fi %
%%-----------------------------------------------------------------------------%
\renewcommand{\chaptername}{第 \thechapter 章} % 章节名
\renewcommand{\thefigure}{\thechapter-\arabic{figure}} % 图编号格式
\renewcommand{\thesubfigure}{(\alph{subfigure})} % 子图编号格式
\renewcommand{\thetable}{\thechapter-\arabic{table}} % 图编号格式
\renewcommand{\thealgorithm}{\thechapter.\arabic{algorithm}}% 算法编号格式
\@addtoreset{algorithm}{chapter} % 按章节编号
\renewcommand{\theequation}{\thechapter-\arabic{equation}} % 公式编号格式
\renewcommand{\thetheorem}{\thechapter.\arabic{theorem}} % 定理编号格式
\renewcommand{\theaxiom}{\thechapter.\arabic{axiom}} % 公理编号格式
\renewcommand{\thecorollary}{\thechapter.\arabic{corollary}}% 推论编号格式
\renewcommand{\thelemma}{\thechapter.\arabic{lemma}} % 引理编号格式
\renewcommand{\thedefinition}{\thechapter.\arabic{definition}} % 定义编号格式
\renewcommand{\theexample}{\thechapter.\arabic{example}} % 例子编号格式
%%-----------------------------------------------------------------------------%
\newcommand{\nwpu@chs@schoolname}{西北工业大学} % 文档字符串设置
\newcommand{\nwpu@eng@schoolname}{Northwestern Polytechnical University}
\if@npu@type@phd % 博士学位名
\newcommand{\nwpu@chs@degree}{博士} %
\newcommand{\nwpu@eng@degree}{Doctor} %
\fi %
\if@npu@type@mst % 硕士学位名
\newcommand{\nwpu@chs@degree}{硕士} %
\newcommand{\nwpu@eng@degree}{Master} %
\fi %
\if@npu@type@bcl % 学士学位名
\newcommand{\nwpu@chs@degree}{学士} %
\newcommand{\nwpu@eng@degree}{Bachelor} %
\fi %
\if@npu@type@bcl % 本科特殊设置
\newcommand{\nwpu@chs@doctitle}{本科毕业设计论文} % 文档名和页眉
\newcommand{\nwpu@chs@header}{{\nwpu@chs@schoolname}本科毕业设计论文}
\else % 其他页眉统一设置
\newcommand{\nwpu@chs@doctitle}{{\nwpu@chs@degree}学位论文}
\newcommand{\nwpu@chs@header}{\nwpu@chs@schoolname\nwpu@chs@doctitle}
\fi %
\newcommand{\nwpu@eng@doctitle}{\nwpu@eng@degree Thesis} % 英文文档名和页眉
\newcommand{\nwpu@eng@header}{\nwpu@eng@doctitle of \nwpu@eng@schoolname}
%%-----------------------------------------------------------------------------%
\if@npu@lang@chs % 定制中文特殊页面
\newcommand{\nwpu@page@ack}{致{\quad}谢} %
\newcommand{\nwpu@page@acp}{在学期间发表的学术成果和参加%
科研情况} %
\else % 定制英文特殊页面
\newcommand{\nwpu@page@ack}{Acknowledgements} %
\newcommand{\nwpu@page@acp}{Published Papers and %
Participated in Scientific Research During the Study%
for \nwpu@eng@degree Degree} %
\fi %
%%=============================================================================%
%%=============================================================================%
%% 中文占位符及个人信息填写
%%-----------------------------------------------------------------------------%
\newcommand{\chs@colon}{\char"FF1A} % 中文冒号
\newcommand{\chs@space}{\char"3000} % 全角空格
\newcommand{\chs@period}{\char"3002} % 中文句号
\newcommand{\chs@question}{\char"FF1F} % 中文问号
\newcommand{\chs@exclamation}{\char"FF01} % 中文感叹号
\newcommand{\chs@comma}{\char"FF0C} % 中文逗号
\newcommand{\chs@semicolon}{\char"FF1B} % 中文分号
\newcommand{\chs@leftparenthesis}{\char"FF08} % 左括号
\newcommand{\chs@rightparenthesis}{\char"FF09} % 右括号
%%-----------------------------------------------------------------------------%
\newcommand{\nwpu@chs@title}{\chs@space} % 标题(中文)
\newcommand{\nwpu@chs@author}{\chs@space} % 作者(中文)
\newcommand{\nwpu@chs@date}{\chs@space} % 日期(中文)
\newcommand{\nwpu@chs@school}{\chs@space} % 学院(中文)
\newcommand{\nwpu@chs@major}{\chs@space} % 专业(中文)
\newcommand{\nwpu@chs@advisor}{\chs@space} % 导师(中文)
\newcommand{\nwpu@chs@funding}{\chs@space} % 基金赞助(中文)
%%-----------------------------------------------------------------------------%
\newcommand{\nwpu@eng@title}{\chs@space} % 标题(英文)
\newcommand{\nwpu@eng@author}{\chs@space} % 作者(英文)
\newcommand{\nwpu@eng@date}{\chs@space} % 日期(英文)
\newcommand{\nwpu@eng@school}{\chs@space} % 学院(英文)
\newcommand{\nwpu@eng@major}{\chs@space} % 专业(英文)
\newcommand{\nwpu@eng@advisor}{\chs@space} % 导师(英文)
\newcommand{\nwpu@eng@funding}{\chs@space} % 基金赞助(英文)
%%-----------------------------------------------------------------------------%
\newcommand{\nwpu@uid}{2000123456} % default 学号
\newcommand{\nwpu@funding}{\chs@space} % 基金资助
%%-----------------------------------------------------------------------------%
\renewcommand{\title}[2]{ % 设置题目
\renewcommand{\nwpu@chs@title}{#1} %
\renewcommand{\nwpu@eng@title}{#2} %
} %
\renewcommand{\author}[2]{ % 设置作者
\renewcommand{\nwpu@chs@author}{#1} %
\renewcommand{\nwpu@eng@author}{#2} %
} %
\renewcommand{\date}[2]{ % 设置日期
\renewcommand{\nwpu@chs@date}{#1} %
\renewcommand{\nwpu@eng@date}{#2} %
} %
\newcommand{\school}[2]{ % 设置学院
\renewcommand{\nwpu@chs@school}{#1} %
\renewcommand{\nwpu@eng@school}{#2} %
} %
\newcommand{\major}[2]{ % 设置专业
\renewcommand{\nwpu@chs@major}{#1} %
\renewcommand{\nwpu@eng@major}{#2} %
} %
\newcommand{\advisor}[2]{ % 设置导师
\renewcommand{\nwpu@chs@advisor}{#1} %
\renewcommand{\nwpu@eng@advisor}{#2} %
} %
\newcommand{\funding}[2]{ % 设置基金资助
\renewcommand{\nwpu@chs@funding}{#1} %
\renewcommand{\nwpu@eng@funding}{#2} %
} %
\newcommand{\studentnumber}[1]{\renewcommand{\nwpu@uid}{#1}}% 设置学号
%%=============================================================================%
%%=============================================================================%
%% 封皮页
%%-----------------------------------------------------------------------------%
\newcommand{\make@nwpu@coverpage}{ % 设置封皮页
\thispagestyle{empty} % 清空页面格式
\newlength{\coverpage@infowidth} % 基本信息表格宽度
\settowidth{\coverpage@infowidth}{\sWuhao 学校代码~:~ 2000000000}
\newlength{\coverpage@detailwidth} % 具体信息对齐宽度
\settowidth{\coverpage@detailwidth}{\sSanhao 申请学位日期}
\begin{titlepage} %
\bfseries %
\renewcommand{\baselinestretch}{1.25} % 1.25 倍行距
\begin{center} %
\hfill \fHei \sWuhao %
\begin{minipage}{\coverpage@infowidth} % 排版基本信息表
\vspace{.5cm} %
\renewcommand\arraystretch{1.2} %
\begin{tabular}{|c|c|}\hline %
{学 \hfill 校 \hfill 代 \hfill 码} & 10699 \\ \hline
{分 \hfill 类 \hfill 号} & O242 \\ \hline
{密 \hfill 级} & 公开 \\ \hline
{学 \hfill 号} & \nwpu@uid \\ \hline
\end{tabular} %
\end{minipage} \par % 排版结束
\vspace{21\baselineskip} % 21 * 10.5pt * 1.25
\fSong \sErhao \begin{minipage}[t]{2cm} % 排版标题
\hfill {\fHei \sErhao 题目} \\ %
\end{minipage} %
\fHei \sErhao \setbox123=\hbox{ %
\begin{minipage}[t]{12cm} %
\begin{center} \nwpu@chs@title \end{center}
\end{minipage} %
} %
\setbox124=\hbox{ %
\begin{minipage}[t]{12cm} %
\begin{center} %
\uline{\hfill\quad\hfill} \\ %
\uline{\hfill\quad\hfill} \\ %
\end{center} %
\end{minipage} %
} %
\hspace{-0.5cm} %
\copy123\kern-\wd123\box124\par % 排版结束
\sWuhao \vspace{3\baselineskip} % 2 * 10.5pt * 1.25
\sSanhao \fSong \begin{minipage}{5cm} % 排版具体信息
{\bf 作者} \uline{\hfill \bf \nwpu@chs@author \hfill}
\end{minipage} \par %
\sWuhao \vspace{4\baselineskip} % 3 * 10.5pt * 1.25
\sSanhao \fSong \begin{minipage}{12.5cm} %
\noindent %
\makebox[\coverpage@detailwidth][s]{ %
\bf 学{\enspace}科{\enspace}专{\enspace}业}{%
\uline{\hfill \makebox{\bf \nwpu@chs@major} \hfill}} \par
\makebox[\coverpage@detailwidth][s]{ %
\bf 指{\enspace}导{\enspace}教{\enspace}师}{%
\uline{\hfill \makebox{\bf \nwpu@chs@advisor} \hfill}} \par
\makebox[\coverpage@detailwidth][s]{ %
\bf 培{\enspace}养{\enspace}单{\enspace}位}{%
\uline{\hfill \makebox{\bf \nwpu@chs@school} \hfill}} \par
\makebox[\coverpage@detailwidth][s]{ %
\bf 申{\enspace}请{\enspace}日{\enspace}期}{%
\uline{\hfill \makebox{\bf \nwpu@chs@date} \hfill}}
\end{minipage} % 排版结束
\vspace{2.5\baselineskip} % 2.5 * 24pt * 1.25
\end{center} %
\end{titlepage} \fSong \normalsize \newpage \clearpage %
} %
%%-----------------------------------------------------------------------------%
%% 中文标题页
%%-----------------------------------------------------------------------------%
\newcommand{\make@nwpu@chs@title}{ % 设置中文标题页
\thispagestyle{empty} % 清空页面格式
\newlength{\chstitle@hwidtha} % 大标题宽度
\settowidth{\chstitle@hwidtha}{\sSanhao\nwpu@chs@schoolname}
\newlength{\chstitle@hwidthb} % 小标题宽度
\settowidth{\chstitle@hwidthb}{\sYihao\nwpu@chs@doctitle}
\begin{titlepage} %
\renewcommand{\baselinestretch}{1.5} % 1.5 倍行距
\fSong \sSanhao \par \vspace{1\baselineskip} % 1 * 21pt * 1.5
\begin{center} %
\makebox[1.41667\chstitle@hwidtha][s]{\sSanhao\nwpu@chs@schoolname} \par
\vspace*{5mm} %
\makebox[1.41667\chstitle@hwidthb][s]{\sYihao\nwpu@chs@doctitle} \par
\vspace*{5mm} %
\sSihao \par \vspace{6\baselineskip} % 6 * 21pt * 1.5
\fSong \sErhao % 排版标题
\begin{minipage}[t]{2cm} \hfill {题目:} \\ \end{minipage}
\setbox123=\hbox{ %
\begin{minipage}[t]{12cm} %
\begin{center} \nwpu@chs@title \end{center}
\end{minipage} %
} %
\setbox124=\hbox{ %
\begin{minipage}[t]{12cm} %
\begin{center} %
\uline{\hfill\quad\hfill} \\ %
\uline{\hfill\quad\hfill} \\ %
\end{center} %
\end{minipage} %
} %
\hspace{-1cm} %
\copy123\kern-\wd123\box124 \fSong \sWuhao \par % 排版结束
\vspace{7\baselineskip} % 7 * 10.5pt * 1.5
\sSanhao 学科专业:\coverunderline[5.5cm]{\nwpu@chs@major} \\
\sSanhao 作{\qquad}者:\coverunderline[5.5cm]{\nwpu@chs@author} \\
\sSanhao 指导教师:\coverunderline[5.5cm]{\nwpu@chs@advisor} \\
\fSong \sWuhao \par %
\vspace{2\baselineskip} % 2 * 10.5pt * 1.5
\fSong \sSanhao \nwpu@chs@date %
\end{center} %
\end{titlepage} \fSong \normalsize \newpage \clearpage %
} %
%%-----------------------------------------------------------------------------%
%% 英文标题页
%%-----------------------------------------------------------------------------%
\newcommand{\make@nwpu@eng@title}{ % 设置英文标题页
\thispagestyle{empty} % 清空页面格式
\begin{titlepage} %
\linespread{1.2} \fEng \sXiaosan \par % 1.2 倍行距
\vspace{1\baselineskip} % 1 * 22pt * 1.2
\begin{center} %
\fEng \sErhao \textbf{\nwpu@eng@title} \par %
\fSong \sXiaoer \vspace{3\baselineskip} %
\fEng \sXiaosan \textbf{By} \par %
\fEng \sXiaosan \textbf{\nwpu@eng@author} \par %
\fEng \sXiaosan \textbf{Under the Supervision of Professor} \\
\fEng \sXiaosan \textbf{\nwpu@eng@advisor} \par %
\fSong \sSanhao \vspace{4\baselineskip} %
\fEng \sXiaosan A Dissertation Submitted to \\ %
\fEng \sXiaosan {\nwpu@eng@schoolname} \\ %
\fSong \sSanhao \vspace{1\baselineskip} %
\fEng In Partial Fulfillment of The Requirement \\
\fEng For The Degree of \\ %
\fEng {\nwpu@eng@degree} of \textbf{\nwpu@eng@major}
\fSong \sXiaosan \par \vspace{3\baselineskip} %
\fEng \sXiaosan Xi'an, P.R. China \\ %
\fEng \sXiaosan {\nwpu@eng@date} %
\end{center} %
\end{titlepage} \fSong \normalsize \newpage %
\thispagestyle{empty} \cleardoublepage %
} %
%%-----------------------------------------------------------------------------%
%% 生成标题页
%%-----------------------------------------------------------------------------%
\renewcommand{\maketitle}{ % 重制 maketitle
\make@nwpu@coverpage % 封皮页
\make@nwpu@chs@title % 中文标题页
\make@nwpu@eng@title % 英文标题页
} %
%%=============================================================================%
%%=============================================================================%
%% 学位论文评阅人和答辩委员会名单
%%-----------------------------------------------------------------------------%
\catcode `\@ = 11\relax
\def\npu@replicate#1{\expandafter\npu@replicate@aux\romannumeral\number #1000Q{}}
\def\npu@replicate@aux#1{\csname npu@replicate@aux@#1\endcsname}
\long\def\npu@replicate@aux@m#1Q#2#3{\npu@replicate@aux#1Q{#2#3}{#3}}
\long\def\npu@replicate@aux@Q#1#2{#1}
%%-----------------------------------------------------------------------------%
\newcommand{\npu@text}[1]{\relax\sDefault{#1}}
\newcommand{\expert}[3]{\npu@text{#1} & \npu@text{#2} & \npu@text{#3} \\ }
\newcommand{\expertBlindReview}{\expert{全盲评阅}{无}{无}}
\newcommand{\fullBlindReview}[1]{\npu@replicate{#1}{\expertBlindReview}}
\newcommand{\defenseDate}[1]{\sDefault\textbf{答辩日期}%
& \multicolumn{3}{c}{\sDefault{#1}} \\ }
\newcommand{\defenseChair}[3]{\sDefault\textbf{主席} & \expert{#1}{#2}{#3} }
\newcommand{\committeeMember}[3]{\sDefault\textbf{委员} & \expert{#1}{#2}{#3} }
\newcommand{\defenseSecretary}[3]{\sDefault\textbf{秘书} & \expert{#1}{#2}{#3} }
%%-----------------------------------------------------------------------------%
\newcommand{\makeCommitteePage}[1]{ %
\thispagestyle{empty} % 清空页面格式
\begin{titlepage} %
\linespread{1.2} \fEng \sXiaosan \par % 1.2 倍行距
\vspace{1\baselineskip} % 1 * 22pt * 1.2
\begin{center} %
\fHei \sSanhao {学位论文评阅人和答辩委员会名单} \par
#1\relax %
\end{center} %
\end{titlepage} \fSong \normalsize \newpage %
\thispagestyle{empty} \cleardoublepage} %
%%-----------------------------------------------------------------------------%
\newcommand{\reviewers}[1]{ %
\fSong \sDefault \vspace{\baselineskip} %
\fSong \sSihao \vspace{0.3\baselineskip} %
\fHei \sSihao {学位论文评阅人名单} \par %
\fSong \sSihao \vspace{0.3\baselineskip} %
\let\oldarraystretch=\arraystretch %
\renewcommand{\arraystretch}{2.10} %
\begin{tabularx}{15.27cm}{O{3.71cm}O{2.83cm}O{8.73cm}} %
\expert{\textbf{姓名}}{\textbf{职称}}{\textbf{工作单位}}
#1\relax %
\end{tabularx} %
\renewcommand{\arraystretch}{\oldarraystretch}} %
%%-----------------------------------------------------------------------------%
\newcommand{\committee}[2]{ %
\fSong \sDefault \vspace{\baselineskip} %
\fSong \sSihao \vspace{0.3\baselineskip} %
\fHei \sSihao {答辩委员会名单} \par %
\fSong \sSihao \vspace{0.3\baselineskip} %
\let\oldarraystretch=\arraystretch %
\renewcommand{\arraystretch}{2.10} %
\begin{tabularx}{15.44cm}{O{3.76cm}O{2.68cm}O{2.25cm}O{6.75cm}}
\defenseDate{#1} \sDefault\textbf{答辩委员会} & % %
\expert{\textbf{姓名}}{\textbf{职称}}{\textbf{工作单位}}
#2\relax %
\end{tabularx} %
\renewcommand{\arraystretch}{\oldarraystretch}} %
%%=============================================================================%
%%=============================================================================%
%% 中文摘要及关键词
%%-----------------------------------------------------------------------------%
\newenvironment{abstract}{ %
\pagenumbering{Roman} % 页码使用大写罗马字母
\setcounter{page}{1} % 页码从 1 开始
\renewcommand{\baselinestretch}{1.0} % 默认单倍行距
\newcommand{\sep}{\!;} % 中文关键词间隔符
\sDefault %
\chapter[摘{\quad}要]{摘{\quad}要} %
\markboth{摘{\quad}要}{摘{\quad}要} %
}{\vfill\sWuhao\noindent\nwpu@chs@funding\par\cleardoublepage}
\newenvironment{keywords}{ %
\vspace{1\baselineskip} \par %
\noindent \textbf{关键词:}}{} %
%%-----------------------------------------------------------------------------%
%% 英文摘要及关键词
%%-----------------------------------------------------------------------------%
\newenvironment{engabstract}{ %
\newcommand{\ensep}{\!; } % 英文关键词间隔符
\sDefault %
\chapter[ABSTRACT]{\selectfont\rmfamily\fEng\textbf{Abstract}}%
\markboth{Abstract}{ABSTRACT} %
}{\vfill\sWuhao\noindent\nwpu@eng@funding\par\cleardoublepage}
\newenvironment{engkeywords}{ %
\vspace{1\baselineskip} \par %
\noindent \textbf{Key Words:}}{} %
%%=============================================================================%
%%=============================================================================%
%% 目录页
%%-----------------------------------------------------------------------------%
\let\old@toc\tableofcontents % 目录
\renewcommand{\tableofcontents}{ %
\sDefault\phantomsection %
% \addcontentsline{toc}{chapter}{\contentsname} %
\bookmark[dest=\HyperLocalCurrentHref, level=0]{\contentsname}
\old@toc \cleardoublepage %
} %
\let\old@lof\listoffigures % 图目录
\renewcommand{\listoffigures}{ %
\sDefault\phantomsection %
\addcontentsline{toc}{chapter}{\listfigurename} %
\old@lof \cleardoublepage %
} %
\let\old@log\listoftables % 表目录
\renewcommand{\listoftables}{ %
\sDefault\phantomsection %
\addcontentsline{toc}{chapter}{\listtablename} %
\old@log \cleardoublepage %
} %
%%=============================================================================%
%%=============================================================================%
%% 参考文献及附录处理
%%-----------------------------------------------------------------------------%
\let\old@bibliography\bibliography % 保护原有附录环境
\renewcommand{\bibliography}[1]{ %
\phantomsection\addcontentsline{toc}{chapter}{参考文献} %
\renewcommand{\baselinestretch}{1.0} %
\fontsize{12pt}{13pt}\selectfont %
\setlength{\bibsep}{0.5ex} %
\sDefault \old@bibliography{#1} \cleardoublepage % 参考文献 bib 文件
} %
%%-----------------------------------------------------------------------------%
\patchcmd{\hyper@makecurrent}{% % 附录章节引用补丁
\ifx\Hy@param\Hy@chapterstring %
\let\Hy@param\Hy@chapapp\fi}{\iftoggle{inappendix}{%% 修复附录中章节引用
\@checkappendixparam{chapter}% %
\@checkappendixparam{section}% %
\@checkappendixparam{subsection}% %
\@checkappendixparam{subsubsection}% %
\@checkappendixparam{paragraph}% %
\@checkappendixparam{subparagraph}% %
}{}}{}{\errmessage{failed to patch}} %
\newcommand*{\@checkappendixparam}[1]{% %
\def\@checkappendixparamtmp{#1}% %
\ifx\Hy@param\@checkappendixparamtmp %
\let\Hy@param\Hy@appendixstring %
\fi} %
\newtoggle{inappendix}\togglefalse{inappendix} %
\apptocmd{\appendix}{\toggletrue{inappendix}}{}{\errmessage{failed to patch}}
\apptocmd{\subappendices}{\toggletrue{inappendix}}{}{\errmessage{failed to patch}}
\appto\appendix{\addtocontents{toc}{\protect\setcounter{tocdepth}{0}}}
\appto\listoffigures{\addtocontents{lof}{\protect\setcounter{tocdepth}{1}}}
\appto\listoftables{\addtocontents{lot}{\protect\setcounter{tocdepth}{1}}}
%%-----------------------------------------------------------------------------%
\newcommand{\nwpu@chs@appendixname}[1]{附录 #1} % 目录附录中文标题
\newcommand{\nwpu@eng@appendixname}[1]{Appendix #1} % 目录附录英文标题
\let\old@appendix\appendix % 保护原有附录环境
\renewcommand{\appendix}{ % 在原有基础上定制
\old@appendix %
\setcounter{chapter}{0} % 重置章节编号
\renewcommand{\nwpu@chs@chaptercname}{\nwpu@chs@appendixname}
\renewcommand{\nwpu@eng@chaptercname}{\nwpu@eng@appendixname}
\if@npu@lang@chs % 中文本地化显示
\renewcommand{\appendixname}{附录} % 目录
\titlecontents{chapter}[0pt]{\fSong\sLgXiaosi\vspace{0.5em}}{%
\contentsmargin{0pt}\fSong\makebox[0pt][l]{% %
\nwpu@chs@appendixname{\thecontentslabel}}\hspace{3.5em}}{%
\contentsmargin{0pt}\fSong}{\titlerule*[.5pc]{.}%
\contentspage}[\vspace{0em}] %
\else % 英文使用默认环境
\titlecontents{chapter}[0pt]{\fSong\sLgXiaosi\vspace{0.5em}}{%
\contentsmargin{0pt}\fSong\makebox[0pt][l]{% %
\nwpu@eng@appendixname{\thecontentslabel}}\hspace{%
\contents@appendixwidth}}{\contentsmargin{0pt}\fSong}{%
\titlerule*[.5pc]{.}\contentspage}[\vspace{0em}]%
\fi %
\titleformat{\chapter}[hang]{\normalfont\sSanhao\filcenter\sffamily\fHei}{%
\sffamily\fHei\sSanhao{\appendixname~\thechapter}}{20pt}{\sSanhao}
\renewcommand{\thechapter}{\Alph{chapter}} %
\renewcommand{\thesection}{\Alph{chapter}.\arabic{section}}
\renewcommand{\theequation}{\alph{chapter}-\arabic{equation}}
\renewcommand{\thetable}{\alph{chapter}-\arabic{table}} %
\renewcommand{\thefigure}{\alph{chapter}-\arabic{figure}}
\renewcommand{\thetheorem}{\alph{chapter}.\arabic{theorem}}
\renewcommand{\theaxiom}{\alph{chapter}.\arabic{axiom}} %
\renewcommand{\thecorollary}{\alph{chapter}.\arabic{corollary}}
\renewcommand{\thelemma}{\alph{chapter}.\arabic{lemma}} %
\renewcommand{\thedefinition}{\alph{chapter}.\arabic{definition}}
\renewcommand{\theexample}{\alph{chapter}.\arabic{example}}
} %
%%=============================================================================%
%%=============================================================================%
%% 附页部分
%%-----------------------------------------------------------------------------%
\newenvironment{acknowledgements}{ % 致谢
\renewcommand{\baselinestretch}{1.0} %
\sDefault %
\phantomsection\chapter*{\nwpu@page@ack} %
\markboth{\nwpu@page@ack}{\nwpu@page@ack} %
\addcontentsline{toc}{chapter}{\nwpu@page@ack} %
\addtocontents{toc}{\protect\setcounter{tocdepth}{2}} %
}{\par \cleardoublepage} %
%%-----------------------------------------------------------------------------%
\newenvironment{accomplishments}{ % 参加科研情况
\renewcommand{\baselinestretch}{1.0} %
\sDefault %
\phantomsection\chapter*{\nwpu@page@acp} %
\markboth{\nwpu@page@acp}{} %
\addcontentsline{toc}{chapter}{\nwpu@page@acp} %
\newlength{\oldparindent} %
\setlength{\oldparindent}{\parindent} %
\setlength{\parindent}{0pt} %
}{\setlength{\parindent}{\oldparindent} \cleardoublepage} %
%%-----------------------------------------------------------------------------%
\newcommand{\makestatement}{ % 知识产权与原创性声明
\begin{titlepage}
\vspace*{-1.5mm}
\begin{minipage}{149.6mm}
\begin{center}
\renewcommand{\baselinestretch}{1.5}\fSong\sSihao\par
{\bf 西北工业大学}\par
{\bf 学位论文知识产权声明书}\par
\end{center}
\renewcommand{\baselinestretch}{2.22}\fSong\fontsize{10.6pt}{10.6pt}\selectfont
{\qquad}本人完全了解学校有关保护知识产权的规定,即:研究生在校攻读学位期间论文工作的
知识产权单位属于西北工业大学。学校有权保留并向国家有关部门或机构送交论文的复印件
和电子版。本人允许论文被查阅和借阅。学校可以将本学位论文的全部或部分内容编入有关
数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。同时本人
保证,毕业后结合学位论文研究课题再撰写的文章一律注明作者单位为西北工业大学。\par
{\qquad}本学位论文属于(在以下方框内打“√”):\par
{\qquad}$\square$\hspace*{0.7em}保密论文,保密期
(\hspace*{2.5em}年\hspace*{2.5em}月\hspace*{2.5em}日
至\hspace*{2.5em}年\hspace*{2.5em}月\hspace*{2.5em}日)。\par
{\qquad}$\square$\hspace*{0.7em}公开论文。\par
{\qquad}~\par
{\qquad}学位论文作者签名{~:~}\underline{\qquad\qquad\qquad}\hfill
指导教师签名{~:~}\underline{\qquad\qquad\qquad}\par
\hspace*{8em}{年\hspace*{1.5em}月\hspace*{1.5em}日}\hfill
\hspace*{12em}{年\hspace*{1.5em}月\hspace*{1.5em}日}\hspace*{1.5em}\par
{\qquad}~\par
\vspace*{2.1mm}
\hbox to \hsize{\leaders\hbox to 0.6em{\hss--\hss}\hfill} \par
\vspace*{-13mm}
{\qquad}~\par
\vspace*{2mm}
\begin{center}
\renewcommand{\baselinestretch}{1.45}\fSong\sSihao
{\bf 西北工业大学}\par
{\bf 学位论文原创性声明}\par
\end{center}
\vspace*{4mm}
\hspace*{6mm}\begin{minipage}{141.6mm}
\renewcommand{\baselinestretch}{2.22}\fSong\fontsize{10.6pt}{10.6pt}\selectfont
{\qquad}\mbox{秉承学校严谨的学风和优良的科学道德,本人郑重声明:所呈交的学位论文,是本}
\mbox{人在导师的指导下进行研究工作所取得的成果。尽我所知,除文中已经注明引用的内容}
\mbox{和致谢的地方外,本论文不包含任何其他个人或集体已经公开发表或撰写过的研究成果,}
\mbox{不包含本人或其他已申请学位或其他用途使用过的成果。对本文的研究做出重要贡献的}
\mbox{个人和集体,均已在文中以明确方式表明。}\par
{\qquad}本人学位论文与资料若有不实,愿意承担一切相关的法律责任。\par
\vspace*{1.5mm}
\hspace*{21em}\hfill 学位论文作者签名{~:~}\underline{\qquad\qquad\quad}\par
\vspace*{2mm}
\hspace*{10em}\hfill {年\hspace*{1.5em}月\hspace*{1.5em}日}\hspace*{1.5em}
\end{minipage}
\end{minipage}
\end{titlepage}
} %
%%=============================================================================%
%%
%% This work consists of the file yanputhesis.dtx
%% and the derived files yanputhesis.ins,
%% yanputhesis.pdf,
%% yanputhesis.cls.
%%
%%
%% End of file `yanputhesis.cls'.