diff options
author | Karl Berry <karl@freefriends.org> | 2022-05-03 20:24:11 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-05-03 20:24:11 +0000 |
commit | 82afdbf8d008441ef289e9fca2a80c058f55849f (patch) | |
tree | 9a8778f40fe86af1b5eee516dcdaac88110a7bbc /Master/texmf-dist/tex | |
parent | 4186dc31275a1c781f9280fa0082d5051d8b38b7 (diff) |
xduts (3may22)
git-svn-id: svn://tug.org/texlive/trunk@63219 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r-- | Master/texmf-dist/tex/xelatex/xduts/xdufont.sty | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/xelatex/xduts/xdupgthesis.cls | 776 | ||||
-rw-r--r-- | Master/texmf-dist/tex/xelatex/xduts/xduugthesis.cls | 201 |
3 files changed, 914 insertions, 67 deletions
diff --git a/Master/texmf-dist/tex/xelatex/xduts/xdufont.sty b/Master/texmf-dist/tex/xelatex/xduts/xdufont.sty index bb245bf9f6f..935e2dfcd35 100644 --- a/Master/texmf-dist/tex/xelatex/xduts/xdufont.sty +++ b/Master/texmf-dist/tex/xelatex/xduts/xdufont.sty @@ -21,14 +21,14 @@ %% The Current Maintainer of this work is @note286 in GitHub and CTAN. %% %% This work consists of the files README.md, xduts.dtx, and xduts.ins -%% and the derived files xduts.pdf, xduugthesis.cls, and xdufont.sty. +%% and the derived files xduts.pdf, xdufont.sty, xdupgthesis.cls, and xduugthesis.cls. %% %% The copyright of xidian-text.pdf and xidian-logo.pdf is Xidian University. %% \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} \ProvidesExplPackage{xdufont} - {2022/04/16}{1.2.0.0} + {2022/05/03}{1.8.1.0} {Xidian University Font package} \RequirePackage { xparse, l3keys2e } \PassOptionsToPackage { quiet } { xeCJK } diff --git a/Master/texmf-dist/tex/xelatex/xduts/xdupgthesis.cls b/Master/texmf-dist/tex/xelatex/xduts/xdupgthesis.cls new file mode 100644 index 00000000000..6cedf7dabd0 --- /dev/null +++ b/Master/texmf-dist/tex/xelatex/xduts/xdupgthesis.cls @@ -0,0 +1,776 @@ +%% +%% This is file `xdupgthesis.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% xduts.dtx (with options: `class,thesis,xdupgthesis') +%% +%% Copyright 2022--2022 by @note286 in GitHub and CTAN +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `author-maintained'. +%% +%% The Current Maintainer of this work is @note286 in GitHub and CTAN. +%% +%% This work consists of the files README.md, xduts.dtx, and xduts.ins +%% and the derived files xduts.pdf, xdufont.sty, xdupgthesis.cls, and xduugthesis.cls. +%% +%% The copyright of xidian-text.pdf and xidian-logo.pdf is Xidian University. +%% +\NeedsTeXFormat{LaTeX2e} +\RequirePackage{expl3} +\ProvidesExplClass{xdupgthesis} + {2022/05/03}{1.8.1.0} + {Xidian University Postgraduate Thesis document class} +\RequirePackage { xparse, l3keys2e } +\PassOptionsToPackage { quiet } { xeCJK } +\PassOptionsToClass + { + a4paper, + zihao=-4, + sub4section, + linespread = 1.5, + fontset = none + } + { ctexbook } +\LoadClass { ctexbook } +\RequirePackage { geometry } +\geometry { paper = a4paper } +\RequirePackage { fancyhdr } +\RequirePackage { xeCJKfntef } +\RequirePackage { graphicx } +\tl_new:N \l__xdu_cjk_font_tl +\tl_new:N \l__xdu_fake_bold_tl +\tl_new:N \l__xdu_fake_slant_tl +\tl_new:N \l__xdu_latin_font_tl +\tl_new:N \l__xdu_math_font_tl +\tl_new:N \l__xdu_unicode_math_tl +\tl_new:N \l__xdu_font_type_tl +\tl_new:N \l__xdu_font_path_tl +\keys_define:nn { xdu / style } + { + cjk-font .choices:nn = + { win, adobe, founder, sinotype, fandol, none } + { \tl_set_eq:NN \l__xdu_cjk_font_tl \l_keys_choice_tl }, + cjk-fake-bold .tl_set:N = \l__xdu_fake_bold_tl, + cjk-fake-slant .tl_set:N = \l__xdu_fake_slant_tl, + latin-font .choices:nn = { tacn, thcs, gyre, none } + { \tl_set_eq:NN \l__xdu_latin_font_tl \l_keys_choice_tl }, + math-font .choices:nn = + { + asana, cambria, cm, fira, garamond, lm, libertinus, stix, + bonum, dejavu, pagella, schola, termes, xits, none + } + { \tl_set_eq:NN \l__xdu_math_font_tl \l_keys_choice_tl }, + unicode-math .tl_set:N = \l__xdu_unicode_math_tl, + font-type .choices:nn = { font, file } + { \tl_set_eq:NN \l__xdu_font_type_tl \l_keys_choice_tl }, + font-path .tl_set:N = \l__xdu_font_path_tl + } +\keys_set:nn { xdu } + { + style / cjk-font = fandol, + style / cjk-fake-bold = 3, + style / cjk-fake-slant = 0.2, + style / latin-font = gyre, + style / math-font = cm, + style / unicode-math = { }, + style / font-type = font, + style / font-path = fonts + } +\cs_new:Npn \__xdu_if_platform_macos:FT #1#2 + { \file_if_exist:nTF { /System/Library/Fonts/Menlo.ttc } { #2 } { #1 } } +\cs_new:Npn \__xdu_texmf_font:nn #1#2 + { \__xdu_if_platform_macos:FT { #1 } { #2 } } +\cs_new:Npn \__xdu_select_font:nn #1#2 + { + \str_if_eq:NNTF { \l__xdu_font_type_tl } { font } + { #1 } + { #2 } + } +\cs_new:Npn \__xdu_font_path: + { + \str_if_eq:NNTF { \l__xdu_font_type_tl } { font } + { } + { Path = \l__xdu_font_path_tl / , } + } +\cs_new:Npn \__xdu_cfg_cjk_font_sub_b:n #1 + { + BoldFont = { #1 } + } +\cs_new:Npn \__xdu_cfg_cjk_font_sub_fb:n #1 + { + BoldFont = { #1 }, + BoldFeatures = { FakeBold = \l__xdu_fake_bold_tl } + } +\cs_new:Npn \__xdu_cfg_cjk_font_sub_fs:n #1 + { + SlantedFont = { #1 }, + SlantedFeatures = { FakeSlant = \l__xdu_fake_slant_tl } + } +\cs_new:Npn \__xdu_cfg_cjk_font_sub_fbfs:n #1 + { + BoldSlantedFont = { #1 }, + BoldSlantedFeatures = + { + FakeBold = \l__xdu_fake_bold_tl, + FakeSlant = \l__xdu_fake_slant_tl + } + } +\cs_new:Npn \__xdu_cfg_cjk_font_sub_bfs:n #1 + { + BoldSlantedFont = { #1 }, + BoldSlantedFeatures = { FakeSlant = \l__xdu_fake_slant_tl } + } +\cs_new:Npn \__xdu_cfg_cjk_font_sub_i:n #1 + { + ItalicFont = { #1 } + } +\cs_new:Npn \__xdu_cfg_cjk_font_sub_fi:n #1 + { + ItalicFont = { #1 }, + ItalicFeatures = { FakeSlant = \l__xdu_fake_slant_tl } + } +\cs_new:Npn \__xdu_cfg_cjk_font_sub_ifb:n #1 + { + BoldItalicFont = { #1 }, + BoldItalicFeatures = { FakeBold = \l__xdu_fake_bold_tl } + } +\cs_new:Npn \__xdu_cfg_cjk_font_sub_fifb:n #1 + { + BoldItalicFont = { #1 }, + BoldItalicFeatures = + { + FakeBold = \l__xdu_fake_bold_tl, + FakeSlant = \l__xdu_fake_slant_tl + } + } +\cs_new:Npn \__xdu_cfg_cjk_font_r:n #1 + { + \__xdu_cfg_cjk_font_sub_fb:n { #1 }, + \__xdu_cfg_cjk_font_sub_fs:n { #1 }, + \__xdu_cfg_cjk_font_sub_fbfs:n { #1 }, + \__xdu_cfg_cjk_font_sub_fi:n { #1 }, + \__xdu_cfg_cjk_font_sub_fifb:n { #1 } + } +\cs_new:Npn \__xdu_cfg_cjk_font_rb:nn #1#2 + { + \__xdu_cfg_cjk_font_sub_b:n { #2 }, + \__xdu_cfg_cjk_font_sub_fs:n { #1 }, + \__xdu_cfg_cjk_font_sub_bfs:n { #2 }, + \__xdu_cfg_cjk_font_sub_fi:n { #1 }, + \__xdu_cfg_cjk_font_sub_fifb:n { #1 } + } +\cs_new:Npn \__xdu_cfg_cjk_font_ri:nn #1#2 + { + \__xdu_cfg_cjk_font_sub_fb:n { #1 }, + \__xdu_cfg_cjk_font_sub_fs:n { #1 }, + \__xdu_cfg_cjk_font_sub_fbfs:n { #1 }, + \__xdu_cfg_cjk_font_sub_i:n { #2 }, + \__xdu_cfg_cjk_font_sub_ifb:n { #2 } + } +\cs_new:Npn \__xdu_cfg_cjk_font_rbi:nnn #1#2#3 + { + \__xdu_cfg_cjk_font_sub_b:n { #2 }, + \__xdu_cfg_cjk_font_sub_fs:n { #1 }, + \__xdu_cfg_cjk_font_sub_bfs:n { #2 }, + \__xdu_cfg_cjk_font_sub_i:n { #3 }, + \__xdu_cfg_cjk_font_sub_ifb:n { #3 } + } +\cs_new:Npn \__xdu_set_cjk_main_font:nn #1#2 + { + \setCJKmainfont { #1 } + [ \__xdu_font_path: \__xdu_cfg_cjk_font_ri:nn { #1 } { #2 } ] + } +\cs_new:Npn \__xdu_set_cjk_main_font:nnn #1#2#3 + { + \setCJKmainfont { #1 } + [ \__xdu_font_path: \__xdu_cfg_cjk_font_rbi:nnn { #1 } { #2 } { #3 } ] + } +\cs_new:Npn \__xdu_set_cjk_sans_font:n #1 + { + \setCJKsansfont { #1 } + [ \__xdu_font_path: \__xdu_cfg_cjk_font_r:n { #1 } ] + } +\cs_new:Npn \__xdu_set_cjk_sans_font:nn #1#2 + { + \setCJKsansfont { #1 } + [ \__xdu_font_path: \__xdu_cfg_cjk_font_rb:nn { #1 } { #2 } ] + } +\cs_new:Npn \__xdu_set_cjk_mono_font:n #1 + { + \setCJKmonofont { #1 } + [ \__xdu_font_path: \__xdu_cfg_cjk_font_r:n { #1 } ] + } +\cs_new:Npn \__xdu_load_cjk_font_win: + { + \__xdu_set_cjk_main_font:nn + { \__xdu_select_font:nn { SimSun } { simsun.ttc } } + { \__xdu_select_font:nn { KaiTi } { simkai.ttf } } + \__xdu_set_cjk_sans_font:n + { \__xdu_select_font:nn { SimHei } { simhei.ttf } } + \__xdu_set_cjk_mono_font:n + { \__xdu_select_font:nn { FangSong } { simfang.ttf } } + } +\cs_new:Npn \__xdu_load_cjk_font_adobe: + { + \__xdu_set_cjk_main_font:nn + { \__xdu_select_font:nn { Adobe~Song~Std } { adobesongstd-light.otf } } + { \__xdu_select_font:nn { Adobe~Kaiti~Std } { adobekaitistd-regular.otf } } + \__xdu_set_cjk_sans_font:n + { \__xdu_select_font:nn { Adobe~Heiti~Std } { adobeheitistd-regular.otf } } + \__xdu_set_cjk_mono_font:n + { \__xdu_select_font:nn { Adobe~Fangsong~Std } { Adobe-Fangsong-Std-R-Font.otf } } + } +\cs_new:Npn \__xdu_load_cjk_font_founder: + { + \__xdu_set_cjk_main_font:nn + { \__xdu_select_font:nn { FZShuSong-Z01 } { FZShuSong-Z01.ttf } } + { \__xdu_select_font:nn { FZKai-Z03 } { FZKai-Z03.ttf } } + \__xdu_set_cjk_sans_font:n + { \__xdu_select_font:nn { FZHei-B01 } { FZHei-B01.ttf } } + \__xdu_set_cjk_mono_font:n + { \__xdu_select_font:nn { FZFangSong-Z02 } { FZFSK.TTF } } + } +\cs_new:Npn \__xdu_load_cjk_font_sinotype: + { + \__xdu_set_cjk_main_font:nn + { \__xdu_select_font:nn { STSong } { STSONG.TTF } } + { \__xdu_select_font:nn { STKaiti } { STKAITI.TTF } } + \__xdu_set_cjk_sans_font:nn + { \__xdu_select_font:nn { STXihei } { STXIHEI.TTF } } + { \__xdu_select_font:nn { STHeiti } { STHeiti.ttf } } + \__xdu_set_cjk_mono_font:n + { \__xdu_select_font:nn { STFangsong } { STFANGSO.TTF } } + } +\cs_new:Npn \__xdu_load_cjk_font_fandol: + { + \__xdu_set_cjk_main_font:nnn + { FandolSong-Regular.otf } + { FandolSong-Bold.otf } + { FandolKai-Regular.otf } + \__xdu_set_cjk_sans_font:nn + { FandolHei-Regular.otf } + { FandolHei-Bold.otf } + \__xdu_set_cjk_mono_font:n + { FandolFang-Regular.otf } + } +\cs_new:Npn \__xdu_load_cjk_font_none: { } +\cs_new:Npn \__xdu_set_latin_font:nnn #1#2#3 + { + BoldFont = { #1 }, + SlantedFont = { #2 }, + BoldSlantedFont = { #3 }, + ItalicFont = { #2 }, + BoldItalicFont = { #3 } + } +\cs_new:Npn \__xdu_set_latin_scale: + { Scale = MatchLowercase , } +\cs_new:Npn \__xdu_off_latin_ligatures: + { Ligatures = CommonOff , } +\cs_new:Npn \__xdu_set_latin_main_font:nnnnn #1#2#3#4#5 + { + \str_if_eq:NNTF { \l__xdu_font_type_tl } { font } + { \setmainfont { #1 } } + { + \setmainfont { #2 } + [ + \__xdu_font_path: + \__xdu_set_latin_font:nnn { #3 } { #4 } { #5 } + ] + } + } +\cs_new:Npn \__xdu_set_latin_sans_font:nnnnn #1#2#3#4#5 + { + \str_if_eq:NNTF { \l__xdu_font_type_tl } { font } + { \setsansfont { #1 } [ \__xdu_set_latin_scale: ] } + { + \setsansfont { #2 } + [ + \__xdu_font_path: + \__xdu_set_latin_scale: + \__xdu_set_latin_font:nnn { #3 } { #4 } { #5 } + ] + } + } +\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{ #2 } + [ + \__xdu_font_path: + \__xdu_set_latin_scale: + \__xdu_off_latin_ligatures: + \__xdu_set_latin_font:nnn { #3 } { #4 } { #5 } + ] + } + } +\cs_new:Npn \__xdu_set_latin_main_font:nnnn #1#2#3#4 + { + \setmainfont { #1 } + [ + \__xdu_set_latin_font:nnn { #2 } { #3 } { #4 } + ] + } +\cs_new:Npn \__xdu_set_latin_sans_font:nnnn #1#2#3#4 + { + \setsansfont { #1 } + [ + \__xdu_set_latin_scale: + \__xdu_set_latin_font:nnn { #2 } { #3 } { #4 } + ] + } +\cs_new:Npn \__xdu_set_latin_mono_font:nnnn #1#2#3#4 + { + \setmonofont{ #1 } + [ + \__xdu_set_latin_scale: + \__xdu_off_latin_ligatures: + \__xdu_set_latin_font:nnn { #2 } { #3 } { #4 } + ] + } +\cs_new:Npn \__xdu_load_latin_font_tacn: + { + \__xdu_set_latin_main_font:nnnnn + { Times~New~Roman } { times.ttf } { timesbd.ttf } { timesi.ttf } { timesbi.ttf } + \__xdu_set_latin_sans_font:nnnnn + { Arial } { arial.ttf } { arialbd.ttf } { ariali.ttf } { arialbi.ttf } + \__xdu_set_latin_mono_font:nnnnn + { Courier~New } { cour.ttf } { courbd.ttf } { couri.ttf } { courbi.ttf } + } +\cs_new:Npn \__xdu_load_latin_font_thcs: + { + \__xdu_set_latin_main_font:nnnnn + { Times~New~Roman } + { times.ttf } + { timesbd.ttf } + { timesi.ttf } + { timesbi.ttf } + \__xdu_set_latin_sans_font:nnnnn + { Helvetica } + { Helvetica.ttf } + { Helvetica~Bold.ttf } + { Helvetica~Oblique.ttf } + { Helvetica~Bold~Oblique.ttf } + \__xdu_set_latin_mono_font:nnnnn + { Courier~Std } + { CourierStd.otf } + { CourierStd-Bold.otf } + { CourierStd-Oblique.otf } + { CourierStd-BoldOblique.otf } + } +\cs_new:Npn \__xdu_load_latin_font_gyre: + { + \__xdu_set_latin_main_font:nnnn + { texgyretermes-regular.otf } + { texgyretermes-bold.otf } + { texgyretermes-italic.otf } + { texgyretermes-bolditalic.otf } + \__xdu_set_latin_sans_font:nnnn + { texgyreheros-regular.otf } + { texgyreheros-bold.otf } + { texgyreheros-italic.otf } + { texgyreheros-bolditalic.otf } + \__xdu_set_latin_mono_font:nnnn + { texgyrecursor-regular.otf } + { texgyrecursor-bold.otf } + { texgyrecursor-italic.otf } + { texgyrecursor-bolditalic.otf } + } +\cs_new:Npn \__xdu_load_latin_font_none: { } +\cs_new:Npn \__xdu_load_unicode_math_pkg: + { + \RequirePackage + [ \l__xdu_unicode_math_tl ] + { unicode-math } + } +\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 ] } + } +\cs_new:Npn \__xdu_define_math_font:nn #1#2 + { + \cs_new:cpn { __xdu_load_math_font_ #1 : } + { + \__xdu_load_unicode_math_pkg: + \setmathfont { #2 } + } + } +\clist_map_inline:nn + { + { asana } { Asana-Math.otf }, + { fira } { FiraMath-Regular.otf }, + { garamond } { Garamond-Math.otf }, + { lm } { latinmodern-math.otf }, + { libertinus } { LibertinusMath-Regular.otf }, + { stix } { STIXMath-Regular.otf }, + { bonum } { texgyrebonum-math.otf }, + { dejavu } { texgyredejavu-math.otf }, + { pagella } { texgyrepagella-math.otf }, + { schola } { texgyreschola-math.otf }, + { termes } { texgyretermes-math.otf } + } + { \__xdu_define_math_font:nn #1 } +\cs_new:Npn \__xdu_load_math_font_xits: + { + \__xdu_load_unicode_math_pkg: + \__xdu_if_platform_macos:FT + { + \setmathfont { XITS~Math } + } + { + \__xdu_load_unicode_math_pkg: + \setmathfont { XITSMath-Regular.otf } + \setmathfont { XITSMath-Bold.otf } + [range= { bfup -> up, bfit -> it } ] + } + } +\cs_new:Npn \__xdu_load_math_font_cm: { } +\cs_new:Npn \__xdu_load_math_font_none: { } +\cs_new:Npn \__xdu_load_font: + { + \use:c { __xdu_load_cjk_font_ \l__xdu_cjk_font_tl : } + \use:c { __xdu_load_latin_font_ \l__xdu_latin_font_tl : } + \use:c { __xdu_load_math_font_ \l__xdu_math_font_tl : } + } +\ctex_at_end_preamble:n { \__xdu_load_font: } +\str_new:N \l__xdu_title_str +\str_new:N \l__xdu_title_i_str +\str_new:N \l__xdu_title_ii_str +\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 +\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 +\tl_new:N \l__xdu_ack_tl +\keys_define:nn { xdu / info } + { + title .tl_set:N = \l__xdu_title_str, + 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-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, + acknowledgements .tl_set:N = \l__xdu_ack_tl + } +\keys_set:nn { xdu } + { + info / title = { }, + info / department = { }, + info / major = { }, + info / author = { }, + info / supervisor = { }, + info / supervisor-enterprise = { }, + info / student-id = { }, + info / abstract = { }, + info / abstract* = { }, + info / keywords = { }, + info / keywords* = { }, + info / acknowledgements = { } + } +\tl_new:N \l__xdu_gr_type_tl +\keys_define:nn { xdu / info } + { + graduate-type .choices:nn = { master, doctor } + { \tl_set_eq:NN \l__xdu_gr_type_tl \l_keys_choice_tl } + } +\keys_set:nn { xdu } + { + info / graduate-type = { master }, + } +\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_ref_add_space +\tl_new:N \l__xdu_cap_label_sep_tl +\bool_new:N \l__xdu_tab_small_bool +\bool_new:N \l__xdu_alg_small_bool +\clist_new:N \l__xdu_before_skip_clist +\clist_new:N \l__xdu_after_skip_clist +\tl_new:N \l__xdu_chap_tl +\tl_new:N \l__xdu_sec_tl +\tl_new:N \l__xdu_subsec_tl +\tl_new:N \l__xdu_subsubsec_tl +\tl_new:N \l__xdu_para_tl +\tl_new:N \l__xdu_subpara_tl +\bool_new:N \l__xdu_sym_mgn_bool +\keys_define:nn { xdu / style } + { + en-cjk-font .bool_set:N = \l__xdu_en_cjk_font_bool, + language .choices:nn = { zh, en } + { \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, + 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, + algorithm-small-font .bool_set:N = \l__xdu_alg_small_bool, + before-skip .clist_set:N = \l__xdu_before_skip_clist, + after-skip .clist_set:N = \l__xdu_after_skip_clist, + chap-zihao .tl_set:N = \l__xdu_chap_tl, + sec-zihao .tl_set:N = \l__xdu_sec_tl, + subsec-zihao .tl_set:N = \l__xdu_subsec_tl, + subsubsec-zihao .tl_set:N = \l__xdu_subsubsec_tl, + para-zihao .tl_set:N = \l__xdu_para_tl, + subpara-zihao .tl_set:N = \l__xdu_subpara_tl, + symmetric-margin .bool_set:N = \l__xdu_sym_mgn_bool + } +\keys_set:nn { xdu } + { + style / en-cjk-font = false, + style / language = zh, + style / bib-backend = biblatex, + style / bib-resource = { }, + style / ref-add-space = false, + style / caption-label-sep = { 0.75em }, + style / table-small-font = true, + style / algorithm-small-font = true, + style / before-skip = { 24pt, 18pt, 12pt, 12pt, 12pt, 12pt }, + style / after-skip = { 18pt, 12pt, 6pt, 6pt, 6pt, 6pt }, + style / symmetric-margin = false + } +\NewDocumentCommand \xdusetup { m } + { \keys_set:nn { xdu } { #1 } } +\keys_define:nn { xdu } + { + style .meta:nn = { xdu / style } { #1 }, + info .meta:nn = { xdu / info } { #1 } + } +\ProcessKeysOptions { xdu / style } +\str_new:N \l__xdu_header_str +\ctex_at_end_preamble:n + { + \__xdu_lang_switch:nn + { + \tl_if_eq:NnTF \l__xdu_gr_type_tl { master } + { \str_set:Nn \l__xdu_header_str { 西安电子科技大学硕士学位论文 } } + { \str_set:Nn \l__xdu_header_str { 西安电子科技大学博士学位论文 } } + } + { + \tl_if_eq:NnTF \l__xdu_gr_type_tl { master } + { + \str_set:Nn \l__xdu_header_str + { Master~Thesis~of~XIDIAN~UNIVERSITY } + } + { + \str_set:Nn \l__xdu_header_str + { Doctoral~Dissertation~of~XIDIAN~UNIVERSITY } + } + } + } +\cs_new:Npn \__xdu_lang_switch:nn #1#2 + { + \str_if_eq:NNTF { \l__xdu_lang_tl } { zh } + { #1 } + { #2 } + } +\cs_new:Npn \__xdu_rm_family: + { \bool_if:NTF \l__xdu_en_cjk_font_bool { \CJKfamily+ { rm } } { \rmfamily } } +\cs_new:Npn \__xdu_sf_family: + { \bool_if:NTF \l__xdu_en_cjk_font_bool { \CJKfamily+ { sf } } { \sffamily } } +\cs_new:Npn \__xdu_tt_family: + { \bool_if:NTF \l__xdu_en_cjk_font_bool { \CJKfamily+ { tt } } { \ttfamily } } +\ctex_at_end_preamble:n + { + \str_new:N \l__xdu_pure_title_str + \str_set_eq:NN \l__xdu_pure_title_str \l__xdu_title_str + \str_remove_all:Nn \l__xdu_pure_title_str { \\ } + } +\cs_new:Npn \__xdu_uline:n #1 + { \CJKunderline [ thickness = 0.5pt ] { #1 } } +\cs_new:Npn \__xdu_tl_set_if_empty:Nn #1#2 + { \tl_if_empty:NT #1 { \tl_set:Nn #1 { #2 } } } +\cs_new:Npn \__xdu_get_text_width:Nn #1#2 + { + \box_clear_new:N \l__xdu_tmp_box + \hbox_set:Nn \l__xdu_tmp_box { #2 } + \dim_set:Nn #1 { \box_wd:N \l__xdu_tmp_box } + } +\cs_generate_variant:Nn \__xdu_get_text_width:Nn { NV } +\cs_new:Npn \__xdu_add_bookmark:n #1 + { \currentpdfbookmark { #1 } { #1 } } +\cs_new:Npn \__xdu_add_toc:n #1 + { + \cleardoublepage + \phantomsection + \addcontentsline { toc } { chapter } { #1 } + } +\cs_new:Npn \__xdu_n_chapter_head:n #1 + { + \__xdu_add_bookmark:n { #1 } + \chapter* { #1 } + \markboth { #1 } { } + } +\cs_new:Npn \__xdu_n_chapter_head_ii:nn #1#2 + { + { + \ctexset { chapter / format = { #2 } } + \__xdu_n_chapter_head:n { #1 } + } + } +\cs_new:Npn \__xdu_n_chapter_head:nn #1#2 + { + \__xdu_add_bookmark:n { #1 } + \chapter* { #2 } + \markboth { #1 } { } + } +\cs_new:Npn \__xdu_n_chapter_head_ii:nnn #1#2#3 + { + { + \ctexset { chapter / format = { #3 } } + \__xdu_n_chapter_head:nn { #1 } { #2 } + } + } +\cs_new:Npn \__xdu_n_chapter_head_toc:n #1 + { + \__xdu_add_toc:n { #1 } + \chapter* { #1 } + \markboth { #1 } { } + } +\cs_new:Npn \__xdu_n_chapter_head_toc:nn #1#2 + { + \__xdu_add_toc:n { #1 } + \chapter* { #2 } + \markboth { #1 } { } + } +\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 } + \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 } + { + \labelwidth \l__xdu_keywords_label_dim + \labelsep \c_zero_dim + \rightmargin \c_zero_dim + \leftmargin \l__xdu_keywords_label_dim + } + \item \clist_use:Nnnn #2 { #3 } { #3 } { #3 } + \end { list } + } +\newgeometry + { + top = 3cm, + bottom = 2.5cm, + inner = 2.5cm, + outer = 2.5cm, + bindingoffset = 0.5cm, + head = 2cm, + foot = 0.75cm + } +\savegeometry { main } +\newgeometry + { + top = 3cm, + bottom = 2.5cm, + inner = 2.75cm, + outer = 2.75cm, + head = 2cm, + foot = 0.75cm + } +\savegeometry { main-sym } +\newgeometry + { + top = 3cm, + bottom = 2cm, + inner = 3cm, + outer = 2.5cm + } +\savegeometry { cover } +\cs_new:Npn \__xdu_load_main_geometry: + { + \bool_if:NTF \l__xdu_sym_mgn_bool + { \loadgeometry { main-sym } } + { \loadgeometry { main } } + } +\clist_map_inline:nn + { + { chinese }, + { arabic }, + { roman }, + { Roman }, + { alph }, + { Alph }, + { fnsymbol } + } + { \cs_new_eq:cc { __xdu _ #1 : } { #1 } } +\tl_set:Nn \chaptername { Chapter } +\tl_new:N \l__xdu_chaptername +\tl_set_eq:NN \l__xdu_chaptername \chaptername +\renewcommand { \chaptermark } [ 1 ] + { + \markboth + { + \__xdu_lang_switch:nn + { \CTEXthechapter } + { \l__xdu_chaptername \space \__xdu_Roman: { chapter } } + \quad #1 + } + { } + } +\fancypagestyle { plain } + { + \pagestyle { fancy } + \fancyhf { } + \fancyhead [ CE ] { \__xdu_rm_family: \zihao { 5 } \l__xdu_header_str } + \fancyhead [ CO ] { \__xdu_rm_family: \zihao { 5 } \leftmark } + \fancyfoot [ CE ] { \__xdu_rm_family: \zihao { -5 } \thepage } + \fancyfoot [ CO ] { \__xdu_rm_family: \zihao { -5 } \thepage } + \cs_set:Npn \headrulewidth { 0.5pt } + \cs_set:Npn \headrule + { + \hrule \@height \headrulewidth + \skip_vertical:N \headrulewidth + \hrule \@height \headrulewidth + \skip_vertical:N -\headrulewidth + } + } +\fancypagestyle { front } + { + \pagestyle { plain } + \fancyfoot [ CE ] { \rmfamily \zihao { -5 } \thepage } + \fancyfoot [ CO ] { \rmfamily \zihao { -5 } \thepage } + } +\renewcommand { \frontmatter } + { + \loadgeometry { cover } + \pagestyle { empty } + \__xdu_load_main_geometry: + \pagestyle { front } + \pagenumbering { Roman } + } +\renewcommand { \mainmatter } + { + \__xdu_load_main_geometry: + \pagestyle { plain } + \pagenumbering { arabic } + } +%% +%% +%% End of file `xdupgthesis.cls'. diff --git a/Master/texmf-dist/tex/xelatex/xduts/xduugthesis.cls b/Master/texmf-dist/tex/xelatex/xduts/xduugthesis.cls index 4236cdc5506..11dfd6d8691 100644 --- a/Master/texmf-dist/tex/xelatex/xduts/xduugthesis.cls +++ b/Master/texmf-dist/tex/xelatex/xduts/xduugthesis.cls @@ -4,7 +4,7 @@ %% %% The original source files were: %% -%% xduts.dtx (with options: `class,xduugthesis') +%% xduts.dtx (with options: `class,thesis,xduugthesis') %% %% Copyright 2022--2022 by @note286 in GitHub and CTAN %% @@ -21,19 +21,20 @@ %% The Current Maintainer of this work is @note286 in GitHub and CTAN. %% %% This work consists of the files README.md, xduts.dtx, and xduts.ins -%% and the derived files xduts.pdf, xduugthesis.cls, and xdufont.sty. +%% and the derived files xduts.pdf, xdufont.sty, xdupgthesis.cls, and xduugthesis.cls. %% %% The copyright of xidian-text.pdf and xidian-logo.pdf is Xidian University. %% \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} \ProvidesExplClass{xduugthesis} - {2022/04/16}{1.2.0.0} + {2022/05/03}{1.8.1.0} {Xidian University Undergraduate Thesis document class} \RequirePackage { xparse, l3keys2e } \PassOptionsToPackage { quiet } { xeCJK } \PassOptionsToClass { + a4paper, zihao=-4, sub4section, linespread = 1.5, @@ -453,10 +454,7 @@ \str_new:N \l__xdu_major_str \str_new:N \l__xdu_author_str \str_new:N \l__xdu_supv_str -\str_new:N \l__xdu_supv_dept_str \str_new:N \l__xdu_supv_ent_str -\str_new:N \l__xdu_supv_sch_str -\str_new:N \l__xdu_class_id_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 @@ -470,10 +468,7 @@ 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-department .tl_set:N = \l__xdu_supv_dept_str, supervisor-enterprise .tl_set:N = \l__xdu_supv_ent_str, - supervisor-school .tl_set:N = \l__xdu_supv_sch_str, - class-id .tl_set:N = \l__xdu_class_id_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, @@ -483,21 +478,33 @@ } \keys_set:nn { xdu } { - info / title = { }, - info / department = { }, - info / major = { }, - info / author = { }, - info / supervisor = { }, - info / supervisor-department = { }, - info / supervisor-enterprise = { }, - info / supervisor-school = { }, - info / class-id = { }, - info / student-id = { }, - info / abstract = { }, - info / abstract* = { }, - info / keywords = { }, - info / keywords* = { }, - info / acknowledgements = { } + info / title = { }, + info / department = { }, + info / major = { }, + info / author = { }, + info / supervisor = { }, + info / supervisor-enterprise = { }, + info / student-id = { }, + info / abstract = { }, + info / abstract* = { }, + info / keywords = { }, + info / keywords* = { }, + info / acknowledgements = { } + } +\str_new:N \l__xdu_supv_dept_str +\str_new:N \l__xdu_supv_sch_str +\str_new:N \l__xdu_class_id_str +\keys_define:nn { xdu / info } + { + supervisor-department .tl_set:N = \l__xdu_supv_dept_str, + supervisor-school .tl_set:N = \l__xdu_supv_sch_str, + class-id .tl_set:N = \l__xdu_class_id_str + } +\keys_set:nn { xdu } + { + info / supervisor-department = { }, + info / supervisor-school = { }, + info / class-id = { } } \bool_new:N \l__xdu_en_cjk_font_bool \tl_new:N \l__xdu_lang_tl @@ -616,6 +623,13 @@ \chapter* { #2 } \markboth { #1 } { } } +\cs_new:Npn \__xdu_n_chapter_head_ii:nnn #1#2#3 + { + { + \ctexset { chapter / format = { #3 } } + \__xdu_n_chapter_head:nn { #1 } { #2 } + } + } \cs_new:Npn \__xdu_n_chapter_head_toc:n #1 { \__xdu_add_toc:n { #1 } @@ -679,13 +693,27 @@ { \loadgeometry { main-sym } } { \loadgeometry { main } } } +\clist_map_inline:nn + { + { chinese }, + { arabic }, + { roman }, + { Roman }, + { alph }, + { Alph }, + { fnsymbol } + } + { \cs_new_eq:cc { __xdu _ #1 : } { #1 } } +\tl_set:Nn \chaptername { Chapter } +\tl_new:N \l__xdu_chaptername +\tl_set_eq:NN \l__xdu_chaptername \chaptername \renewcommand { \chaptermark } [ 1 ] { \markboth { \__xdu_lang_switch:nn { \CTEXthechapter } - { \chaptername\space\Roman { chapter } } + { \l__xdu_chaptername \space \__xdu_Roman: { chapter } } \quad #1 } { } @@ -705,7 +733,7 @@ { chapter / name = { - \__xdu_lang_switch:nn { 第 } { \chaptername\space }, + \__xdu_lang_switch:nn { 第 } { \l__xdu_chaptername \space }, \__xdu_lang_switch:nn { 章 } { } }, section / name = { }, @@ -714,19 +742,31 @@ paragraph / name = { }, subparagraph / name = { } } -\ctexset +\ctex_at_end_preamble:n { - chapter / number = + \__xdu_lang_switch:nn { - \__xdu_lang_switch:nn - { \chinese { chapter } } - { \Roman { chapter } } - }, - section / number = { \thesection }, - subsection / number = { \thesubsection }, - subsubsection / number = { \thesubsubsection }, - paragraph / number = { \theparagraph }, - subparagraph / number = { \thesubparagraph } + \ctexset + { + chapter / number = { \chinese { chapter } }, + section / number = { \thesection }, + subsection / number = { \thesubsection }, + subsubsection / number = { \thesubsubsection }, + paragraph / number = { \theparagraph }, + subparagraph / number = { \thesubparagraph } + } + } + { + \ctexset + { + chapter / number = { \Roman { chapter } }, + section / number = { \thesection }, + subsection / number = { \thesubsection }, + subsubsection / number = { ( \roman { subsubsection } ) }, + paragraph / number = { ( \alph { paragraph } ) }, + subparagraph / number = { ( \arabic { subparagraph } ) } + } + } } \cs_new:Npn \__xdu_zh_t:nnn #1#2#3 { @@ -737,17 +777,24 @@ { \raggedright } } \cs_new:Npn \__xdu_en_t:nn #1#2 - { \zihao { \use:c { l__xdu_ #1 _tl } } \raggedright \skip_horizontal:n { #2 ex } } + { + \rmfamily + \zihao { \use:c { l__xdu_ #1 _tl } } + \bfseries + \str_if_eq:ccTF { #2 } { c } + { \centering } + { \raggedright } + } \ctex_at_end_preamble:n { \__xdu_lang_switch:nn { - \__xdu_tl_set_if_empty:Nn \l__xdu_chap_tl { 3 } - \__xdu_tl_set_if_empty:Nn \l__xdu_sec_tl { 4 } - \__xdu_tl_set_if_empty:Nn \l__xdu_subsec_tl { 4 } - \__xdu_tl_set_if_empty:Nn \l__xdu_subsubsec_tl { 4 } - \__xdu_tl_set_if_empty:Nn \l__xdu_para_tl { 4 } - \__xdu_tl_set_if_empty:Nn \l__xdu_subpara_tl { 4 } + \__xdu_tl_set_if_empty:Nn \l__xdu_chap_tl { 3 } + \__xdu_tl_set_if_empty:Nn \l__xdu_sec_tl { 4 } + \__xdu_tl_set_if_empty:Nn \l__xdu_subsec_tl { 4 } + \__xdu_tl_set_if_empty:Nn \l__xdu_subsubsec_tl { 4 } + \__xdu_tl_set_if_empty:Nn \l__xdu_para_tl { 4 } + \__xdu_tl_set_if_empty:Nn \l__xdu_subpara_tl { 4 } \ctexset { chapter / format = { \__xdu_zh_t:nnn { sf } { chap } { c } }, @@ -759,20 +806,20 @@ } } { - \__xdu_tl_set_if_empty:Nn \l__xdu_chap_tl { 4 } - \__xdu_tl_set_if_empty:Nn \l__xdu_sec_tl { -4 } + \__xdu_tl_set_if_empty:Nn \l__xdu_chap_tl { 3 } + \__xdu_tl_set_if_empty:Nn \l__xdu_sec_tl { 4 } \__xdu_tl_set_if_empty:Nn \l__xdu_subsec_tl { -4 } \__xdu_tl_set_if_empty:Nn \l__xdu_subsubsec_tl { -4 } \__xdu_tl_set_if_empty:Nn \l__xdu_para_tl { -4 } \__xdu_tl_set_if_empty:Nn \l__xdu_subpara_tl { -4 } \ctexset { - chapter / format = { \__xdu_en_t:nn { chap } { 0 } }, - section / format = { \__xdu_en_t:nn { sec } { 4 } }, - subsection / format = { \__xdu_en_t:nn { subsec } { 8 } }, - subsubsection / format = { \__xdu_en_t:nn { subsubsec } { 12 } }, - paragraph / format = { \__xdu_en_t:nn { para } { 16 } }, - subparagraph / format = { \__xdu_en_t:nn { subpara } { 20 } } + chapter / format = { \__xdu_en_t:nn { chap } { c } }, + section / format = { \__xdu_en_t:nn { sec } { l } }, + subsection / format = { \__xdu_en_t:nn { subsec } { l } }, + subsubsection / format = { \__xdu_en_t:nn { subsubsec } { l } }, + paragraph / format = { \__xdu_en_t:nn { para } { l } }, + subparagraph / format = { \__xdu_en_t:nn { subpara } { l } } } } } @@ -923,6 +970,19 @@ { \end@float } } } +\ctex_at_end_preamble:n + { + \@ifpackageloaded { longtable } + { + \bool_if:NT \l__xdu_tab_small_bool + { + \ctex_gadd_ltxhook:nn + { env/longtable/begin } + { \small } + } + } + { } + } \RequirePackage{hyperref} \hypersetup { @@ -978,6 +1038,9 @@ \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 } } @@ -1068,7 +1131,7 @@ { \__xdu_cover_iii:nnnnn { 4em } { #1 } { #2 } { #3 } { #4 } } } } -\renewcommand{\frontmatter} +\renewcommand { \frontmatter } { \loadgeometry { cover } \pagestyle { empty } @@ -1115,11 +1178,16 @@ \__xdu_load_main_geometry: \pagestyle { plain } \pagenumbering { Roman } - \__xdu_n_chapter_head:nn - { 摘要 } - { 摘 { \quad } 要 } + \__xdu_lang_switch:nn + { \__xdu_n_chapter_head:nn { 摘要 } { 摘 { \quad } 要 } } + { + \__xdu_n_chapter_head_ii:nnn + { 摘要 } + { 摘 { \quad } 要 } + { \__xdu_sf_family: \zihao { 3 } \centering } + } { - \dim_set:Nn \parindent { 2\ccwd } + \dim_set:Nn \parindent { 2 \ccwd } \rmfamily \zihao { -4 } \file_if_exist_input:n { \l__xdu_abstract_zh_tl } } @@ -1128,9 +1196,9 @@ \__xdu_typeout_keywords:nNn { 关键词: } { \l__xdu_keywords_zh_clist } { \qquad } } \cleardoublepage - \__xdu_n_chapter_head_ii:nn {ABSTRACT} { \rmfamily \zihao{3} \bfseries \centering } + \__xdu_n_chapter_head_ii:nn {ABSTRACT} { \rmfamily \zihao { 3 } \bfseries \centering } { - \dim_set:Nn \parindent { 2\ccwd } + \dim_set:Nn \parindent { 2 \ccwd } \rmfamily \zihao { -4 } \file_if_exist_input:n { \l__xdu_abstract_en_tl } } @@ -1146,33 +1214,36 @@ \@starttoc { toc } \cleardoublepage } -\renewcommand{\mainmatter} +\renewcommand { \mainmatter } { \__xdu_load_main_geometry: \pagestyle { plain } \pagenumbering { arabic } - \dim_set:Nn \parindent { 2\ccwd } + \dim_set:Nn \parindent { 2 \ccwd } \rmfamily \zihao { -4 } } -\renewcommand{\backmatter} +\renewcommand { \backmatter } { \__xdu_n_chapter_head_toc:nn { \__xdu_lang_switch:nn { 致谢 } { Acknowledgements } } { \__xdu_lang_switch:nn { 致 { \quad } 谢 } { Acknowledgements } } { - \dim_set:Nn \parindent { 2\ccwd } + \dim_set:Nn \parindent { 2 \ccwd } \rmfamily \zihao { -4 } \file_if_exist_input:n { \l__xdu_ack_tl } } - \__xdu_add_toc:n { \__xdu_lang_switch:nn { 参考文献 } { Bibliography } } + \cs_set:Npn \bibname { \__xdu_lang_switch:nn { 参考文献 } { Bibliography } } + \__xdu_n_chapter_head_toc:n { \bibname } { \tl_if_eq:NnTF \l__xdu_bib_tool_tl { bibtex } { + \cs_set:Npn \bibsection { } \__xdu_rm_family: \zihao { 5 } \bibliography { \l__xdu_bib_file_clist } } { - \renewcommand { \bibfont } { \__xdu_rm_family: \zihao { 5 } } + \defbibheading { bibliography } [ ] { } + \cs_set:Npn \bibfont { \__xdu_rm_family: \zihao { 5 } } \printbibliography } } |