diff --git a/CHANGELOG.md b/CHANGELOG.md index 33f4c3a1..5a3c70c6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,32 @@ Acronyms: **Bolded text highlights its importance.** +## [3.0.5] - 2022-10-14 + +[dd078d8](dd078d809b98f20c6780237d2fc111a5f5348ada)...[28c14a2](28c14a2991e22a5dbc717bcab9e2d0bfb6f641dd) + +### Bug Fixes + +- Fix typo in newline syntax. ([e016a41](e016a419ccc4db70afadbc3f74d31e024d880722)) + +### Documentation + +- Refine expression, add more links ([e5786c5](e5786c5a722935659389efc0af00808065570be3)) +- Fix readme. ([28c14a2](28c14a2991e22a5dbc717bcab9e2d0bfb6f641dd)) + +### Features + +- Pack manual into overleaf pkg. ([4d8ab18](4d8ab183521f748f8c0049e440fd2592d827783c)) + +### Miscellaneous Tasks + +- Add examples. ([293e5ee](293e5ee677d939926d06887bb9f4b9de0252aeb3)) +- Add build script for examples ([223e99f](223e99f0d96780445b3d01bc4126349c699e15d1)) + +### Refactor + +- Add initial value to setup key-value pairs. ([deadc3b](deadc3b8b228ec0d41071b91193f67a1552a677e)) + ## [3.0.4] - 2022-10-04 [5026f2b](5026f2b1c4c52af20e6c7427247bd834c7350ae0)...[a3a7b7d](a3a7b7d0d46a580bff4a5bc8f007f6aadb0ee934) diff --git a/Makefile b/Makefile index ce538f0d..614a3734 100644 --- a/Makefile +++ b/Makefile @@ -9,6 +9,7 @@ LATEXMK = latexmk SCAFFOLDDIR = ./templates TESTDIR = ./tests +EXAMPLEDIR = ./examples # make deletion work on Windows ifdef SystemRoot @@ -65,12 +66,14 @@ copy: cls cp bitbeamer.cls $(SCAFFOLDDIR)/presentation-slide # Generate scaffolds for overleaf -overleaf: FORCE_MAKE +overleaf: doc FORCE_MAKE git clean -fdx ./templates/ rm -rf overleaf make copy mkdir overleaf - ls templates | xargs -I {} bash -c "cp -r ./templates/{} overleaf && zip -r ./overleaf/{}.zip ./overleaf/{}" + ls templates | \ + xargs -I {} bash -c \ + "cp -r ./templates/{} overleaf && cp $(PACKAGE).pdf ./overleaf/{} && zip -r ./overleaf/{}.zip ./overleaf/{}" dev: ls bithesis.dtx | entr -s 'yes y | make doc && make copy' @@ -84,3 +87,7 @@ pkg: doc cp bithesis.{ins,dtx,pdf} ./README*.md ./contributing*.md ./bithesis mv ./bithesis/README-bithesis.md ./bithesis/README.md zip -r bithesis.zip bithesis + +examples: cls + cp bithesis.cls $(EXAMPLEDIR)/cover/ + cd $(EXAMPLEDIR)/cover && latexmk && cd - diff --git a/README.md b/README.md index bc6d8eae..d4f50ac7 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ 📖 [_非官方本科生毕业设计论文/研究生学位论文 LaTeX 模板(以及更多)_](https://bithesis.bitnp.net) -![GitHub all releases](https://img.shields.io/github/downloads/BITNP/BIThesis/total) +[![GitHub all releases](https://img.shields.io/github/downloads/BITNP/BIThesis/total)](https://tooomm.github.io/github-release-stats/?username=BITNP&repository=BIThesis) [![English version](./assets/english.svg)](./README-bithesis.md) [![Latexmk](https://badgen.net/badge/compiler/latexmk/blue)](https://mg.readthedocs.io/latexmk.html) [![License](https://badgen.net/github/license/BITNP/BIThesis?color=008080&labelColor=2b2b2b)](./LICENSE) @@ -15,7 +15,7 @@ **有关如何安装 $LaTeX$、编译 BIThesis 模板的全面指南,请参阅 BIThesis 的 Wiki。👇** -[![BIThesis Wiki](https://img.shields.io/badge/BIThesis-Wiki-009944?logo=wikipedia&labelColor=2b2b2b&style=for-the-badge)](https://bithesis.bitnp.net/) +[![BIThesis Wiki](https://img.shields.io/badge/BIThesis-Wiki-009944?logo=wikipedia&labelColor=2b2b2b&style=for-the-badge)][wiki] **有关 BIThesis 提供的配置选项和命令,请参阅 BIThesis 的模板使用手册。👇** @@ -37,9 +37,9 @@ BIThesis 是针对北京理工大学本科生毕业毕业论文、研究生学 > 本项目获得了 [北京理工大学教务部](http://jwc.bit.edu.cn/)、[北京理工大学计算机学院](http://cs.bit.edu.cn/) 的认可、背书与大力支持。详见:[致谢 - 官方赞助](https://bithesis.bitnp.net/Guide/5-Acknowledgements/Acknowledgements.html#%E5%AE%98%E6%96%B9%E8%B5%9E%E5%8A%A9-official-sponsors)。 -> **研究生模板暂未与官方进行沟通。但是我们的代码从[BIT-thesis](https://github.com/BIT-thesis/LaTeX-template)迁移而来,而它曾得到了研究生院和北京理工大学学生事务中心的支持。** +> **研究生模板暂未完成官方的沟通。但是我们的代码从[BIT-thesis](https://github.com/BIT-thesis/LaTeX-template)迁移而来,而它曾得到了研究生院和北京理工大学学生事务中心的支持。** -> __我们将在 2022-2023 学年与官方进行研究生模板的沟通。__ +> [__(进度详情)__](https://github.com/BITNP/BIThesis/issues/163)

