From 63446a2b35ad0f9b901c69d79e4f07268420cfc9 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 21 Jun 2022 20:20:17 +0000 Subject: xduts (21jun22) git-svn-id: svn://tug.org/texlive/trunk@63681 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/xelatex/xduts/xdufont.sty | 14 +- .../texmf-dist/tex/xelatex/xduts/xdupgthesis.cls | 1228 +++++++++++++++++++- .../texmf-dist/tex/xelatex/xduts/xduugthesis.cls | 133 ++- 3 files changed, 1278 insertions(+), 97 deletions(-) (limited to 'Master/texmf-dist/tex/xelatex/xduts') diff --git a/Master/texmf-dist/tex/xelatex/xduts/xdufont.sty b/Master/texmf-dist/tex/xelatex/xduts/xdufont.sty index 322f06f5211..06324233c65 100644 --- a/Master/texmf-dist/tex/xelatex/xduts/xdufont.sty +++ b/Master/texmf-dist/tex/xelatex/xduts/xdufont.sty @@ -28,7 +28,7 @@ \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} \ProvidesExplPackage{xdufont} - {2022/05/15}{1.15.0.1} + {2022/06/21}{2.0.0.0} {Xidian University Font package} \RequirePackage { xparse, l3keys2e } \PassOptionsToPackage { quiet } { xeCJK } @@ -290,9 +290,9 @@ \cs_new:Npn \__xdu_set_latin_mono_font:nnnnn #1#2#3#4#5 { \str_if_eq:NNTF { \l__xdu_font_type_tl } { font } - { \setmonofont{ #1 } [ \__xdu_set_latin_scale: \__xdu_off_latin_ligatures: ]} + { \setmonofont { #1 } [ \__xdu_set_latin_scale: \__xdu_off_latin_ligatures: ] } { - \setmonofont{ #2 } + \setmonofont { #2 } [ \__xdu_font_path: \__xdu_set_latin_scale: @@ -318,7 +318,7 @@ } \cs_new:Npn \__xdu_set_latin_mono_font:nnnn #1#2#3#4 { - \setmonofont{ #1 } + \setmonofont { #1 } [ \__xdu_set_latin_scale: \__xdu_off_latin_ligatures: @@ -391,9 +391,9 @@ \cs_new:Npn \__xdu_load_math_font_cambria: { \__xdu_load_unicode_math_pkg: - \str_if_eq:NNTF { \l__xdu_font_type_tl} { font} - { \setmathfont { Cambria~Math} } - { \setmathfont { cambria.ttc} [ Path = \l__xdu_font_path_tl/, FontIndex = 1 ] } + \str_if_eq:NNTF { \l__xdu_font_type_tl } { font } + { \setmathfont { Cambria~Math } } + { \setmathfont { cambria.ttc } [ Path = \l__xdu_font_path_tl/, FontIndex = 1 ] } } \cs_new:Npn \__xdu_define_math_font:nn #1#2 { diff --git a/Master/texmf-dist/tex/xelatex/xduts/xdupgthesis.cls b/Master/texmf-dist/tex/xelatex/xduts/xdupgthesis.cls index a0b094d3133..cf4fbea89c4 100644 --- a/Master/texmf-dist/tex/xelatex/xduts/xdupgthesis.cls +++ b/Master/texmf-dist/tex/xelatex/xduts/xdupgthesis.cls @@ -28,7 +28,7 @@ \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} \ProvidesExplClass{xdupgthesis} - {2022/05/15}{1.15.0.1} + {2022/06/21}{2.0.0.0} {Xidian University Postgraduate Thesis document class} \RequirePackage { xparse, l3keys2e } \PassOptionsToPackage { quiet } { xeCJK } @@ -303,9 +303,9 @@ \cs_new:Npn \__xdu_set_latin_mono_font:nnnnn #1#2#3#4#5 { \str_if_eq:NNTF { \l__xdu_font_type_tl } { font } - { \setmonofont{ #1 } [ \__xdu_set_latin_scale: \__xdu_off_latin_ligatures: ]} + { \setmonofont { #1 } [ \__xdu_set_latin_scale: \__xdu_off_latin_ligatures: ] } { - \setmonofont{ #2 } + \setmonofont { #2 } [ \__xdu_font_path: \__xdu_set_latin_scale: @@ -331,7 +331,7 @@ } \cs_new:Npn \__xdu_set_latin_mono_font:nnnn #1#2#3#4 { - \setmonofont{ #1 } + \setmonofont { #1 } [ \__xdu_set_latin_scale: \__xdu_off_latin_ligatures: @@ -404,9 +404,9 @@ \cs_new:Npn \__xdu_load_math_font_cambria: { \__xdu_load_unicode_math_pkg: - \str_if_eq:NNTF { \l__xdu_font_type_tl} { font} - { \setmathfont { Cambria~Math} } - { \setmathfont { cambria.ttc} [ Path = \l__xdu_font_path_tl/, FontIndex = 1 ] } + \str_if_eq:NNTF { \l__xdu_font_type_tl } { font } + { \setmathfont { Cambria~Math } } + { \setmathfont { cambria.ttc } [ Path = \l__xdu_font_path_tl/, FontIndex = 1 ] } } \cs_new:Npn \__xdu_define_math_font:nn #1#2 { @@ -460,13 +460,14 @@ \str_new:N \l__xdu_dept_str \str_new:N \l__xdu_major_str \str_new:N \l__xdu_author_str -\str_new:N \l__xdu_supv_str +\clist_new:N \l__xdu_supv_clist \str_new:N \l__xdu_supv_ent_str \str_new:N \l__xdu_student_id_str \tl_new:N \l__xdu_abstract_zh_tl \tl_new:N \l__xdu_abstract_en_tl \clist_new:N \l__xdu_keywords_zh_clist \clist_new:N \l__xdu_keywords_en_clist +\clist_new:N \l__xdu_bib_file_clist \tl_new:N \l__xdu_ack_tl \keys_define:nn { xdu / info } { @@ -474,13 +475,14 @@ department .tl_set:N = \l__xdu_dept_str, major .tl_set:N = \l__xdu_major_str, author .tl_set:N = \l__xdu_author_str, - supervisor .tl_set:N = \l__xdu_supv_str, + supervisor .clist_set:N = \l__xdu_supv_clist, supervisor-enterprise .tl_set:N = \l__xdu_supv_ent_str, student-id .tl_set:N = \l__xdu_student_id_str, abstract .tl_set:N = \l__xdu_abstract_zh_tl, abstract* .tl_set:N = \l__xdu_abstract_en_tl, keywords .clist_set:N = \l__xdu_keywords_zh_clist, keywords* .clist_set:N = \l__xdu_keywords_en_clist, + bib-resource .clist_set:N = \l__xdu_bib_file_clist, acknowledgements .tl_set:N = \l__xdu_ack_tl } \keys_set:nn { xdu } @@ -496,17 +498,25 @@ info / abstract* = { }, info / keywords = { }, info / keywords* = { }, + info / bib-resource = { }, info / acknowledgements = { } } +\str_new:N \l__xdu_supv_str +\str_new:N \l__xdu_supv_ii_str +\ctex_at_end_preamble:n + { + \str_set:Nx \l__xdu_supv_str { \clist_item:Nn \l__xdu_supv_clist { 1 } } + \str_set:Nx \l__xdu_supv_ii_str { \clist_item:Nn \l__xdu_supv_clist { 2 } } + } \tl_new:N \l__xdu_gr_type_tl \tl_new:N \l__xdu_degree_type_tl \str_new:N \l__xdu_degree_str \str_new:N \l__xdu_degree_en_str \str_new:N \l__xdu_author_en_str -\str_new:N \l__xdu_supv_en_str +\clist_new:N \l__xdu_supv_en_clist \str_new:N \l__xdu_supv_ent_en_str -\str_new:N \l__xdu_supv_t_str -\str_new:N \l__xdu_supv_t_en_str +\clist_new:N \l__xdu_supv_t_clist +\clist_new:N \l__xdu_supv_t_en_clist \str_new:N \l__xdu_supv_ent_t_str \str_new:N \l__xdu_supv_ent_t_en_str \str_new:N \l__xdu_title_en_str @@ -515,7 +525,11 @@ \str_new:N \l__xdu_domain_str \str_new:N \l__xdu_clc_str \str_new:N \l__xdu_secret_lv_str +\str_new:N \l__xdu_secret_year_str \str_new:N \l__xdu_submit_date_str +\str_new:N \l__xdu_los_str +\str_new:N \l__xdu_loa_str +\str_new:N \l__xdu_bio_str \keys_define:nn { xdu / info } { graduate-type .choices:nn = { 硕士, 博士 } @@ -525,10 +539,10 @@ degree .tl_set:N = \l__xdu_degree_str, degree* .tl_set:N = \l__xdu_degree_en_str, author* .tl_set:N = \l__xdu_author_en_str, - supervisor* .tl_set:N = \l__xdu_supv_en_str, + supervisor* .clist_set:N = \l__xdu_supv_en_clist, supervisor-enterprise* .tl_set:N = \l__xdu_supv_ent_en_str, - supervisor-title .tl_set:N = \l__xdu_supv_t_str, - supervisor-title* .tl_set:N = \l__xdu_supv_t_en_str, + supervisor-title .clist_set:N = \l__xdu_supv_t_clist, + supervisor-title* .clist_set:N = \l__xdu_supv_t_en_clist, supervisor-enterprise-title .tl_set:N = \l__xdu_supv_ent_t_str, supervisor-enterprise-title* .tl_set:N = \l__xdu_supv_ent_t_en_str, title* .tl_set:N = \l__xdu_title_en_str, @@ -538,7 +552,11 @@ clc .tl_set:N = \l__xdu_clc_str, secret-level .choices:nn = { 秘密, 公开 } { \tl_set_eq:NN \l__xdu_secret_lv_str \l_keys_choice_tl }, - submit-date .tl_set:N = \l__xdu_submit_date_str + secret-year .tl_set:N = \l__xdu_secret_year_str, + submit-date .tl_set:N = \l__xdu_submit_date_str, + los .tl_set:N = \l__xdu_los_str, + loa .tl_set:N = \l__xdu_loa_str, + bio .tl_set:N = \l__xdu_bio_str } \keys_set:nn { xdu } { @@ -559,12 +577,41 @@ info / domain = { }, info / clc = { }, info / secret-level = { 公开 }, - info / submit-date = { } + info / secret-year = { }, + info / submit-date = { }, + info / los = { }, + info / loa = { }, + info / bio = { } } +\str_new:N \l__xdu_supv_en_str +\str_new:N \l__xdu_supv_ii_en_str +\str_new:N \l__xdu_supv_t_str +\str_new:N \l__xdu_supv_ii_t_str +\str_new:N \l__xdu_supv_t_en_str +\str_new:N \l__xdu_supv_ii_t_en_str +\ctex_at_end_preamble:n + { + \str_set:Nx \l__xdu_supv_en_str + { \clist_item:Nn \l__xdu_supv_en_clist { 1 } } + \str_set:Nx \l__xdu_supv_ii_en_str + { \clist_item:Nn \l__xdu_supv_en_clist { 2 } } + \str_set:Nx \l__xdu_supv_t_str + { \clist_item:Nn \l__xdu_supv_t_clist { 1 } } + \str_set:Nx \l__xdu_supv_ii_t_str + { \clist_item:Nn \l__xdu_supv_t_clist { 2 } } + \str_set:Nx \l__xdu_supv_t_en_str + { \clist_item:Nn \l__xdu_supv_t_en_clist { 1 } } + \str_set:Nx \l__xdu_supv_ii_t_en_str + { \clist_item:Nn \l__xdu_supv_t_en_clist { 2 } } + } +\cs_set:Npn \figurename { \__xdu_lang_switch:nn { 图 } { Figure } } +\cs_new_eq:NN \figname \figurename +\cs_set:Npn \tablename { \__xdu_lang_switch:nn { 表 } { Table } } +\cs_new_eq:NN \tabname \tablename \bool_new:N \l__xdu_en_cjk_font_bool \tl_new:N \l__xdu_lang_tl \tl_new:N \l__xdu_bib_tool_tl -\clist_new:N \l__xdu_bib_file_clist +\tl_new:N \l__xdu_biblatex_option_tl \tl_new:N \l__xdu_ref_add_space \tl_new:N \l__xdu_cap_label_sep_tl \bool_new:N \l__xdu_tab_small_bool @@ -586,7 +633,7 @@ { \tl_set_eq:NN \l__xdu_lang_tl \l_keys_choice_tl }, bib-backend .choices:nn = { bibtex, biblatex } { \tl_set_eq:NN \l__xdu_bib_tool_tl \l_keys_choice_tl }, - bib-resource .clist_set:N = \l__xdu_bib_file_clist, + biblatex-option .tl_set:N = \l__xdu_biblatex_option_tl, ref-add-space .bool_set:N = \l__xdu_ref_add_space, caption-label-sep .tl_set:N = \l__xdu_cap_label_sep_tl, table-small-font .bool_set:N = \l__xdu_tab_small_bool, @@ -607,7 +654,7 @@ style / en-cjk-font = false, style / language = zh, style / bib-backend = biblatex, - style / bib-resource = { }, + style / biblatex-option = { }, style / ref-add-space = false, style / caption-label-sep = { 0.75em }, style / table-small-font = true, @@ -615,7 +662,43 @@ style / before-skip = { 24pt, 18pt, 12pt, 12pt, 12pt, 12pt }, style / after-skip = { 18pt, 12pt, 6pt, 6pt, 6pt, 6pt }, style / symmetric-margin = false, - style / page-vertical-align = {顶部对齐} + style / page-vertical-align = { 顶部对齐 } + } +\bool_new:N \l__xdu_customize_los_bool +\bool_new:N \l__xdu_customize_loa_bool +\tl_new:N \l__xdu_colspec_los_tl +\tl_new:N \l__xdu_colspec_loa_tl +\bool_new:N \l__xdu_title_row_los_bool +\bool_new:N \l__xdu_title_row_loa_bool +\keys_define:nn { xdu / style } + { + customize-los .bool_set:N = \l__xdu_customize_los_bool, + customize-loa .bool_set:N = \l__xdu_customize_loa_bool, + colspec-los .tl_set:N = \l__xdu_colspec_los_tl, + colspec-loa .tl_set:N = \l__xdu_colspec_loa_tl, + title-row-los .bool_set:N = \l__xdu_title_row_los_bool, + title-row-loa .bool_set:N = \l__xdu_title_row_loa_bool + } +\keys_set:nn { xdu } + { + style / customize-los = { true }, + style / customize-loa = { true }, + style / colspec-los = { Q[l,m]X[l,m] }, + style / colspec-loa = { Q[l,m]X[l,m]X[l,m] }, + style / title-row-los = { false }, + style / title-row-loa = { false } + } +\bool_new:N \l__xdu_customize_edubg_bool +\bool_new:N \l__xdu_customize_resresult_bool +\keys_define:nn { xdu / style } + { + customize-edubg .bool_set:N = \l__xdu_customize_edubg_bool, + customize-resresult .bool_set:N = \l__xdu_customize_resresult_bool + } +\keys_set:nn { xdu } + { + style / customize-edubg = { true }, + style / customize-resresult = { true } } \NewDocumentCommand \xdusetup { m } { \keys_set:nn { xdu } { #1 } } @@ -664,6 +747,20 @@ \str_set_eq:NN \l__xdu_pure_title_str \l__xdu_title_str \str_remove_all:Nn \l__xdu_pure_title_str { \\ } } +\cs_new_protected:Npn \__xdu_split_title:Nn #1#2 + { + \seq_new:N \l__xdu_title_seq + \tl_if_in:nnTF { #2 } { \\ } + { + \seq_set_split:Nnn \l__xdu_title_seq { \\ } { #2 } + \clist_set_from_seq:NN #1 \l__xdu_title_seq + } + { + \clist_put_right:Nx #1 { \tl_range:nnn { #2 } { 1 } { 14 } } + \clist_put_right:Nx #1 { \tl_range:nnn { #2 } { 15 } { -1 } } + } + } +\cs_generate_variant:Nn \__xdu_split_title:Nn { NV } \cs_new:Npn \__xdu_uline:n #1 { \CJKunderline [ thickness = 0.5pt ] { #1 } } \cs_new:Npn \__xdu_tl_set_if_empty:Nn #1#2 @@ -691,10 +788,10 @@ } \cs_new:Npn \__xdu_n_chapter_head_ii:nn #1#2 { - { + \group_begin: \ctexset { chapter / format = { #2 } } \__xdu_n_chapter_head:n { #1 } - } + \group_end: } \cs_new:Npn \__xdu_n_chapter_head:nn #1#2 { @@ -704,10 +801,10 @@ } \cs_new:Npn \__xdu_n_chapter_head_ii:nnn #1#2#3 { - { + \group_begin: \ctexset { chapter / format = { #3 } } \__xdu_n_chapter_head:nn { #1 } { #2 } - } + \group_end: } \cs_new:Npn \__xdu_n_chapter_head_toc:n #1 { @@ -721,13 +818,20 @@ \chapter* { #2 } \markboth { #1 } { } } +\cs_new:Npn \__xdu_n_chapter_head_toc_ii:nn #1#2 + { + \group_begin: + \ctexset { chapter / format = { #2 } } + \__xdu_n_chapter_head_toc:n { #1 } + \group_end: + } \cs_new:Npn \__xdu_typeout_keywords:nNn #1#2#3 { - \str_clear_new:N \l__xdu_keywords_label_str - \str_set:Nn \l__xdu_keywords_label_str { #1 } + \tl_clear_new:N \l__xdu_keywords_label_str + \tl_set:Nn \l__xdu_keywords_label_tl { #1 } \dim_zero_new:N \l__xdu_keywords_label_dim - \__xdu_get_text_width:NV \l__xdu_keywords_label_dim \l__xdu_keywords_label_str - \begin { list } { \l__xdu_keywords_label_str } + \__xdu_get_text_width:NV \l__xdu_keywords_label_dim \l__xdu_keywords_label_tl + \begin { list } { \l__xdu_keywords_label_tl } { \labelwidth \l__xdu_keywords_label_dim \labelsep \c_zero_dim @@ -737,6 +841,14 @@ \item \clist_use:Nnnn #2 { #3 } { #3 } { #3 } \end { list } } +\dim_new:N \l__xdu_str_dim +\box_new:N \l__xdu_str_box +\cs_new:Npn \__xdu_str_max_dim:Nn #1#2 + { + \hbox_set:Nn \l__xdu_str_box { #2 } + \dim_set:Nn \l__xdu_str_dim { \box_wd:N \l__xdu_str_box } + \dim_set:Nn #1 { \dim_max:nn { \l__xdu_str_dim } { #1 } } + } \NewDocumentCommand \noauxwrite { m } { \if@filesw @@ -749,29 +861,31 @@ } \newgeometry { - top = 3cm, + top = 3.14cm, bottom = 2.5cm, inner = 2.5cm, outer = 2.5cm, bindingoffset = 0.5cm, - head = 2cm, + headheight = 20pt, + headsep = 10pt, foot = 0.75cm } \savegeometry { main } \newgeometry { - top = 3cm, - bottom = 2.5cm, - inner = 2.75cm, - outer = 2.75cm, - head = 2cm, - foot = 0.75cm + top = 3.14cm, + bottom = 2.5cm, + inner = 2.75cm, + outer = 2.75cm, + headheight = 20pt, + headsep = 10pt, + foot = 0.75cm } \savegeometry { main-sym } \newgeometry { top = 3cm, - bottom = 2cm, + bottom = 1cm, inner = 3cm, outer = 2.5cm } @@ -818,6 +932,8 @@ \cs_set:Npn \headrulewidth { 0.5pt } \cs_set:Npn \headrule { + \hrule \@height 0pt + \skip_vertical:N 2pt \hrule \@height \headrulewidth \skip_vertical:N \headrulewidth \hrule \@height \headrulewidth @@ -836,6 +952,108 @@ { \raggedbottom } { \flushbottom } } +\ctexset { secnumdepth=5 } +\ctex_at_end_preamble:n + { + \__xdu_lang_switch:nn + { \ctexset { chapter / name = { 第, 章 } } } + { \ctexset { chapter / name = { Chapter\space } } } + } +\ctexset + { + section / name = { }, + subsection / name = { }, + subsubsection / name = { (, ) }, + paragraph / name = { (, ) }, + subparagraph / name = { (, ) } + } +\ctex_at_end_preamble:n + { + \__xdu_lang_switch:nn + { \ctexset { chapter / number = { \chinese { chapter } } } } + { \ctexset { chapter / number = { \Roman { chapter } } } } + } +\ctexset + { + section / number = { \thesection }, + subsection / number = { \thesubsection }, + subsubsection / number = { \arabic { subsubsection } }, + paragraph / number = { \alph { paragraph } }, + subparagraph / number = { \roman { subparagraph } } + } +\cs_new:Npn \__xdu_sec_format_i:n #1 + { \__xdu_rm_family: \bfseries \zihao { #1 } \dim_set:Nn \baselineskip { 20pt } } +\cs_new:Npn \__xdu_sec_format_ii: + { \__xdu_sf_family: \centering \zihao { 3 } \dim_set:Nn \baselineskip { 20pt } } +\cs_new:Npn \__xdu_sec_format_iii: + { \__xdu_rm_family: \centering \zihao { 3 } \dim_set:Nn \baselineskip { 20pt } } +\ctex_at_end_preamble:n + { + \__xdu_lang_switch:nn + { \ctexset { chapter / format = { \__xdu_sec_format_ii: } } } + { \ctexset { chapter / format = { \__xdu_sec_format_iii: } } } + } +\ctexset + { + section / format = { \__xdu_sec_format_i:n { -3 } }, + subsection / format = { \__xdu_sec_format_i:n { 4 } }, + subsubsection / format = { \__xdu_sec_format_i:n { 4 } }, + paragraph / format = { \__xdu_sec_format_i:n { 4 } }, + subparagraph / format = { \__xdu_sec_format_i:n { 4 } } + } +\ctexset + { + chapter / aftername = { \quad }, + section / aftername = { \enskip }, + subsection / aftername = { \enskip }, + subsubsection / aftername = { }, + paragraph / aftername = { }, + subparagraph / aftername = { } + } +\ctexset + { + chapter / indent = { 0bp }, + section / indent = { 0bp }, + subsection / indent = { 24bp }, + subsubsection / indent = { 24bp }, + paragraph / indent = { 24bp }, + subparagraph / indent = { 24bp } + } +\ctexset + { + chapter / beforeskip = { 6pt }, + section / beforeskip = { 18pt }, + subsection / beforeskip = { 12pt }, + subsubsection / beforeskip = { 12pt }, + paragraph / beforeskip = { 12pt }, + subparagraph / beforeskip = { 12pt }, + chapter / afterskip = { 18pt }, + section / afterskip = { 12pt }, + subsection / afterskip = { 6pt }, + subsubsection / afterskip = { 6pt }, + paragraph / afterskip = { 6pt }, + subparagraph / afterskip = { 6pt } + } +\PassOptionsToPackage { titles } { tocloft } +\RequirePackage { tocloft } +\cs_set:Npn \cftdotsep { 0 } +\cs_set:Npn \cftchapleader { \cftdotfill { \cftdotsep } } +\dim_set_eq:NN \cftbeforechapskip \cftbeforesecskip +\ctex_at_end_preamble:n + { + \__xdu_lang_switch:nn + { \cs_set:Npn \cftchapfont { \__xdu_sf_family: \zihao { -4 } } } + { \cs_set:Npn \cftchapfont { \__xdu_rm_family: \zihao { -4 } } } + } +\clist_map_inline:nn + { + \cftsecfont, + \cftsubsecfont, + \cftchappagefont, + \cftsecpagefont, + \cftsubsecpagefont + } + { \renewcommand { #1 } { \__xdu_rm_family: \zihao { -4 } } } \renewcommand { \theequation } { \thechapter - \arabic { equation } } \ctex_at_end_preamble:n { @@ -937,6 +1155,7 @@ { \captionsetup [ subfloat ] { subrefformat = parens } } { } } +\PassOptionsToPackage { labelformat = simple } { subcaption } \ctex_at_end_preamble:n { \@ifpackageloaded { subcaption } @@ -981,7 +1200,7 @@ } { } } -\RequirePackage{ hyperref } +\RequirePackage { hyperref } \hypersetup { bookmarksnumbered, @@ -1036,23 +1255,954 @@ { \group_begin: \citestyle { numbers } \cite { #1 } \group_end: } } { + \PassOptionsToPackage { \l__xdu_biblatex_option_tl } { biblatex } \RequirePackage { biblatex } \clist_map_inline:Nn \l__xdu_bib_file_clist { \addbibresource { #1 } } } } +\RequirePackage { environ } +\NewEnviron { appendixes } + { + \cs_set:Npn \appendixname { \__xdu_lang_switch:nn { 附录 } { Appendix } } + \tl_set_eq:NN \l__xdu_chaptername \appendixname + \cs_set_eq:NN \__xdu_Roman: \__xdu_Alph: + \appendix + \renewcommand { \thefigure } { \thechapter \arabic { figure } } + \renewcommand { \thetable } { \thechapter \arabic { table } } + \cs_if_exist:NT \thealgorithm + { \cs_set:Npn \thealgorithm { \thechapter \arabic { algorithm } } } + \cs_if_exist:NT \thealgocf + { \cs_set:Npn \thealgocf { \thechapter \arabic { algocf } } } + \BODY + } +\bool_new:N \l__xdu_ac_master +\bool_new:N \l__xdu_pro_master +\bool_new:N \l__xdu_ac_phd +\bool_new:N \l__xdu_pro_phd +\bool_new:N \l__xdu_phd +\bool_new:N \l__xdu_master +\bool_new:N \l__xdu_ac +\bool_new:N \l__xdu_pro +\ctex_at_end_preamble:n + { + \tl_if_eq:NnTF \l__xdu_gr_type_tl { 硕士 } + { + \bool_set_true:N \l__xdu_master + \tl_if_eq:NnTF \l__xdu_degree_type_tl { 学术 } + { \bool_set_true:N \l__xdu_ac_master } + { \bool_set_true:N \l__xdu_pro_master } + } + { + \bool_set_true:N \l__xdu_phd + \tl_if_eq:NnTF \l__xdu_degree_type_tl { 学术 } + { \bool_set_true:N \l__xdu_ac_phd } + { \bool_set_true:N \l__xdu_pro_phd } + } + \tl_if_eq:NnTF \l__xdu_degree_type_tl { 学术 } + { \bool_set_true:N \l__xdu_ac } + { \bool_set_true:N \l__xdu_pro } + } +\cs_new:Npn \__xdu_cover_i:nnnnn #1#2#3#4#5 + { + \dim_set:Nn \baselineskip { 20pt } + \vbox_to_ht:nn { #1 } + { + \vfill + \mode_leave_vertical: + \hfil + \use:c { #2 family } \zihao { #3 } + \str_if_eq:nnTF { #4 } { bf } { \bfseries } { } + #5 + \hfil + } + } +\cs_new:Npn \__xdu_cover_ii:nnnn #1#2#3#4 + { + \dim_set:Nn \baselineskip { 20pt } + \vbox_to_ht:nn { 25pt } + { + \vfill + \mode_leave_vertical: + \hfil + \hbox:n + { + \zihao { 4 } \bfseries + \hbox_to_wd:nn { #1 } { \sffamily #2 } + \skip_horizontal:n { 0.5em } + \__xdu_uline:n + { + \skip_horizontal:n { 9em - #1 } + \hbox_to_wd:nn { #3 } { \hfil \rmfamily #4 \hfil } + } + } + \hfil + } + } +\cs_new:Npn \__xdu_cover_iii:nnnn #1#2#3#4 + { + \dim_set:Nn \baselineskip { 20pt } + \hbox:n + { + \rmfamily \zihao { 5 } \bfseries + \hbox_to_wd:nn { #1 } { #2 } + \skip_horizontal:n { 0.5em } + \__xdu_uline:n { \hbox_to_wd:nn { #3 } { \hfil #4 \hfil } } + } + } +\cs_new:Npn \__xdu_en_month:n #1 + { + \str_case:Vn #1 + { + { 1 } { January } + { 2 } { February } + { 3 } { March } + { 4 } { April } + { 5 } { May } + { 6 } { June } + { 7 } { July } + { 8 } { August } + { 9 } { September } + { 10 } { October } + { 11 } { November } + { 12 } { December } + { 01 } { January } + { 02 } { February } + { 03 } { March } + { 04 } { April } + { 05 } { May } + { 06 } { June } + { 07 } { July } + { 08 } { August } + { 09 } { September } + } + } +\cs_new:Npn \__xdu_zh_today: + { \int_use:N \c_sys_year_int 年 \int_use:N \c_sys_month_int 月 } +\cs_new:Npn \__xdu_en_today: + { \__xdu_en_month:n { \c_sys_month_int } ~ \int_use:N \c_sys_year_int } +\seq_new:N \l__xdu_submit_date_seq +\cs_new:Npn \__xdu_split_submit_date:N #1 + { + \seq_set_split:NnV \l__xdu_submit_date_seq { - } \l__xdu_submit_date_str + \clist_set_from_seq:NN #1 \l__xdu_submit_date_seq + } +\clist_new:N \l__xdu_submit_date_clist +\cs_new:Npn \__xdu_zh_submit_date: + { + \str_if_empty:NTF \l__xdu_submit_date_str + { \__xdu_zh_today: } + { + \__xdu_split_submit_date:N \l__xdu_submit_date_clist + \clist_item:Nn \l__xdu_submit_date_clist { 1 } 年 + \clist_item:Nn \l__xdu_submit_date_clist { 2 } 月 + } + } +\str_new:N \l__xdu_submit_date_month_str +\cs_new:Npn \__xdu_en_submit_date: + { + \str_if_empty:NTF \l__xdu_submit_date_str + { \__xdu_en_today: } + { + \__xdu_split_submit_date:N \l__xdu_submit_date_clist + \str_set:Nx \l__xdu_submit_date_month_str + { \clist_item:Nn \l__xdu_submit_date_clist { 2 } } + \__xdu_en_month:n { \l__xdu_submit_date_month_str } ~ + \clist_item:Nn \l__xdu_submit_date_clist { 1 } + } + } +\cs_new:Npn \__xdu_cover_author_info: + { + \rmfamily \zihao { 4 } + \dim_new:N \l__xdu_cover_author_info_dim + \dim_set:Nn \l__xdu_cover_author_info_dim { 7em } + \__xdu_str_max_dim:Nn \l__xdu_cover_author_info_dim { \l__xdu_author_str } + \bool_if:NTF \l__xdu_pro_master + { + \__xdu_str_max_dim:Nn \l__xdu_cover_author_info_dim + { \l__xdu_supv_str \enskip \l__xdu_supv_t_str } + \str_if_empty:NF \l__xdu_supv_ii_str + { + \__xdu_str_max_dim:Nn \l__xdu_cover_author_info_dim + { \l__xdu_supv_ii_str \enskip \l__xdu_supv_ii_t_str } + } + \__xdu_str_max_dim:Nn \l__xdu_cover_author_info_dim + { \l__xdu_supv_ent_str \enskip \l__xdu_supv_ent_t_str } + } + { + \__xdu_str_max_dim:Nn \l__xdu_cover_author_info_dim + { \l__xdu_supv_str \enskip \l__xdu_supv_t_str } + \str_if_empty:NF \l__xdu_supv_ii_str + { + \__xdu_str_max_dim:Nn \l__xdu_cover_author_info_dim + { \l__xdu_supv_ii_str \enskip \l__xdu_supv_ii_t_str } + } + } + \__xdu_str_max_dim:Nn \l__xdu_cover_author_info_dim { \l__xdu_degree_str } + \dim_add:Nn \l__xdu_cover_author_info_dim { 3em } + \__xdu_cover_ii:nnnn { 4em } { 作者姓名 } + { \l__xdu_cover_author_info_dim } + { \l__xdu_author_str } + \bool_if:NTF \l__xdu_pro_master + { + \__xdu_cover_ii:nnnn { 9em } { 学校导师姓名、职称 } + { \l__xdu_cover_author_info_dim } + { \l__xdu_supv_str \enskip \l__xdu_supv_t_str } + \str_if_empty:NF \l__xdu_supv_ii_str + { + \__xdu_cover_ii:nnnn { 9em } { } + { \l__xdu_cover_author_info_dim } + { \l__xdu_supv_ii_str \enskip \l__xdu_supv_ii_t_str } + } + \__xdu_cover_ii:nnnn { 9em } { 企业导师姓名、职称 } + { \l__xdu_cover_author_info_dim } + { \l__xdu_supv_ent_str \enskip \l__xdu_supv_ent_t_str } + } + { + \__xdu_cover_ii:nnnn { 9em } { 指导教师姓名、职称 } + { \l__xdu_cover_author_info_dim } + { \l__xdu_supv_str \enskip \l__xdu_supv_t_str } + \str_if_empty:NF \l__xdu_supv_ii_str + { + \__xdu_cover_ii:nnnn { 9em } { } + { \l__xdu_cover_author_info_dim } + { \l__xdu_supv_ii_str \enskip \l__xdu_supv_ii_t_str } + } + } + \__xdu_cover_ii:nnnn { 6em } { 申请学位类别 } + { \l__xdu_cover_author_info_dim } + { \l__xdu_degree_str } + } +\cs_new:Npn \__xdu_zh_title_page_info: + { + \rmfamily \zihao { 4 } + \dim_new:N \l__xdu_zh_title_page_info_dim + \__xdu_str_max_dim:Nn \l__xdu_zh_title_page_info_dim + { 作者姓名:\l__xdu_author_str } + \bool_if:NTF \l__xdu_ac + { + \__xdu_str_max_dim:Nn \l__xdu_zh_title_page_info_dim + { 一级学科:\l__xdu_major_str } + \__xdu_str_max_dim:Nn \l__xdu_zh_title_page_info_dim + { 二级学科(研究方向):\l__xdu_sub_major_str } + } + { + \__xdu_str_max_dim:Nn \l__xdu_zh_title_page_info_dim + { 领\qquad{}域:\l__xdu_domain_str } + } + \__xdu_str_max_dim:Nn \l__xdu_zh_title_page_info_dim + { 学位类别:\l__xdu_degree_str } + \bool_if:NTF \l__xdu_pro_master + { + \__xdu_str_max_dim:Nn \l__xdu_zh_title_page_info_dim + { 学校导师姓名、职称:\l__xdu_supv_str \enskip \l__xdu_supv_t_str } + \str_if_empty:NF \l__xdu_supv_ii_str + { + \__xdu_str_max_dim:Nn \l__xdu_zh_title_page_info_dim + { 学校导师姓名、职称:\l__xdu_supv_ii_str \enskip \l__xdu_supv_ii_t_str } + } + \__xdu_str_max_dim:Nn \l__xdu_zh_title_page_info_dim + { 企业导师姓名、职称:\l__xdu_supv_ent_str \enskip \l__xdu_supv_ent_t_str } + } + { + \__xdu_str_max_dim:Nn \l__xdu_zh_title_page_info_dim + { 指导教师姓名、职称:\l__xdu_supv_str \enskip \l__xdu_supv_t_str } + \str_if_empty:NF \l__xdu_supv_ii_str + { + \__xdu_str_max_dim:Nn \l__xdu_zh_title_page_info_dim + { 指导教师姓名、职称:\l__xdu_supv_ii_str \enskip \l__xdu_supv_ii_t_str } + } + } + \__xdu_str_max_dim:Nn \l__xdu_zh_title_page_info_dim + { 学\qquad{}院:\l__xdu_dept_str } + \__xdu_str_max_dim:Nn \l__xdu_zh_title_page_info_dim + { 提交日期:\__xdu_zh_submit_date: } + \dim_new:N \l__xdu_zh_title_page_info_skip_dim + \dim_set_eq:NN \l__xdu_zh_title_page_info_skip_dim \linewidth + \dim_sub:Nn \l__xdu_zh_title_page_info_skip_dim { \l__xdu_zh_title_page_info_dim } + \skip_horizontal:n { \dim_eval:n { \l__xdu_zh_title_page_info_skip_dim / 2 } } + \vbox:n + { + \rmfamily \zihao { 4 } + \dim_set:Nn \baselineskip { 32pt } + { \bfseries 作者姓名: } \l__xdu_author_str + \bool_if:NTF \l__xdu_ac + { + \par + { \bfseries 一级学科: } \l__xdu_major_str + \par + { \bfseries 二级学科(研究方向): } \l__xdu_sub_major_str + } + { + \par + { \bfseries 领\qquad{}域: } \l__xdu_domain_str + } + \par + { \bfseries 学位类别: } \l__xdu_degree_str + \bool_if:NTF \l__xdu_pro_master + { + \par + { \bfseries 学校导师姓名、职称: } + \l__xdu_supv_str \enskip \l__xdu_supv_t_str + \str_if_empty:NF \l__xdu_supv_ii_str + { + \par + \phantom { 学校导师姓名、职称: } + \l__xdu_supv_ii_str \enskip \l__xdu_supv_ii_t_str + } + \par + { \bfseries 企业导师姓名、职称: } + \l__xdu_supv_ent_str \enskip \l__xdu_supv_ent_t_str + } + { + \par + { \bfseries 指导教师姓名、职称: } + \l__xdu_supv_str \enskip \l__xdu_supv_t_str + \str_if_empty:NF \l__xdu_supv_ii_str + { + \par + \phantom { 指导教师姓名、职称: } + \l__xdu_supv_ii_str \enskip \l__xdu_supv_ii_t_str + } + } + \par + { \bfseries 学\qquad{}院: } \l__xdu_dept_str + \par + { \bfseries 提交日期: } \__xdu_zh_submit_date: + } + } +\cs_new:Npn \__xdu_zh_title_page: + { + \vbox:n { } + \skip_vertical:n { -7.5pt } + \dim_set:Nn \baselineskip { 15.6bp } + \vbox:n + { + \mode_leave_vertical: + \__xdu_cover_iii:nnnn { 4em } { 学校代码 } { 7em } { 10701 } + \hfill + \__xdu_cover_iii:nnnn { 3em } { 学号 } { 7em } { \l__xdu_student_id_str } + } + \vbox:n + { + \mode_leave_vertical: + \__xdu_cover_iii:nnnn { 4em } { 分类号 } { 7em } { \l__xdu_clc_str } + \hfill + \__xdu_cover_iii:nnnn { 3em } { 密级 } { 7em } { \l__xdu_secret_lv_str } + } + \__xdu_cover_i:nnnnn { 100pt } { sf } { 1 } { bf } { 西安电子科技大学 } + \__xdu_cover_i:nnnnn { 85pt } { rm } { -1 } { bf } { \l__xdu_gr_type_tl 学位论文 } + \skip_vertical:n { 87.5pt } + \vbox_to_ht:nn { 150pt } + { + \rmfamily \zihao { 2 } \bfseries \centering + \dim_set:Nn \baselineskip { 30pt } + \l__xdu_title_str + } + \group_begin: + \__xdu_zh_title_page_info: + \group_end: + \cleardoublepage + } +\dim_new:N \l__xdu_supv_dim +\dim_new:N \l__xdu_supv_max_dim +\box_new:N \l__xdu_supv_box +\cs_new:Npn \__xdu_en_title_supv:n #1 + { + \rmfamily \zihao { 3 } + \dim_zero:N \l__xdu_supv_max_dim + \hbox_set:Nn \l__xdu_supv_box { \l__xdu_supv_en_str } + \dim_set:Nn \l__xdu_supv_dim { \box_wd:N \l__xdu_supv_box } + \dim_set:Nn \l__xdu_supv_max_dim + { \dim_max:nn { \l__xdu_supv_dim } { \l__xdu_supv_max_dim } } + \str_if_empty:NF \l__xdu_supv_ii_str + { + \hbox_set:Nn \l__xdu_supv_box { \l__xdu_supv_ii_en_str } + \dim_set:Nn \l__xdu_supv_dim { \box_wd:N \l__xdu_supv_box } + \dim_set:Nn \l__xdu_supv_max_dim + { \dim_max:nn { \l__xdu_supv_dim } { \l__xdu_supv_max_dim } } + } + \bool_if:NT \l__xdu_pro_master + { + \hbox_set:Nn \l__xdu_supv_box { \l__xdu_supv_ent_en_str } + \dim_set:Nn \l__xdu_supv_dim { \box_wd:N \l__xdu_supv_box } + \dim_set:Nn \l__xdu_supv_max_dim + { \dim_max:nn { \l__xdu_supv_dim } { \l__xdu_supv_max_dim } } + } + \hbox_to_wd:nn { \l__xdu_supv_max_dim } { #1 \hfil } \quad + } +\dim_new:N \l__xdu_supv_t_dim +\dim_new:N \l__xdu_supv_t_max_dim +\box_new:N \l__xdu_supv_t_box +\cs_new:Npn \__xdu_en_title_supv_t:n #1 + { + \rmfamily \zihao { 3 } + \dim_zero:N \l__xdu_supv_t_max_dim + \hbox_set:Nn \l__xdu_supv_t_box { \l__xdu_supv_t_en_str } + \dim_set:Nn \l__xdu_supv_t_dim { \box_wd:N \l__xdu_supv_t_box } + \dim_set:Nn \l__xdu_supv_t_max_dim + { \dim_max:nn { \l__xdu_supv_t_dim } { \l__xdu_supv_t_max_dim } } + \str_if_empty:NF \l__xdu_supv_ii_str + { + \hbox_set:Nn \l__xdu_supv_t_box { \l__xdu_supv_ii_t_en_str } + \dim_set:Nn \l__xdu_supv_t_dim { \box_wd:N \l__xdu_supv_t_box } + \dim_set:Nn \l__xdu_supv_t_max_dim + { \dim_max:nn { \l__xdu_supv_t_dim } { \l__xdu_supv_t_max_dim } } + } + \bool_if:NT \l__xdu_pro_master + { + \hbox_set:Nn \l__xdu_supv_t_box { \l__xdu_supv_ent_t_en_str } + \dim_set:Nn \l__xdu_supv_t_dim { \box_wd:N \l__xdu_supv_t_box } + \dim_set:Nn \l__xdu_supv_t_max_dim + { \dim_max:nn { \l__xdu_supv_t_dim } { \l__xdu_supv_t_max_dim } } + } + \hbox_to_wd:nn { \l__xdu_supv_t_max_dim } { #1 \hfil } \quad + } +\cs_new:Npn \__xdu_en_title_page: + { + \vbox:n { } + \skip_vertical:n { -3.5pt } + \dim_set:Nn \baselineskip { 30pt } + \vbox_to_ht:nn { 170pt } + { + \rmfamily \zihao { 2 } \bfseries \centering + \dim_set:Nn \baselineskip { 30pt } + \l__xdu_title_en_str + } + \vbox_to_ht:nn { 360pt } + { + \rmfamily \zihao { 3 } \centering + \dim_set:Nn \baselineskip { 30pt } + A + \bool_if:NTF \l__xdu_master { ~thesis~ } { ~dissertation~ } + submitted~to\\ + XIDIAN~UNIVERSITY\\ + in~partial~fulfillment~of~the~requirements\\ + for~the~degree~of + \bool_if:NTF \l__xdu_master { ~Master\\ } { ~Doctor~of~Philosophy\\ } + in + \bool_if:NTF \l__xdu_pro_master + { ~\l__xdu_degree_en_str\\ } + { ~\l__xdu_major_en_str\\ } + } + \vbox:n + { + \rmfamily \zihao { 3 } \centering + \dim_set:Nn \baselineskip { 30pt } + By\\ + \l__xdu_author_en_str + \str_if_empty:NTF \l__xdu_author_en_str + { \skip_vertical:N \baselineskip } + { \\ } + Supervisor:~\__xdu_en_title_supv:n { \l__xdu_supv_en_str } + Title:~\__xdu_en_title_supv_t:n { \l__xdu_supv_t_en_str } \\ + \str_if_empty:NF \l__xdu_supv_ii_str + { + \phantom { Supervisor:~ } \__xdu_en_title_supv:n { \l__xdu_supv_ii_en_str } + \phantom { Title:~ } \__xdu_en_title_supv_t:n { \l__xdu_supv_ii_t_en_str } \\ + } + \bool_if:NT \l__xdu_pro_master + { + Supervisor:~ \__xdu_en_title_supv:n { \l__xdu_supv_ent_en_str } + Title:~ \__xdu_en_title_supv_t:n { \l__xdu_supv_ent_t_en_str } \\ + } + \__xdu_en_submit_date: + } + \cleardoublepage + } +\cs_new:Npn \__xdu_statement: + { + \vbox:n { } + \skip_vertical:n { -7.5pt } + \vbox_to_ht:nn { 60pt } + { + \rmfamily \zihao { 4 } \bfseries \centering + \dim_set:Nn \baselineskip { 20pt } + 西安电子科技大学\\ + 学位论文独创性(或创新性)声明 + } + \vbox_to_ht:nn { 140pt } + { + \rmfamily \zihao { -4 } + \dim_set:Nn \parindent { 2em } + \dim_set:Nn \baselineskip { 20pt } + 秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在导师指 + 导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢 + 中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果;也不包 + 含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的材料。与我一 + 同工作的同事对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。 + \par + 学位论文若有不实之处,本人承担一切法律责任。 + \vfil + } + \vbox_to_ht:nn { 175pt } + { + \rmfamily \zihao { -4 } + \dim_set:Nn \parindent { 2em } + \dim_set:Nn \baselineskip { 20pt } + 本人签名:\__xdu_uline:n { \skip_horizontal:n { 10em } } + \hfill + 日\qquad{}期:\__xdu_uline:n { \skip_horizontal:n { 10em } } + } + \vbox_to_ht:nn { 60pt } + { + \rmfamily \zihao { 4 } \bfseries \centering + \dim_set:Nn \baselineskip { 20pt } + 西安电子科技大学\\ + 关于论文使用授权的说明 + } + \vbox_to_ht:nn { 140pt } + { + \rmfamily \zihao { -4 } + \dim_set:Nn \parindent { 2em } + \dim_set:Nn \baselineskip { 20pt } + 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生在校 + 攻读学位期间论文工作的知识产权属于西安电子科技大学。学校有权保留送交论文 + 的复印件,允许查阅、借阅论文;学校可以公布论文的全部或部分内容,允许采用 + 影印、缩印或其它复制手段保存论文。同时本人保证,结合学位论文研究成果完成 + 的论文、发明专利等成果,署名单位为西安电子科技大学。 + \par + 保密的学位论文在 + \str_if_eq:NNTF \l__xdu_secret_lv_str { 秘密 } + { + \str_if_empty:NTF \l__xdu_secret_year_str + { \__xdu_uline:n { \skip_horizontal:n { 1.5em } } } + { \__xdu_uline:n { \enskip \l__xdu_secret_year_str \enskip } } + } + { \__xdu_uline:n { \skip_horizontal:n { 1.5em } } } + 年解密后适用本授权书。 + \vfil + } + \vbox:n + { + \rmfamily \zihao { -4 } + \dim_set:Nn \parindent { 2em } + \dim_set:Nn \baselineskip { 40pt } + 本人签名:\__xdu_uline:n { \skip_horizontal:n { 10em } } + \hfill + 导师签名:\__xdu_uline:n { \skip_horizontal:n { 10em } } + \par + 日\qquad{}期:\__xdu_uline:n { \skip_horizontal:n { 10em } } + \hfill + 日\qquad{}期:\__xdu_uline:n { \skip_horizontal:n { 10em } } + } + \cleardoublepage + } +\cs_new:Npn \__xdu_zh_abstract_keywords: + { + \__xdu_n_chapter_head_toc:nn { 摘要 } { 摘 { \quad } 要 } + \__xdu_lang_switch:nn { } { \__xdu_add_zh_toc:nn { chapter } { 摘要 } } + \group_begin: + \dim_set:Nn \parindent { 2 \ccwd } + \rmfamily \zihao { -4 } + \dim_set:Nn \baselineskip { 20pt } + \file_if_exist_input:n { \l__xdu_abstract_zh_tl } + \group_end: + \group_begin: + \rmfamily \zihao { -4 } + \dim_set:Nn \baselineskip { 20pt } + \skip_vertical:n { 20pt } + \__xdu_typeout_keywords:nNn + { \textbf { 关键词 } : } { \l__xdu_keywords_zh_clist } { , } + \group_end: + \cleardoublepage + } +\cs_new:Npn \__xdu_en_abstract_keywords: + { + \__xdu_n_chapter_head_toc_ii:nn + { \textrm { ABSTRACT } } { \centering \rmfamily \zihao { 3 } \dim_set:Nn \baselineskip { 20pt } } + \__xdu_lang_switch:nn { } { \__xdu_add_zh_toc:nn { chapter } { \textrm { ABSTRACT } } } + \group_begin: + \dim_set:Nn \parskip { 20pt } + \rmfamily \zihao { -4 } + \dim_set:Nn \baselineskip { 20pt } + \file_if_exist:nT { \l__xdu_abstract_en_tl } { \skip_vertical:n { -20pt } } + \file_if_exist_input:n { \l__xdu_abstract_en_tl } + \group_end: + \group_begin: + \rmfamily \zihao { -4 } + \dim_set:Nn \baselineskip { 20pt } + \skip_vertical:n { 20pt } + \__xdu_typeout_keywords:nNn + { \textbf { Keywords } : } { \l__xdu_keywords_en_clist } { ,~ } + \group_end: + \cleardoublepage + } +\cs_new:Npn \__xdu_loft_label_num_width:nN #1#2 + { + \tl_clear_new:N \l__xdu_loft_tl + \file_get:nnN + { \jobname.#1 } + { \let\do\@makeother \dospecials } + \l__xdu_loft_tl + \seq_clear_new:N \l__xdu_loft_label_num_seq + \cs_generate_variant:Nn \regex_extract_all:nnN { nVN } + \str_if_eq:nnTF { #1 } { lof } + { + \regex_extract_all:nVN + { \\contentsline\ \{figure\}\{\\numberline\ \{\K[0-9A-Z\.]+ } + \l__xdu_loft_tl \l__xdu_loft_label_num_seq + } + { + \regex_extract_all:nVN + { \\contentsline\ \{table\}\{\\numberline\ \{\K[0-9A-Z\.]+ } + \l__xdu_loft_tl \l__xdu_loft_label_num_seq + } + \dim_zero_new:N \l__xdu_loft_label_num_dim + \seq_map_inline:Nn \l__xdu_loft_label_num_seq + { + \__xdu_get_text_width:Nn \l__xdu_loft_label_num_dim { ##1 } + \dim_set:Nn #2 { \dim_max:nn { \l__xdu_loft_label_num_dim } { #2 } } + } + } +\cs_new:Npn \__xdu_list_of_figure: + { + \__xdu_n_chapter_head_toc:n + { \__xdu_lang_switch:nn { 插图索引 } { List~of~Figures } } + \__xdu_lang_switch:nn { } { \__xdu_add_zh_toc:nn { chapter } { 插图索引 } } + \group_begin: + \addtocontents { lof } { \vspace { 10pt } } + \renewcommand { \addvspace } [1] { } + \tl_set:Nn \cftfigpresnum { \figurename \space } + \dim_zero_new:N \l__xdu_lof_label_dim + \__xdu_get_text_width:NV \l__xdu_lof_label_dim \cftfigpresnum + \dim_set:Nn \cftfignumwidth { \l__xdu_lof_label_dim } + \dim_new:N \l__xdu_lof_label_num_max_dim + \__xdu_loft_label_num_width:nN { lof } \l__xdu_lof_label_num_max_dim + \dim_add:Nn \cftfignumwidth { \l__xdu_lof_label_num_max_dim } + \dim_add:Nn \cftfignumwidth { .75em } + \dim_set:Nn \cftfigindent { 0pt } + \rmfamily \zihao { -4 } \dim_set:Nn \baselineskip { 20pt } + \@starttoc { lof } + \group_end: + \cleardoublepage + } +\cs_new:Npn \__xdu_list_of_table: + { + \__xdu_n_chapter_head_toc:n + { \__xdu_lang_switch:nn { 表格索引 } { List~of~Tables } } + \__xdu_lang_switch:nn { } { \__xdu_add_zh_toc:nn { chapter } { 表格索引 } } + \group_begin: + \addtocontents { lot } { \vspace { 10pt } } + \renewcommand { \addvspace } [1] { } + \tl_set:Nn \cfttabpresnum { \tablename \space } + \dim_zero_new:N \l__xdu_lot_label_dim + \__xdu_get_text_width:NV \l__xdu_lot_label_dim \cfttabpresnum + \dim_set:Nn \cfttabnumwidth { \l__xdu_lot_label_dim } + \dim_new:N \l__xdu_lot_label_num_max_dim + \__xdu_loft_label_num_width:nN { lot } \l__xdu_lot_label_num_max_dim + \dim_add:Nn \cfttabnumwidth { \l__xdu_lot_label_num_max_dim } + \dim_add:Nn \cfttabnumwidth { .75em } + \dim_set:Nn \cfttabindent { 0pt } + \rmfamily \zihao { -4 } \dim_set:Nn \baselineskip { 20pt } + \@starttoc { lot } + \group_end: + \cleardoublepage + } +\ctex_at_end_preamble:n + { + \bool_new:N \l__xdu_load_tabularray_bool + \bool_if:NF \l__xdu_customize_los_bool + { \bool_set_true:N \l__xdu_load_tabularray_bool } + \bool_if:NF \l__xdu_customize_loa_bool + { \bool_set_true:N \l__xdu_load_tabularray_bool } + \bool_if:NT \l__xdu_load_tabularray_bool + { + \RequirePackage { tabularray } + \UseTblrLibrary { functional } + \NewTblrTheme { losloatheme } + { + \DefTblrTemplate { caption-tag } { default } { } + \DefTblrTemplate { caption-sep } { default } { } + \DefTblrTemplate { caption-text } { default } { } + \DefTblrTemplate { conthead-text } { default } { } + \DefTblrTemplate { contfoot-text } { default } { } + } + } + \cs_generate_variant:Nn \__tblr_parse_colrow_spec:nn { nV } + } +\cs_new:Npn \__xdu_symbols_list: + { + \__xdu_n_chapter_head_toc:n + { \__xdu_lang_switch:nn { 符号对照表 } { List~of~Symbols } } + \__xdu_lang_switch:nn { } { \__xdu_add_zh_toc:nn { chapter } { 符号对照表 } } + \bool_if:NTF \l__xdu_customize_los_bool + { \file_if_exist_input:n { \l__xdu_los_str } } + { + \tl_new:N \l__xdu_los_head_tl + \__xdu_lang_switch:nn + { \tl_set:Nn \l__xdu_los_head_tl { 符号 & 符号名称 \\ } } + { \tl_set:Nn \l__xdu_los_head_tl { Notation & Description \\ } } + \tl_new:N \l__xdu_los_rowhead_tl + \bool_if:NTF \l__xdu_title_row_los_bool + { \tl_set:Nn \l__xdu_los_rowhead_tl { 1 } } + { \tl_set:Nn \l__xdu_los_rowhead_tl { 0 } } + \tl_new:N \l__xdu_los_begin_tblr_tl + \tl_set:Nx \l__xdu_los_begin_tblr_tl + { + \exp_not:n + { + \begin { longtblr } + [ + evaluate = \fileIfExistInput, + expand = \l__xdu_los_head_tl, + theme = losloatheme + ] + } + { + colspec = { \exp_not:V \l__xdu_colspec_los_tl }, + \exp_not:n + { + rowhead = \int_compare:nNnTF + { \value { rowcount } } > { 1 } + { \l__xdu_los_rowhead_tl } { 0 }, + rows = { font = \rmfamily \zihao { -4 } }, + stretch = 0, + rowsep = { 3pt }, + rows = { ht = 14pt } + } + } + } + \tl_use:N \l__xdu_los_begin_tblr_tl + \l__xdu_los_head_tl + \fileIfExistInput { \l__xdu_los_str } + \end { longtblr } + } + } +\cs_new:Npn \__xdu_abbreviations_list: + { + \__xdu_n_chapter_head_toc:n + { \__xdu_lang_switch:nn { 缩略语对照表 } { List~of~Abbreviations } } + \__xdu_lang_switch:nn { } { \__xdu_add_zh_toc:nn { chapter } { 缩略语对照表 } } + \bool_if:NTF \l__xdu_customize_loa_bool + { \file_if_exist_input:n { \l__xdu_loa_str } } + { + \tl_new:N \l__xdu_loa_head_tl + \__xdu_lang_switch:nn + { + \tl_set:Nn \l__xdu_loa_head_tl + { 缩略语 & 英文全称 & 中文对照 \\ } + } + { + \tl_set:Nn \l__xdu_loa_head_tl + { Abbreviation & English~Full~Name & Chinese~Full~Name \\ } + } + \tl_new:N \l__xdu_loa_rowhead_tl + \bool_if:NTF \l__xdu_title_row_loa_bool + { \tl_set:Nn \l__xdu_loa_rowhead_tl { 1 } } + { \tl_set:Nn \l__xdu_loa_rowhead_tl { 0 } } + \tl_new:N \l__xdu_loa_begin_tblr_tl + \tl_set:Nx \l__xdu_loa_begin_tblr_tl + { + \exp_not:n + { + \begin { longtblr } + [ + evaluate = \fileIfExistInput, + expand = \l__xdu_loa_head_tl, + theme = losloatheme + ] + } + { + colspec = { \exp_not:V \l__xdu_colspec_loa_tl }, + \exp_not:n + { + rowhead = \int_compare:nNnTF + { \value { rowcount } } > { 1 } + { \l__xdu_loa_rowhead_tl } { 0 }, + rows = { font = \rmfamily \zihao { -4 } }, + stretch = 0, + rowsep = { 3pt }, + rows = { ht = 14pt } + } + } + } + \tl_use:N \l__xdu_loa_begin_tblr_tl + \l__xdu_loa_head_tl + \fileIfExistInput { \l__xdu_loa_str } + \end { longtblr } + } + } +\cs_new:Npn \__xdu_add_zh_toc:nn #1#2 + { + \str_if_eq:NNTF { #1 } { chapter } + { \phantomsection \addcontentsline { zh.toc } { #1 } { \__xdu_sf_family: #2 } } + { \phantomsection \addcontentsline { zh.toc } { #1 } { #2 } } + } \renewcommand { \frontmatter } { \loadgeometry { cover } \pagestyle { empty } + \dim_set:Nn \parindent { 0pt } + \dim_set:Nn \baselineskip { 20pt } + \__xdu_add_bookmark:n { \__xdu_lang_switch:nn { 封面 } { Cover } } + \vbox:n { } + \skip_vertical:n { 435pt } + \vbox_to_ht:nn { 120pt } + { + \rmfamily \zihao { 2 } \bfseries \centering + \dim_set:Nn \baselineskip { 30pt } + \l__xdu_title_str + } + \__xdu_cover_author_info: + \cleardoublepage + \__xdu_lang_switch:nn + { \__xdu_zh_title_page: \__xdu_en_title_page: } + { \__xdu_en_title_page: \__xdu_zh_title_page: } + \__xdu_statement: \__xdu_load_main_geometry: \pagestyle { front } \pagenumbering { Roman } + \dim_set:Nn \baselineskip { 20pt } + \__xdu_lang_switch:nn + { \__xdu_zh_abstract_keywords: \__xdu_en_abstract_keywords: } + { \__xdu_en_abstract_keywords: \__xdu_zh_abstract_keywords: } + \__xdu_list_of_figure: + \__xdu_list_of_table: + \__xdu_symbols_list: + \__xdu_abbreviations_list: + \setcounter { tocdepth } { 2 } + \__xdu_n_chapter_head:nn + { \__xdu_lang_switch:nn { 目录 } { Contents } } + { \__xdu_lang_switch:nn { 目 { \quad } 录 } { Contents } } + \@starttoc { toc } + \cleardoublepage + \__xdu_lang_switch:nn { } + { + \setcounter { tocdepth } { 2 } + \__xdu_n_chapter_head:nn { 目录 } { \__xdu_sf_family: 目 { \quad } 录 } + \@starttoc { zh.toc } + \cleardoublepage + } } \renewcommand { \mainmatter } { \__xdu_load_main_geometry: \pagestyle { plain } \pagenumbering { arabic } + \dim_set:Nn \parindent { 2 \ccwd } + \rmfamily \zihao { -4 } + \dim_set:Nn \baselineskip { 20pt } + \__xdu_lang_switch:nn { } + { + \cs_new_eq:NN \__xdu_org_chapter:n \chapter + \RenewDocumentCommand { \chapter } { m m } + { + \__xdu_org_chapter:n { ##1 } + \__xdu_add_zh_toc:nn { chapter } + { \numberline { 第 \chinese { chapter } 章 \hspace { .3em } } ##2 } + } + \cs_new_eq:NN \__xdu_org_section:n \section + \RenewDocumentCommand { \section } { m m } + { + \__xdu_org_section:n { ##1 } + \__xdu_add_zh_toc:nn { section } { \numberline { \thesection } ##2 } + } + \cs_new_eq:NN \__xdu_org_subsection:n \subsection + \RenewDocumentCommand { \subsection } { m m } + { + \__xdu_org_subsection:n { ##1 } + \__xdu_add_zh_toc:nn { subsection } { \numberline { \thesubsection } ##2 } + } + } + } +\ctex_at_end_preamble:n + { + \dim_new:N \l__xdu_bio_indent_dim + \box_new:N \l__xdu_bio_indent_box + \hbox_set:Nn \l__xdu_bio_indent_box { \rmfamily \zihao { -3 } \bfseries 1. \quad} + \dim_set:Nn \l__xdu_bio_indent_dim { \box_wd:N \l__xdu_bio_indent_box } + \bool_if:NF \l__xdu_customize_edubg_bool + { + \RequirePackage { tabularray } + \newenvironment { edubg } + { + \dim_set:Nn \parindent { 0pt } + \begin { tblr } + { + colspec = { @{ \skip_horizontal:N \l__xdu_bio_indent_dim } lX @{ } }, + rows = { font = \zihao { -4 } \dim_set:Nn \baselineskip { 20pt } } + } + } + { + \end { tblr } + \dim_set:Nn \parindent { 2 \ccwd } + } + } + \bool_if:NF \l__xdu_customize_resresult_bool + { + \RequirePackage { enumitem } + \SetEnumitemKey { resresult } + { + label = {[}\arabic*{]}, + left = \l__xdu_bio_indent_dim, + align = right, + parsep = 0pt, + itemsep = 0pt, + topsep = 0pt + } + \newenvironment { resresult } + { \begin { enumerate } [ resresult ] } + { \end { enumerate } } + } + } +\renewcommand { \backmatter } + { + \__xdu_lang_switch:nn { } + { + \cs_set_eq:NN \chapter \__xdu_org_chapter:n + \cs_set_eq:NN \section \__xdu_org_section:n + \cs_set_eq:NN \subsection \__xdu_org_subsection:n + } + \cs_set:Npn \bibname { \__xdu_lang_switch:nn { 参考文献 } { Bibliography } } + \__xdu_n_chapter_head_toc:n { \bibname } + \__xdu_lang_switch:nn { } { \__xdu_add_zh_toc:nn { chapter } { 参考文献 } } + \group_begin: + \tl_if_eq:NnTF \l__xdu_bib_tool_tl { bibtex } + { + \cs_set:Npn \bibsection { } + \rmfamily \zihao { 5 } + \dim_set:Nn \baselineskip { 20pt } + \bibliography { \l__xdu_bib_file_clist } + } + { + \defbibheading { bibliography } [ ] { } + \cs_set:Npn \bibfont + { + \rmfamily \zihao { 5 } + \dim_set:Nn \baselineskip { 20pt } + } + \printbibliography + } + \group_end: + \__xdu_n_chapter_head_toc:nn + { \__xdu_lang_switch:nn { 致谢 } { Acknowledgements } } + { \__xdu_lang_switch:nn { 致 { \quad } 谢 } { Acknowledgements } } + \__xdu_lang_switch:nn { } { \__xdu_add_zh_toc:nn { chapter } { 致谢 } } + \group_begin: + \dim_set:Nn \parindent { 2 \ccwd } + \rmfamily \zihao { -4 } + \dim_set:Nn \baselineskip { 20pt } + \file_if_exist_input:n { \l__xdu_ack_tl } + \group_end: + \__xdu_n_chapter_head_toc:n + { \__xdu_lang_switch:nn { 作者简介 } { Author~Biography } } + \__xdu_lang_switch:nn { } { \__xdu_add_zh_toc:nn { chapter } { 作者简介 } } + \group_begin: + \dim_set:Nn \parindent { 2 \ccwd } + \rmfamily \zihao { -4 } + \dim_set:Nn \baselineskip { 20pt } + \ctexset + { + section / number = { \arabic { section } . }, + section / format = { \rmfamily \zihao { -3 } \bfseries \raggedright }, + subsection / number = { \arabic { section } . \arabic { subsection } }, + subsection / format = { \rmfamily \zihao { 4 } \bfseries \raggedright }, + subsection / indent = { \l__xdu_bio_indent_dim } + } + \setcounter { section } { 0 } + \addtocontents { toc } { \setcounter { tocdepth } { 0 } } + \file_if_exist_input:n { \l__xdu_bio_str } + \group_end: } %% %% diff --git a/Master/texmf-dist/tex/xelatex/xduts/xduugthesis.cls b/Master/texmf-dist/tex/xelatex/xduts/xduugthesis.cls index 2725418a548..f4b9664ab22 100644 --- a/Master/texmf-dist/tex/xelatex/xduts/xduugthesis.cls +++ b/Master/texmf-dist/tex/xelatex/xduts/xduugthesis.cls @@ -28,7 +28,7 @@ \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} \ProvidesExplClass{xduugthesis} - {2022/05/15}{1.15.0.1} + {2022/06/21}{2.0.0.0} {Xidian University Undergraduate Thesis document class} \RequirePackage { xparse, l3keys2e } \PassOptionsToPackage { quiet } { xeCJK } @@ -304,9 +304,9 @@ \cs_new:Npn \__xdu_set_latin_mono_font:nnnnn #1#2#3#4#5 { \str_if_eq:NNTF { \l__xdu_font_type_tl } { font } - { \setmonofont{ #1 } [ \__xdu_set_latin_scale: \__xdu_off_latin_ligatures: ]} + { \setmonofont { #1 } [ \__xdu_set_latin_scale: \__xdu_off_latin_ligatures: ] } { - \setmonofont{ #2 } + \setmonofont { #2 } [ \__xdu_font_path: \__xdu_set_latin_scale: @@ -332,7 +332,7 @@ } \cs_new:Npn \__xdu_set_latin_mono_font:nnnn #1#2#3#4 { - \setmonofont{ #1 } + \setmonofont { #1 } [ \__xdu_set_latin_scale: \__xdu_off_latin_ligatures: @@ -405,9 +405,9 @@ \cs_new:Npn \__xdu_load_math_font_cambria: { \__xdu_load_unicode_math_pkg: - \str_if_eq:NNTF { \l__xdu_font_type_tl} { font} - { \setmathfont { Cambria~Math} } - { \setmathfont { cambria.ttc} [ Path = \l__xdu_font_path_tl/, FontIndex = 1 ] } + \str_if_eq:NNTF { \l__xdu_font_type_tl } { font } + { \setmathfont { Cambria~Math } } + { \setmathfont { cambria.ttc } [ Path = \l__xdu_font_path_tl/, FontIndex = 1 ] } } \cs_new:Npn \__xdu_define_math_font:nn #1#2 { @@ -461,13 +461,14 @@ \str_new:N \l__xdu_dept_str \str_new:N \l__xdu_major_str \str_new:N \l__xdu_author_str -\str_new:N \l__xdu_supv_str +\clist_new:N \l__xdu_supv_clist \str_new:N \l__xdu_supv_ent_str \str_new:N \l__xdu_student_id_str \tl_new:N \l__xdu_abstract_zh_tl \tl_new:N \l__xdu_abstract_en_tl \clist_new:N \l__xdu_keywords_zh_clist \clist_new:N \l__xdu_keywords_en_clist +\clist_new:N \l__xdu_bib_file_clist \tl_new:N \l__xdu_ack_tl \keys_define:nn { xdu / info } { @@ -475,13 +476,14 @@ department .tl_set:N = \l__xdu_dept_str, major .tl_set:N = \l__xdu_major_str, author .tl_set:N = \l__xdu_author_str, - supervisor .tl_set:N = \l__xdu_supv_str, + supervisor .clist_set:N = \l__xdu_supv_clist, supervisor-enterprise .tl_set:N = \l__xdu_supv_ent_str, student-id .tl_set:N = \l__xdu_student_id_str, abstract .tl_set:N = \l__xdu_abstract_zh_tl, abstract* .tl_set:N = \l__xdu_abstract_en_tl, keywords .clist_set:N = \l__xdu_keywords_zh_clist, keywords* .clist_set:N = \l__xdu_keywords_en_clist, + bib-resource .clist_set:N = \l__xdu_bib_file_clist, acknowledgements .tl_set:N = \l__xdu_ack_tl } \keys_set:nn { xdu } @@ -497,8 +499,16 @@ info / abstract* = { }, info / keywords = { }, info / keywords* = { }, + info / bib-resource = { }, info / acknowledgements = { } } +\str_new:N \l__xdu_supv_str +\str_new:N \l__xdu_supv_ii_str +\ctex_at_end_preamble:n + { + \str_set:Nx \l__xdu_supv_str { \clist_item:Nn \l__xdu_supv_clist { 1 } } + \str_set:Nx \l__xdu_supv_ii_str { \clist_item:Nn \l__xdu_supv_clist { 2 } } + } \str_new:N \l__xdu_supv_dept_str \str_new:N \l__xdu_supv_sch_str \str_new:N \l__xdu_class_id_str @@ -514,10 +524,14 @@ info / supervisor-school = { }, info / class-id = { } } +\cs_set:Npn \figurename { \__xdu_lang_switch:nn { 图 } { Figure } } +\cs_new_eq:NN \figname \figurename +\cs_set:Npn \tablename { \__xdu_lang_switch:nn { 表 } { Table } } +\cs_new_eq:NN \tabname \tablename \bool_new:N \l__xdu_en_cjk_font_bool \tl_new:N \l__xdu_lang_tl \tl_new:N \l__xdu_bib_tool_tl -\clist_new:N \l__xdu_bib_file_clist +\tl_new:N \l__xdu_biblatex_option_tl \tl_new:N \l__xdu_ref_add_space \tl_new:N \l__xdu_cap_label_sep_tl \bool_new:N \l__xdu_tab_small_bool @@ -539,7 +553,7 @@ { \tl_set_eq:NN \l__xdu_lang_tl \l_keys_choice_tl }, bib-backend .choices:nn = { bibtex, biblatex } { \tl_set_eq:NN \l__xdu_bib_tool_tl \l_keys_choice_tl }, - bib-resource .clist_set:N = \l__xdu_bib_file_clist, + biblatex-option .tl_set:N = \l__xdu_biblatex_option_tl, ref-add-space .bool_set:N = \l__xdu_ref_add_space, caption-label-sep .tl_set:N = \l__xdu_cap_label_sep_tl, table-small-font .bool_set:N = \l__xdu_tab_small_bool, @@ -560,7 +574,7 @@ style / en-cjk-font = false, style / language = zh, style / bib-backend = biblatex, - style / bib-resource = { }, + style / biblatex-option = { }, style / ref-add-space = false, style / caption-label-sep = { 0.75em }, style / table-small-font = true, @@ -568,7 +582,7 @@ style / before-skip = { 24pt, 18pt, 12pt, 12pt, 12pt, 12pt }, style / after-skip = { 18pt, 12pt, 6pt, 6pt, 6pt, 6pt }, style / symmetric-margin = false, - style / page-vertical-align = {顶部对齐} + style / page-vertical-align = { 顶部对齐 } } \NewDocumentCommand \xdusetup { m } { \keys_set:nn { xdu } { #1 } } @@ -596,6 +610,20 @@ \str_set_eq:NN \l__xdu_pure_title_str \l__xdu_title_str \str_remove_all:Nn \l__xdu_pure_title_str { \\ } } +\cs_new_protected:Npn \__xdu_split_title:Nn #1#2 + { + \seq_new:N \l__xdu_title_seq + \tl_if_in:nnTF { #2 } { \\ } + { + \seq_set_split:Nnn \l__xdu_title_seq { \\ } { #2 } + \clist_set_from_seq:NN #1 \l__xdu_title_seq + } + { + \clist_put_right:Nx #1 { \tl_range:nnn { #2 } { 1 } { 14 } } + \clist_put_right:Nx #1 { \tl_range:nnn { #2 } { 15 } { -1 } } + } + } +\cs_generate_variant:Nn \__xdu_split_title:Nn { NV } \cs_new:Npn \__xdu_uline:n #1 { \CJKunderline [ thickness = 0.5pt ] { #1 } } \cs_new:Npn \__xdu_tl_set_if_empty:Nn #1#2 @@ -623,10 +651,10 @@ } \cs_new:Npn \__xdu_n_chapter_head_ii:nn #1#2 { - { + \group_begin: \ctexset { chapter / format = { #2 } } \__xdu_n_chapter_head:n { #1 } - } + \group_end: } \cs_new:Npn \__xdu_n_chapter_head:nn #1#2 { @@ -636,10 +664,10 @@ } \cs_new:Npn \__xdu_n_chapter_head_ii:nnn #1#2#3 { - { + \group_begin: \ctexset { chapter / format = { #3 } } \__xdu_n_chapter_head:nn { #1 } { #2 } - } + \group_end: } \cs_new:Npn \__xdu_n_chapter_head_toc:n #1 { @@ -653,13 +681,20 @@ \chapter* { #2 } \markboth { #1 } { } } +\cs_new:Npn \__xdu_n_chapter_head_toc_ii:nn #1#2 + { + \group_begin: + \ctexset { chapter / format = { #2 } } + \__xdu_n_chapter_head_toc:n { #1 } + \group_end: + } \cs_new:Npn \__xdu_typeout_keywords:nNn #1#2#3 { - \str_clear_new:N \l__xdu_keywords_label_str - \str_set:Nn \l__xdu_keywords_label_str { #1 } + \tl_clear_new:N \l__xdu_keywords_label_str + \tl_set:Nn \l__xdu_keywords_label_tl { #1 } \dim_zero_new:N \l__xdu_keywords_label_dim - \__xdu_get_text_width:NV \l__xdu_keywords_label_dim \l__xdu_keywords_label_str - \begin { list } { \l__xdu_keywords_label_str } + \__xdu_get_text_width:NV \l__xdu_keywords_label_dim \l__xdu_keywords_label_tl + \begin { list } { \l__xdu_keywords_label_tl } { \labelwidth \l__xdu_keywords_label_dim \labelsep \c_zero_dim @@ -669,6 +704,14 @@ \item \clist_use:Nnnn #2 { #3 } { #3 } { #3 } \end { list } } +\dim_new:N \l__xdu_str_dim +\box_new:N \l__xdu_str_box +\cs_new:Npn \__xdu_str_max_dim:Nn #1#2 + { + \hbox_set:Nn \l__xdu_str_box { #2 } + \dim_set:Nn \l__xdu_str_dim { \box_wd:N \l__xdu_str_box } + \dim_set:Nn #1 { \dim_max:nn { \l__xdu_str_dim } { #1 } } + } \NewDocumentCommand \noauxwrite { m } { \if@filesw @@ -996,6 +1039,7 @@ { \captionsetup [ subfloat ] { subrefformat = parens } } { } } +\PassOptionsToPackage { labelformat = simple } { subcaption } \ctex_at_end_preamble:n { \@ifpackageloaded { subcaption } @@ -1040,7 +1084,7 @@ } { } } -\RequirePackage{ hyperref } +\RequirePackage { hyperref } \hypersetup { bookmarksnumbered, @@ -1095,6 +1139,7 @@ { \group_begin: \citestyle { numbers } \cite { #1 } \group_end: } } { + \PassOptionsToPackage { \l__xdu_biblatex_option_tl } { biblatex } \RequirePackage { biblatex } \clist_map_inline:Nn \l__xdu_bib_file_clist { \addbibresource { #1 } } } @@ -1168,20 +1213,6 @@ \hfil } } -\cs_new_protected:Npn \__xdu_split_title:Nn #1#2 - { - \seq_new:N \l__xdu_title_seq - \tl_if_in:nnTF { #2 } { \\ } - { - \seq_set_split:Nnn \l__xdu_title_seq { \\ } { #2 } - \clist_set_from_seq:NN #1 \l__xdu_title_seq - } - { - \clist_put_right:Nx #1 { \tl_range:nnn { #2 } { 1 } { 14 } } - \clist_put_right:Nx #1 { \tl_range:nnn { #2 } { 15 } { -1 } } - } - } -\cs_generate_variant:Nn \__xdu_split_title:Nn { NV } \bool_new:N \l__xdu_is_ent_bool \bool_new:N \l__xdu_is_wide_bool \ctex_at_end_preamble:n @@ -1236,7 +1267,7 @@ \__xdu_cover_iii:nnnn { 校外导师姓名 } { rm } { -3 } { \l__xdu_supv_ent_str } \__xdu_cover_iii:nnnn { 校内导师姓名 } { rm } { -3 } { \l__xdu_supv_sch_str } } - { + \group_begin: \__xdu_cover_iii:nnnn { 导师姓名 } { rm } { -3 } { \l__xdu_supv_str } \tl_if_blank:VF \l__xdu_supv_dept_str { @@ -1246,7 +1277,7 @@ { -3 } { \l__xdu_supv_dept_str } } - } + \group_end: \cleardoublepage \__xdu_load_main_geometry: \pagestyle { plain } @@ -1259,30 +1290,30 @@ { 摘 { \quad } 要 } { \__xdu_sf_family: \zihao { 3 } \centering } } - { + \group_begin: \dim_set:Nn \parindent { 2 \ccwd } \rmfamily \zihao { -4 } \file_if_exist_input:n { \l__xdu_abstract_zh_tl } - } - \cs_new:Npn \__xdu_keywords_space: { \hspace{ 2em plus 1em minus 1em } } - { + \group_end: + \cs_new:Npn \__xdu_keywords_space: { \hspace { 2em plus 1em minus 1em } } + \group_begin: \sffamily \zihao { -4 } \par \__xdu_typeout_keywords:nNn { 关键词: } { \l__xdu_keywords_zh_clist } { \__xdu_keywords_space: } - } + \group_end: \cleardoublepage \__xdu_n_chapter_head_ii:nn { ABSTRACT } { \rmfamily \zihao { 3 } \bfseries \centering } - { + \group_begin: \dim_set:Nn \parindent { 2 \ccwd } \rmfamily \zihao { -4 } \file_if_exist_input:n { \l__xdu_abstract_en_tl } - } - { + \group_end: + \group_begin: \rmfamily \zihao { -4 } \bfseries \par \__xdu_typeout_keywords:nNn { Keywords: } { \l__xdu_keywords_en_clist } { \__xdu_keywords_space: } - } + \group_end: \cleardoublepage \setcounter { tocdepth } { 5 } \__xdu_n_chapter_head:nn @@ -1304,14 +1335,14 @@ \__xdu_n_chapter_head_toc:nn { \__xdu_lang_switch:nn { 致谢 } { Acknowledgements } } { \__xdu_lang_switch:nn { 致 { \quad } 谢 } { Acknowledgements } } - { + \group_begin: \dim_set:Nn \parindent { 2 \ccwd } \rmfamily \zihao { -4 } \file_if_exist_input:n { \l__xdu_ack_tl } - } + \group_end: \cs_set:Npn \bibname { \__xdu_lang_switch:nn { 参考文献 } { Bibliography } } \__xdu_n_chapter_head_toc:n { \bibname } - { + \group_begin: \tl_if_eq:NnTF \l__xdu_bib_tool_tl { bibtex } { \cs_set:Npn \bibsection { } @@ -1323,7 +1354,7 @@ \cs_set:Npn \bibfont { \__xdu_rm_family: \zihao { 5 } } \printbibliography } - } + \group_end: } %% %% -- cgit v1.2.3