-
Notifications
You must be signed in to change notification settings - Fork 97
/
bithesis-doc.tex
2269 lines (1721 loc) · 78 KB
/
bithesis-doc.tex
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
\DoNotIndex{\newenvironment,\@bsphack,\@empty,\@esphack,\sfcode}
\DoNotIndex{\addtocounter,\label,\let,\linewidth,\newcounter}
\DoNotIndex{\noindent,\normalfont,\par,\parskip,\phantomsection}
\DoNotIndex{\providecommand,\ProvidesPackage,\refstepcounter}
\DoNotIndex{\RequirePackage,\setcounter,\setlength,\string,\strut}
\DoNotIndex{\textbackslash,\texttt,\ttfamily,\usepackage}
\DoNotIndex{\begin,\end,\begingroup,\endgroup,\par,\\}
\DoNotIndex{\if,\ifx,\ifdim,\ifnum,\ifcase,\else,\or,\fi}
\DoNotIndex{\let,\def,\xdef,\edef,\newcommand,\renewcommand}
\DoNotIndex{\expandafter,\csname,\endcsname,\relax,\protect}
\DoNotIndex{\Huge,\huge,\LARGE,\Large,\large,\normalsize}
\DoNotIndex{\small,\footnotesize,\scriptsize,\tiny}
\DoNotIndex{\normalfont,\bfseries,\slshape,\sffamily,\interlinepenalty}
\DoNotIndex{\textbf,\textit,\textsf,\textsc}
\DoNotIndex{\hfil,\par,\hskip,\vskip,\vspace,\quad}
\DoNotIndex{\centering,\raggedright,\ref}
\DoNotIndex{\c@secnumdepth,\@startsection,\@setfontsize}
\DoNotIndex{\ ,\@plus,\@minus,\p@,\z@,\@m,\@M,\@ne,\m@ne}
\DoNotIndex{\@@par,\DeclareOperation,\RequirePackage,\LoadClass}
\DoNotIndex{\AtBeginDocument,\AtEndDocument,\AtBeginEnvironment}
\GetFileInfo{\jobname.dtx} %
\def\indexname{索引}
\IndexPrologue{\section{\indexname}}
\title{\includegraphics[width=0.3\textwidth]{images/icon.png}
\\[1cm]
\bfseries 北京理工大学{\LaTeX}学位论文及报告模板 }
\author{北京理工大学网络开拓者协会 \\ \texttt{[email protected]}} %
\date{\zihao{-4} \today\quad \color{RubineRed}{\kaishu {\BIThesis}版本\version}}
\maketitle\thispagestyle{empty}
\def\abstractname{}
\begin{abstract}\noindent
此宏包旨在建立一个简单易用的北京理工大学学位论文 $\LaTeX$ 模板
(以及其他模板),包括本科毕业设计与研究生学位论文。
\end{abstract}
\vspace{5mm}
\begin{center}
\noindent\rule[0.25\baselineskip]{0.5\textwidth}{0.7pt}
\end{center}
\def\abstractname{免责声明}
\begin{abstract}
\noindent
\begin{enumerate}
\item 本模板的发布遵守 \LPPL ,使用前请认真阅读协议内容。
\item 与\BIThesis 相关的文档内容采用
\href{https://github.com/BITNP/BIThesis-wiki/blob/main/LICENSE}{CC0-1.0 协议} 发布。
\item 任何个人或组织以本模板为基础进行修改、扩展而生成的新的专用模板,
请严格遵守 \LaTeX{} Project Public License 协议。
由于违犯协议而引起的任何纠纷争端均与本模板作者无关。
\end{enumerate}
\end{abstract}
\vspace{5mm}
\def\abstractname{简介}
\begin{abstract}
\BIThesisLaTeX 是北京理工大学本科生毕业设计与研究生学位论文,
以及其他课程报告、实验报告的 {\LaTeX} 模板集合。
如果你厌烦了 Word 格式的不人性化、参考文献的难以管理、
公式输入的差劲体验……那么欢迎来尝试用专业的学术稿件排版利器 —— {\LaTeX},
来排版你的论文。
专业高端、学界认可、开源免费,{\LaTeX} 是你论文排版的最佳搭档。
\BIThesisLaTeX 目前支持使用 {\hologo{XeLaTeX}} 进行编译,
使用以 biber 为后端的 BibLaTeX 进行参考文献的生成,
符合《信息与文献参考文献著录规则》
(\href{http://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=7FA63E9BBA56E60471AEDAEBDE44B14C}{GB/T 7714—2015})
的标准。
目前,\BIThesisLaTeX 主要设计完成了
本科生毕业(设计)论文、研究生学位论文、本科生毕业(设计)论文外文翻译、
全英文专业本科生毕业(设计)论文与通用实验报告的 {\LaTeX} 模板。
\end{abstract}
\newpage
\tableofcontents
\clearpage
\setlength{\parskip}{0.8ex}
\section{常用术语表}
\label{sec:terms}
\begin{description}
\item[\LaTeX] \LaTeX{} 是一个高质量的文档排版系统
,他是基于 \TeX{} 进一步封装实现的。
\item[\LaTeX2e] \LaTeX2e 是 \LaTeX{} 的最新稳定版本,
目前大家使用的都是这个版本。
\item[\LaTeX3] \LaTeX3 是 \LaTeX{} 的下一代版本,
目前还在开发中(近十年了)。
\LaTeX3 旨在为宏基编写人员提供一套通用的编程层。
目前,\LaTeX3 的功能已经
通过 \pkg{expl3} 等宏包在 \LaTeX2e 中提供。
目前,|bithesis| 就是通过 \pkg{expl3} 实现的。
\item[\LaTeX 引擎] 引擎就是将TeX代码转化为页面描述语言(PDL)的核心部分,
就像C语言的编译器一样。比如 \hologo{XeLaTeX}、\hologo{LuaLaTeX} 等。
\item[编辑器] TeX的编辑器给用户提供了较为方便的交互工具,
将一些编译的过程都做成了按钮,
省去了我们需要去命令行一步步编译,且提供了较为方便的编辑环境,
如快捷键注释、语法高亮等等功能。常见的编辑器有 TeXstudio 等。
另一些编辑器则是通过插件的方式来实现 TeX 的编辑,如 VSCode、Neovim、Vim 等。
\item[宏包 (package)] \LaTeX{} 语言本质上是一个宏语言(通过文本替换而层层展开),
而宏包就是一些宏的集合。CTAN 中的 bithesis 就是一个宏包。
\item[宏集] 宏集是一些宏包的集合,比如 ctex 宏集。
\item[CTAN] Comprehensive TeX Archive Network,CTAN 是 TeX 项目的官方网站,
也是 TeX 项目的主要资源库。
你使用的 \LaTeX{} 发行版中的宏包都是通过 CTAN 来发布的。
\item[发行版] 发行版是将引擎,格式,宏包等等打包成一套安装文件的软件,
TeX Live、MiKTeX 等。
\item[文档类] 文档类指代一类以 |.cls| 结尾的文件,它们定义了文档的基本结构,
通常包括文档的标题、作者、日期、页眉、页脚、正文样式等等。
你可以通过 \tn{documentclass} 命令来指定文档类。
没错,|bithesis| 为你提供的模板功能就是通过数个文档类实现的。
\end{description}
\section{项目简介}
\subsection{历史与贡献者们}
\begin{itemize}
\item 在 2017 年之前,网络上已经出现一些北京理工大学学位论文 \LaTeX 模板。
它们是“2012大眼小蚂蚁版”和“2016汪卫版”,均以上海交通大学的模板为基础。
\item 2017 - 2018 年,计算机学院 2016 级研究生杨雅婷等人受研究生院委托,
制作了\href{https://github.com/BIT-thesis/LaTeX-template}{BIT-Thesis}
研究生学位论文模板。
\item 2019 - 2020 年,\BIThesis 最早由 2016 级的
武上博、王赞、唐誉铭、牟思睿和詹熠莎等人维护。
\begin{itemize}
\item 此时,\BIThesis 仅支持本科生毕业论文的排版。
\item 在此期间,\BIThesis 从无到有诞生了,包括使用手册、
在线文档和开箱即用的模板。
\item 同时,2017 级的赵池等同学完成了一系列 \BIThesisLaTeX
的视频教程。
\end{itemize}
\item 2020 - 2021 年,2017 级的冯开宇、杨思云、郝正亮和顾骁等人
接管了维护开发工作。
\begin{itemize}
\item 在此期间,冯开宇将原来的 .tex 文件制作成了宏包,并发布到 CTAN 上。
\item 项目代码也随之被拆分成了 \BIThesisMacroPackage,
\BIThesisWiki 和 \BIThesisScaffold。
\item 此版本是 V2 版本,代号为 Birthday Cake.
\end{itemize}
\item 2021 - 2022 年,2021 级(硕士研究生)的冯开宇针对 2021、
2022 毕业季收到的反馈对该项目进行维护升级。
\begin{itemize}
\item 在此期间,冯开宇合入了杨雅婷等人在 2017 年开发的研究生学位论文模板。
\item 在项目架构上,BIThesis-scaffold 合入 BIThesis 以便于进一步维护。
\item 次年暑假期间,冯开宇用 \pkg{expl3} 重构了\LaTeX 样式代码,
向用户提供了简易易用的接口。
\item 同时,也增加了本科全英文专业的毕设论文模板样式。
\item 此版本是 V3 版本,代号为 Summer Time.
\end{itemize}
\item 2023 年,冯开宇在此版本上增加了多种新的功能,并修复了一些已知的问题。
并推进了官方(教务部、研究生院)对 \BIThesis 的认可。
另外,2020级的徐元昌改正了文档、手册、注释中若干错误或过时信息(其中有些源于QQ群),增加了读书报告模板。
\item 2024 年,冯开宇和徐元昌推动了对研究生院原官方模板的替换。
\end{itemize}
\subsection{\BIThesis 是什么?}
\BIThesis 之名是英文单词 Beijing Institution of Technology(北京理工大学)
的首字母缩写“BIT” 与“Thesis”结合而成。在纯文本环境下,该名字应写作“BIThesis”。
同理,其 IPA 发音为 |/ˈbiːˈaiˈtiːˈθiː.sis/|。
\BIThesisLaTeX 是由北京理工大学众多学子发起并维护的开源项目。
该项目旨在建立一套简单易用的北京理工大学 \LaTeX 学位论文模板。
\subsection{为什么要使用 \BIThesis?}
学位论文通常具有比较严格的格式要求,这是为了方便同行学术交流的起码要求,
同时也是科学研究严谨性的体现。
然而,由于市场各种排版软件混杂,使用者水平不一,学生对格式的重视程度不够,
学生编写标准格式的学位论存在很多问题。
\BIThesisLaTeX 为符合北京理工大学硕士(博士)学位论文的LaTeX模板。
通过使用\BIThesisLaTeX 模板,学生可以轻松撰写符合学校格式要求的学位论文,
避免繁琐的论文格式调整;从而将关注点更多地放在高质量的内容本身。
要使用这个模板协助你完成学位论文的创作,下面的条件必须满足:
\begin{itemize}
\item 操作系统字体目录中有中文字体;
\item \TeX~系统有~\XeTeX~引擎(一般发行版均已经具备);
\item 你有使用~\LaTeX~ 的经验,或者愿意为此学习;
\end{itemize}
\subsubsection{\BIThesisLaTeX 的组成}
我们将 \BIThesisLaTeX 划分为了两个主要仓库:
\begin{table}[H]
\centering
\begin{tabular}{@{}l l p{6cm} @{}}
\toprule
项目 & 项目地址 & 主要目的 \\ \midrule
BIThesis & \href{https://github.com/BITNP/BIThesis}{BITNP/BIThesis}
& 主要存储 \BIThesis 宏包以及开箱即用的模板样式 \\
BIThesis-wiki
& \href{https://github.com/BITNP/BIThesis-wiki}{BITNP/BIThesis-wiki}
& 存储 \BIThesisLaTeX 项目在线文档 \\ \bottomrule
\end{tabular}
\end{table}
如果你仅想解决「我如何使用 \BIThesisLaTeX 来帮助我完成实验论文?」这个问题,
那么欢迎你访问我们的\href{https://bithesis.bitnp.net}{在线文档}以获得更多信息。
如果你想深入了解 \BIThesisLaTeX 提供的接口的各种选项,那么请继续阅读。
\subsection{\BIThesis 如何的设计原则是什么?}
\BIThesis 的基本设计原则是:
\begin{itemize}
\item \textbf{保持开箱即用的特性},即用户不需要修改任何代码即可使用 \BIThesisLaTeX 。
\item \textbf{保持对官方模板的兼容性},让用户只用关注内容本身。
\item \textbf{关注用户体验},提供简单易用的接口,对于有争议的设计,我们会提供多种选择。
\item \textbf{模板即软件},「罗马不是一天建成的」,我们会积极地维护 \BIThesisLaTeX 。
\end{itemize}
为了保证以上原则,我们引入了多种测试机制(如集成测试、回归测试)来保证 \BIThesis 的质量。
并采用了正规软件开发的流程,如版本控制、代码审查、持续集成等,来保证 \BIThesis 的可维护性。
\subsection{\BIThesis 宏包的组成}
为了适应用户的不同需求,我们将 \BIThesisMacroPackage
的主要功能设计安排在两个中文文档类当中,具体的组成见 \ref{tab:classes}。
\begin{table}[H]
\centering
\caption{测试}
\label{tab:classes}
\begin{tabular}{@{}lll@{}}
\toprule
类别 & 文件
& 说明 \\ \midrule
\multirow{2}{*}{文档类} & \cls{bithesis.cls}\ref{sec:bithesis}
& 封装本科生与研究生的毕业论文样式。 \\
& \cls{bitreport.cls}\ref{sec:bitreport}
& 封装了本科生开题报告(已废弃)与实验报告样式。 \\ \cmidrule(l){2-3}
& \cls{bitbeamer.cls}
& 对应 ctexbeamer.cls ,提供了北理工的 Beamer 模板样式。
\\ \cmidrule(l){2-3}
\end{tabular}
\end{table}
\subsection{\BIThesisLaTeX 是如何发布的?}
\label{sec:release}
\BIThesisLaTeX 每一个版本会有三种发布方式:
\begin{itemize}
\item CTAN 发布:
\href{https://ctan.org/pkg/bithesis}{CTAN bithesis package}
\item GitHub 发布:
\href{https://github.com/BITNP/BIThesis/releases}{GitHub Releases}
\footnote{最推荐使用此种方式}
\item Overleaf 发布:
\href{https://bithesis.bitnp.net}{Overleaf Templates}
\end{itemize}
其中,CTAN 上发布的是 bithesis 宏包,也就是 |*.cls| 组成的文件,
它们可以通过 \TeX 发行版自带的包管理器 tlmgr 来更新。
GitHub 和 Overleaf 上发布的是 \BIThesisLaTeX 的完整模板,因此想要升级
到最新版本,你需要重新下载最新模板。然后,选择下列方法的一种来更新:
\begin{itemize}
\item 将新模板中的 |*.cls| 文件替换到你原有模板的工作目录中。
\item 将旧模板中的写作内容复制到新模板中。
\end{itemize}
需要注意的是,GitHub 和 Overleaf 的模板中包含了当前版本的 |*.cls| 文件,
因此不会因为 CTAN 上的更新而导致模板无法编译。(但代价当然是需要手动升级)
GitHub 同时提供了独立的 |*.cls| 文件,可以仅下载 |*.cls| 文件并通过上述
第一种方法进行更新。
\subsection{版本号与升级}
\BIThesisLaTeX 的版本号遵循 \href{https://semver.org/lang/zh-CN/}{语义化版本},
也就是说,每个版本号由三个数字组成,分别表示主版本号、次版本号和修订号。
例如,版本号 |1.2.3| 表示主版本号为 1,次版本号为 2,修订号为 3。
\BIThesisLaTeX 的主版本号会在有重大变化时(且无法前向兼容时)更新,
例如,模板的结构发生了变化、宏命令的使用方式发生了改变。
次版本号会在有新功能添加时更新,例如,添加了新的功能和宏命令。
修订号会在有 bug 修复时更新,例如,修复了某些宏命令的 bug、补充了某些文档。
因此对于用户来说,主版本号的更新是不兼容的,次版本号与修订号的更新是向前兼容的。
进行兼容性升级时,你只需要将新版本的 |*.cls| 文件替换到你原有模板的工作目录中即可。
进行不兼容性升级时,你需要将旧模板中的写作内容复制到新模板中(记得要做好备份哦)。
\section{安装}
\subsection{\BIThesis 宏包的安装和更新}
最常见的 \TeX 发行版(\hologo{TeX} Live 和 \hologo{MiKTeX})已收录
\BIThesisMacroPackage 及其依赖的宏包和宏集。
\begin{itemize}
\item Windows、Linux用户推荐安装 TeX Live 套装,
并更新宏包(Linux系统由于版权问题,未能预装宋体等 Windows 下的字体,需要手动安装;对于 WSL 用户,可参照\ref{sec:word-fonts}直接使用 Windows 下的字体)
\item OSX用户推荐安装 Mac TeX。
\item 由于CTeX套装所含宏包比较陈旧,可能会导致编译无法通过,故不推荐安装。
如果已安装 CTeX,\textbf{建议将其卸载}。
\end{itemize}
如果安装以上发行版的时间较早,可能你本地的环境中不存在
\BIThesisMacroPackage 或者不是最新版本的。
那么你需要通过包管理器来安装/更新 \BIThesisMacroPackage:
\begin{shell}[morekeywords={tlmgr,install}]
tlmgr install bithesis
\end{shell}
更新可以通过图形界面进行,或者通过命令行:
\begin{shell}[morekeywords={tlmgr,update}]
tlmgr update bithesis
\end{shell}
\textbf{
在安装完发行版之后,还需要安装编辑 \LaTeX 所需的编辑器,在这里推荐 TeXstudio。
}
\textit{更多安装教程请访问我们的
\href{https://bithesis.bitnp.net}{wiki 网站},那里收录了使用模板以外的信息。}
\subsubsection{升级模板版本}
由于软件维护是一个持续的过程,我们会不定期地更新 \BIThesisMacroPackage 的版本。
更新的版本可能会修复一些 bug,也可能会增加新的功能。
因此,首先建议你首先查看最新版本与你当前版本的差异,以便决定是否升级。
你可以通过 GitHub Releases 或者 ChangeLog 来查看更新内容。
当你决定升级时,请首先备份你的工作目录,然后按照\ref{sec:release}节的描述进行升级。
\section{编译方式}
\subsection{使用 Latexmk(推荐)}
在项目模板中,已经预制好了 latexmk 的配置文件 |.latexmkrc|。
因此只需要在命令行里执行,或者在代码编辑器里配置并运行以下命令即可:
\begin{shell}
latexmk
\end{shell}
\subsubsection{手动四次编译}
\begin{shell}
xelatex -no-pdf --interaction=nonstopmode main
biber main
xelatex -no-pdf --interaction=nonstopmode main
xelatex --interaction=nonstopmode main
\end{shell}
运行bibtex的时候会提示一些错误,可能是~{{\sc Bib}\TeX}~对UTF-8支持不充
分,一般不影响最终结果。加入~\verb|--interaction=nonstopmode|~参数是不让错误打断编译过程。
\XeTeX~ 仍存在一些宏包兼容性问题,而这些错误通常不会影响最终的编译结果。
\section{\cls{bithesis.cls} 使用与配置}
\label{sec:bithesis}
推荐使用\BIThesisRelease (开箱即用)。
\BIThesisRelease 提供了多种最常用的模板,你可以在
\href{https://github.com/BITNP/BIThesis/releases}{主项目的 Releases}中找到它们。
使用此文档类的模板有:
\begin{itemize}
\item \BIThesisTemplates{UT}
\item \BIThesisTemplates{UTE}
\item \BIThesisTemplates{PT}
\item \BIThesisTemplates{GT}
\end{itemize}
\subsection{最小用例}
\begin{latex}
\documentclass[type=bachelor]{bithesis}
\BITSetup{
info = {
author = FKY,
......
}
}
\begin{document}
\end{document}
\end{latex}
如您所见,在 \LaTeX 中,用户使用的命令通常以「|\|」作为开头,后面依次跟随
命令名称、若干可选参数和若干必需参数。如:
\begin{latex}
\MakeCover
\BITSetup{}
\FooBar[]{}
\end{latex}
同理,用户使用的环境通常以 begin 和 end 进行包裹,
同样可以传入可选参数和必需参数:
\begin{latex}
\begin{abstract}
\end{abstract}
\begin{abstract}[addTOC=false]
\end{abstract}
\begin{foo}{param1}
\end{foo}
\end{latex}
需要强调的是:以方框号表示的可选参数,在没有参数传入的时候,是可以忽略的。
比如以下两个命令等价:
\begin{latex}
\FooBar
\FooBar[]
\end{latex}
环境同理。
\subsection{模板选项} \label{sec:template-options}
所谓“模板选项”,指需要在引入文档类的时候指定的选项:
\begin{latex}[deletetexcs={\documentclass},morekeywords={\documentclass}]
\documentclass(*\oarg{模板选项}*){bithesis}
\end{latex}
\begin{function}{type}
\begin{bitsyntax}[emph={[1]type}]
type = (*<(bachelor)|\mbox{bachelor_translation}|\mbox{bachelor_english}|master|doctor>*)
\end{bitsyntax}
选择论文类型,它们分别对应:
\begin{itemize}
\item \BIThesisTemplates{UT}
\item \BIThesisTemplates{PT}
\item \BIThesisTemplates{UTE}
\item \BIThesisTemplates{GT} 研究生
\item \BIThesisTemplates{GT} 博士生
\end{itemize}
\end{function}
\begin{function}[added=2023-03-16]{english}
\begin{bitsyntax}[emph={[1]english}]
english = (*<(false)|true>*)
\end{bitsyntax}
开启英文模式。此选项会将论文的标题、摘要、目录、参考文献等部分的
中文部分替换为英文部分。适用于英文论文的撰写。
\begin{note}
本选项仅适用于 \BIThesisTemplates{GT} 模板,本科全英文专业的同学
请直接使用 \BIThesisTemplates{UTE} 模板。
\end{note}
\end{function}
\begin{function}{blindPeerReview}
\begin{bitsyntax}[emph={[1]blindPeerReview}]
blindPeerReview = (*<(false)|true>*)
\end{bitsyntax}
此选项用于输出符合盲审要求的论文。所有可能暴露个人信息的页面都将隐藏,
比如封面、信息页、原创性声明、个人简介、致谢等等。
\end{function}
\begin{function}[added=2023-02-02]{quirks}
\begin{bitsyntax}[emph={[1]quirks}]
quirks = (*<(false)|true>*)
\end{bitsyntax}
此选项用于开启针对北理工官方示例的兼容模式。
具体包括:
\begin{itemize}
\item \pkg{biblatex} 中的 |patent| 类型将不再采用国标 GB/T 7714-2015 的格式,
而是采用北理工官方示例的格式。
\end{itemize}
之所以需要此选项,是因为北理工官方示例中的格式
与国标 GB/T 7714-2015 中的格式不一致;
而这部分改动可能引入潜在的兼容性问题。
而这些差异其实比较细微,所以我们将其作为一个默认不开启的选项。
在未来,如果持续有用户反馈问题,亦或是没有边界问题,
我们可能会将其中的功能移入默认效果中。
\end{function}
\begin{function}{twoside}
\begin{bitsyntax}[emph={[1]twoside}]
twoside = (*<(false)|true>*)
\end{bitsyntax}
打开双页排版。对于研究生模板来说,这意味着摘要前的内容都会
被插入空白页。这样,在你双面打印的时候,就可以获得单页打印
效果的封面。
\textit{本科生模板一般不需要选择此选项。此选项会受到 |blindPeerReview| 的抑制。}
\end{function}
\begin{function}{ctex}
\begin{bitsyntax}[emph={[1]ctex}]
ctex = (*{传给 ctexbook 的模板选项}*)
\end{bitsyntax}
该选项用于传入模板选项至 ctexbook。
例如:想要同时修改 ctex 的字体参数和标点符号处理格式
(更多选项请参考 ctex 手册)。
\begin{latex}[emph={[1]type,master,ctex,fontset,fandol,punct,banjiao,bithesis}]
\documentclass[type=master,ctex={fontset=fandol,punct=banjiao}]{bithesis}
\end{latex}
\end{function}
\begin{function}[added=2023-03-10]{autoFakeBold}
\begin{bitsyntax}[emph={[1]autoFakeBold}]
autoFakeBold = (*<(3)|false|{数字}>*)
\end{bitsyntax}
该选项用于调整 \cls{xeCJK} 中 |AutoFakeBold| 选项以定义伪粗体的粗细程度。
默认为 3,一般按照经验来说,2.5–3 比较符合 Word 中的粗体样式。
\end{function}
\subsection{参数设置}
\begin{function}{\BITSetup}
\begin{bitsyntax}[emph={[1]BITSetup}]
\BITSetup = {(*\oarg{键值对}*)}
\end{bitsyntax}
\end{function}
本模板提供了一系列选项,可由您自行配置。载入文档类之后,以下所有选项均可通过统一的
命令 \cs{BITSetup} 来设置。
\cs{BITSetup} 的参数是一组由(英文)逗号隔开的选项列表,列表中的选项通常是 \meta{key} =
\meta{value} 的形式。部分选项的 \meta{value} 可以省略。对于同一项,后面的设置将会覆盖前面的设
置。在下文的说明中,将用粗体表示默认值。
\cs{BITSetup} 采用 LATEX3 风格的键值设置,支持不同类型以及多种层次的选项设定。键值列
表中,“=”左右的空格不影响设置;但需注意,参数列表中不可以出现空行。
与模板选项相同,布尔型的参数可以省略 \meta{选项} = true 中的“= true”。
另有一些选项包含子选项,如 cover 和 info 等。它们可以按如下两种等价方式来设定:
\begin{latex}[morekeywords={\BITSetup},emph={[1]BITSetup,cover,date,info,title,author}]
\BITSetup{
cover = {
date = xxxx年x月,
},
info = {
author = Feng Kaiyu,
title = A Thesis Title for Your Paper,
}
}
\end{latex}
或者
\begin{latex}[morekeywords={\BITSetup},emph={[1]BITSetup,cover,date,info,title,author}]
\BITSetup{
cover / date = xxxx年x月,
info / author = Feng Kaiyu,
info / title = A Thesis Title for Your Paper,
}
\end{latex}
\textbf{请注意:以下选项根据模板的不同,可能会有不同的默认值。
有些模板可能不会使用某些选项。使用与否以及使用方式是根据学校的论文撰写要求实现的。}
\subsubsection{封面选项} \label{sec:cover}
\begin{function}{cover}
\begin{bitsyntax}[emph={[1]cover}]
cover = (*\marg{键值列表}*)
cover/(*\meta{key}*) = (*\meta{value}*)
\end{bitsyntax}
该选项包含许多子项目,用于设置论文格式。具体内容见下。
\end{function}
\begin{function}{cover/date}
\begin{bitsyntax}[emph={[1]date}]
date = (*\marg{任意字符串}*)
\end{bitsyntax}
覆盖封面的日期。
\end{function}
\begin{function}{cover/headerImage}
\begin{bitsyntax}[emph={[1]headerImage}]
headerImage = (*\marg{图片路径}*)
\end{bitsyntax}
设置封面顶部的“北京理工大学”字样图片。
\end{function}
\begin{function}{cover/xiheiFont}
\begin{bitsyntax}[emph={[1]xiheiFont}]
xiheiFont = (*\marg{字体路径}*)
\end{bitsyntax}
配置此选项以在部分模板封面中使用“华文细黑”,保证与 Word 模板中的字体一致。
在 Windows 和 macOS 中,该字体已经安装;在 Linux 中一般需要用户自行安装(如果你是 WSL 用户,可参照\ref{sec:word-fonts}直接使用 Windows 下的字体)。
\end{function}
\begin{function}{cover/delimiter}
\begin{bitsyntax}[emph={[1]delimiter}]
delimiter = (*\marg{任意字符串}*)
\end{bitsyntax}
\textit{此选项一般不需要用户自行修改。}
设置封面信息中标签和值的分隔符。一般为全角或者半角的冒号。
\end{function}
\begin{function}{cover/autoWidth}
\begin{bitsyntax}[emph={[1]autoWidth}]
autoWidth = (*<(true)|false>*)
\end{bitsyntax}
\textit{此选项一般不需要用户自行修改。}
自动计算封面中下划线的长度。
如果关闭了该选项,则建议配合\kvopt{cover/labelMaxWidth}{\meta{长度}}\\
和\kvopt{cover/valueMaxWidth}{\meta{长度}}使用,以控制下划线的长度。
\end{function}
\begin{function}{cover/autoWidthPadding}
\begin{bitsyntax}[emph={[1]autoWidthPadding}]
autoWidthPadding = (*<\marg{任意长度}>*)
\end{bitsyntax}
自适应下划线长度时,下划线的长度会比标签和值的长度多出一些空白。
该选项用于设置这些空白的长度。默认为 0.25em。
\textit{此选项一般不需要用户自行修改。}
\end{function}
\begin{function}{cover/labelMaxWidth}
\begin{bitsyntax}[emph={[1]labelMaxWidth}]
labelMaxWidth = (*\marg{任意长度}*)
\end{bitsyntax}
此选项仅当\kvopt{cover/autoWidth}{false}时生效。
设置封面信息中标签的占位长度。
\end{function}
\begin{function}{cover/valueMaxWidth}
\begin{bitsyntax}[emph={[1]valueMaxWidth}]
valueMaxWidth = (*\marg{任意长度}*)
\end{bitsyntax}
\textit{此选项一般不需要用户自行修改。}
设置封面信息中值的占位长度。\textbf{同时也会影响下划线的长度。}
\end{function}
\begin{function}{cover/labelAlign}
\begin{bitsyntax}[emph={[1]labelAlign}]
labelAlign = (*<c|l|r>*)
\end{bitsyntax}
\textit{此选项一般不需要用户自行修改。}
设置封面信息中值的对其方式(居中,左对齐、右对齐)。
\end{function}
\begin{function}{cover/valueAlign}
\begin{bitsyntax}[emph={[1]valueAlign}]
valueAlign = (*<c|l|r>*)
\end{bitsyntax}
此选项仅当\kvopt{cover/autoWidth}{false}时生效。
设置封面信息中标签的对其方式(居中,左对齐、右对齐)。
\end{function}
\begin{function}{cover/underlineThickness}
\begin{bitsyntax}[emph={[1]underlineThickness}]
underlineThickness = (*\marg{任意长度}*)
\end{bitsyntax}
设置封面信息中下划线的厚度。
\end{function}
\begin{function}{cover/underlineOffset}
\begin{bitsyntax}[emph={[1]underlineOffset}]
underlineOffset = (*(-10pt)|\marg{任意长度}*)
\end{bitsyntax}
设置封面信息中下划线的偏移量。
\end{function}
\begin{function}[added=2023-05-09, updated=2024-08-28]{cover/hideCoverInPeerReview}
\begin{bitsyntax}[emph={[1]hideCoverInPeerReview}]
hideCoverInPeerReview = (*false|true*)
\end{bitsyntax}
\textit{此选项默认值会按论文类型自动设置,一般已满足要求,不需要用户自行修改。}
在盲审模式下,是否不渲染封面。
\begin{itemize}
\item 若设为 |true|,盲审模式下直接删除封面。
\item 若设为 |false|,盲审模式下保留封面,只是隐去个人信息。
\item (默认)若未设置,自动根据论文类型设置。具体来说,本科生设为 |true|,研究生设为 |false|。
\end{itemize}
未启用盲审模式时,此选项无效果。
\end{function}
\begin{function}[added=2024-03-22]{cover/showSpecialTypeBox}
\begin{bitsyntax}[emph={[1]showSpecialTypeBox}]
showSpecialTypeBox = (*(false)|true*)
\end{bitsyntax}
展示「特殊类型」(研究生模板)的那个信息框。
因为美观原因默认关闭,和研究生院确认过这个信息框重要程度比较低。
\end{function}
\begin{function}[added=2024-07-11]{cover/prefer-zh}
\begin{bitsyntax}[emph={[1]prefer-zh}]
prefer-zh = (*(false)|true*)
\end{bitsyntax}
是否强制使用中文封面,只适用于\BIThesisTemplates{UTE}。该模板默认封面是英文,而有些学院要求采用中文。
注意设置 |prefer-zh = true| 不会影响 |const/info/major| 等选项的默认值,请参考英文模板的 README 搭配使用。
\end{function}
\begin{function}[added=2024-07-11]{cover/reverse-titles}
\begin{bitsyntax}[emph={[1]reverse-titles}]
reverse-titles = (*(false)|true*)
\end{bitsyntax}
是否调换中英文标题顺序,只适用于本科中文封面。
若为 |false|,中文在上,英文在下;若为 |true|,中文在下,英文在上。
适用于\BIThesisTemplates{UT},此外\BIThesisTemplates{UTE}设置了 |cover/prefer-zh = true| 时也适用。
不适用于\BIThesisTemplates{PT}和硕士、博士学位论文。
\end{function}
\begin{function}[added=2024-09-14]{cover/addTitleZh}
\begin{bitsyntax}[emph={[1]addTitleZh}]
addTitleZh = (*(true)|false*)
\end{bitsyntax}
是否添加中文标题,只适用于本科英文封面。
只适用于\BIThesisTemplates{UTE},不适用于其它模板。而且若切换为中文封面(|cover/prefer-zh = true|),此选项也无效。
\end{function}
\subsubsection{论文基本信息}
\begin{function}{info}
\begin{bitsyntax}[emph={[1]info}]
info = (*\marg{键值列表}*)
info/(*\meta{key}*) = (*\meta{value}*)
\end{bitsyntax}
该选项包含许多子项目,用于录入论文信息。具体内容见下。
一般以「En」结尾的项目表示对应的英文字段。
这其中的很多字段将用于封面信息的渲染,此时,可以使用 |\\| 来换行,以防止单行内容过长。
\end{function}
\begin{function}{info/title,info/titleEn}
\begin{bitsyntax}[emph={[1]title,titleEn}]
title = (*\marg{字符串}*)
titleEn = (*\marg{字符串}*)
\end{bitsyntax}
论文标题。
\end{function}
\begin{function}{info/verticalTitle}
\begin{bitsyntax}[emph={[1]verticalTitle}]
verticalTitle = (*\marg{字符串}*)
\end{bitsyntax}
书籍页竖排标题。此选项默认为空。为空时,会被 \kvopt{info/title}{字符串} 替代。
如想要使用竖排英文,可以使用 \lstinline|{X }|。
其中 X 为英文字符,每个竖排英文间需要空一格。
比如,想要竖排「LaTeX」,可以使用:
\begin{latex}[emph={[1]}]
verticalTitle = {其他文字{L } {a } {T } {e } {X }其他文字}
\end{latex}
如果想要使用旋转竖排英文,可以使用
\lstinline|\rotatebox[origin=c]{-90}{English text}|。
\begin{latex}[emph={[1]}]
verticalTitle = {其他文字 \lstinline{\rotatebox[origin=c]{-90}{English text}} 其他文字}
\end{latex}
\end{function}
\begin{function}{info/school,info/schoolEn}
\begin{bitsyntax}[emph={[1]school,schoolEn}]
school = (*\marg{字符串}*)
schoolEn = (*\marg{字符串}*)
\end{bitsyntax}
学院名称。
\end{function}
\begin{function}{info/major,info/majorEn}
\begin{bitsyntax}[emph={[1]major,majorEn}]
major = (*\marg{字符串}*)
majorEn = (*\marg{字符串}*)
\end{bitsyntax}
专业名称。
\end{function}
\begin{function}{info/author,info/authorEn}
\begin{bitsyntax}[emph={[1]author,authorEn}]
author = (*\marg{字符串}*)
authorEn = (*\marg{字符串}*)
\end{bitsyntax}
作者姓名。
\end{function}
\begin{function}{info/studentId}
\begin{bitsyntax}[emph={[1]studentId}]
studentId = (*\marg{字符串}*)
\end{bitsyntax}
学号。
\end{function}
\begin{function}{info/supervisor,info/supervisorEn}
\begin{bitsyntax}[emph={[1]supervisor,supervisorEn}]
supervisor = (*\marg{字符串}*)
supervisorEn = (*\marg{字符串}*)
\end{bitsyntax}
指导教师。
\end{function}
\begin{function}{info/externalSupervisor}
\begin{bitsyntax}[emph={[1]externalSupervisor}]
externalSupervisor = (*\marg{字符串}*)
\end{bitsyntax}
校外指导教师。
\end{function}
\begin{function}{info/keywords,info/keywordsEn}
\begin{bitsyntax}[emph={[1]keywords,keywordsEn}]
keywords = (*\marg{字符串;以全角分号分割}*)
keywordsEn = (*\marg{字符串;以分号分割}*)
\end{bitsyntax}
摘要关键词。
\end{function}
\begin{function}{info/translationTitle}
\begin{bitsyntax}[emph={[1]translationTitle}]
translationTitle = (*\marg{字符串}*)
\end{bitsyntax}
文献翻译中,翻译后的论文名称。
\end{function}
\begin{function}{info/translationOriginTitleEn}
\begin{bitsyntax}[emph={[1]translationOriginTitleEn}]
translationOriginTitleEn = (*\marg{字符串}*)
\end{bitsyntax}
文献翻译中,翻译前的论文名称。
\end{function}
\begin{function}{info/classification}
\begin{bitsyntax}[emph={[1]classification}]
classification = (*\marg{字符串}*)
\end{bitsyntax}
中图分类号。
\end{function}
\begin{function}{info/UDC}
\begin{bitsyntax}[emph={[1]UDC}]
UDC = (*\marg{字符串}*)
\end{bitsyntax}
UDC分类号。
\end{function}
\begin{function}{info/chairman,info/chairmanEn}
\begin{bitsyntax}[emph={[1]chairman,chairmanEn}]
chairman = (*\marg{字符串}*)
chairmanEn = (*\marg{字符串}*)
\end{bitsyntax}
答辩委员会主席。
\end{function}
\begin{function}{info/degree,info/degreeEn}
\begin{bitsyntax}[emph={[1]degree,degreeEn}]
degree = (*\marg{字符串}*)
degreeEn = (*\marg{字符串}*)
\end{bitsyntax}
申请学位。
\end{function}
\begin{function}{info/institute,info/instituteEn}
\begin{bitsyntax}[emph={[1]institute,instituteEn}]
institute = (*(北京理工大学)|\marg{字符串}*)
instituteEn = (*(Beijing~Institute~of~Technology)|\marg{字符串}*)
\end{bitsyntax}
学位授予单位。
\end{function}
\begin{function}{info/defenseDate,info/defenseDateEn}
\begin{bitsyntax}[emph={[1]defenseDate,defenseDateEn}]
defenseDate = (*\marg{字符串}*)
defenseDateEn = (*\marg{字符串}*)
\end{bitsyntax}
答辩日期。
\end{function}
\begin{function}{info/classifiedLevel}
\begin{bitsyntax}[emph={[1]classifiedLevel}]
classifiedLevel = (*\marg{字符串}*)
\end{bitsyntax}
密级。
\end{function}
\begin{function}[added=2024-03-22]{info/crossResearch}
\begin{bitsyntax}[emph={[1]crossResearch}]
crossResearch = (*<(false)|true>*)
\end{bitsyntax}
特殊类型:交叉研究方向。(不勾选时不显示整个内容)
\textit{此选项一般不需要用户自行修改。}
\end{function}
\begin{function}[added=2024-03-22]{info/internationalStudentUGP}
\begin{bitsyntax}[emph={[1]internationalStudentUGP}]
internationalStudentUGP = (*<(false)|true>*)
\end{bitsyntax}
特殊类型:政府项目留学生。
\textit{此选项一般不需要用户自行修改。}
\end{function}
\subsubsection{样式信息}
\begin{function}{style}
\begin{bitsyntax}[emph={[1]style}]
style = (*\marg{键值列表}*)
style/(*\meta{key}*) = (*\meta{value}*)
\end{bitsyntax}
该选项包含许多子项目,用于调整样式。具体内容见下。
\end{function}
\begin{function}{style/head}
\begin{bitsyntax}[emph={[1]head}]
head = (*\marg{字符串}*)
\end{bitsyntax}
\textit{此选项默认值会按论文类型自动设置,一般已满足要求,不需要用户自行修改。}
页眉文字。
外文翻译模板(paper-translation)的默认值含“外文翻译”几字,有的学院要求去掉,这时请自行修改。
\end{function}
\begin{function}{style/headline}
\begin{bitsyntax}[emph={[1]headline}]
headline = (*\marg{字符串}*)
\end{bitsyntax}
\textit{此选项一般不需要用户自行修改。}
封面校徽下方、论文标题上方的大标题。只适用于本科生毕业设计(论文)及其衍生物,不适用于硕士、博士学位论文。
\end{function}
\begin{function}{style/bibliographyIndent}
\begin{bitsyntax}[emph={[1]bibliographyIndent}]
bibliographyIndent = (*(true)|false*)
\end{bitsyntax}
\textit{此选项一般不需要用户自行修改。}
控制参考文献的每一项中,首行之后的行是否缩进。