diff options
author | Karl Berry <karl@freefriends.org> | 2022-09-04 20:47:46 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-09-04 20:47:46 +0000 |
commit | a8ca3a0abe05d07b59ff73e2c6361c53b7979598 (patch) | |
tree | 50aadfedc94f3300ecc870aeaa3cb545bd4fe63e /Master/texmf-dist/tex/latex/bithesis | |
parent | 0fb8fb4b2b8686d65a7bc81da39de2a2bb511953 (diff) |
bithesis (4sep22)
git-svn-id: svn://tug.org/texlive/trunk@64286 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/bithesis')
-rw-r--r-- | Master/texmf-dist/tex/latex/bithesis/bitart.cls | 10 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/bithesis/bitbeamer.cls | 75 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/bithesis/bitbook.cls | 7 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/bithesis/bitgrad.cls | 9 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/bithesis/bithesis.cls | 1632 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/bithesis/bitreport.cls | 328 |
6 files changed, 2050 insertions, 11 deletions
diff --git a/Master/texmf-dist/tex/latex/bithesis/bitart.cls b/Master/texmf-dist/tex/latex/bithesis/bitart.cls index b0151f88333..af2c354d27e 100644 --- a/Master/texmf-dist/tex/latex/bithesis/bitart.cls +++ b/Master/texmf-dist/tex/latex/bithesis/bitart.cls @@ -4,7 +4,7 @@ %% %% The original source files were: %% -%% bithesis.dtx (with options: `cls,article') +%% bithesis.dtx (with options: `oldcls,article') %% %% Copyright (C) 2022 %% Association of Bit Network Pioneer and any individual authors listed in the documentation. @@ -25,11 +25,13 @@ %% The Current Maintainer of this work is Feng Kaiyu. %% ------------------------------------------------------------------------------ %% -\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\NeedsTeXFormat{LaTeX2e}[2020/10/01] \ProvidesClass{bitart} [2022/05/09 v2.1.1 BIT Thesis Templates] + + \newif\if@bit@labreport \newif\if@bit@proposalreport @@ -64,7 +66,7 @@ \RequirePackage{etoolbox} \fi -\usepackage[style=gb7714-2015,backend=biber]{biblatex} +\RequirePackage[style=gb7714-2015,backend=biber]{biblatex} \if@bit@labreport % 将西文字体设置为 Times New Roman @@ -111,7 +113,7 @@ \captionsetup[table]{font=small,labelsep=space,skip=10bp,labelfont=bf,font=kaiticaption} % 输出大写数字日期 - \CTEXoptions[today=big] + \ctexset{today=big} % 将西文字体设置为 Times New Roman \setromanfont{Times New Roman} diff --git a/Master/texmf-dist/tex/latex/bithesis/bitbeamer.cls b/Master/texmf-dist/tex/latex/bithesis/bitbeamer.cls new file mode 100644 index 00000000000..c07f0779be9 --- /dev/null +++ b/Master/texmf-dist/tex/latex/bithesis/bitbeamer.cls @@ -0,0 +1,75 @@ +%% +%% This is file `bitbeamer.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% bithesis.dtx (with options: `cls,beamer') +%% +%% Copyright (C) 2022 +%% Association of Bit Network Pioneer and any individual authors listed in the documentation. +%% ------------------------------------------------------------------------------ +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3c of this license or (at your option) any later +%% version. This version of this license is in +%% http://www.latex-project.org/lppl/lppl-1-3c.txt +%% and the latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of +%% LaTeX version 2020/11/27 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Feng Kaiyu. +%% ------------------------------------------------------------------------------ +%% +\RequirePackage{expl3,l3keys2e} +\ProvidesExplClass{bitbeamer} +{2022-09-03}{3.0.0}{BIT Thesis Templates} + + +\keys_define:nn { bitbeamer } + { + titlegraphic .tl_set:N = \l_bit_titlegraphic_tl, + framelogo .tl_set:N = \l_bit_framelogo_tl, + } +\ProcessKeysOptions { bitbeamer } + +\DeclareOption*{ + \PassOptionsToClass{\CurrentOption}{ctexbeamer} +} +\ProcessOptions\relax + +\LoadClass{ctexbeamer} + +\RequirePackage{xeCJKfntef} +\RequirePackage{tikz} + +\usetheme{Madrid} +\colorlet{beamer@blendedblue}{green!40!black} + +\cs_new:Npn \CJKhl:nn #1 #2 + { \CJKsout*[thickness=2.5ex, format=\color{#1}]{#2} } + +\tl_if_empty:NF \l_bit_titlegraphic_tl { + % BIT Logo + \titlegraphic{ + \includegraphics[width=2cm]{\l_bit_titlegraphic_tl} + } +} + +\tl_if_empty:NF \l_bit_framelogo_tl { + \addtobeamertemplate{frametitle}{}{% + \begin{tikzpicture}[remember~picture,overlay] + \node[anchor=north~east,yshift=2pt] at (current~page.north~east) {\includegraphics[height=0.8cm]{\tl_use:N \l_bit_framelogo_tl}}; + \end{tikzpicture} + } +} + +\cs_new_eq:NN \CJKhl \CJKhl:nn + +\endinput +%% +%% End of file `bitbeamer.cls'. diff --git a/Master/texmf-dist/tex/latex/bithesis/bitbook.cls b/Master/texmf-dist/tex/latex/bithesis/bitbook.cls index 25ad1a4b11f..11a378876b3 100644 --- a/Master/texmf-dist/tex/latex/bithesis/bitbook.cls +++ b/Master/texmf-dist/tex/latex/bithesis/bitbook.cls @@ -4,7 +4,7 @@ %% %% The original source files were: %% -%% bithesis.dtx (with options: `cls,book') +%% bithesis.dtx (with options: `oldcls,book') %% %% Copyright (C) 2022 %% Association of Bit Network Pioneer and any individual authors listed in the documentation. @@ -25,11 +25,13 @@ %% The Current Maintainer of this work is Feng Kaiyu. %% ------------------------------------------------------------------------------ %% -\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\NeedsTeXFormat{LaTeX2e}[2020/10/01] \ProvidesClass{bitbook} [2022/05/09 v2.1.1 BIT Thesis Templates] + + \newif\if@bit@bachelor \newif\if@bit@docTranslation \newif\if@bit@master @@ -57,7 +59,6 @@ \PassOptionsToPackage{AutoFakeBold,AutoFakeSlant}{xeCJK} \LoadClass[UTF8,zihao=-4,oneside,openany]{ctexbook} -\RequirePackage[a4paper,left=3cm,right=2.6cm,top=3.5cm,bottom=2.9cm]{geometry} \RequirePackage{xeCJK} \RequirePackage{titletoc} % \RequirePackage{fontspec} diff --git a/Master/texmf-dist/tex/latex/bithesis/bitgrad.cls b/Master/texmf-dist/tex/latex/bithesis/bitgrad.cls index 993f8f37aaa..813982e4aee 100644 --- a/Master/texmf-dist/tex/latex/bithesis/bitgrad.cls +++ b/Master/texmf-dist/tex/latex/bithesis/bitgrad.cls @@ -4,7 +4,7 @@ %% %% The original source files were: %% -%% bithesis.dtx (with options: `cls,graduate') +%% bithesis.dtx (with options: `oldcls,graduate') %% %% Copyright (C) 2022 %% Association of Bit Network Pioneer and any individual authors listed in the documentation. @@ -25,11 +25,13 @@ %% The Current Maintainer of this work is Feng Kaiyu. %% ------------------------------------------------------------------------------ %% -\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\NeedsTeXFormat{LaTeX2e}[2020/10/01] \ProvidesClass{bitgrad} [2022/05/09 v2.1.1 BIT Thesis Templates] + + %% ================================================== %% BIT-thesis-grd.cls for BIT Thesis %% modified by yang yating @@ -399,8 +401,7 @@ footskip=0.7cm% 页脚 1.8cm % showspaces=false, % flexiblecolumns=true, % breaklines=true, % 对过长的代码自动换行 - breakautoindent=true,% - breakindent=4em, % + postbreak=\mbox{\textcolor{red}{$\hookrightarrow$}\space}, aboveskip=1em, % 代码块边框 %% added by http://bbs.ctex.org/viewthread.php?tid=53451 fontadjust, diff --git a/Master/texmf-dist/tex/latex/bithesis/bithesis.cls b/Master/texmf-dist/tex/latex/bithesis/bithesis.cls new file mode 100644 index 00000000000..d63d15bda6b --- /dev/null +++ b/Master/texmf-dist/tex/latex/bithesis/bithesis.cls @@ -0,0 +1,1632 @@ +%% +%% This is file `bithesis.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% bithesis.dtx (with options: `cls,thesis') +%% +%% Copyright (C) 2022 +%% Association of Bit Network Pioneer and any individual authors listed in the documentation. +%% ------------------------------------------------------------------------------ +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3c of this license or (at your option) any later +%% version. This version of this license is in +%% http://www.latex-project.org/lppl/lppl-1-3c.txt +%% and the latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of +%% LaTeX version 2020/11/27 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Feng Kaiyu. +%% ------------------------------------------------------------------------------ +%% +\RequirePackage{expl3,l3keys2e} +\ProvidesExplClass{bithesis} +{2022-09-03}{3.0.0}{BIT Thesis Templates} + + +\int_new:N \g__bithesis_thesis_type_int +\int_new:N \g__bithesis_head_zihao_int +\bool_new:N \g__bithesis_twoside_bool +\bool_new:N \g__bithesis_thesis_type_english_bool +\bool_new:N \g__bithesis_blind_mode_bool +\tl_new:N \g__bithesis_label_divide_char_tl + +\seq_new:N \l__bithesis_right_seq +\seq_new:N \l__bithesis_left_seq + + +\cs_generate_variant:Nn \tl_if_empty:nTF {x} +\cs_generate_variant:Nn \seq_set_split:Nnn {Nnx} + +\cs_new:Npn \__bithesis_same_page: { + \let\clearpage\relax + \let\cleardoublepage\relax +} + +\cs_new:Npn \__bithesis_if_graduate:TF #1#2 { + \int_compare:nNnTF {3} < {\g__bithesis_thesis_type_int} + {#1} + {#2} + } + +\cs_new:Npn \__bithesis_if_thesis_int_type:nTF #1#2#3 {\int_compare:nNnTF {\g__bithesis_thesis_type_int} = {#1} {#2} {#3}} +\cs_new:Npn \__bithesis_if_thesis_int_type:nT #1#2 {\__bithesis_if_thesis_int_type:nTF {#1} {#2} {}} + +\cs_new:Npn \__bithesis_if_thesis_english:TF #1#2 {\bool_if:nTF {\g__bithesis_thesis_type_english_bool} {#1} {#2}} +\cs_new:Npn \__bithesis_if_thesis_english:T #1 {\__bithesis_if_thesis_english:TF {#1}{}} + +\cs_new:Npn \__bithesis_if_bachelor_thesis:TF #1#2 {\int_compare:nNnTF {\g__bithesis_thesis_type_int} < {4} {#1} {#2}} +\cs_new:Npn \__bithesis_if_bachelor_thesis:T #1 {\__bithesis_if_bachelor_thesis:TF {#1} {}} +\cs_new:Npn \__bithesis_if_master_thesis:TF #1#2 {\int_compare:nNnTF {\g__bithesis_thesis_type_int} = {4} {#1} {#2}} +\cs_new:Npn \__bithesis_if_doctor_thesis:TF #1#2 {\int_compare:nNnTF {\g__bithesis_thesis_type_int} = {5} {#1} {#2}} + +\clist_const:Nn \c__bithesis_thesis_type_clist + { bachelor, bachelor_translation, bachelor_english, master, docter} + +\cs_new_protected:Npn \__bithesis_define_label:nn #1#2 + { \tl_const:cn { c__bithesis_label_ #1 _tl } {#2} } + +\cs_new_protected:Npn \__bithesis_define_label_by_thesis_type:nnn #1#2#3 + { + \tl_const:cn { c__bithesis_ #1 _label_ #2 _tl } {#3} + } + +\cs_new_protected:Npn \__bithesis_define_label:nnn #1#2#3 + { + \tl_const:cn { c__bithesis_label_ #1 _tl } {#2} + \tl_const:cn { c__bithesis_label_ #1 _en_tl } {#3} + } + +\cs_new_protected:Npn \__bithesis_define_label_by_thesis_type:nnnn #1#2#3#4 + { + \tl_const:cn { c__bithesis_ #1 _label_ #2 _tl } {#3} + \tl_const:cn { c__bithesis_ #1 _label_ #2 _en_tl } {#4} + } + +\clist_map_inline:nn + { + {code} {代码}, + {udc} {UDC分类号:}, + {classification} {中国分类号:}, + {classified_level} {密级}, + {type} {种类}, + } + {\__bithesis_define_label:nn #1} + +\clist_map_inline:nn + { + {title} {本科生毕业设计(论文)}, + {originality} {原创性声明}, + {originality_clause} {本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下独立进行研究所取得的成果。除文中已经注明引用的内容外,本文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。\par~特此申明。}, + {authorization} {关于使用授权的声明}, + {authorization_clause} {本人完全了解北京理工大学有关保管、使用毕业设计(论文)的规定,其中包括:\circled{1}~学校有权保管、并向有关部门送交本毕业设计(论文)的原件与复印件;\circled{2}~学校可以采用影印、缩印或其它复制手段复制并保存本毕业设计(论文);\circled{3}~学校可允许本毕业设计(论文)被查阅或借阅;\circled{4}~学校可以学术交流为目的,复制赠送和交换本毕业设计(论文);\circled{5}~学校可以公布本毕业设计(论文)的全部或部分内容。}, + {originality_author_signature} {本人签名:\hspace{40mm}日\hspace{2.5mm}期:\hspace{13mm}年\hspace{8mm}月\hspace{8mm}日}, + {originality_supervisor_signature} {指导老师签名:\hspace{40mm}日\hspace{2.5mm}期:\hspace{13mm}年\hspace{8mm}月\hspace{8mm}日}, + } {\__bithesis_define_label_by_thesis_type:nnn {bachelor} #1} + +\clist_map_inline:nn + { + {title} {}, + {originality} {原创性声明~Statement~of~Originality}, + {originality_clause} { + 本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下独立进行研究所取得的成果。除文中已经注明引用的内容外,本文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。特此申明。\par + \arialfamily I,\dunderline[-1pt]{1pt}{\makebox[18mm]{}},~solemnly~ + declare:~the~submitted~graduation~design~(thesis),~is~the~research~achievement~completed~independently~by~myself~ + under~the~guidance~of~the~supervisor.~This~article~does~not~contain~ + any~research~published~or~written~by~any~other~individual~or~group,~ + except~as~already~referenced~in~this~paper.~Individuals~and~groups~ + that~have~made~important~contributions~to~the~study~of~this~paper~ + are~clearly~indicated~and~cited~in~the~paper.\par + }, + {authorization} {关于使用授权的声明~State~of~Use~Authorization}, + {authorization_clause} { + 本人完全了解北京理工大学有关保管、使用毕业设计(论文)的规定,其中包括:\circled{1}学校有权保管、并向有关部门送交本毕业设计(论文)的原件与复印件;\circled{2}学校可以采用影印、缩印或其它复制手段复制并保存本毕业设计(论文);\circled{3}学校可允许本毕业设计(论文)被查阅或借阅;\circled{4}学校可以学术交流为目的,复制赠送和交换本毕业设计(论文);\circled{5}学校可以公布本毕业设计(论文)的全部或部分内容。\par + I~fully~understand~the~regulations~on~the~storage,~use~of~graduation~design~(thesis)~in~Beijing~Institute~of~Technology.~Beijing~Institute~of~Technology~has~the~right~to~(1)~keep,~and~to~the~relevant~departments~to~send~the~original~or~copy~of~this~graduation~design~(thesis);~(2)~copy~and~preserve~this~graduation~design~(thesis)~by~photocopying,~miniature~or~other~means~of~reproduction;~(3)~allow~this~graduation~design~(thesis)~to~be~read~or~borrowed;~(4)~for~the~purpose~of~academic~exchange,~copy,~give~and~exchange~this~graduation~design~(thesis);~(5)~publish~all~or~part~of~the~contents~of~this~graduation~design~(thesis).~ + }, + } {\__bithesis_define_label_by_thesis_type:nnn {bachelor_english} #1} + +\cs_new:Npn \smallgap: { + \hspace{0.45ex} +} + +\cs_new:Npn \label_space: { + \__bithesis_if_bachelor_thesis:T { + \quad + } +} + +\clist_map_inline:nn + { + {originality} {研究成果声明}, + {originality_clause} {本人郑重声明:所提交的学位论文是我本人在指导教师的指导下进行的研究工作获得的研究成果。尽我所知,文中除特别标注和致谢的地方外,学位论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得北京理工大学或其它教育机构的学位或证书所使用过的材料。与我一同工作的合作者对此研究工作所做的任何贡献均已在学位论文中作了明确的说明并表示了谢意。\par~特此申明。}, + {authorization} {关于学位论文使用权的说明}, + {authorization_clause} {本人完全了解北京理工大学有关保管、使用学位论文的规定,其中包括:\circled{1}~学校有权保管、并向有关部门送交学位论文的原件与复印件;\circled{2}~学校可以采用影印、缩印或其它复制手段复制并保存学位论文;\circled{3}~学校可允许学位论文被查阅或借阅;\circled{4}~学校可以学术交流为目的,复制赠送和交换学位论文;\circled{5}~学校可以公布学位论文的全部或部分内容(保密学位论文在解密后遵守此规定)。}, + {originality_author_signature} {签\qquad 名:\hspace{40mm}日\hspace{2.5mm}期:\hspace{30mm}\quad}, + {originality_supervisor_signature} {指导老师签名:\hspace{40mm}日\hspace{2.5mm}期:\hspace{30mm}\quad}, + } {\__bithesis_define_label_by_thesis_type:nnn {graduate} #1} + +\clist_map_inline:nn + { + {author} {作\quad 者\quad 姓\quad 名} {Candidate~Name}, + {school} {学\quad 院\quad 名\quad 称} {School~or~Department}, + {supervisor} {指\quad 导\quad 教\quad 师} {Faculty~Mentor}, + {chairman} {答辩委员会主席} {Chair,~Thesis~Committee}, + {degree} {申\smallgap: 请\smallgap: 学\smallgap: 位\smallgap: 级\smallgap: 别} {Degree~Applied}, + {major} {学\quad 科\quad 专\quad 业} {Major}, + {institute} {学\smallgap: 位\smallgap: 授\smallgap: 予\smallgap: 单\smallgap: 位} {Degree~by}, + {defense_date} {论\smallgap: 文\smallgap: 答\smallgap: 辩\smallgap: 日\smallgap: 期} {The~Date~of~Defence}, + } {\__bithesis_define_label_by_thesis_type:nnnn {graduate} #1} + +\clist_map_inline:nn + { + {school} {学\qquad 院} {School}, + {major} {专\qquad 业} {Degree}, + {author} {学生姓名} {Author}, + {student_id} {学\qquad 号} {Student~ID}, + {supervisor} {指导教师} {Supervisor}, + {co_supervisor} {校外指导教师} {Co-Supervisor}, + {keywords} {关键词:} {Key~Words:~}, + {toc} {目\label_space: 录} {Table~of~Contents}, + {abstract} {摘\label_space: 要} {Abstract}, + {conclusion} {结\label_space: 论} {Conclusions}, + {appendix} {附\label_space: 录} {Appendices}, + {ack} {致\label_space: 谢} {Acknowledgement}, + {figure} {插\quad 图} {Illustrations}, + {table} {表\quad 格} {Tables}, + {appendix_prefix} {附录} {Appendix}, + {reference} {参考文献} {References}, + {university} {北京理工大学} {Beijing~Institute~of~Technology}, + {publications} {攻读学位期间发表论文与研究成果清单} {Publications~During~Studies}, + % TODO: Not so sure about the translation. + {resume} {作者简介} {}, + {symbols} {主要符号对照表} {}, + } + {\__bithesis_define_label:nnn #1} + +\clist_const:Nn \c__bithesis_bachelor_thesis_header_clist + {北京理工大学本科生毕业设计(论文), 北京理工大学本科生毕业设计(论文)外文翻译, Beijing~Institute~of~Technology~Bachelor's~Thesis } +\clist_const:Nn \c__bithesis_bachelor_thesis_cover_title_clist + { + 本科生毕业设计(论文), + 本科生毕业设计(论文)外文翻译, + Beijing\nobreak{~}Institute\nobreak{~}of\nobreak{~}Technology~Bachelor's~Thesis, + } + +\keys_define:nn { bithesis } +{ + info .meta:nn = { bithesis / info } {#1}, + misc .meta:nn = { bithesis / misc } {#1}, + cover .meta:nn = { bithesis / cover } {#1}, + style .meta:nn = { bithesis / style } {#1}, + option .meta:nn = { bithesis / option } {#1}, + TOC .meta:nn = { bithesis / TOC } {#1}, + appendices .meta:nn = { bithesis / appendices } {#1}, +} + +\keys_define:nn { bithesis / option } +{ + type .choice:, + type .value_required:n = true, + type .choices:Vn = + \c__bithesis_thesis_type_clist + { + \int_set_eq:NN \g__bithesis_thesis_type_int \l_keys_choice_int + \int_case:nn {\l_keys_choice_int} { + % 本科全英文也是英文模板。 + {3} {\bool_set_true:N \g__bithesis_thesis_type_english_bool} + } + }, + type .initial:n = bachelor, + twoside .bool_gset:N = \g__bithesis_twoside_bool, + blindPeerReview .bool_gset:N = \g__bithesis_blind_mode_bool, + ctex .tl_set:N = \l__bithesis_options_to_ctex_tl, +} + +\keys_define:nn { bithesis / cover } + { + date .tl_set:N = \l__bithesis_cover_date_tl, + headerImage .tl_set:N = \l_bit_coverheaderimage_tl, + xiheiFont .tl_set:N = \l__bithesis_cover_xihei_font_path_tl, + xiheiFont .default:n = {STXihei}, + %% cover entry + dilimiter .tl_set:N = \l__bithesis_cover_dilimiter_tl, + labelAlign .tl_set:N = \l__bithesis_cover_label_align_tl, + labelAlign .initial:n = {r}, + valueAlign .tl_set:N = \l__bithesis_cover_value_align_tl, + valueAlign .initial:n = {c}, + labelMaxWidth .dim_set:N = \l__bithesis_cover_label_max_width_dim, + valueMaxWidth .dim_set:N = \l__bithesis_cover_value_max_width_dim, + autoWidth .bool_set:N = \l__bithesis_cover_auto_width_bool, + autoWidth .initial:n = {true}, + underlineThickness .dim_set:N = \l__bithesis_cover_underline_thickness_dim, + underlineThickness .initial:n = {1pt}, + underlineOffset .dim_set:N = \l__bithesis_cover_underline_offset_dim, + underlineOffset .initial:n = { -10pt }, + } + +\keys_define:nn { bithesis / info } + { + title .tl_set:N = \l__bithesis_value_title_tl, + titleEn .tl_set:N = \l__bithesis_value_title_en_tl, + school .tl_set:N = \l__bithesis_value_school_tl, + major .tl_set:N = \l__bithesis_value_major_tl, + author .tl_set:N = \l__bithesis_value_author_tl, + studentId .tl_set:N = \l__bithesis_value_student_id_tl, + supervisor .tl_set:N = \l__bithesis_value_supervisor_tl, + externalSupervisor .tl_set:N = \l__bithesis_value_external_supervisor_tl, + keywords .tl_set:N = \l__bithesis_value_keywords_tl, + keywordsEn .tl_set:N = \l__bithesis_value_keywords_en_tl, + translationTitle .tl_set:N = \l__bithesis_value_trans_title_tl, + translationOriginTitle .tl_set:N = \l__bithesis_value_trans_origin_title_tl, + % 中国分类号,研究生学位论文使用 + classification .tl_set:N = \l__bithesis_value_classification_tl, + % UDC 分类号,研究生学位论文使用 + UDC .tl_set:N = \l__bithesis_value_udc_tl, + chairman .tl_set:N = \l__bithesis_value_chairman_tl, + degree .tl_set:N = \l__bithesis_value_degree_tl, + degreeEn .tl_set:N = \l__bithesis_value_degree_en_tl, + institute .tl_set:N = \l__bithesis_value_institute_tl, + institute .initial:n = {\c__bithesis_label_university_tl}, + defenseDate .tl_set:N = \l__bithesis_value_defense_date_tl, + authorEn .tl_set:N = \l__bithesis_value_author_en_tl, + schoolEn .tl_set:N = \l__bithesis_value_school_en_tl, + supervisorEn .tl_set:N = \l__bithesis_value_supervisor_en_tl, + chairmanEn .tl_set:N = \l__bithesis_value_chairman_en_tl, + majorEn .tl_set:N = \l__bithesis_value_major_en_tl, + instituteEn .tl_set:N = \l__bithesis_value_institute_en_tl, + instituteEn .initial:n = {\c__bithesis_label_university_en_tl}, + defenseDateEn .tl_set:N = \l__bithesis_value_defense_date_en_tl, + classifiedLevel .tl_set:N = \l__bithesis_value_classified_level_tl, + } + +\keys_define:nn { bithesis / misc } + { + arialFont .tl_set:N = \l__bithesis_misc_arial_font_path_tl, + } + +\keys_define:nn { bithesis / style } +{ + head .tl_set:N = \l__bithesis_style_head_tl, + head .initial:n = { + \int_case:nn {\g__bithesis_thesis_type_int} + { + {1} {北京理工大学本科生毕业设计(论文)} + {2} {北京理工大学本科生毕业设计(论文)外文翻译} + {3} {Beijing~Institute~of~Technology~Bachelor's~Thesis} + {4} {北京理工大学硕士学位论文} + {5} {北京理工大学博士学位论文} + } + }, +} + +\keys_define:nn { bithesis / TOC } +{ + abstract .bool_set:N = \l__bithesis_add_abstract_to_toc_bool, + abstract .initial:n = {true}, + abstractEn .bool_set:N = \l__bithesis_add_abstract_en_to_toc_bool, + abstractEn .initial:n = {true}, + symbols .bool_set:N = \l__bithesis_add_symbols_to_toc_bool, + symbols .initial:n = {true}, +} + +\keys_define:nn { bithesis / appendices } +{ + chapterLevel .bool_set:N = \l__bithesis_appendices_chapter_level_bool, + title .tl_set:N = \l__bithesis_appendices_title_tl, + TOCTitle .tl_set:N = \l__bithesis_appendix_toc_title_tl, +} + +\ProcessKeysOptions { bithesis / option } + +\__bithesis_if_thesis_english:T { + \PassOptionsToClass{scheme=plain}{ctexbook} +} + +\bool_if:NTF \g__bithesis_twoside_bool {} { + \PassOptionsToClass{oneside,openany}{ctexbook} +} + +\DeclareOption*{ + \PassOptionsToClass{\l__bithesis_options_to_ctex_tl}{ctexbook} +} +\ProcessOptions\relax +\LoadClass[zihao=-4,]{ctexbook} + +\RequirePackage{geometry} +\RequirePackage{xeCJK} +\RequirePackage{titletoc} +\RequirePackage{setspace} +\RequirePackage{graphicx} +\RequirePackage{fancyhdr} +\RequirePackage{pdfpages} +\RequirePackage{setspace} +\RequirePackage{booktabs} +\RequirePackage{multirow} +\RequirePackage{tikz} +\RequirePackage{etoolbox} +\RequirePackage{hyperref} +\RequirePackage{xcolor} +\RequirePackage{caption} +\RequirePackage{array} +\RequirePackage{amsmath} +\RequirePackage{amssymb} +\RequirePackage{amsthm} +\RequirePackage{unicode-math} +\RequirePackage{pdfpages} +\RequirePackage{listings} +\RequirePackage{enumitem} +\RequirePackage{environ} + +\pdfstringdefDisableCommands{% + \let\quad\empty +} + +\__bithesis_if_graduate:TF { + \int_set:Nn \g__bithesis_head_zihao_int {5} + \geometry{ + a4paper, + left=2.7cm, + bottom=2.5cm + 7bp, + top=3.5cm + 7bp, + right=2.7cm, + headsep = 3.5cm + 7bp - 2.5cm - 15bp, + headheight = 15 bp, + footskip = 2.5cm + 7bp - 1.8cm, + } +} { + \int_set:Nn \g__bithesis_head_zihao_int {4} + \geometry{ + a4paper, + left=3cm, + bottom=2.6cm + 7bp, + top=3.5cm + 7bp, + right=2.6cm, + headsep = 3.5cm + 7bp - 2.4cm - 20bp, + headheight = 20 bp, + footskip = 2.6cm + 7bp - 2cm, + } +} + +\setlength{\intextsep}{2\baselineskip plus 0.2\baselineskip minus 0.2\baselineskip} + +\setromanfont{Times~New~Roman} + +\ctex_at_end_preamble:n { + \__bithesis_if_thesis_english:TF { + \__bithesis_if_thesis_int_type:nT {3} { + % font Arial needed + \newfontfamily\arialfamily{Arial} + } + + } { + \tl_if_blank:VTF \l__bithesis_cover_xihei_font_path_tl {} + { + \setCJKfamilyfont{xihei}[AutoFakeBold,AutoFakeSlant]{\l__bithesis_cover_xihei_font_path_tl} + } + } + + \__bithesis_if_thesis_int_type:nT {3} { + \RequirePackage[en-US]{datetime2} + \RequirePackage{indentfirst} + \DTMlangsetup[en-US]{dayyearsep={\space}} + } + + % Define biblatex category if it was imported. + \cs_if_exist:NT \DeclareBibliographyCategory { + \DeclareBibliographyCategory{mypub} + } +} + +\cs_new:Npn \xihei:n #1 { + \xeCJK_family_if_exist:nTF {xihei} { + \CJKfamily{xihei} #1 + }{ + \heiti #1 + } +} + +\cs_new:Npn \l__bithesis_title_font_cs:n #1 { + \int_compare:nNnTF {\g__bithesis_thesis_type_int} = {3} + { + \arialfamily #1 + } { + \heiti #1 + } +} + +\cs_new:Npn \l__bithesis_unnumchapter_style_cs:n #1 { + % 本科全英文、研究生学位论文需要加粗 + \int_compare:nNnTF {\g__bithesis_thesis_type_int} > {2} + { + \bfseries #1 + } { + \mdseries #1 + } +} + +\cs_set:Npn \arabicHeiti #1 {#1} + +\fancypagestyle{BIThesis}{ + \fancyhf{} + % 定义页眉、页码 + \fancyhead[C]{\zihao{\int_use:N \g__bithesis_head_zihao_int}\ziju{0.08}\songti{\tl_use:N \l__bithesis_style_head_tl}} + \fancyfoot[C]{\songti\zihao{5} \thepage} + % 页眉分割线稍微粗一些 + \RenewDocumentCommand \headrulewidth {} {0.6pt} +} + +\ctexset{chapter={ + number = {\arabicHeiti{ \arabic{chapter} }}, + format = { \l__bithesis_title_font_cs:n \bfseries \centering \zihao{3}}, + nameformat = {}, + titleformat = {}, + aftername = \hspace{9bp}, + pagestyle = BIThesis, + beforeskip = 8bp, + afterskip = 32bp, + fixskip = true, + } +} + +\ctexset{section={ + number = {\arabicHeiti{\thechapter.\hspace{1bp}\arabic{section}}}, + format = {\l__bithesis_title_font_cs:n \raggedright \bfseries \zihao{4}}, + nameformat = {}, + titleformat = {}, + aftername = \hspace{8bp}, + beforeskip = 20bp plus 1ex minus .2ex, + afterskip = 18bp plus .2ex, + fixskip = true, + } +} + +\ctexset{subsection={ + number = {\arabicHeiti{\thechapter.\hspace{1bp}\arabic{section}.\hspace{1bp}\arabic{subsection}}}, + format = {\l__bithesis_title_font_cs:n \bfseries \raggedright \zihao{-4}}, + nameformat = {}, + titleformat = {}, + aftername = \hspace{7bp}, + beforeskip = 17bp plus 1ex minus .2ex, + afterskip = 14bp plus .2ex, + fixskip = true, + } +} + +\ctexset{ + secnumdepth = 3, + subsubsection={ + numbering = true, + number = {\arabicHeiti{\arabic{chapter}.\hspace{1bp}\arabic{section}.\hspace{1bp}\arabic{subsection}.\hspace{1bp}\arabic{subsubsection}}}, + format={\l__bithesis_title_font_cs:n \bfseries \raggedright \zihao{-4}}, + nameformat = {}, + titleformat = {}, + beforeskip=28bp plus 1ex minus .2ex, + afterskip=24bp plus .2ex, + fixskip=true, + } +} + +\addtocontents{toc}{\protect\hypersetup{hidelinks}} + +\__bithesis_if_graduate:TF { + % 各章标题,宋体四号 + \titlecontents{chapter}[0pt]{\songti \zihao{4}} + {\thecontentslabel\hspace{\ccwd}}{} + {\hspace{.5em}\titlerule*{.}\contentspage} +} { + \titlecontents{chapter}[0pt]{\songti \zihao{-4}} + {\thecontentslabel\hspace{\ccwd}}{} + {\hspace{.5em}\titlerule*{.}\contentspage} +} +\titlecontents{section}[1\ccwd]{\songti \zihao{-4}} +{\thecontentslabel\hspace{\ccwd}}{} +{\hspace{.5em}\titlerule*{.}\contentspage} +\titlecontents{subsection}[2\ccwd]{\songti \zihao{-4}} +{\thecontentslabel\hspace{\ccwd}}{} +{\hspace{.5em}\titlerule*{.}\contentspage} + + +\RenewDocumentCommand \frontmatter {} { + + \int_compare:nNnTF {\g__bithesis_thesis_type_int} = {3} + { + \pagenumbering{roman} + } { + \pagenumbering{Roman} + } + \ctexset{ + chapter = { + numbering = false, + } + } + \pagestyle{BIThesis} +} + +\RenewDocumentCommand \mainmatter {} { + \cleardoublepage + + \ctexset{ + chapter = { + numbering = true, + } + } + \pagenumbering{arabic} + \pagestyle{BIThesis} + % 正文 22 磅的行距 + \setlength{\parskip}{0em} + \setstretch{1.53} + % 修复脚注出现跨页的问题 + \interfootnotelinepenalty=10000 +} + +\RenewDocumentCommand \backmatter {} { + \setcounter{section}{0} + \setcounter{subsection}{0} + \setcounter{subsubsection}{0} + \ctexset{ + chapter = { + numbering = false, + beforeskip = 18bp, + format = {\l__bithesis_title_font_cs:n \l__bithesis_unnumchapter_style_cs:n \centering \zihao{3}}, + afterskip = 26bp, + } + } +} + +\setlength{\abovecaptionskip}{11pt} +\setlength{\belowcaptionskip}{9pt} + +\__bithesis_if_graduate:TF { + \tl_set:Nn \g__bithesis_label_divide_char_tl {.} +} { + \tl_set:Nn \g__bithesis_label_divide_char_tl {-} +} + +\cs_set:Npn \thefigure {\thechapter\g__bithesis_label_divide_char_tl\arabic{figure}} +\captionsetup[figure]{font=small,labelsep=space} + +\cs_set:Npn \thetable {\thechapter\g__bithesis_label_divide_char_tl\arabic{table}} +\captionsetup[table]{font=small,labelsep=space,skip=2pt} + +\cs_set:Npn \theequation {\thechapter\g__bithesis_label_divide_char_tl\arabic{equation}} + +\cs_set:Npn \thelstlisting {\thechapter\g__bithesis_label_divide_char_tl\arabic{lstlisting}} +\cs_set:Npn \lstlistingname {\c__bithesis_label_code_tl} + +\tolerance=1 +\emergencystretch=\maxdimen +\hyphenpenalty=10000 +\hbadness=10000 + +\definecolor{codegreen}{rgb}{0,0.6,0} +\definecolor{codegray}{rgb}{0.5,0.5,0.5} +\definecolor{codepurple}{rgb}{0.58,0,0.82} +\definecolor{backcolour}{rgb}{0.95,0.95,0.92} +\lstdefinestyle{examplestyle}{ + backgroundcolor=\color{backcolour}, + commentstyle=\color{codegreen}, + keywordstyle=\color{magenta}, + numberstyle=\tiny\color{codegray}, + stringstyle=\color{codepurple}, + basicstyle=\ttfamily\footnotesize, + breakatwhitespace=false, + breaklines=true, + captionpos=b, + keepspaces=true, + numbers=left, + numbersep=5pt, + showspaces=false, + showstringspaces=false, + showtabs=false, + tabsize=2 +} +\lstset{style=examplestyle} + +\cs_set:Npn \listfigurename {\c__bithesis_label_figure_tl} +\cs_set:Npn \listtablename {\c__bithesis_label_table_tl} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\unimathsetup{ + math-style = ISO, + bold-style = ISO, +} + +\theoremstyle{plain} + \newtheorem{algorithm}{算法}[chapter] + \newtheorem{theorem}{定理}[chapter] + \newtheorem{lemma}[theorem]{引理} + \newtheorem{proposition}[theorem]{命题} + \newtheorem{corollary}[theorem]{推论} + \newtheorem{axiom}[theorem]{公理} +\theoremstyle{definition} + \newtheorem{definition}{定义}[chapter] + \newtheorem{conjecture}{猜想}[chapter] + \newtheorem{example}{例}[chapter] + \newtheorem{case}{情形} +\theoremstyle{remark} + \newtheorem{remark}{注} + \renewcommand{\qedsymbol}{\ensuremath{\QED}} + +\DeclareDocumentCommand \BITSetup { m } + { \keys_set:nn { bithesis } { #1 }} + +\cs_new:Npn \__bithesis_render_cover_entry:nn #1#2 { + \makebox[\l__bithesis_cover_label_max_width_dim][\l__bithesis_cover_label_align_tl]{ + \tl_if_blank:VTF #1 {} {#1\l__bithesis_cover_dilimiter_tl} + } + \hspace{1ex} + \__bithesis_dunderline:nnn{\l__bithesis_cover_underline_offset_dim}{\l__bithesis_cover_underline_thickness_dim}{ + \makebox[\l__bithesis_cover_value_max_width_dim][\l__bithesis_cover_value_align_tl]{#2} + }\par +} + +\cs_new:Npn \__bithesis_get_text_width:Nn #1#2 + { + \hbox_set:Nn \l_tmpa_box {#2} + \dim_set:Nn #1 { \box_wd:N \l_tmpa_box } + } +\cs_generate_variant:Nn \__bithesis_get_text_width:Nn { NV } + +\cs_new:Npn \__bithesis_get_max_text_width:NN #1#2 + { + \group_begin: + \seq_set_eq:NN \l__bithesis_tmpa_seq #2 + \dim_zero_new:N \l__bithesis_tmpa_dim + \bool_until_do:nn { \seq_if_empty_p:N \l__bithesis_tmpa_seq } + { + \seq_pop_left:NN \l__bithesis_tmpa_seq \l__bithesis_tmpa_tl + \__bithesis_get_text_width:NV \l__bithesis_tmpa_dim \l__bithesis_tmpa_tl + \dim_gset:Nn #1 { \dim_max:nn {#1} { \l__bithesis_tmpa_dim } } + } + \group_end: + } + +\cs_new:Npn \__bithesis_parse_entry #1 #2 { + \seq_set_split:Nnx \l__bithesis_tmp_right_seq {//} {#2} + \seq_clear:N \l__bithesis_tmp_left_seq + \seq_map_inline:Nn \l__bithesis_tmp_right_seq { + \seq_put_right:Nn \l__bithesis_tmp_left_seq {} + } + \seq_put_left:Nn \l__bithesis_tmp_left_seq {#1} + \seq_pop_right:NN \l__bithesis_tmp_left_seq \g__bithesis_trashcan_tl +} + +\cs_new:Npn \__bithesis_render_cover_entry:n #1 { + \seq_set_from_clist:NN \l__bithesis_input_seq #1 + % parse newline // + \seq_map_inline:Nn \l__bithesis_input_seq { + \__bithesis_parse_entry ##1 + \seq_concat:NNN \l__bithesis_right_seq \l__bithesis_right_seq \l__bithesis_tmp_right_seq + \seq_concat:NNN \l__bithesis_left_seq \l__bithesis_left_seq \l__bithesis_tmp_left_seq + } + + \bool_if:NT \l__bithesis_cover_auto_width_bool { + \__bithesis_get_max_text_width:NN \l__bithesis_cover_label_max_width_dim \l__bithesis_left_seq + \__bithesis_get_max_text_width:NN \l__bithesis_cover_value_max_width_dim \l__bithesis_right_seq + } + + \group_begin: + \bool_until_do:nn { \seq_if_empty_p:N \l__bithesis_left_seq } + { + \seq_pop_left:NN \l__bithesis_left_seq \l__bithesis_tmpa_tl + \seq_pop_left:NN \l__bithesis_right_seq \l__bithesis_tmpb_tl + \tl_if_empty:xTF \l__bithesis_tmpb_tl {} { + \__bithesis_render_cover_entry:nn {\l__bithesis_tmpa_tl} {\l__bithesis_tmpb_tl} + } + } + \group_end: +} + +\cs_new:Npn \__bithesis_dunderline:nnn #1#2#3 { + {\setbox0=\hbox{#3}\ooalign{\copy0\cr\rule[\dimexpr#1-#2\relax]{\wd0}{#2}}} +} + +\cs_new:Npn \__bithesis_dunderline:nn #1#2 { + \__bithesis_dunderline:nnn {#1} {1pt} {#2} +} + +\cs_new:Npn \__bithesis_dunderline:n #1 { + \__bithesis_dunderline:nnn {-10pt} {1pt} {#1} +} + +\newcommand\dunderline[3][-1pt]{{% + \setbox0=\hbox{#3} + \ooalign{\copy0\cr\rule[\dimexpr#1-#2\relax]{\wd0}{#2}}}} + +\NewEnviron{blindPeerReview}{ + \bool_if:NTF \g__bithesis_blind_mode_bool {} { + \BODY + } +} + +\RenewDocumentCommand \cleardoublepage { } + { + \clearpage + \bool_if:NT \g__bithesis_twoside_bool + { + \int_if_odd:nF \c@page + { \hbox:n { } \thispagestyle { empty } \newpage } + } + } + +\cs_new:Npn \make_graduate_cover: { + \cleardoublepage + \begin{titlepage} + { + \heiti\zihao{5} + \tl_if_blank:VTF \l__bithesis_value_classified_level_tl {} { + \flushright + \c__bithesis_label_classified_level_tl:~ + \l__bithesis_value_classified_level_tl \par + } + } + \centering + \vspace*{65mm} + {\heiti\zihao{-2} \l__bithesis_value_title_tl} + \vskip 60mm + {\heiti \zihao{-3} \l__bithesis_value_author_tl} % 黑体 小三 + \vskip 10mm + {\heiti \zihao{-3} \l__bithesis_cover_date_tl} % 黑体 小三 + \end{titlepage} +} + +\cs_new:Npn \make_paper_back: { + \cleardoublepage + \begin{titlepage} + \vskip 5cm + \begin{center} + \setstretch{1.1} + \begin{minipage}[t][19.7cm]{2em} + \begin{center} + {\heiti\zihao{3}\l__bithesis_value_title_tl} + \vfill + {\heiti\zihao{3}\l__bithesis_value_author_tl} + \vfill + {\heiti\zihao{3}\c__bithesis_label_university_tl} + \end{center} + \end{minipage} + \end{center} + % \vskip 5cm + \end{titlepage} +} + +\cs_new:Npn \__bithesis_make_chinese_title_page: { + \cleardoublepage + \begin{titlepage} + { % + {\heiti \zihao{5} \noindent \c__bithesis_label_classification_tl} \l__bithesis_value_classification_tl\\ + {\heiti \zihao{5} \c__bithesis_label_udc_tl} \l__bithesis_value_udc_tl + } + \begin{center} + + \vskip \stretch{1} + {\heiti\zihao{-2} \l__bithesis_value_title_tl} + \vskip \stretch{1} + + % TODO: delete this? + {\fangsong\zihao{4}} + \def\tabcolsep{1pt} + \def\arraystretch{1.5} + + { + \renewcommand{\baselinestretch}{2} + + \tl_if_empty:NT \l__bithesis_cover_dilimiter_tl { + \tl_set:Nn \l__bithesis_cover_dilimiter_tl {\qquad} + } + \tl_set:Nn \l__bithesis_cover_underline_offset_dim {-5pt} + % if not auto width, try override width + \bool_if:NF \l__bithesis_cover_auto_width_bool { + \dim_compare:nNnT {\l__bithesis_cover_label_max_width_dim} = {0pt} { + \dim_set:Nn \l__bithesis_cover_label_max_width_dim {45mm} + } + \dim_compare:nNnT {\l__bithesis_cover_value_max_width_dim} = {0pt} { + \dim_set:Nn \l__bithesis_cover_value_max_width_dim {60mm} + } + } + + \clist_set:Nn \l__bithesis_input_clist { + {\c__bithesis_graduate_label_author_tl} {\l__bithesis_value_author_tl}, + {\c__bithesis_graduate_label_school_tl} {\l__bithesis_value_school_tl}, + {\c__bithesis_graduate_label_supervisor_tl} {\l__bithesis_value_supervisor_tl}, + {\c__bithesis_graduate_label_chairman_tl} {\l__bithesis_value_chairman_tl}, + {\c__bithesis_graduate_label_degree_tl} {\l__bithesis_value_degree_tl}, + {\c__bithesis_graduate_label_major_tl} {\l__bithesis_value_major_tl}, + {\c__bithesis_graduate_label_institute_tl} {\l__bithesis_value_institute_tl}, + {\c__bithesis_graduate_label_defense_date_tl} {\l__bithesis_value_defense_date_tl}, + } + + \heiti\zihao{-3} + \__bithesis_render_cover_entry:n \l__bithesis_input_clist + } + \end{center} + \vskip \stretch{0.5} + \end{titlepage} +} + +\cs_new:Npn \__bithesis_make_english_title_page: { + \begin{titlepage} + \begin{center} + + \vspace*{10em} + {\zihao{-2}\textbf{\l__bithesis_value_title_en_tl}} + % \bfseries + \vskip \stretch{1} + + { + \tl_if_empty:NT \l__bithesis_cover_dilimiter_tl { + \tl_set:Nn \l__bithesis_cover_dilimiter_tl {:~} + } + + \tl_set:Nn \l__bithesis_cover_label_align_tl {l} + \tl_set:Nn \l__bithesis_cover_underline_offset_dim {-5pt} + + % if not auto width, try override width + \bool_if:NF \l__bithesis_cover_auto_width_bool { + \dim_compare:nNnT {\l__bithesis_cover_label_max_width_dim} = {0pt} { + \dim_set:Nn \l__bithesis_cover_label_max_width_dim {55mm} + } + \dim_compare:nNnT {\l__bithesis_cover_value_max_width_dim} = {0pt} { + \dim_set:Nn \l__bithesis_cover_value_max_width_dim {85mm} + } + } + + \clist_set:Nn \l__bithesis_input_clist { + {\c__bithesis_graduate_label_author_en_tl} {\l__bithesis_value_author_en_tl}, + {\c__bithesis_graduate_label_school_en_tl} {\l__bithesis_value_school_en_tl}, + {\c__bithesis_graduate_label_supervisor_en_tl} {\l__bithesis_value_supervisor_en_tl}, + {\c__bithesis_graduate_label_chairman_en_tl} {\l__bithesis_value_chairman_en_tl}, + {\c__bithesis_graduate_label_degree_en_tl} {\l__bithesis_value_degree_en_tl}, + {\c__bithesis_graduate_label_major_en_tl} {\l__bithesis_value_major_en_tl}, + {\c__bithesis_graduate_label_institute_en_tl} {\l__bithesis_value_institute_en_tl}, + {\c__bithesis_graduate_label_defense_date_en_tl} {\l__bithesis_value_defense_date_en_tl}, + } + + \zihao{-3} + \__bithesis_render_cover_entry:n \l__bithesis_input_clist + } + + \end{center} + + \vskip \stretch{0.5} + \end{titlepage} +} + +\DeclareDocumentCommand \MakeCover {} + { + \begin{blindPeerReview} + \group_begin: + + \int_case:nn {\g__bithesis_thesis_type_int} + { + {1} + { + \begin{titlepage} + \vspace*{16mm} + + \centering + + \tl_if_blank:VTF \l_bit_coverheaderimage_tl {} { + \includegraphics[width=9.87cm]{\l_bit_coverheaderimage_tl}\\ + } + + \vspace*{-3mm} + + \zihao{-0}\textbf{\ziju{0.12}\songti{\c__bithesis_bachelor_label_title_tl}}\par + + \vspace{16mm} + + \zihao{2}\textbf{\xihei:n \l__bithesis_value_title_tl}\par + + \vspace{3mm} + + \begin{spacing}{1.2} + \zihao{3}\selectfont{\textbf{\l__bithesis_value_title_en_tl}}\par + \end{spacing} + + \vspace{15mm} + + \begin{spacing}{1.8} + \begin{center} + \tl_if_empty:NT \l__bithesis_cover_dilimiter_tl { + \tl_set:Nn \l__bithesis_cover_dilimiter_tl {:} + } + % if not auto width, try override width + \bool_if:NF \l__bithesis_cover_auto_width_bool { + \dim_compare:nNnT {\l__bithesis_cover_label_max_width_dim} = {0pt} { + \dim_set:Nn \l__bithesis_cover_label_max_width_dim {35mm} + } + \dim_compare:nNnT {\l__bithesis_cover_value_max_width_dim} = {0pt} { + \dim_set:Nn \l__bithesis_cover_value_max_width_dim {78mm} + } + } + + \clist_set:Nn \l__bithesis_input_clist { + {\c__bithesis_label_school_tl} {\l__bithesis_value_school_tl}, + {\c__bithesis_label_major_tl} {\l__bithesis_value_major_tl}, + {\c__bithesis_label_author_tl} {\l__bithesis_value_author_tl}, + {\c__bithesis_label_student_id_tl} {\l__bithesis_value_student_id_tl}, + {\c__bithesis_label_supervisor_tl} {\l__bithesis_value_supervisor_tl}, + {\c__bithesis_label_co_supervisor_tl} {\l__bithesis_value_external_supervisor_tl}, + } + + \zihao{3} + + \__bithesis_render_cover_entry:n \l__bithesis_input_clist + + \end{center} + \end{spacing} + + \vspace*{\fill} + \centering + \zihao{3}\ziju{0.5}\songti{ + \tl_if_empty:NTF \l__bithesis_cover_date_tl { + \today + } { + \l__bithesis_cover_date_tl + } + } + \end{titlepage} + } + {2} + { + \begin{titlepage} + \centering + + \tl_if_blank:VTF \l_bit_coverheaderimage_tl {} { + \includegraphics[width=6.87cm]{\l_bit_coverheaderimage_tl}\\ + } + + \vspace{1mm} + + \zihao{2}\textbf{\songti{本科生毕业设计(论文)外文翻译}} + + \vspace{8mm} + + { + + \begin{spacing}{1.8} + + \tl_set:Nn \l__bithesis_cover_dilimiter_tl {\textbf{:}} + \bool_set_false:N \l__bithesis_cover_auto_width_bool + \dim_set:Nn \l__bithesis_cover_label_max_width_dim {35mm} + \dim_set:Nn \l__bithesis_cover_value_max_width_dim {115mm} + + \clist_set:Nn \l__bithesis_input_clist { + {\zihao{4}\textbf{外文原文题目}} {\l__bithesis_value_trans_origin_title_tl}, + {\zihao{4}\textbf{中文翻译题目}} {\l__bithesis_value_trans_title_tl}, + } + + \zihao{-3} + \centering + + \__bithesis_render_cover_entry:n \l__bithesis_input_clist + + \end{spacing} + + } + + \vspace{14mm} + + \zihao{2}\textbf{\xihei:n \l__bithesis_value_title_tl}\par + + \vspace{3mm} + + \begin{spacing}{1.2} + \zihao{3}\selectfont{\textbf{\l__bithesis_value_title_en_tl}}\par + \end{spacing} + + \vspace{19mm} + + \begin{spacing}{1.8} + \tl_if_empty:NT \l__bithesis_cover_dilimiter_tl { + \tl_set:Nn \l__bithesis_cover_dilimiter_tl {:} + } + + % if not auto width, try override width + \bool_if:NF \l__bithesis_cover_auto_width_bool { + \dim_compare:nNnT {\l__bithesis_cover_label_max_width_dim} = {0pt} { + \dim_set:Nn \l__bithesis_cover_label_max_width_dim {35mm} + } + \dim_compare:nNnT {\l__bithesis_cover_value_max_width_dim} = {0pt} { + \dim_set:Nn \l__bithesis_cover_value_max_width_dim {78mm} + } + } + + \zihao{3} + + \clist_set:Nn \l__bithesis_input_clist { + {\c__bithesis_label_school_tl} {\l__bithesis_value_school_tl}, + {\c__bithesis_label_major_tl} {\l__bithesis_value_major_tl}, + {\c__bithesis_label_author_tl} {\l__bithesis_value_author_tl}, + {\c__bithesis_label_student_id_tl} {\l__bithesis_value_student_id_tl}, + {\c__bithesis_label_supervisor_tl} {\l__bithesis_value_supervisor_tl}, + {\c__bithesis_label_co_supervisor_tl} {\l__bithesis_value_external_supervisor_tl}, + } + + \__bithesis_render_cover_entry:n \l__bithesis_input_clist + + \end{spacing} + + \vspace*{\fill} + \end{titlepage} + } + {3} { + \begin{titlepage} + \vspace*{16mm} + + \centering + + \tl_if_blank:VTF \l_bit_coverheaderimage_tl {} { + \includegraphics[width=9.87cm]{\l_bit_coverheaderimage_tl}\\ + } + + \vspace*{-3mm} + + \zihao{1}\textbf{\ziju{0.12}Beijing\nobreak{~}Institute\nobreak{~}of\nobreak{~}Technology~Bachelor's~Thesis}\par + + \vspace{18mm} + + \zihao{2}\textbf{\xihei:n \l__bithesis_value_title_en_tl}\par + + \vspace{10mm} + + \begin{spacing}{1.8} + \begin{center} + \tl_if_empty:NT \l__bithesis_cover_dilimiter_tl { + \tl_set:Nn \l__bithesis_cover_dilimiter_tl {:} + } + + % if not auto width, try override width + \bool_if:NF \l__bithesis_cover_auto_width_bool { + \dim_compare:nNnT {\l__bithesis_cover_label_max_width_dim} = {0pt} { + \dim_set:Nn \l__bithesis_cover_label_max_width_dim {20mm} + } + \dim_compare:nNnT {\l__bithesis_cover_value_max_width_dim} = {0pt} { + \dim_set:Nn \l__bithesis_cover_value_max_width_dim {105mm} + } + } + + \zihao{4} + + \clist_set:Nn \l__bithesis_input_clist { + {\c__bithesis_label_school_en_tl} {\l__bithesis_value_school_tl}, + {\c__bithesis_label_major_en_tl} {\l__bithesis_value_major_tl}, + {\c__bithesis_label_author_en_tl} {\l__bithesis_value_author_tl}, + {\c__bithesis_label_student_id_en_tl} {\l__bithesis_value_student_id_tl}, + {\c__bithesis_label_supervisor_en_tl} {\l__bithesis_value_supervisor_tl}, + {\c__bithesis_label_co_supervisor_en_tl} {\l__bithesis_value_external_supervisor_tl}, + } + + \__bithesis_render_cover_entry:n \l__bithesis_input_clist + + \end{center} + \end{spacing} + + \vspace*{\fill} + \centering + \zihao{3}\ziju{0.5}\songti{ + \tl_if_empty:NTF \l__bithesis_cover_date_tl { + \today + } { + \l__bithesis_cover_date_tl + } + } + \end{titlepage} + } + {4} { + \make_graduate_cover: + } + {5} { + \make_graduate_cover: + } + } + \group_end: + \end{blindPeerReview} + } + +\newcommand{\circled}[2][]{\tikz[baseline=(char.base)] + {\node[shape = circle, draw, inner~sep = 1pt] + (char) {\phantom{\ifblank{#1}{#2}{#1}}}; + \node at (char.center) {\makebox[0pt][c]{#2}};}} +\robustify{\circled} + +\cs_new:Npn \__bithesis_graduate_originality: { + \ctexset { + chapter / pagestyle = plain, + } + + \begin{titlepage} + \pagenumbering{gobble} + + % 原创性声明部分 + \begin{center} + \__bithesis_same_page: + \chapter*{\heiti\zihao{3}\c__bithesis_graduate_label_originality_tl} + \end{center}~\par + + % 本部分字号为小三 + \zihao{4} + \c__bithesis_graduate_label_originality_clause_tl + + \vspace{17mm} + + \begin{flushright} + \c__bithesis_graduate_label_originality_author_signature_tl\par + \end{flushright} + + \vspace{16mm} + + % 使用授权声明部分 + \begin{center} + \__bithesis_same_page: + \chapter*{\heiti\zihao{3}\c__bithesis_graduate_label_authorization_tl} + \end{center}~\par + + \c__bithesis_graduate_label_authorization_clause_tl + + \vspace*{15mm} + + \begin{flushright} + \begin{spacing}{1.65} + \zihao{4} + % \hspace{5mm}\raisebox{-2ex}{\includegraphics[width=30mm]{example-image}}\hspace{5mm} + \c__bithesis_graduate_label_originality_author_signature_tl\par + \c__bithesis_graduate_label_originality_supervisor_signature_tl\par + \end{spacing} + \end{flushright} + \end{titlepage} + \cleardoublepage +} + +\NewDocumentCommand \MakeOriginality {} +{ + \group_begin: + \begin{blindPeerReview} + \int_case:nn {\g__bithesis_thesis_type_int} + { + {1} + { + \pagestyle{BIThesis} + \pagenumbering{gobble} + + % 原创性声明部分 + \begin{center} + \vspace*{-2bp} + \__bithesis_same_page: + \chapter*{\heiti\zihao{2}\c__bithesis_bachelor_label_originality_tl} + \end{center}~\par + + % 本部分字号为小三 + \zihao{-3} + \c__bithesis_bachelor_label_originality_clause_tl + + \vspace{17mm} + + \begin{flushright} + \c__bithesis_bachelor_label_originality_author_signature_tl\par + \end{flushright} + + \vspace{16mm} + + % 使用授权声明部分 + \begin{center} + \__bithesis_same_page: + \chapter*{\heiti\zihao{2}\c__bithesis_bachelor_label_authorization_tl} + \end{center}~\par + + \c__bithesis_bachelor_label_authorization_clause_tl + + \vspace*{3mm} + + \begin{flushright} + \begin{spacing}{1.65} + \zihao{-3} + % \hspace{5mm}\raisebox{-2ex}{\includegraphics[width=30mm]{example-image}}\hspace{5mm} + \c__bithesis_bachelor_label_originality_author_signature_tl\par + \c__bithesis_bachelor_label_originality_supervisor_signature_tl\par + \end{spacing} + \end{flushright} + + \newpage + } + {3} { + \setstretch{1.26} + % 原创性声明部分 + \begin{center} + \vspace*{-2bp} + \__bithesis_same_page: + \chapter*{\heiti\zihao{-2}\c__bithesis_bachelor_english_label_originality_tl} + \end{center}~\par + + % 本部分字号为小三 + \zihao{-4} + \c__bithesis_bachelor_english_label_originality_clause_tl + + \bigbreak + + Student~(Signature):~\dunderline[-1pt]{1pt}{\makebox[18mm]{}}~Date:\par + + \vspace{6mm} + + % 使用授权声明部分 + \begin{center} + \__bithesis_same_page: + \chapter*{\heiti\zihao{-2}\c__bithesis_bachelor_english_label_authorization_tl} + \end{center}~\par + + \c__bithesis_bachelor_english_label_authorization_clause_tl + + \bigbreak + Student~(Signature):~\dunderline[-1pt]{1pt}{\makebox[18mm + 16bp]{}}~\hspace{2mm}Date:\par + Supervisor~(Signature):~\dunderline[-1pt]{1pt}{\makebox[18mm]{}}~\hspace{2mm}Date:\par + } + {4} {\__bithesis_graduate_originality:} + {5} {\__bithesis_graduate_originality:} + } + \end{blindPeerReview} + \group_end: +} + +\NewDocumentCommand \MakePaperBack {} + { + \begin{blindPeerReview} + \make_paper_back: + \end{blindPeerReview} + } + +\NewDocumentCommand \MakeTitle {} + { + \begin{blindPeerReview} + \__bithesis_make_chinese_title_page: + \__bithesis_make_english_title_page: + \end{blindPeerReview} + } + +\DeclareDocumentCommand \MakeTOC {} + { + { + \__bithesis_if_bachelor_thesis:TF { + \renewcommand{\baselinestretch}{1.35} + } { + \renewcommand{\baselinestretch}{1.56} + } + + \__bithesis_if_thesis_english:TF { + \tl_set:Nn \l__bithesis_toc_title_tl {\c__bithesis_label_toc_en_tl} + } { + \tl_set:Nn \l__bithesis_toc_title_tl {\c__bithesis_label_toc_tl} + } + + % 自定义目录样式 + \cs_set:Npn \contentsname { + \fontsize{16pt}{\baselineskip} + \l__bithesis_unnumchapter_style_cs:n\l__bithesis_title_font_cs:n{\l__bithesis_toc_title_tl} + \vspace{-8pt} + } + + % 制作目录 + \tableofcontents + + % 在本科生全英文模板中,添加「目录」本身到目录中。 + \__bithesis_if_thesis_int_type:nT {3} { + \addcontentsline{toc}{chapter}{\c__bithesis_label_toc_en_tl} + } + } + } + + % TODO: + \NewDocumentEnvironment {abstract} {} + { + + \cleardoublepage + \setstretch{1.53} + + \__bithesis_if_bachelor_thesis:T { + \begin{center} + \vspace*{-17bp} + \heiti\zihao{-2}\textbf{ + \int_case:nn {\g__bithesis_thesis_type_int} + { + {1} {\l__bithesis_value_title_tl} + {2} {\l__bithesis_value_trans_title_tl} + {3} {\l__bithesis_value_title_tl} + } + } + \end{center} + + \vspace*{2mm} + } + + \ctexset{ + chapter/numbering = false, + } + + \__bithesis_if_bachelor_thesis:T { + \ctexset{ + chapter/titleformat = {\textmd} + } + } + + { + \__bithesis_same_page: + \bool_if:NTF \l__bithesis_add_abstract_to_toc_bool { + \chapter{\c__bithesis_label_abstract_tl} + } { + \chapter*{\c__bithesis_label_abstract_tl} + } + } + \vspace*{1mm} + \par + } + { + \par + \vspace{4ex}\noindent\textbf{\heiti \c__bithesis_label_keywords_tl \l__bithesis_value_keywords_tl}\par + \newpage + } + + \NewDocumentEnvironment {abstractEn} {} + { + \cleardoublepage + \setstretch{1.53} + + \__bithesis_if_bachelor_thesis:T { + \begin{spacing}{0.95} + \centering + \vspace*{-2bp} + + \__bithesis_if_thesis_int_type:nTF {3} { + \arialfamily\zihao{-2}\textbf\l__bithesis_value_title_en_tl\\ + } { + \heiti\zihao{3}\textbf\l__bithesis_value_title_en_tl\\ + } + \end{spacing} + \vspace*{10mm} + } + + \ctexset{ + chapter/numbering = false, + } + + \__bithesis_if_bachelor_thesis:TF { + \int_compare:nNnTF {\g__bithesis_thesis_type_int} = {3} + { + \ctexset{ + chapter = { + titleformat = {\heiti\zihao{3}\centering\textbf}, + } + } + } { + \ctexset{ + chapter = { + titleformat = {\heiti\zihao{-3}\centering\textmd}, + } + } + } + } { + \ctexset { + chapter/titleformat = {\heiti\zihao{3}\centering\textbf} + } + } + + { + \__bithesis_same_page: + \bool_if:nTF {\l__bithesis_add_abstract_en_to_toc_bool} { + \chapter{\c__bithesis_label_abstract_en_tl} + } { + \chapter*{\c__bithesis_label_abstract_en_tl} + } + } + } + { + \par\vspace{3ex}\noindent\textbf{\c__bithesis_label_keywords_en_tl \l__bithesis_value_keywords_en_tl} + \newpage + } + + \NewDocumentEnvironment {conclusion} {} + { + \ctexset{ + section/number = \arabic{section} + } + + \__bithesis_if_thesis_english:TF { + \chapter{\c__bithesis_label_conclusion_en_tl} + } { + \chapter{\c__bithesis_label_conclusion_tl} + } + } + {} + + \NewDocumentEnvironment {bibprint} {} + { + % 设置参考文献字号为 5 号 + \renewcommand*{\bibfont}{\zihao{5}} + % 设置参考文献各个项目之间的垂直距离为 0 + \setlength{\bibitemsep}{0ex} + \setlength{\bibnamesep}{0ex} + \setlength{\bibinitsep}{0ex} + \__bithesis_if_graduate:TF { + } { + % 「本科生」设置单倍行距 + \renewcommand{\baselinestretch}{1.2} + } + % 设置参考文献顺序标签 `[1]` 与文献内容 `作者. 文献标题...` 的间距 + \setlength{\biblabelsep}{1.7mm} + % 设置参考文献后文缩进为 0(与 Word 模板保持一致) + % See: https://github.com/hushidong/biblatex-gb7714-2015 + % 如何修参考文献表的缩进? + \cs_set:Npn \itemcmd { + \settowidth{\lengthid}{\mkgbnumlabel{\printfield{labelnumber}}} + %%这里是所做的调整,以下两句通过调整\lengthid来调整缩进 + \setlength{\lengthid}{0pt} + \addtolength{\lengthid}{-\biblabelsep} + \setlength{\lengthlw}{\textwidth} + \addtolength{\lengthlw}{-\lengthid} + \addvspace{\bibitemsep}%恢复\bibitemsep的作用 + \hangindent\lengthid + \leavevmode\mkgbnumlabel{\printfield{labelnumber}}% + \hspace{\biblabelsep} + } + \__bithesis_if_thesis_english:TF { + \chapter{\c__bithesis_label_reference_en_tl} + } { + \chapter{\c__bithesis_label_reference_tl} + } + } + {} + + % #1: The name that used as chapter title + % #2: The name that used in ToC. + \NewDocumentEnvironment {appendices} {} + { + % Used in chapter, ToC. + \tl_new:N \l__bithesis_appendix_plain_label_tl + % Used before reference label. + \tl_new:N \l__bithesis_appendix_default_title_tl + + \__bithesis_if_thesis_english:TF { + \tl_set:Nn \l__bithesis_appendix_plain_label_tl {\c__bithesis_label_appendix_prefix_en_tl} + \tl_set:Nn \l__bithesis_appendix_default_title_tl {\c__bithesis_label_appendix_en_tl} + } { + \tl_set:Nn \l__bithesis_appendix_plain_label_tl {\c__bithesis_label_appendix_prefix_tl} + \tl_set:Nn \l__bithesis_appendix_default_title_tl {\c__bithesis_label_appendix_tl} + } + + \bool_if:NTF \l__bithesis_appendices_chapter_level_bool { + \setcounter{chapter}{0} + \ctexset{ + chapter/numbering = true, + chapter/name = {}, + chapter/number = \l__bithesis_appendix_plain_label_tl\hspace{1ex}\Alph{chapter}, + section/number = \Alph{chapter}. \arabic{section}, + subsection/number = \Alph{chapter}. \arabic{section}. \arabic{subsection}, + } + + \cs_set:Npn \thechapter { + \Alph{chapter} + } + } { + \ctexset{ + section/number = \l__bithesis_appendix_plain_label_tl\hspace{1ex}\Alph{section}, + subsection/number = \Alph{section}. \arabic{subsection}, + } + + \cs_set:Npn \thechapter { + \Alph{section} + } + + \tl_if_blank:VTF \l__bithesis_appendices_title_tl { + \chapter{\l__bithesis_appendix_default_title_tl} + } { + \chapter*{\l__bithesis_appendices_title_tl} + \stepcounter{chapter} + \tl_if_blank:VTF \l__bithesis_appendix_toc_title_tl { + \addcontentsline{toc}{chapter}{\l__bithesis_appendix_default_title_tl} + } { + \addcontentsline{toc}{chapter}{\l__bithesis_appendix_toc_title_tl} + } + } + } + } + { + } + + \NewDocumentEnvironment {acknowledgements} {+b} + { + \begin{blindPeerReview} + \ctexset{ + section/number = \arabic{section}, + subsection/number = \arabic{section}. \arabic{subsection}, + } + + \__bithesis_if_thesis_english:TF { + \chapter{\c__bithesis_label_ack_en_tl} + } { + \chapter{\c__bithesis_label_ack_tl} + } + #1 + \end{blindPeerReview} + } {} + + \NewDocumentEnvironment {publications} {+b} + { + \begin{blindPeerReview} + % 设置参考文献字号为 5 号 + \renewcommand*{\bibfont}{\zihao{5}} + % 设置参考文献各个项目之间的垂直距离为 0 + \setlength{\bibitemsep}{0ex} + \setlength{\bibnamesep}{0ex} + \setlength{\bibinitsep}{0ex} + % 设置单倍行距 + \renewcommand{\baselinestretch}{1.2} + % 设置参考文献顺序标签 `[1]` 与文献内容 `作者. 文献标题...` 的间距 + \setlength{\biblabelsep}{1.7mm} + % 设置参考文献后文缩进为 0(与 Word 模板保持一致) + % See: https://github.com/hushidong/biblatex-gb7714-2015 + % 如何修参考文献表的缩进? + \cs_set:Npn \itemcmd { + \settowidth{\lengthid}{\mkgbnumlabel{\printfield{labelnumber}}} + %%这里是所做的调整,以下两句通过调整\lengthid来调整缩进 + \setlength{\lengthid}{0pt} + \addtolength{\lengthid}{-\biblabelsep} + \setlength{\lengthlw}{\textwidth} + \addtolength{\lengthlw}{-\lengthid} + \addvspace{\bibitemsep}%恢复\bibitemsep的作用 + \hangindent\lengthid + \leavevmode\mkgbnumlabel{\printfield{labelnumber}}% + \hspace{\biblabelsep} + } + + % ===== 上方定义与「参考文献」部分相同 + \cs_set:Npn \mkbibnamegiven ##1 { + \ifitemannotation{myself}{\textbf{##1}}{##1} + } + + \cs_set:Npn \mkbibnamefamily ##1 { + \ifitemannotation{myself}{\textbf{##1}}{##1} + } + + % Sorting by year, name, type. + \newrefcontext[sorting=ynt] + \chapter{\c__bithesis_label_publications_tl} + #1 + \end{blindPeerReview} + } + {} + + \NewDocumentEnvironment {resume} {+b} + { + \begin{blindPeerReview} + \chapter{\c__bithesis_label_resume_tl} + #1 + \end{blindPeerReview} + } + { + } + + \NewDocumentEnvironment {symbols} {} + { + \bool_if:NTF \l__bithesis_add_symbols_to_toc_bool { + \chapter{\c__bithesis_label_symbols_tl} + } { + \chapter*{\c__bithesis_label_symbols_tl} + } + \zihao{-4} + \begin{itemize}[labelwidth=2.5cm,labelsep=0.5cm,leftmargin=3cm,itemindent=0cm,itemsep=0cm] + \cs_set:Npn \makelabel ##1 {##1\hfil} + } + { + \end{itemize} + } + + +\endinput +%% +%% End of file `bithesis.cls'. diff --git a/Master/texmf-dist/tex/latex/bithesis/bitreport.cls b/Master/texmf-dist/tex/latex/bithesis/bitreport.cls new file mode 100644 index 00000000000..e75fd27ab9f --- /dev/null +++ b/Master/texmf-dist/tex/latex/bithesis/bitreport.cls @@ -0,0 +1,328 @@ +%% +%% This is file `bitreport.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% bithesis.dtx (with options: `cls,report') +%% +%% Copyright (C) 2022 +%% Association of Bit Network Pioneer and any individual authors listed in the documentation. +%% ------------------------------------------------------------------------------ +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3c of this license or (at your option) any later +%% version. This version of this license is in +%% http://www.latex-project.org/lppl/lppl-1-3c.txt +%% and the latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of +%% LaTeX version 2020/11/27 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Feng Kaiyu. +%% ------------------------------------------------------------------------------ +%% +\RequirePackage{expl3,l3keys2e} +\ProvidesExplClass{bitreport} +{2022-09-03}{3.0.0}{BIT Thesis Templates} + + +\int_new:N \g__bithesis_report_type_int + +\clist_const:Nn \c__bithesis_report_type_clist + { common, undergraduate_proposal} + +\seq_new:N \l__bithesis_right_seq +\seq_new:N \l__bithesis_left_seq + +\PassOptionsToPackage{AutoFakeBold,AutoFakeSlant}{xeCJK} + +\keys_define:nn { bitreport } + { + option .meta:nn = {bitreport / option } {#1}, + cover .meta:nn = { bitreport / cover } {#1}, + info .meta:nn = { bitreport / info } {#1}, + misc .meta:nn = { bitreport / misc } {#1} + } + +\keys_define:nn { bitreport / option } + { + type .choice:, + type .value_required:n = true, + type .choices:Vn = + \c__bithesis_report_type_clist + { + \int_set_eq:NN \g__bithesis_report_type_int \l_keys_choice_int + }, + type .initial:n = common, + ctex .tl_set:N = \l__bithesis_options_to_ctex_tl, + } + +\DeclareOption*{ + \PassOptionsToClass{\l__bithesis_options_to_ctex_tl}{ctexart} +} +\ProcessOptions\relax +\LoadClass[zihao=-4]{ctexart} + +\RequirePackage[a4paper,left=3cm,right=2.4cm,top=2.6cm,bottom=2.38cm,includeheadfoot]{geometry} +\RequirePackage{fancyhdr} +\RequirePackage{setspace} +\RequirePackage{caption} +\RequirePackage{booktabs} +\RequirePackage{pdfpages} + +\keys_define:nn { bitreport / cover } + { + imagePath .tl_set:N = \l_bit_coverimagepath_tl, + date .tl_set:N = \l__bithesis_cover_date_tl, + %% cover entry + dilimiter .tl_set:N = \l__bithesis_cover_dilimiter_tl, + labelAlign .tl_set:N = \l__bithesis_cover_label_align_tl, + labelAlign .initial:n = {r}, + valueAlign .tl_set:N = \l__bithesis_cover_value_align_tl, + valueAlign .initial:n = {c}, + labelMaxWidth .dim_set:N = \l__bithesis_cover_label_max_width_dim, + valueMaxWidth .dim_set:N = \l__bithesis_cover_value_max_width_dim, + autoWidth .bool_set:N = \l__bithesis_cover_auto_width_bool, + autoWidth .initial:n = {true}, + underlineThickness .dim_set:N = \l__bithesis_cover_underline_thickness_dim, + underlineThickness .initial:n = {1pt}, + underlineOffset .dim_set:N = \l__bithesis_cover_underline_offset_dim, + underlineOffset .initial:n = { -10pt }, + } + +\keys_define:nn { bitreport / info } + { + title .tl_set:N = \l__bithesis_value_title_tl, + school .tl_set:N = \l__bithesis_value_school_tl, + major .tl_set:N = \l__bithesis_value_major_tl, + class .tl_set:N = \l__bithesis_value_class_tl, + author .tl_set:N = \l__bithesis_value_author_tl, + supervisor .tl_set:N = \l__bithesis_value_supervisor_tl, + externalSupervisor .tl_set:N = \l__bithesis_value_external_supervisor_tl, + studentId .tl_set:N = \l__bithesis_value_student_id_tl, + } + +\keys_define:nn { bitreport / misc } + { + reviewTable .tl_set:N = \l_bit_reviewtable_tl, + } + +\ProcessKeysOptions { bitreport / option } + +\cs_generate_variant:Nn \tl_if_empty:nTF {x} +\cs_generate_variant:Nn \seq_set_split:Nnn {Nnx} + +\cs_new:Npn \__bithesis_dunderline:nnn #1#2#3 { + {\setbox0=\hbox{#3}\ooalign{\copy0\cr\rule[\dimexpr#1-#2\relax]{\wd0}{#2}}} +} + +\cs_new:Npn \__bithesis_render_cover_entry:nn #1#2 { + \makebox[\l__bithesis_cover_label_max_width_dim][\l__bithesis_cover_label_align_tl]{ + \tl_if_blank:VTF #1 {} {#1\l__bithesis_cover_dilimiter_tl} + } + \hspace{1ex} + \__bithesis_dunderline:nnn{\l__bithesis_cover_underline_offset_dim}{\l__bithesis_cover_underline_thickness_dim}{ + \makebox[\l__bithesis_cover_value_max_width_dim][\l__bithesis_cover_value_align_tl]{#2} + }\par +} + +\cs_new:Npn \__bithesis_get_text_width:Nn #1#2 + { + \hbox_set:Nn \l_tmpa_box {#2} + \dim_set:Nn #1 { \box_wd:N \l_tmpa_box } + } +\cs_generate_variant:Nn \__bithesis_get_text_width:Nn { NV } + +\cs_new:Npn \__bithesis_get_max_text_width:NN #1#2 + { + \group_begin: + \seq_set_eq:NN \l__bithesis_tmpa_seq #2 + \dim_zero_new:N \l__bithesis_tmpa_dim + \bool_until_do:nn { \seq_if_empty_p:N \l__bithesis_tmpa_seq } + { + \seq_pop_left:NN \l__bithesis_tmpa_seq \l__bithesis_tmpa_tl + \__bithesis_get_text_width:NV \l__bithesis_tmpa_dim \l__bithesis_tmpa_tl + \dim_gset:Nn #1 { \dim_max:nn {#1} { \l__bithesis_tmpa_dim } } + } + \group_end: + } + +\cs_new:Npn \__bithesis_parse_entry #1 #2 { + \seq_set_split:Nnx \l__bithesis_tmp_right_seq {//} {#2} + \seq_clear:N \l__bithesis_tmp_left_seq + \seq_map_inline:Nn \l__bithesis_tmp_right_seq { + \seq_put_right:Nn \l__bithesis_tmp_left_seq {} + } + \seq_put_left:Nn \l__bithesis_tmp_left_seq {#1} + \seq_pop_right:NN \l__bithesis_tmp_left_seq \g__bithesis_trashcan_tl +} + +\cs_new:Npn \__bithesis_render_cover_entry:n #1 { + \seq_set_from_clist:NN \l__bithesis_input_seq #1 + % parse newline // + \seq_map_inline:Nn \l__bithesis_input_seq { + \__bithesis_parse_entry ##1 + \seq_concat:NNN \l__bithesis_right_seq \l__bithesis_right_seq \l__bithesis_tmp_right_seq + \seq_concat:NNN \l__bithesis_left_seq \l__bithesis_left_seq \l__bithesis_tmp_left_seq + } + + \bool_if:NT \l__bithesis_cover_auto_width_bool { + \__bithesis_get_max_text_width:NN \l__bithesis_cover_label_max_width_dim \l__bithesis_left_seq + \__bithesis_get_max_text_width:NN \l__bithesis_cover_value_max_width_dim \l__bithesis_right_seq + } + + \group_begin: + \bool_until_do:nn { \seq_if_empty_p:N \l__bithesis_left_seq } + { + \seq_pop_left:NN \l__bithesis_left_seq \l__bithesis_tmpa_tl + \seq_pop_left:NN \l__bithesis_right_seq \l__bithesis_tmpb_tl + \tl_if_empty:xTF \l__bithesis_tmpb_tl {} { + \__bithesis_render_cover_entry:nn {\l__bithesis_tmpa_tl} {\l__bithesis_tmpb_tl} + } + } + \group_end: +} + +\DeclareDocumentCommand \BITSetup { m } + { \keys_set:nn { bitreport } { #1 }} +\DeclareDocumentCommand \MakeCover {} + { + \group_begin: + \int_case:nn {\g__bithesis_report_type_int} { + {1} { + \begin{titlepage} + \centering + \vspace{23mm} + \tl_if_empty:NF \l_bit_coverimagepath_tl { + \includegraphics[width=.5\textwidth]{\l_bit_coverimagepath_tl}\\ + } + \vspace{10mm} + \heiti\fontsize{24pt}{24pt}\selectfont{\l__bithesis_value_title_tl}\\ + \vspace{67mm} + \begin{spacing}{2.2} + \songti\zihao{3} + \clist_set:Nn \l__bithesis_input_clist { + {\textbf{学\qquad 院:}} {\l__bithesis_value_school_tl}, + {\textbf{专\qquad 业:}} {\l__bithesis_value_major_tl}, + {\textbf{班\qquad 级:}} {\l__bithesis_value_class_tl}, + {\textbf{学\qquad 号:}} {\l__bithesis_value_student_id_tl}, + {\textbf{姓\qquad 名:}} {\l__bithesis_value_author_tl}, + {\textbf{任课教师:}} {\l__bithesis_value_supervisor_tl}, + } + + \__bithesis_render_cover_entry:n \l__bithesis_input_clist + + \end{spacing} + \vspace*{\fill} + \centering + \songti\fontsize{12pt}{12pt}\selectfont{ + \tl_if_empty:NTF \l__bithesis_cover_date_tl { + \today + } { + \l__bithesis_cover_date_tl + } + } + \end{titlepage} + } + {2} { + % Main code for \MakeCover + \begin{titlepage} + \topskip=0pt + \vspace*{-16mm} + \centering + \hspace{-6mm}\songti\fontsize{22pt}{22pt}\selectfont{北京理工大学}\par + + \vspace{13mm} + + \hspace{-6mm}\heiti\fontsize{24pt}{24pt}\selectfont{本科生毕业设计(论文)开题报告}\par + + \vspace{53mm} + + \begin{spacing}{2.2} + \songti\zihao{3} + \clist_set:Nn \l__bithesis_input_clist { + {\textbf{学\qquad 院:}} {\l__bithesis_value_school_tl}, + {\textbf{专\qquad 业:}} {\l__bithesis_value_major_tl}, + {\textbf{班\qquad 级:}} {\l__bithesis_value_class_tl}, + {\textbf{姓\qquad 名:}} {\l__bithesis_value_author_tl}, + {\textbf{指导教师:}} {\l__bithesis_value_supervisor_tl}, + {\textbf{校外指导教师:}} {\l__bithesis_value_external_supervisor_tl}, + } + + \__bithesis_render_cover_entry:n \l__bithesis_input_clist + + \end{spacing} + + \vspace*{\fill} + + \centering + \hspace{-6mm}\songti\fontsize{12pt}{12pt}\selectfont{\today} + \end{titlepage} + } + } + \group_end: + } + +\DeclareDocumentCommand \MakeReviewTable {} + { + \group_begin: + \begin{titlepage} + \includepdf[pages=-]{\l_bit_reviewtable_tl} + \end{titlepage} + \group_end: + } + +\DeclareCaptionFont{kaiticaption}{\kaishu \normalsize} + +\renewcommand{\thefigure}{\thesection-\arabic{figure}} +\captionsetup[figure]{font=small,labelsep=space,skip=10bp,labelfont=bf,font=kaiticaption} + +\renewcommand{\thetable}{\thesection-\arabic{table}} +\captionsetup[table]{font=small,labelsep=space,skip=10bp,labelfont=bf,font=kaiticaption} + +\ctexset{today=big} + +\setromanfont{Times~New~Roman} + +%% 将中文楷体设置为 SIMKAI.TTF(如果需要) + +\setcounter{tocdepth}{3} +\setcounter{secnumdepth}{3} + +%% +\ctexset{section={ + format={\raggedright \bfseries \songti \zihao{-3}}, + beforeskip = 24bp plus 1ex minus .2ex, + afterskip = 24bp plus .2ex, + fixskip = true, + name = {,.\quad} + } +} +\ctexset{subsection={ + format = {\bfseries \songti \raggedright \zihao{4}}, + beforeskip = 24bp plus 1ex minus .2ex, + afterskip = 24bp plus .2ex, + fixskip = true, + } +} +\fancyhf{} +\int_case:nn {\g__bithesis_report_type_int} { + {1} {\fancyhead[R]{\fontsize{10.5pt}{10.5pt}\selectfont{\l__bithesis_value_title_tl}}} + {2} {\fancyhead[R]{\fontsize{10.5pt}{10.5pt}\selectfont{北京理工大学本科生毕业设计(论文)开题报告}}} +} +\fancyfoot[R]{\fontsize{9pt}{9pt}\selectfont{\thepage}} +\renewcommand{\headrulewidth}{1pt} +\renewcommand{\footrulewidth}{0pt} + +\pagestyle{fancy} +\setcounter{page}{1} + +\cs_set:Npn \baselinestretch {1.53} + +\endinput +%% +%% End of file `bitreport.cls'. |