特性

@@ -84,7 +84,7 @@ _订阅更新,询问问题,提出需求……请加入北理 BIThesis 官方 ## 开发者指南 -**以下内容供开发者使用,如果你是普通用户的话,请参考我们的[在线文档](https://bithesis.bitnp.net) 。** +**以下内容供开发者使用,如果你是普通用户的话,请参考我们的[在线文档][wiki] 。** 详见[开发者指南](./DEVELOPMENT.md) @@ -129,6 +129,5 @@ _订阅更新,询问问题,提出需求……请加入北理 BIThesis 官方 Maintained with help from [contributors](https://github.com/BITNP/BIThesis/graphs/contributors). ---- - [releases]: https://github.com/BITNP/BIThesis/releases/latest +[wiki]: https://bithesis.bitnp.net diff --git a/bithesis.dtx b/bithesis.dtx index 215deaba..6f506183 100644 --- a/bithesis.dtx +++ b/bithesis.dtx @@ -21,7 +21,7 @@ %\ProvidesExplClass{bithesis} %\ProvidesExplClass{bitreport} %\ProvidesExplClass{bitbeamer} -%{2022-09-30}{3.0.4}{BIT Thesis Templates} +%{2022-10-17}{3.0.5}{BIT Thesis Templates} % %\NeedsTeXFormat{LaTeX2e}[2020/10/01] %\ProvidesClass{bitbook} @@ -30,7 +30,7 @@ % [2022/05/09 v2.1.1 BIT Thesis Templates] % %<*driver> -\ProvidesFile{bithesis.dtx}[2022/09/30 3.0.4 BIT Thesis Templates] +\ProvidesFile{bithesis.dtx}[2022/10/17 3.0.5 BIT Thesis Templates] \documentclass[letterpaper]{l3doc} \usepackage{dtx-style} @@ -653,6 +653,8 @@ % % 该选项包含许多子项目,用于录入论文信息。具体内容见下。 % 一般以「En」结尾的项目表示对应的英文字段。 +% +% 这其中的很多字段将用于封面信息的渲染,此时,可以使用 |\\| 来换行,以防止单行内容过长。 % \end{function} % % \begin{function}{info/title,info/titleEn} @@ -978,7 +980,7 @@ % 绘制封面。 % % 在默认配置下,封面中的下划线会自动计算最大宽度。 -% 此时,如果用户需要换行,可以通过「//」控制换行。 +% 此时,如果用户需要换行,可以通过「\\」控制换行。 % % 当关闭自动计算下划线宽度后, % 可以通过 @@ -1910,36 +1912,60 @@ \keys_define:nn { bithesis / info } { title .tl_set:N = \l_@@_value_title_tl, + title .initial:n = {形状记忆聚氨酯的合成及其在织物中的应用(示例)}, titleEn .tl_set:N = \l_@@_value_title_en_tl, + titleEn .initial:n = {Synthesis~and~Application~on~Texttiles~of~the~Shape~Memory~Polyurethane~(example)}, + % 因为是覆盖选项,所以不需要设置初始值。 verticalTitle .tl_set:N = \l_@@_value_vertical_title_tl, school .tl_set:N = \l_@@_value_school_tl, + school .initial:n = {网络空间安全学院(示例)}, major .tl_set:N = \l_@@_value_major_tl, + major .initial:n = {网络空间安全(示例)}, author .tl_set:N = \l_@@_value_author_tl, + author .initial:n = {张三(示例)}, studentId .tl_set:N = \l_@@_value_student_id_tl, + studentId .initial:n = {3120211xxx(示例)}, supervisor .tl_set:N = \l_@@_value_supervisor_tl, + supervisor .initial:n = {李四教授(示例)}, + % 因为默认不显示,所以不需要设置初始值。 externalSupervisor .tl_set:N = \l_@@_value_external_supervisor_tl, keywords .tl_set:N = \l_@@_value_keywords_tl, + keywords .initial:n = {聚氨酯,形状记忆,织物(示例)}, keywordsEn .tl_set:N = \l_@@_value_keywords_en_tl, + keywordsEn .initial:n = {Polyurethane,Shape Memory,Textiles (example)}, translationTitle .tl_set:N = \l_@@_value_trans_title_tl, translationOriginTitle .tl_set:N = \l_@@_value_trans_origin_title_tl, % 中国分类号,研究生学位论文使用 classification .tl_set:N = \l_@@_value_classification_tl, + classification .initial:n = {TQ~028.1(示例)}, % UDC 分类号,研究生学位论文使用 UDC .tl_set:N = \l_@@_value_udc_tl, + UDC .initial:n = {540(示例)}, chairman .tl_set:N = \l_@@_value_chairman_tl, + chairman .initial:n = {王五教授(示例)}, degree .tl_set:N = \l_@@_value_degree_tl, + degree .initial:n = {工学博士(示例)}, degreeEn .tl_set:N = \l_@@_value_degree_en_tl, + degreeEn .initial:n = {Doctor~of~Engineering~(example)}, institute .tl_set:N = \l_@@_value_institute_tl, institute .initial:n = {\c_@@_label_university_tl}, defenseDate .tl_set:N = \l_@@_value_defense_date_tl, + defenseDate .initial:n = {2019年6月(示例)}, authorEn .tl_set:N = \l_@@_value_author_en_tl, + authorEn .initial:n = {San~Zhang~(example)}, schoolEn .tl_set:N = \l_@@_value_school_en_tl, + schoolEn .initial:n = {School~of~Network~Space~Security\\(example)}, supervisorEn .tl_set:N = \l_@@_value_supervisor_en_tl, + supervisorEn .initial:n = {Prof.~Si~Li~(example)}, chairmanEn .tl_set:N = \l_@@_value_chairman_en_tl, + chairmanEn .initial:n = {Prof.~Wu~Wang~(example)}, majorEn .tl_set:N = \l_@@_value_major_en_tl, + majorEn .initial:n = {Cyberspace~Security~and~Technology\\(example)}, instituteEn .tl_set:N = \l_@@_value_institute_en_tl, instituteEn .initial:n = {\c_@@_label_university_en_tl}, defenseDateEn .tl_set:N = \l_@@_value_defense_date_en_tl, + defenseDateEn .initial:n = {June,~2019~(example)}, + % 因为默认不显示,所以不需要设置初始值。 classifiedLevel .tl_set:N = \l_@@_value_classified_level_tl, } % \end{macrocode} @@ -2585,11 +2611,11 @@ % \item \#1: |tl| 为封面信息条目的名称。 % \item \#2: |tl| 为封面信息条目的内容。 % \end{itemize} -% |//| 会被视为换行符,从而实现信息条目换行的效果。 +% |\\| 会被视为换行符,从而实现信息条目换行的效果。 % % \begin{macrocode} \cs_new:Npn \@@_parse_entry #1 #2 { - \seq_set_split:Nnx \l_@@_tmp_right_seq {//} {#2} + \seq_set_split:Nnx \l_@@_tmp_right_seq {\\} {#2} \seq_clear:N \l_@@_tmp_left_seq \seq_map_inline:Nn \l_@@_tmp_right_seq { \seq_put_right:Nn \l_@@_tmp_left_seq {} @@ -2611,9 +2637,9 @@ \seq_set_from_clist:NN \l_@@_input_seq #1 \seq_map_inline:Nn \l_@@_input_seq { % 然后对于每一对 label 和 value,首先查找 - % value 中是否含有 // 字符,如果有,则将其分割成多个 + % value 中是否含有 \\ 字符,如果有,则将其分割成多个 % label - value 对。 - % 比如 {label_1} {value // 1} 会被转换成 + % 比如 {label_1} {value \\ 1} 会被转换成 % { {label_1} {value}, {} {1} } \@@_parse_entry ##1 % 然后将这些 label - value 对添加到 \l_@@_right_seq @@ -3974,11 +4000,11 @@ % \item \#1: |tl| 为封面信息条目的名称。 % \item \#2: |tl| 为封面信息条目的内容。 % \end{itemize} -% |//| 会被视为换行符,从而实现信息条目换行的效果。 +% |\\| 会被视为换行符,从而实现信息条目换行的效果。 % % \begin{macrocode} \cs_new:Npn \@@_parse_entry #1 #2 { - \seq_set_split:Nnx \l_@@_tmp_right_seq {//} {#2} + \seq_set_split:Nnx \l_@@_tmp_right_seq {\\} {#2} \seq_clear:N \l_@@_tmp_left_seq \seq_map_inline:Nn \l_@@_tmp_right_seq { \seq_put_right:Nn \l_@@_tmp_left_seq {} @@ -4000,9 +4026,9 @@ \seq_set_from_clist:NN \l_@@_input_seq #1 \seq_map_inline:Nn \l_@@_input_seq { % 然后对于每一对 label 和 value,首先查找 - % value 中是否含有 // 字符,如果有,则将其分割成多个 + % value 中是否含有 \\ 字符,如果有,则将其分割成多个 % label - value 对。 - % 比如 {label_1} {value // 1} 会被转换成 + % 比如 {label_1} {value \\ 1} 会被转换成 % { {label_1} {value}, {} {1} } \@@_parse_entry ##1 % 然后将这些 label - value 对添加到 \l_@@_right_seq diff --git a/examples/cover/latexmkrc b/examples/cover/latexmkrc new file mode 100644 index 00000000..c37510fc --- /dev/null +++ b/examples/cover/latexmkrc @@ -0,0 +1,6 @@ +$pdf_mode = 5; +$xelatex = "xelatex -synctex=1 -no-pdf --shell-escape %O %S"; +$recorder = 1; +$bibtex_use = 2; +$clean_ext = "synctex.gz acn acr alg aux bbl bcf blg brf fdb_latexmk glg glo gls idx ilg ind ist lof log lot out run.xml toc dvi xdv"; + diff --git a/examples/cover/main.tex b/examples/cover/main.tex new file mode 100644 index 00000000..6444cdd2 --- /dev/null +++ b/examples/cover/main.tex @@ -0,0 +1,9 @@ + \documentclass[type=master]{bithesis} + \BITSetup{ + info = { + author = FKY, + } + } + \begin{document} + \MakeTitle + \end{document} diff --git a/examples/readme.md b/examples/readme.md new file mode 100644 index 00000000..e69de29b diff --git a/templates/graduate-thesis/bithesis.cls b/templates/graduate-thesis/bithesis.cls index 3028bcb9..d8903cce 100644 --- a/templates/graduate-thesis/bithesis.cls +++ b/templates/graduate-thesis/bithesis.cls @@ -726,7 +726,7 @@ \group_end: } \cs_new:Npn \__bithesis_parse_entry #1 #2 { - \seq_set_split:Nnx \l__bithesis_tmp_right_seq {//} {#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 {} @@ -742,9 +742,9 @@ \seq_set_from_clist:NN \l__bithesis_input_seq #1 \seq_map_inline:Nn \l__bithesis_input_seq { % 然后对于每一对 label 和 value,首先查找 - % value 中是否含有 // 字符,如果有,则将其分割成多个 + % value 中是否含有 \\ 字符,如果有,则将其分割成多个 % label - value 对。 - % 比如 {label_1} {value // 1} 会被转换成 + % 比如 {label_1} {value \\ 1} 会被转换成 % { {label_1} {value}, {} {1} } \__bithesis_parse_entry ##1 % 然后将这些 label - value 对添加到 \l__bithesis_right_seq diff --git a/templates/lab-report/bitreport.cls b/templates/lab-report/bitreport.cls index 26c7704c..13656f6d 100644 --- a/templates/lab-report/bitreport.cls +++ b/templates/lab-report/bitreport.cls @@ -133,7 +133,7 @@ \group_end: } \cs_new:Npn \__bithesis_parse_entry #1 #2 { - \seq_set_split:Nnx \l__bithesis_tmp_right_seq {//} {#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 {} @@ -149,9 +149,9 @@ \seq_set_from_clist:NN \l__bithesis_input_seq #1 \seq_map_inline:Nn \l__bithesis_input_seq { % 然后对于每一对 label 和 value,首先查找 - % value 中是否含有 // 字符,如果有,则将其分割成多个 + % value 中是否含有 \\ 字符,如果有,则将其分割成多个 % label - value 对。 - % 比如 {label_1} {value // 1} 会被转换成 + % 比如 {label_1} {value \\ 1} 会被转换成 % { {label_1} {value}, {} {1} } \__bithesis_parse_entry ##1 % 然后将这些 label - value 对添加到 \l__bithesis_right_seq diff --git a/templates/paper-translation/bithesis.cls b/templates/paper-translation/bithesis.cls index 3028bcb9..d8903cce 100644 --- a/templates/paper-translation/bithesis.cls +++ b/templates/paper-translation/bithesis.cls @@ -726,7 +726,7 @@ \group_end: } \cs_new:Npn \__bithesis_parse_entry #1 #2 { - \seq_set_split:Nnx \l__bithesis_tmp_right_seq {//} {#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 {} @@ -742,9 +742,9 @@ \seq_set_from_clist:NN \l__bithesis_input_seq #1 \seq_map_inline:Nn \l__bithesis_input_seq { % 然后对于每一对 label 和 value,首先查找 - % value 中是否含有 // 字符,如果有,则将其分割成多个 + % value 中是否含有 \\ 字符,如果有,则将其分割成多个 % label - value 对。 - % 比如 {label_1} {value // 1} 会被转换成 + % 比如 {label_1} {value \\ 1} 会被转换成 % { {label_1} {value}, {} {1} } \__bithesis_parse_entry ##1 % 然后将这些 label - value 对添加到 \l__bithesis_right_seq diff --git a/templates/undergraduate-proposal-report/bitreport.cls b/templates/undergraduate-proposal-report/bitreport.cls index 26c7704c..13656f6d 100644 --- a/templates/undergraduate-proposal-report/bitreport.cls +++ b/templates/undergraduate-proposal-report/bitreport.cls @@ -133,7 +133,7 @@ \group_end: } \cs_new:Npn \__bithesis_parse_entry #1 #2 { - \seq_set_split:Nnx \l__bithesis_tmp_right_seq {//} {#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 {} @@ -149,9 +149,9 @@ \seq_set_from_clist:NN \l__bithesis_input_seq #1 \seq_map_inline:Nn \l__bithesis_input_seq { % 然后对于每一对 label 和 value,首先查找 - % value 中是否含有 // 字符,如果有,则将其分割成多个 + % value 中是否含有 \\ 字符,如果有,则将其分割成多个 % label - value 对。 - % 比如 {label_1} {value // 1} 会被转换成 + % 比如 {label_1} {value \\ 1} 会被转换成 % { {label_1} {value}, {} {1} } \__bithesis_parse_entry ##1 % 然后将这些 label - value 对添加到 \l__bithesis_right_seq diff --git a/templates/undergraduate-thesis-en/bithesis.cls b/templates/undergraduate-thesis-en/bithesis.cls index 3028bcb9..d8903cce 100644 --- a/templates/undergraduate-thesis-en/bithesis.cls +++ b/templates/undergraduate-thesis-en/bithesis.cls @@ -726,7 +726,7 @@ \group_end: } \cs_new:Npn \__bithesis_parse_entry #1 #2 { - \seq_set_split:Nnx \l__bithesis_tmp_right_seq {//} {#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 {} @@ -742,9 +742,9 @@ \seq_set_from_clist:NN \l__bithesis_input_seq #1 \seq_map_inline:Nn \l__bithesis_input_seq { % 然后对于每一对 label 和 value,首先查找 - % value 中是否含有 // 字符,如果有,则将其分割成多个 + % value 中是否含有 \\ 字符,如果有,则将其分割成多个 % label - value 对。 - % 比如 {label_1} {value // 1} 会被转换成 + % 比如 {label_1} {value \\ 1} 会被转换成 % { {label_1} {value}, {} {1} } \__bithesis_parse_entry ##1 % 然后将这些 label - value 对添加到 \l__bithesis_right_seq diff --git a/templates/undergraduate-thesis/bithesis.cls b/templates/undergraduate-thesis/bithesis.cls index 3028bcb9..d8903cce 100644 --- a/templates/undergraduate-thesis/bithesis.cls +++ b/templates/undergraduate-thesis/bithesis.cls @@ -726,7 +726,7 @@ \group_end: } \cs_new:Npn \__bithesis_parse_entry #1 #2 { - \seq_set_split:Nnx \l__bithesis_tmp_right_seq {//} {#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 {} @@ -742,9 +742,9 @@ \seq_set_from_clist:NN \l__bithesis_input_seq #1 \seq_map_inline:Nn \l__bithesis_input_seq { % 然后对于每一对 label 和 value,首先查找 - % value 中是否含有 // 字符,如果有,则将其分割成多个 + % value 中是否含有 \\ 字符,如果有,则将其分割成多个 % label - value 对。 - % 比如 {label_1} {value // 1} 会被转换成 + % 比如 {label_1} {value \\ 1} 会被转换成 % { {label_1} {value}, {} {1} } \__bithesis_parse_entry ##1 % 然后将这些 label - value 对添加到 \l__bithesis_right_seq