diff options
author | Karl Berry <karl@freefriends.org> | 2023-05-27 20:22:52 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2023-05-27 20:22:52 +0000 |
commit | f5b0a7d3bc3455052dc96c5f181319310910e593 (patch) | |
tree | 2eacc0d3d0b93e13604041ab6e454a32710bbef5 /Master/texmf-dist/tex/latex | |
parent | 614c8944202d7144ad33bf33a9e8157c6c7b2e91 (diff) |
fduthesis (27may23)
git-svn-id: svn://tug.org/texlive/trunk@67231 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r-- | Master/texmf-dist/tex/latex/fduthesis/fdudoc.cls | 2 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/fduthesis/fdulogo.sty | 2 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/fduthesis/fduthesis-en.cls | 146 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/fduthesis/fduthesis.cls | 149 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/fduthesis/fduthesis.def | 26 |
5 files changed, 155 insertions, 170 deletions
diff --git a/Master/texmf-dist/tex/latex/fduthesis/fdudoc.cls b/Master/texmf-dist/tex/latex/fduthesis/fdudoc.cls index ebf33741df3..81dfe6ff132 100644 --- a/Master/texmf-dist/tex/latex/fduthesis/fdudoc.cls +++ b/Master/texmf-dist/tex/latex/fduthesis/fdudoc.cls @@ -44,7 +44,7 @@ %% and README.md. %% \NeedsTeXFormat{LaTeX2e}[2020/10/01] -\GetIdInfo $Id: fduthesis.dtx 0.9 2023-02-26 12:00:00Z Xiangdong Zeng <xdzeng96@gmail.com> $ +\GetIdInfo $Id: fduthesis.dtx 0.9a 2023-05-27 12:00:00Z Xiangdong Zeng <xdzeng96@gmail.com> $ {Documentation class for fduthesis} \ProvidesExplClass{fdudoc} {\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} diff --git a/Master/texmf-dist/tex/latex/fduthesis/fdulogo.sty b/Master/texmf-dist/tex/latex/fduthesis/fdulogo.sty index 2ebf035c7ec..6735298c812 100644 --- a/Master/texmf-dist/tex/latex/fduthesis/fdulogo.sty +++ b/Master/texmf-dist/tex/latex/fduthesis/fdulogo.sty @@ -44,7 +44,7 @@ %% and README.md. %% \NeedsTeXFormat{LaTeX2e}[2020/10/01] -\GetIdInfo $Id: fduthesis.dtx 0.9 2023-02-26 12:00:00Z Xiangdong Zeng <xdzeng96@gmail.com> $ +\GetIdInfo $Id: fduthesis.dtx 0.9a 2023-05-27 12:00:00Z Xiangdong Zeng <xdzeng96@gmail.com> $ {Fudan University's Visual Identity} \ProvidesExplPackage{fdulogo} {\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} diff --git a/Master/texmf-dist/tex/latex/fduthesis/fduthesis-en.cls b/Master/texmf-dist/tex/latex/fduthesis/fduthesis-en.cls index a3b8092b31e..df233682e82 100644 --- a/Master/texmf-dist/tex/latex/fduthesis/fduthesis-en.cls +++ b/Master/texmf-dist/tex/latex/fduthesis/fduthesis-en.cls @@ -43,7 +43,7 @@ %% and README.md. %% \NeedsTeXFormat{LaTeX2e}[2020/10/01] -\GetIdInfo $Id: fduthesis.dtx 0.9 2023-02-26 12:00:00Z Xiangdong Zeng <xdzeng96@gmail.com> $ +\GetIdInfo $Id: fduthesis.dtx 0.9a 2023-05-27 12:00:00Z Xiangdong Zeng <xdzeng96@gmail.com> $ {Thesis template for Fudan University (English version)} \ProvidesExplClass{\ExplFileName-en} {\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -80,7 +80,7 @@ \skip_new:N \l__fdu_tmpa_skip \tl_new:N \l__fdu_tmpa_tl \tl_new:N \l__fdu_tmpb_tl -\int_new:N \g__fdu_thesis_type_int +\tl_new:N \g__fdu_thesis_type_tl \clist_new:N \g__fdu_to_ctexbook_clist \clist_new:N \g__fdu_to_hyperref_clist \bool_new:N \g__fdu_twoside_bool @@ -90,6 +90,7 @@ \cs_generate_variant:Nn \file_input:n { V } \cs_generate_variant:Nn \int_to_arabic:n { v } \cs_generate_variant:Nn \keys_define:nn { nx } +\cs_generate_variant:Nn \prop_item:Nn { No } \cs_generate_variant:Nn \regex_replace_all:nnN { nnc } \prg_generate_conditional_variant:Nnn \tl_if_eq:nn { Vn } { T, TF } \cs_new:Npn \__fdu_quad: { \skip_horizontal:n { 1 em } } @@ -148,11 +149,10 @@ \cs_new:Npn \__fdu_info:nx { \msg_info:nnx { fduthesis } } \keys_define:nn { fdu / option } { - type .choice:, - type .value_required:n = true, type .choices:nn = { doctor, master, bachelor } - { \int_set_eq:NN \g__fdu_thesis_type_int \l_keys_choice_int }, + { \tl_set_eq:NN \g__fdu_thesis_type_tl \l_keys_choice_tl }, + type .value_required:n = true, type .initial:n = bachelor, oneside .value_forbidden:n = true, twoside .value_forbidden:n = true, @@ -255,7 +255,8 @@ { font .choices:nn = { garamond, libertinus, lm, palatino, times, times*, none } - { \tl_set_eq:NN \g__fdu_fontset_tl \l_keys_choice_tl } + { \tl_set_eq:NN \g__fdu_fontset_tl \l_keys_choice_tl }, + font .value_required:n = true, } \cs_new_protected:Npn \__fdu_setmainfont:nn #1#2 { \__fontspec_main_setmainfont:nn {#2} {#1} } @@ -820,16 +821,8 @@ \cs_generate_variant:Nn \fdu_thm_set_qed:n { V } \cs_generate_variant:Nn \fdu_thm_set_header_font:n { V } \cs_generate_variant:Nn \fdu_thm_set_body_font:n { V } -\captionsetup [ figure ] - { - font = small, - labelsep = quad - } -\captionsetup [ table ] - { - font = { small, sf }, - labelsep = quad - } +\captionsetup [ figure ] { font = small, labelsep = quad } +\captionsetup [ table ] { font = { small, sf }, labelsep = quad } \cs_set:Npn \thefigure { \thechapter - \__fdu_arabic:n { figure } } \cs_set:Npn \thetable @@ -846,7 +839,7 @@ { title, author, supervisor, department, major } { \tl_new:c { l__fdu_info_ #1 _en_tl } } \clist_new:N \l__fdu_info_keywords_en_clist -\int_new:N \l__fdu_info_degree_type_int +\tl_new:N \l__fdu_info_degree_type_tl \tl_new:N \l__fdu_info_title_sanitized_tl \tl_new:N \l__fdu_info_title_en_sanitized_tl \cs_new_protected:Npn \__fdu_set_title:nn #1#2 @@ -865,7 +858,8 @@ { degree .choices:nn = { academic, professional } - { \int_set_eq:NN \l__fdu_info_degree_type_int \l_keys_choice_int }, + { \tl_set_eq:NN \l__fdu_info_degree_type_tl \l_keys_choice_tl }, + degree .value_required:n = true, title .code:n = { \__fdu_set_title:nn { title } {#1} }, title* .code:n = { \__fdu_set_title:nn { title_en } {#1} }, date .tl_set:N = \l__fdu_info_date_tl, @@ -889,24 +883,12 @@ logo .tl_set:N = \l__fdu_cover_logo_tl, logo-size .clist_set:N = \l__fdu_cover_logo_size_clist } -\bool_new:N \l__fdu_secret_bool \tl_new:N \l__fdu_info_secret_level_tl \keys_define:nn { fdu / info } { secret-level .choices:nn = { none, i, ii, iii } - { - \int_compare:nTF { \l_keys_choice_int >= 2 } - { - \bool_set_true:N \l__fdu_secret_bool - \tl_set:Nn \l__fdu_info_secret_level_tl - { - \clist_item:Nn \c__fdu_secret_clist - { \l_keys_choice_int - 1 } - } - } - { \bool_set_false:N \l__fdu_secret_bool } - }, + { \tl_set_eq:NN \l__fdu_info_secret_level_tl \l_keys_choice_tl }, secret-level .value_required:n = true, secret-year .tl_set:N = \l__fdu_info_secret_year_tl } @@ -940,29 +922,38 @@ { \linespread {#1} \selectfont } \cs_new_protected:Npn \__fdu_cover_id: { - \__fdu_fixed_width_box:nn { 120 pt } - { - \bool_if:NT \l__fdu_secret_bool - { - \group_begin: - \sffamily - \__fdu_cover_id_aux:n { secret_level } - \c__fdu_name_secret_star_tl - \l__fdu_info_secret_year_tl - \group_end: - \par - } - \__fdu_cover_id_aux:n { school_id } \par - \__fdu_cover_id_aux:n { student_id } - } - \hbox_to_wd:nn { -24 pt } { } + \tl_if_eq:NnTF \l__fdu_info_secret_level_tl { none } + { \__fdu_cover_id_tabular:n { } } + { \__fdu_cover_id_tabular:n { \__fdu_cover_secret: \\ } } + } +\cs_new_protected:Npn \__fdu_cover_id_tabular:n #1 + { + \exp_args:Nnx \begin{tabular} { \c__fdu_cover_id_align_tl } + #1 + \__fdu_cover_id_aux:n { school_id } \\ + \__fdu_cover_id_aux:n { student_id } + \end{tabular} } \cs_new:Npn \__fdu_cover_id_aux:n #1 { - \tl_use:c { c__fdu_name_ #1 _tl } - \c__fdu_fwid_colon_tl + \tl_use:c { c__fdu_name_ #1 _tl } & \tl_use:c { l__fdu_info_ #1 _tl } } +\tl_const:Nn \c__fdu_cover_id_align_tl + { l @ { \c__fdu_fwid_colon_tl } l @ { } } +\cs_new:Npn \__fdu_cover_secret: + { + \multicolumn { 2 } { l } + { + \sffamily + \c__fdu_name_secret_level_tl + \c__fdu_fwid_colon_tl + \prop_item:No \c__fdu_secret_prop + { \l__fdu_info_secret_level_tl } + \c__fdu_name_secret_star_tl + \l__fdu_info_secret_year_tl + } + } \cs_new_protected:Npn \__fdu_cover_logo: { \clist_pop:NN \l__fdu_cover_logo_size_clist \l__fdu_tmpa_tl @@ -980,38 +971,25 @@ } \cs_new_protected:Npn \__fdu_cover_type: { - \tl_set:Nx \l__fdu_tmpa_tl - { - \clist_item:Nn \c__fdu_thesis_type_clist - { \g__fdu_thesis_type_int } - } + \prop_get:NVN \c__fdu_thesis_type_prop + \g__fdu_thesis_type_tl \l__fdu_tmpa_tl \__fdu_spread_box:no { 0.45 \textwidth } { \l__fdu_tmpa_tl } } \cs_new_protected:Npn \__fdu_cover_degree: { - \int_compare:nT { \g__fdu_thesis_type_int != 3 } + \tl_if_eq:NnF \g__fdu_thesis_type_tl { bachelor } { \c__fdu_fwid_left_paren_tl - \clist_item:Nn \c__fdu_degree_type_clist - { \l__fdu_info_degree_type_int } + \prop_item:No \c__fdu_degree_type_prop + { \l__fdu_info_degree_type_tl } \c__fdu_fwid_right_paren_tl } } -\cs_new_protected:Npn \__fdu_cover_info_left:n #1 - { - \int_case:nn { \l__fdu_info_degree_type_int } - { - { 1 } { \__fdu_spread_box:nn { 6 em } {#1} } - { 2 } { \__fdu_spread_box:nn { 9 em } {#1} } - } - } -\tl_const:Nn \c__fdu_cover_info_align_tl - { c @ { \c__fdu_fwid_colon_tl } c } \cs_new_protected:Npn \__fdu_cover_info: { \group_begin: \zihao { 4 } - \int_compare:nNnT { \l__fdu_info_degree_type_int } = { 2 } + \tl_if_eq:NnT \l__fdu_info_degree_type_tl { professional } { \tl_set_eq:NN \c__fdu_name_major_tl \c__fdu_name_major_professional_tl @@ -1027,11 +1005,19 @@ \tl_use:c { l__fdu_info_ ##1 _tl } } } - \begin{tabular} { \c__fdu_cover_info_align_tl } + \exp_args:Nnx \begin{tabular} { \c__fdu_cover_info_align_tl } \clist_use:Nn \l__fdu_tmpa_clist { \\ [ 1 ex ] } \end{tabular} \group_end: } +\tl_const:Nn \c__fdu_cover_info_align_tl + { c @ { \c__fdu_fwid_colon_tl } c } +\cs_new_protected:Npn \__fdu_cover_info_left:n #1 + { + \tl_if_eq:NnTF \l__fdu_info_degree_type_tl { professional } + { \__fdu_spread_box:nn { 9 em } {#1} } + { \__fdu_spread_box:nn { 6 em } {#1} } + } \cs_new_protected:Npn \__fdu_cover_signature:N #1 { \clist_map_inline:Nn #1 @@ -1402,7 +1388,7 @@ { \__fdu_chapter:V \c__fdu_name_acknowledgements_en_tl } -\bool_new:N \l__fdu_bibtex_bool +\tl_new:N \l__fdu_bib_backend_tl \tl_new:N \l__fdu_bib_style_tl \tl_new:N \l__fdu_bib_gb_style_tl \tl_new:N \l__fdu_cite_style_tl @@ -1412,9 +1398,13 @@ bib-backend .choice:, bib-backend .value_required:n = true, bib-backend / bibtex .code:n = - { \bool_set_true:N \l__fdu_bibtex_bool }, + { \tl_set:Nn \l__fdu_bib_backend_tl { bibtex } }, bib-backend / biblatex .code:n = - { \bool_set_false:N \l__fdu_bibtex_bool }, + { + \tl_set:Nn \l__fdu_bib_backend_tl { biblatex } + \NewDocumentCommand \addbibresource { m } + { \clist_gput_right:Nn \l__fdu_bib_resource_clist {#1} } + }, bib-style .choice:, bib-style .value_required:n = true, bib-style / numerical .code:n = @@ -1437,7 +1427,7 @@ } \ctex_at_end_preamble:n { - \bool_if:NT \l__fdu_bibtex_bool + \tl_if_eq:NnT \l__fdu_bib_backend_tl { bibtex } { \tl_if_empty:NTF \l__fdu_bib_style_tl { @@ -1455,7 +1445,7 @@ } \__fdu_gadd_ltxhook:nn { env/document/begin } { - \bool_if:NF \l__fdu_bibtex_bool + \tl_if_eq:NnT \l__fdu_bib_backend_tl { biblatex } { \__fdu_biblatex_pre_setup: \RequirePackage { biblatex } @@ -1488,11 +1478,6 @@ } \__fdu_msg_new:nn { invalid-option-in-bibtex } { Option(s)~ "#1"~ are~ invalid~ in~ BibTeX. } -\bool_if:NF \l__fdu_bibtex_bool - { - \NewDocumentCommand \addbibresource { m } - { \clist_gput_right:Nn \l__fdu_bib_resource_clist {#1} } - } \cs_new_protected:Npn \__fdu_biblatex_pre_setup: { \cs_undefine:N \addbibresource @@ -1619,7 +1604,8 @@ } \exp_args:NV \hypersetup \g__fdu_to_hyperref_clist \fdu_allow_url_break: - \bool_if:NF \l__fdu_bibtex_bool { \BiblatexManualHyperrefOn } + \tl_if_eq:NnT \l__fdu_bib_backend_tl { biblatex } + { \BiblatexManualHyperrefOn } } \ctex_at_end_package:nn { hyperref } { diff --git a/Master/texmf-dist/tex/latex/fduthesis/fduthesis.cls b/Master/texmf-dist/tex/latex/fduthesis/fduthesis.cls index 9e293356e8a..d0fa94ab7f3 100644 --- a/Master/texmf-dist/tex/latex/fduthesis/fduthesis.cls +++ b/Master/texmf-dist/tex/latex/fduthesis/fduthesis.cls @@ -43,7 +43,7 @@ %% and README.md. %% \NeedsTeXFormat{LaTeX2e}[2020/10/01] -\GetIdInfo $Id: fduthesis.dtx 0.9 2023-02-26 12:00:00Z Xiangdong Zeng <xdzeng96@gmail.com> $ +\GetIdInfo $Id: fduthesis.dtx 0.9a 2023-05-27 12:00:00Z Xiangdong Zeng <xdzeng96@gmail.com> $ {Thesis template for Fudan University} \ProvidesExplClass{\ExplFileName} {\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -80,7 +80,7 @@ \skip_new:N \l__fdu_tmpa_skip \tl_new:N \l__fdu_tmpa_tl \tl_new:N \l__fdu_tmpb_tl -\int_new:N \g__fdu_thesis_type_int +\tl_new:N \g__fdu_thesis_type_tl \clist_new:N \g__fdu_to_ctexbook_clist \clist_new:N \g__fdu_to_hyperref_clist \bool_new:N \g__fdu_twoside_bool @@ -90,6 +90,7 @@ \cs_generate_variant:Nn \file_input:n { V } \cs_generate_variant:Nn \int_to_arabic:n { v } \cs_generate_variant:Nn \keys_define:nn { nx } +\cs_generate_variant:Nn \prop_item:Nn { No } \cs_generate_variant:Nn \regex_replace_all:nnN { nnc } \prg_generate_conditional_variant:Nnn \tl_if_eq:nn { Vn } { T, TF } \cs_new:Npn \__fdu_quad: { \skip_horizontal:n { 1 em } } @@ -148,11 +149,10 @@ \cs_new:Npn \__fdu_info:nx { \msg_info:nnx { fduthesis } } \keys_define:nn { fdu / option } { - type .choice:, - type .value_required:n = true, type .choices:nn = { doctor, master, bachelor } - { \int_set_eq:NN \g__fdu_thesis_type_int \l_keys_choice_int }, + { \tl_set_eq:NN \g__fdu_thesis_type_tl \l_keys_choice_tl }, + type .value_required:n = true, type .initial:n = bachelor, oneside .value_forbidden:n = true, twoside .value_forbidden:n = true, @@ -256,13 +256,15 @@ { font .choices:nn = { garamond, libertinus, lm, palatino, times, times*, none } - { \tl_set_eq:NN \g__fdu_fontset_tl \l_keys_choice_tl } + { \tl_set_eq:NN \g__fdu_fontset_tl \l_keys_choice_tl }, + font .value_required:n = true, } \keys_define:nn { fdu / style } { cjk-font .choices:nn = { adobe, fandol, founder, mac, sinotype, sourcehan, windows, none } - { \tl_set_eq:NN \g__fdu_cjk_fontset_tl \l_keys_choice_tl } + { \tl_set_eq:NN \g__fdu_cjk_fontset_tl \l_keys_choice_tl }, + cjk-font .value_required:n = true, } \cs_new_protected:Npn \__fdu_setmainfont:nn #1#2 { \__fontspec_main_setmainfont:nn {#2} {#1} } @@ -895,16 +897,8 @@ \cs_generate_variant:Nn \fdu_thm_set_qed:n { V } \cs_generate_variant:Nn \fdu_thm_set_header_font:n { V } \cs_generate_variant:Nn \fdu_thm_set_body_font:n { V } -\captionsetup [ figure ] - { - font = small, - labelsep = quad - } -\captionsetup [ table ] - { - font = { small, sf }, - labelsep = quad - } +\captionsetup [ figure ] { font = small, labelsep = quad } +\captionsetup [ table ] { font = { small, sf }, labelsep = quad } \cs_set:Npn \thefigure { \thechapter - \__fdu_arabic:n { figure } } \cs_set:Npn \thetable @@ -921,7 +915,7 @@ { title, author, supervisor, department, major } { \tl_new:c { l__fdu_info_ #1 _en_tl } } \clist_new:N \l__fdu_info_keywords_en_clist -\int_new:N \l__fdu_info_degree_type_int +\tl_new:N \l__fdu_info_degree_type_tl \tl_new:N \l__fdu_info_title_sanitized_tl \tl_new:N \l__fdu_info_title_en_sanitized_tl \cs_new_protected:Npn \__fdu_set_title:nn #1#2 @@ -940,7 +934,8 @@ { degree .choices:nn = { academic, professional } - { \int_set_eq:NN \l__fdu_info_degree_type_int \l_keys_choice_int }, + { \tl_set_eq:NN \l__fdu_info_degree_type_tl \l_keys_choice_tl }, + degree .value_required:n = true, title .code:n = { \__fdu_set_title:nn { title } {#1} }, title* .code:n = { \__fdu_set_title:nn { title_en } {#1} }, date .tl_set:N = \l__fdu_info_date_tl, @@ -964,24 +959,12 @@ logo .tl_set:N = \l__fdu_cover_logo_tl, logo-size .clist_set:N = \l__fdu_cover_logo_size_clist } -\bool_new:N \l__fdu_secret_bool \tl_new:N \l__fdu_info_secret_level_tl \keys_define:nn { fdu / info } { secret-level .choices:nn = { none, i, ii, iii } - { - \int_compare:nTF { \l_keys_choice_int >= 2 } - { - \bool_set_true:N \l__fdu_secret_bool - \tl_set:Nn \l__fdu_info_secret_level_tl - { - \clist_item:Nn \c__fdu_secret_clist - { \l_keys_choice_int - 1 } - } - } - { \bool_set_false:N \l__fdu_secret_bool } - }, + { \tl_set_eq:NN \l__fdu_info_secret_level_tl \l_keys_choice_tl }, secret-level .value_required:n = true, secret-year .tl_set:N = \l__fdu_info_secret_year_tl } @@ -1015,29 +998,38 @@ { \linespread {#1} \selectfont } \cs_new_protected:Npn \__fdu_cover_id: { - \__fdu_fixed_width_box:nn { 120 pt } - { - \bool_if:NT \l__fdu_secret_bool - { - \group_begin: - \sffamily - \__fdu_cover_id_aux:n { secret_level } - \c__fdu_name_secret_star_tl - \l__fdu_info_secret_year_tl - \group_end: - \par - } - \__fdu_cover_id_aux:n { school_id } \par - \__fdu_cover_id_aux:n { student_id } - } - \hbox_to_wd:nn { -24 pt } { } + \tl_if_eq:NnTF \l__fdu_info_secret_level_tl { none } + { \__fdu_cover_id_tabular:n { } } + { \__fdu_cover_id_tabular:n { \__fdu_cover_secret: \\ } } + } +\cs_new_protected:Npn \__fdu_cover_id_tabular:n #1 + { + \exp_args:Nnx \begin{tabular} { \c__fdu_cover_id_align_tl } + #1 + \__fdu_cover_id_aux:n { school_id } \\ + \__fdu_cover_id_aux:n { student_id } + \end{tabular} } \cs_new:Npn \__fdu_cover_id_aux:n #1 { - \tl_use:c { c__fdu_name_ #1 _tl } - \c__fdu_fwid_colon_tl + \tl_use:c { c__fdu_name_ #1 _tl } & \tl_use:c { l__fdu_info_ #1 _tl } } +\tl_const:Nn \c__fdu_cover_id_align_tl + { l @ { \c__fdu_fwid_colon_tl } l @ { } } +\cs_new:Npn \__fdu_cover_secret: + { + \multicolumn { 2 } { l } + { + \sffamily + \c__fdu_name_secret_level_tl + \c__fdu_fwid_colon_tl + \prop_item:No \c__fdu_secret_prop + { \l__fdu_info_secret_level_tl } + \c__fdu_name_secret_star_tl + \l__fdu_info_secret_year_tl + } + } \cs_new_protected:Npn \__fdu_cover_logo: { \clist_pop:NN \l__fdu_cover_logo_size_clist \l__fdu_tmpa_tl @@ -1055,38 +1047,25 @@ } \cs_new_protected:Npn \__fdu_cover_type: { - \tl_set:Nx \l__fdu_tmpa_tl - { - \clist_item:Nn \c__fdu_thesis_type_clist - { \g__fdu_thesis_type_int } - } + \prop_get:NVN \c__fdu_thesis_type_prop + \g__fdu_thesis_type_tl \l__fdu_tmpa_tl \__fdu_spread_box:no { 0.45 \textwidth } { \l__fdu_tmpa_tl } } \cs_new_protected:Npn \__fdu_cover_degree: { - \int_compare:nT { \g__fdu_thesis_type_int != 3 } + \tl_if_eq:NnF \g__fdu_thesis_type_tl { bachelor } { \c__fdu_fwid_left_paren_tl - \clist_item:Nn \c__fdu_degree_type_clist - { \l__fdu_info_degree_type_int } + \prop_item:No \c__fdu_degree_type_prop + { \l__fdu_info_degree_type_tl } \c__fdu_fwid_right_paren_tl } } -\cs_new_protected:Npn \__fdu_cover_info_left:n #1 - { - \int_case:nn { \l__fdu_info_degree_type_int } - { - { 1 } { \__fdu_spread_box:nn { 6 em } {#1} } - { 2 } { \__fdu_spread_box:nn { 9 em } {#1} } - } - } -\tl_const:Nn \c__fdu_cover_info_align_tl - { c @ { \c__fdu_fwid_colon_tl } c } \cs_new_protected:Npn \__fdu_cover_info: { \group_begin: \zihao { 4 } - \int_compare:nNnT { \l__fdu_info_degree_type_int } = { 2 } + \tl_if_eq:NnT \l__fdu_info_degree_type_tl { professional } { \tl_set_eq:NN \c__fdu_name_major_tl \c__fdu_name_major_professional_tl @@ -1102,11 +1081,19 @@ \tl_use:c { l__fdu_info_ ##1 _tl } } } - \begin{tabular} { \c__fdu_cover_info_align_tl } + \exp_args:Nnx \begin{tabular} { \c__fdu_cover_info_align_tl } \clist_use:Nn \l__fdu_tmpa_clist { \\ [ 1 ex ] } \end{tabular} \group_end: } +\tl_const:Nn \c__fdu_cover_info_align_tl + { c @ { \c__fdu_fwid_colon_tl } c } +\cs_new_protected:Npn \__fdu_cover_info_left:n #1 + { + \tl_if_eq:NnTF \l__fdu_info_degree_type_tl { professional } + { \__fdu_spread_box:nn { 9 em } {#1} } + { \__fdu_spread_box:nn { 6 em } {#1} } + } \cs_new_protected:Npn \__fdu_cover_signature:N #1 { \clist_map_inline:Nn #1 @@ -1487,7 +1474,7 @@ { \__fdu_chapter:V \c__fdu_name_acknowledgements_tl } -\bool_new:N \l__fdu_bibtex_bool +\tl_new:N \l__fdu_bib_backend_tl \tl_new:N \l__fdu_bib_style_tl \tl_new:N \l__fdu_bib_gb_style_tl \tl_new:N \l__fdu_cite_style_tl @@ -1497,9 +1484,13 @@ bib-backend .choice:, bib-backend .value_required:n = true, bib-backend / bibtex .code:n = - { \bool_set_true:N \l__fdu_bibtex_bool }, + { \tl_set:Nn \l__fdu_bib_backend_tl { bibtex } }, bib-backend / biblatex .code:n = - { \bool_set_false:N \l__fdu_bibtex_bool }, + { + \tl_set:Nn \l__fdu_bib_backend_tl { biblatex } + \NewDocumentCommand \addbibresource { m } + { \clist_gput_right:Nn \l__fdu_bib_resource_clist {#1} } + }, bib-style .choice:, bib-style .value_required:n = true, bib-style / numerical .code:n = @@ -1522,7 +1513,7 @@ } \ctex_at_end_preamble:n { - \bool_if:NT \l__fdu_bibtex_bool + \tl_if_eq:NnT \l__fdu_bib_backend_tl { bibtex } { \tl_if_empty:NTF \l__fdu_bib_style_tl { @@ -1540,7 +1531,7 @@ } \__fdu_gadd_ltxhook:nn { env/document/begin } { - \bool_if:NF \l__fdu_bibtex_bool + \tl_if_eq:NnT \l__fdu_bib_backend_tl { biblatex } { \__fdu_biblatex_pre_setup: \RequirePackage { biblatex } @@ -1573,11 +1564,6 @@ } \__fdu_msg_new:nn { invalid-option-in-bibtex } { Option(s)~ "#1"~ are~ invalid~ in~ BibTeX. } -\bool_if:NF \l__fdu_bibtex_bool - { - \NewDocumentCommand \addbibresource { m } - { \clist_gput_right:Nn \l__fdu_bib_resource_clist {#1} } - } \cs_new_protected:Npn \__fdu_biblatex_pre_setup: { \cs_undefine:N \addbibresource @@ -1702,7 +1688,8 @@ } \exp_args:NV \hypersetup \g__fdu_to_hyperref_clist \fdu_allow_url_break: - \bool_if:NF \l__fdu_bibtex_bool { \BiblatexManualHyperrefOn } + \tl_if_eq:NnT \l__fdu_bib_backend_tl { biblatex } + { \BiblatexManualHyperrefOn } } \ctex_at_end_package:nn { hyperref } { diff --git a/Master/texmf-dist/tex/latex/fduthesis/fduthesis.def b/Master/texmf-dist/tex/latex/fduthesis/fduthesis.def index 3597243f906..4661a51f60b 100644 --- a/Master/texmf-dist/tex/latex/fduthesis/fduthesis.def +++ b/Master/texmf-dist/tex/latex/fduthesis/fduthesis.def @@ -42,7 +42,7 @@ %% fduthesis-code.pdf, %% and README.md. %% -\GetIdInfo $Id: fduthesis.dtx 0.9 2023-02-26 12:00:00Z Xiangdong Zeng <xdzeng96@gmail.com> $ +\GetIdInfo $Id: fduthesis.dtx 0.9a 2023-05-27 12:00:00Z Xiangdong Zeng <xdzeng96@gmail.com> $ {Definition file for fduthesis} \ProvidesExplFile{\ExplFileName.def} {\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -81,11 +81,23 @@ { 作者签名, 日期 } \clist_const:Nn \c__fdu_auth_decl_sign_clist { 作者签名, 导师签名, 日期 } -\clist_const:Nn \c__fdu_thesis_type_clist - { 博士学位论文, 硕士学位论文, 本科毕业论文 } -\clist_const:Nn \c__fdu_degree_type_clist - { 学术学位, 专业学位 } -\clist_const:Nn \c__fdu_secret_clist { 秘密, 机密, 绝密 } +\prop_const_from_keyval:Nn \c__fdu_thesis_type_prop + { + doctor = 博士学位论文, + master = 硕士学位论文, + bachelor = 本科毕业论文, + } +\prop_const_from_keyval:Nn \c__fdu_degree_type_prop + { + academic = 学术学位, + professional = 专业学位, + } +\prop_const_from_keyval:Nn \c__fdu_secret_prop + { + i = 秘密, + ii = 机密, + iii = 绝密, + } \clist_map_inline:nn { { secret_level } { 密 \qquad 级 }, @@ -116,7 +128,7 @@ \clist_map_inline:nn { { abstract } { 摘 \quad 要 } { Abstract }, - { keywords } { 关键字 } { Keywords: }, + { keywords } { 关键词 } { Keywords: }, { clc } { 中图分类号 } { CLC~ code: }, { jel } { JEL 分类号 } { JEL~ code: }, { notation } { 符号表 } { List~ of~ Symbols }, |