diff options
author | Karl Berry <karl@freefriends.org> | 2019-03-17 21:38:24 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-03-17 21:38:24 +0000 |
commit | 39948ee1306a518baab7bd81a847e11249643885 (patch) | |
tree | c553796b1fc65014f8f3139236889456dc917f6a /Master/texmf-dist/tex/latex/fduthesis/fduthesis.cls | |
parent | 256f8bfa32f3e9134067457fc40c38ee02d01253 (diff) |
fduthesis (17mar19)
git-svn-id: svn://tug.org/texlive/trunk@50428 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/fduthesis/fduthesis.cls')
-rw-r--r-- | Master/texmf-dist/tex/latex/fduthesis/fduthesis.cls | 594 |
1 files changed, 272 insertions, 322 deletions
diff --git a/Master/texmf-dist/tex/latex/fduthesis/fduthesis.cls b/Master/texmf-dist/tex/latex/fduthesis/fduthesis.cls index 8620fc6fc8a..cdfa7c20913 100644 --- a/Master/texmf-dist/tex/latex/fduthesis/fduthesis.cls +++ b/Master/texmf-dist/tex/latex/fduthesis/fduthesis.cls @@ -6,7 +6,7 @@ %% %% fduthesis.dtx (with options: `class') %% -%% Copyright (C) 2017, 2018 by Xiangdong Zeng <xdzeng96@gmail.com> +%% Copyright (C) 2017--2019 by Xiangdong Zeng <xdzeng96@gmail.com> %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -41,20 +41,18 @@ %% fduthesis.pdf, %% fduthesis-en.pdf, %% fduthesis-code.pdf, -%% latexmkrc, -%% latexmkrc-en, %% and README.md. %% \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} -\GetIdInfo $Id: fduthesis.dtx 0.7b 2018-05-06 12:00:00Z Xiangdong Zeng <xdzeng96@gmail.com> $ +\GetIdInfo $Id: fduthesis.dtx 0.7c 2019-03-17 12:00:00Z Xiangdong Zeng <xdzeng96@gmail.com> $ {Thesis template for Fudan University} \ProvidesExplClass{\ExplFileName} {\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} \RequirePackage { xparse, xtemplate, l3keys2e } \clist_map_inline:nn { expl3, xparse, xtemplate, l3keys2e } { - \@ifpackagelater {#1} { 2017/12/16 } + \@ifpackagelater {#1} { 2018/05/12 } { } { \msg_error:nnn { fduthesis } { l3-too-old } {#1} } } \msg_new:nnn { fduthesis } { l3-too-old } @@ -242,7 +240,9 @@ \__fdu_check_package:nnn { fontspec } { 2017/09/22 } { 2.6e } \__fdu_check_package:nnn { unicode-math } { 2017/11/18 } { 0.8i } \sys_if_engine_xetex:T - { \__fdu_check_package:nnn { xeCJK } { 2017/08/07 } { 3.5.0 } } + { \__fdu_check_package:nnn { xeCJK } { 2017/08/07 } { 3.5.0 } } +\sys_if_engine_luatex:T + { \__fdu_check_package:nnn { xunicode-addon } { 2018/04/30 } { 3.7.1 } } \geometry { paper = a4paper, @@ -251,353 +251,308 @@ headheight = 15 pt } \bool_if:NT \g__fdu_draft_bool { \geometry { showframe } } -\prop_new:N \g__fdu_font_name_prop -\prop_new:N \g__fdu_font_options_prop -\prop_new:N \g__fdu_cjk_font_name_prop -\prop_new:N \g__fdu_cjk_font_options_prop +\tl_new:N \g__fdu_font_set_tl +\tl_new:N \g__fdu_cjk_font_set_tl \keys_define:nn { fdu / style } { - font .choice:, - font .value_required:n = true, - font / libertinus .code:n = - { - \fdu_choose_font:nn { main } { Libertinus~ Serif } - \fdu_choose_font:nn { sans } { Libertinus~ Sans } - \fdu_choose_font_with_option:nnn { mono } - { TeX~ Gyre~ Cursor } { Ligatures = Common Off } - \fdu_choose_font:nn { math } { Libertinus~ Math } - \keys_set:nn { fdu / style } { footnote-style = libertinus } - }, - font / lm .code:n = - { - \fdu_choose_font:nn { main } { Latin~ Modern~ Roman } - \fdu_choose_font:nn { sans } { Latin~ Modern~ Sans } - \fdu_choose_font:nn { mono } { Latin~ Modern~ Mono } - \fdu_choose_font:nn { math } { Latin~ Modern~ Math } - \keys_set:nn { fdu / style } { footnote-style = pifont } - }, - font / palatino .code:n = - { - \fdu_choose_font:nn { main } { TeX~ Gyre~ Pagella } - \fdu_choose_font:nn { sans } { TeX~ Gyre~ Heros } - \fdu_choose_font_with_option:nnn { mono } - { TeX~ Gyre~ Cursor } { Ligatures = Common Off } - \fdu_choose_font:nn { math } { TeX~ Gyre~ Pagella~ Math } - \keys_set:nn { fdu / style } { footnote-style = pifont } - }, - font / times .code:n = - { - \fdu_choose_font_with_option:nnn { main } { XITS } - { - UprightFeatures = { SmallCapsFont = * }, - BoldFeatures = { SmallCapsFont = *~ Bold }, - ItalicFeatures = { SmallCapsFont = *~ Italic }, - BoldItalicFeatures = { SmallCapsFont = *~ Bold~ Italic }, - } - \fdu_choose_font:nn { sans } { TeX~ Gyre~ Heros } - \fdu_choose_font_with_option:nnn { mono } - { TeX~ Gyre~ Cursor } { Ligatures = Common Off } - \fdu_choose_font:nn { math } { XITS~ Math } - \keys_set:nn { fdu / style } { footnote-style = xits } - }, - font / none .code:n = - { - \__fdu_initialize_prop:Nn \g__fdu_font_name_prop - { main, sans, mono, math } - \__fdu_initialize_prop:Nn \g__fdu_font_options_prop - { main, sans, mono, math } - \keys_set:nn { fdu / style } { footnote-style = plain } - }, - cjk-font .choice:, - cjk-font .value_required:n = true, - cjk-font / adobe .code:n = - { - \fdu_choose_cjk_font:nn { song } { Adobe~ Song~ Std } - \fdu_choose_cjk_font:nn { hei } { Adobe~ Heiti~ Std } - \fdu_choose_cjk_font:nn { fang } { Adobe~ Fangsong~ Std } - \fdu_choose_cjk_font:nn { kai } { Adobe~ Kaiti~ Std } - }, - cjk-font / fandol .code:n = - { - \fdu_choose_cjk_font_with_option:nnn { song } - { FandolSong } { BoldFont = FandolSong~ Bold } - \fdu_choose_cjk_font:nn { hei } { FandolHei } - \fdu_choose_cjk_font:nn { fang } { FandolFang } - \fdu_choose_cjk_font:nn { kai } { FandolKai } - }, - cjk-font / founder .code:n = - { - \fdu_choose_cjk_font_with_option:nnn { song } - { FZShuSong-Z01 } { BoldFont = FZXiaoBiaoSong-B05 } - \fdu_choose_cjk_font:nn { hei } { FZHei-B01 } - \fdu_choose_cjk_font:nn { fang } { FZFangSong-Z02 } - \fdu_choose_cjk_font:nn { kai } { FZKai-Z03 } - }, - cjk-font / mac .code:n = - { - \fdu_choose_cjk_font_with_option:nnn { song } - { STSong } { BoldFont = STZhongsong } - \fdu_choose_cjk_font:nn { hei } { STHeiti } - \fdu_choose_cjk_font:nn { fang } { STFangsong } - \fdu_choose_cjk_font:nn { kai } { STKaiti } - }, - cjk-font / windows .code:n = - { - \fdu_choose_cjk_font:nn { song } { SimSun } - \fdu_choose_cjk_font:nn { hei } { SimHei } - \fdu_choose_cjk_font:nn { fang } { FangSong } - \fdu_choose_cjk_font:nn { kai } { KaiTi } - }, - cjk-font / none .code:n = - { - \__fdu_initialize_prop:Nn \g__fdu_cjk_font_name_prop - { rm, sf, tt, kai } - \__fdu_initialize_prop:Nn \g__fdu_cjk_font_options_prop - { rm, sf, tt, kai } - } - } -\cs_new_protected:Npn \__fdu_initialize_prop:Nn #1#2 - { - \prop_gclear:N #1 - \clist_map_inline:nn {#2} { \prop_gput:Nnn #1 {##1} { } } + font .choices:nn = + { garamond, libertinus, lm, palatino, times, times*, none } + { \tl_set_eq:NN \g__fdu_font_set_tl \l_keys_choice_tl } } -\clist_map_inline:nn - { main, sans, mono, math } - { - \exp_args:Nc \RenewDocumentCommand { set #1 font } { O { } m O { } } - { \fdu_choose_font_with_option:nnn { #1 } {##2} { ##1, ##3 } } - } -\RenewDocumentCommand \setCJKmainfont { O { } m O { } } - { \fdu_choose_cjk_font_with_option:nnn { rm } {#2} { #1, #3 } } -\RenewDocumentCommand \setCJKsansfont { O { } m O { } } - { \fdu_choose_cjk_font_with_option:nnn { sf } {#2} { #1, #3 } } -\RenewDocumentCommand \setCJKmonofont { O { } m O { } } - { \fdu_choose_cjk_font_with_option:nnn { tt } {#2} { #1, #3 } } -\RenewDocumentCommand \setCJKfamilyfont { m O { } m O { } } - { \fdu_choose_cjk_font_with_option:nnn {#1} {#3} { #2, #4 } } -\cs_new_protected:Npn \fdu_choose_font_with_option:nnn #1#2#3 - { - \prop_gput:Nnn \g__fdu_font_name_prop {#1} {#2} - \prop_gput:Nnn \g__fdu_font_options_prop {#1} {#3} - } -\cs_new_protected:Npn \fdu_choose_font:nn #1#2 +\keys_define:nn { fdu / style } { - \prop_gput:Nnn \g__fdu_font_name_prop {#1} {#2} - \prop_gput:Nnn \g__fdu_font_options_prop {#1} { } - } -\cs_new_protected:Npn \fdu_choose_cjk_font_with_option:nnn #1#2#3 + cjk-font .choices:nn = + { adobe, fandol, founder, mac, sinotype, sourcehan, windows, none } + { \tl_set_eq:NN \g__fdu_cjk_font_set_tl \l_keys_choice_tl } + } +\cs_new_protected:Npn \__fdu_setmainfont:nn #1#2 + { \__fontspec_main_setmainfont:nn {#2} {#1} } +\cs_new_protected:Npn \__fdu_setsansfont:nn #1#2 + { \__fontspec_main_setsansfont:nn {#2} {#1} } +\cs_new_protected:Npn \__fdu_setmonofont:nn #1#2 + { \__fontspec_main_setmonofont:nn {#2} {#1} } +\cs_new_protected:Npn \__fdu_setmathfont:nn #1#2 + { \__um_setmathfont:nn {#2} {#1} } +\cs_new_protected:Npn \__fdu_setCJKmainfont:nn #1#2 + { \__fdu_set_family:nnn { \CJKrmdefault } {#2} {#1} } +\cs_new_protected:Npn \__fdu_setCJKsansfont:nn #1#2 + { \__fdu_set_family:nnn { \CJKsfdefault } {#2} {#1} } +\cs_new_protected:Npn \__fdu_setCJKmonofont:nn #1#2 + { \__fdu_set_family:nnn { \CJKttdefault } {#2} {#1} } +\cs_new_protected:Npn \__fdu_set_cjk_font_kai:nn #1#2 + { \__fdu_set_family:nnn { fdu@kai } {#2} {#1} } +\cs_new_protected:Npn \fdu@kai + { \__fdu_switch_family:n { fdu@kai } } +\tl_const:Nn \c__fdu_cjk_font_options_tl + { UprightFont = *, BoldFont = *, ItalicFont = *, BoldItalicFont = * } +\cs_new_protected:Npx \__fdu_setCJKmainfont:n #1 + { \__fdu_setCJKmainfont:nn {#1} { \c__fdu_cjk_font_options_tl } } +\cs_new_protected:Npx \__fdu_setCJKsansfont:n #1 + { \__fdu_setCJKsansfont:nn {#1} { \c__fdu_cjk_font_options_tl } } +\cs_new_protected:Npx \__fdu_setCJKmonofont:n #1 + { \__fdu_setCJKmonofont:nn {#1} { \c__fdu_cjk_font_options_tl } } +\cs_new_protected:Npx \__fdu_set_cjk_font_kai:n #1 + { \__fdu_set_cjk_font_kai:nn {#1} { \c__fdu_cjk_font_options_tl } } +\sys_if_engine_xetex:TF { - \prop_gput:Nnn \g__fdu_cjk_font_name_prop {#1} {#2} - \prop_gput:Nnn \g__fdu_cjk_font_options_prop {#1} {#3} + \cs_new_eq:NN \__fdu_set_family:nnn \xeCJK_set_family:nnn + \cs_new_eq:NN \__fdu_switch_family:n \xeCJK_switch_family:n } -\cs_new_protected:Npn \fdu_choose_cjk_font:nn #1#2 { - \prop_gput:Nnn \g__fdu_cjk_font_name_prop {#1} {#2} - \prop_gput:Nnn \g__fdu_cjk_font_options_prop {#1} { } + \cs_new_eq:NN \__fdu_set_family:nnn \ctex_ltj_set_family:nnn + \cs_new_eq:NN \__fdu_switch_family:n \ctex_ltj_switch_family:n } -\cs_new_protected:Npn \__fdu_set_font: +\cs_new_protected:Npn \__fdu_set_font_helper:n #1 { - \clist_map_inline:nn { main, sans, mono, math } + \exp_args:Nc \RenewDocumentCommand { set #1 font } { O { } m O { } } { - \prop_get:NnN \g__fdu_font_name_prop {##1} \l__fdu_tmpa_tl - \prop_get:NnN \g__fdu_font_options_prop {##1} \l__fdu_tmpb_tl - \tl_if_empty:NT \l__fdu_tmpa_tl - { \__fdu_error:nn { font-not-defined } {##1} } - \use:c { __fdu_set_ ##1 _font:VV } \l__fdu_tmpa_tl \l__fdu_tmpb_tl + \ctex_at_end_preamble:n + { \use:c { __fdu_set #1 font:nn } {##2} { ##1, ##3 } } } } -\clist_map_inline:nn { main, sans, mono } - { - \cs_new_protected:cpx { __fdu_set_ #1 _font:nn } ##1 ##2 - { \exp_not:c { __fontspec_main_set #1 font:nn } {##2} {##1} } - } -\cs_new_protected:Npn \__fdu_set_math_font:nn #1#2 - { \__um_setmathfont:nn {#2} {#1} } -\clist_map_inline:nn { main, sans, mono, math } - { \cs_generate_variant:cn { __fdu_set_ #1 _font:nn } { VV } } -\cs_new_protected:Npn \__fdu_set_cjk_font: +\clist_map_inline:nn { main, sans, mono, math } { \__fdu_set_font_helper:n {#1} } +\clist_map_inline:nn { CJKmain, CJKsans, CJKmono } { \__fdu_set_font_helper:n {#1} } +\cs_new_protected:Npn \__fdu_load_font_garamond: { - \clist_map_inline:nn { rm, sf, tt, kai } + \__fdu_setmainfont:nn { EBGaramond } { - \use:c { __fdu_parse_cjk_ ##1 _font: } - \__fdu_check_cjk_font:n {##1} - \__fdu_set_cjk_font_aux:n {##1} + Extension = .otf, + UprightFont = *-Regular, + BoldFont = *-Bold, + ItalicFont = *-Italic, + BoldItalicFont = *-BoldItalic } - \clist_map_inline:nn { song, hei, fang } + \__fdu_setsansfont:nn { libertinussans } { - \prop_gremove:Nn \g__fdu_cjk_font_name_prop {##1} - \prop_gremove:Nn \g__fdu_cjk_font_options_prop {##1} + Extension = .otf, + UprightFont = *-regular, + BoldFont = *-bold, + ItalicFont = *-italic, + BoldItalicFont = *-bolditalic } - } -\tl_new:N \l__fdu_font_name_tl -\clist_new:N \l__fdu_font_options_clist -\cs_new_protected:Npn \__fdu_parse_cjk_rm_font: - { - \prop_get:NnNF \g__fdu_cjk_font_name_prop - { rm } \l__fdu_font_name_tl + \__fdu_setmonofont:nn { lmmonolt10 } { - \__fdu_get_cjk_font_name_options:nn { rm } { song } - \use_ii:nn - { - \tl_if_in:NnF \l__fdu_font_options_clist { BoldFont = } - { - \clist_put_right:Nx \l__fdu_font_options_clist - { BoldFont = \l__fdu_font_name_tl } - } - } - { - \prop_get:NnN \g__fdu_cjk_font_name_prop { hei } - \l__fdu_tmpa_tl - \clist_put_right:Nx \l__fdu_font_options_clist - { BoldFont = \l__fdu_tmpa_tl } - } - \__fdu_get_cjk_kai_font: - \__fdu_set_cjk_font_options:n { rm } + Extension = .otf, + UprightFont = *-regular, + BoldFont = *-bold, + ItalicFont = *-oblique, + BoldItalicFont = *-boldoblique } + \__fdu_setmathfont:nn { Garamond-Math.otf } { } } -\cs_new_protected:Npn \__fdu_parse_cjk_sf_font: +\cs_new_protected:Npn \__fdu_load_font_libertinus: { - \prop_get:NnNF \g__fdu_cjk_font_name_prop - { sf } \l__fdu_font_name_tl + \__fdu_setmainfont:nn { libertinusserif } { - \__fdu_get_cjk_font_name_options:nn { sf } { hei } - \clist_put_right:Nx \l__fdu_font_options_clist - { - BoldFont = \l__fdu_font_name_tl, - ItalicFont = \l__fdu_font_name_tl, - BoldItalicFont = \l__fdu_font_name_tl - } - \__fdu_set_cjk_font_options:n { sf } + Extension = .otf, + UprightFont = *-regular, + BoldFont = *-bold, + ItalicFont = *-italic, + BoldItalicFont = *-bolditalic } - } -\cs_new_protected:Npn \__fdu_parse_cjk_tt_font: - { - \prop_get:NnNF \g__fdu_cjk_font_name_prop - { tt } \l__fdu_font_name_tl + \__fdu_setsansfont:nn { libertinussans } { - \__fdu_get_cjk_font_name_options:nn { tt } { fang } - \clist_put_right:Nx \l__fdu_font_options_clist - { BoldFont = \l__fdu_font_name_tl } - \__fdu_get_cjk_kai_font: - \__fdu_set_cjk_font_options:n { tt } + Extension = .otf, + UprightFont = *-regular, + BoldFont = *-bold, + ItalicFont = *-italic, + BoldItalicFont = *-bolditalic } - } -\cs_new_protected:Npn \__fdu_parse_cjk_kai_font: - { - \prop_get:NnN \g__fdu_cjk_font_name_prop { kai } - \l__fdu_font_name_tl - \clist_set:Nx \l__fdu_font_options_clist + \__fdu_setmonofont:nn { lmmonolt10 } { - BoldFont = \l__fdu_font_name_tl, - ItalicFont = \l__fdu_font_name_tl, - BoldItalicFont = \l__fdu_font_name_tl + Extension = .otf, + UprightFont = *-regular, + BoldFont = *-bold, + ItalicFont = *-oblique, + BoldItalicFont = *-boldoblique } - \__fdu_set_cjk_font_options:n { kai } - } -\cs_new_protected:Npn \__fdu_get_cjk_font_name_options:nn #1#2 - { - \prop_get:NnN \g__fdu_cjk_font_name_prop {#2} \l__fdu_font_name_tl - \prop_gput:NnV \g__fdu_cjk_font_name_prop {#1} \l__fdu_font_name_tl - \prop_get:NnN \g__fdu_cjk_font_options_prop {#2} \l__fdu_tmpa_tl - \clist_set:NV \l__fdu_font_options_clist \l__fdu_tmpa_tl + \__fdu_setmathfont:nn { libertinusmath-regular.otf } { } } -\cs_new_protected:Npn \__fdu_get_cjk_kai_font: +\cs_new_protected:Npn \__fdu_load_font_lm: + { \__fdu_setmathfont:nn { latinmodern-math.otf } { } } +\cs_new_protected:Npn \__fdu_load_font_palatino: { - \prop_get:NnN \g__fdu_cjk_font_name_prop { kai } - \l__fdu_tmpa_tl - \clist_put_right:Nx \l__fdu_font_options_clist + \__fdu_setmainfont:nn { texgyrepagella } { - ItalicFont = \l__fdu_tmpa_tl, - BoldItalicFont = \l__fdu_tmpa_tl + Extension = .otf, + UprightFont = *-regular, + BoldFont = *-bold, + ItalicFont = *-italic, + BoldItalicFont = *-bolditalic } + \__fdu_setsansfont:nn { libertinussans } + { + Extension = .otf, + UprightFont = *-regular, + BoldFont = *-bold, + ItalicFont = *-italic, + BoldItalicFont = *-bolditalic, + Scale = MatchUppercase + } + \__fdu_setmonofont:nn { lmmonolt10 } + { + Extension = .otf, + UprightFont = *-regular, + BoldFont = *-bold, + ItalicFont = *-oblique, + BoldItalicFont = *-boldoblique + } + \__fdu_setmathfont:nn { texgyrepagella-math.otf } { } } -\cs_new_protected:Npn \__fdu_set_cjk_font_options:n #1 +\cs_new_protected:Npn \__fdu_load_font_times: { - \prop_put:NnV \g__fdu_cjk_font_options_prop {#1} - \l__fdu_font_options_clist + \__fdu_setmainfont:nn { XITS } + { + Extension = .otf, + UprightFont = *-Regular, + BoldFont = *-Bold, + ItalicFont = *-Italic, + BoldItalicFont = *-BoldItalic, + UprightFeatures = { SmallCapsFont = *-Regular }, + BoldFeatures = { SmallCapsFont = *-Bold }, + ItalicFeatures = { SmallCapsFont = *-Italic }, + BoldItalicFeatures = { SmallCapsFont = *-BoldItalic } + } + \__fdu_setsansfont:nn { texgyreheros } + { + Extension = .otf, + UprightFont = *-regular, + BoldFont = *-bold, + ItalicFont = *-italic, + BoldItalicFont = *-bolditalic + } + \__fdu_setmonofont:nn { texgyrecursor } + { + Extension = .otf, + UprightFont = *-regular, + BoldFont = *-bold, + ItalicFont = *-italic, + BoldItalicFont = *-bolditalic, + Ligatures = CommonOff + } + \__fdu_setmathfont:nn { XITSMath-Regular.otf }{ BoldFont = XITSMath-Bold.otf } } -\cs_new_protected:Npn \__fdu_check_cjk_font:n #1 +\cs_new_protected:cpn { __fdu_load_font_ times* : } { - \prop_get:NnN \g__fdu_cjk_font_name_prop {#1} - \l__fdu_font_name_tl - \tl_if_empty:NT \l__fdu_font_name_tl - { \__fdu_error:nn { cjk-font-not-defined } {#1} } + \__fdu_setmainfont:nn { Times~ New~ Roman } { } + \__fdu_setsansfont:nn { Arial } { } + \__fdu_setmonofont:nn { Courier~ New } { } + \__fdu_setmathfont:nn { XITSMath-Regular.otf }{ BoldFont = XITSMath-Bold.otf } } -\cs_generate_variant:Nn \xeCJK_set_family:nnn { nVV } -\cs_generate_variant:Nn \ctex_ltj_set_family:nnn { nVV } -\cs_new_protected:Npx \__fdu_set_cjk_font_aux:n #1 +\cs_new_protected:Npn \__fdu_load_cjk_font_adobe: { - \prop_get:NnN \exp_not:N \g__fdu_cjk_font_name_prop {#1} - \exp_not:N \l__fdu_tmpa_tl - \prop_get:NnN \exp_not:N \g__fdu_cjk_font_options_prop {#1} - \exp_not:N \l__fdu_tmpb_tl - \sys_if_engine_xetex:TF - { \xeCJK_set_family:nVV } - { \sys_if_engine_luatex:T { \ctex_ltj_set_family:nVV } } - {#1} \exp_not:n { \l__fdu_tmpb_tl \l__fdu_tmpa_tl } + \__fdu_setCJKmainfont:n { AdobeSongStd-Light } + \__fdu_setCJKsansfont:n { AdobeHeitiStd-Regular } + \__fdu_setCJKmonofont:n { AdobeFangsongStd-Regular } + \__fdu_set_cjk_font_kai:n { AdobeKaitiStd-Regular } } -\__fdu_msg_new:nn { font-not-defined } +\cs_new_protected:Npn \__fdu_load_cjk_font_fandol: { - \str_upper_case:f { \tl_head:n {#1} } \tl_tail:n {#1} ~ - font~ is~ not~ defined. \\\\ - You~ can~ set~ option~ "font"~ via~ "\string\fdusetup",~ - or~ use~ command~ \\ - "\string\set #1 font"~ to~ define~ new~ font~ families. + \__fdu_setCJKmainfont:nn { FandolSong } + { + Extension = .otf, + UprightFont = *-Regular, + BoldFont = *-Bold, + ItalicFont = *-Regular, + BoldItalicFont = *-Bold + } + \__fdu_setCJKsansfont:nn { FandolHei } + { + Extension = .otf, + UprightFont = *-Regular, + BoldFont = *-Bold, + ItalicFont = *-Regular, + BoldItalicFont = *-Bold + } + \__fdu_setCJKmonofont:nn { FandolFang } + { + Extension = .otf, + UprightFont = *-Regular, + BoldFont = *-Regular, + ItalicFont = *-Regular, + BoldItalicFont = *-Regular + } + \__fdu_set_cjk_font_kai:nn { FandolKai } + { + Extension = .otf, + UprightFont = *-Regular, + BoldFont = *-Regular, + ItalicFont = *-Regular, + BoldItalicFont = *-Regular + } } -\__fdu_msg_new:nn { cjk-font-not-defined } +\cs_new_protected:Npn \__fdu_load_cjk_font_founder: { - CJK~ font~ family~ "#1"~ is~ not~ defined. \\\\ - You~ can~ set~ option~ "cjk-font"~ via~ "\string\fdusetup",~ - or~ use~ commands~ \\ - "\string\setCJKmainfont",~ "\string\setCJKsansfont"~ or~ - "\string\setCJKmonofont",~ etc~ \\ - to~ define~ new~ CJK~ font~ families. + \__fdu_setCJKmainfont:n { FZShuSong-Z01 } + \__fdu_setCJKsansfont:n { FZHei-B01 } + \__fdu_setCJKmonofont:n { FZFangSong-Z02 } + \__fdu_set_cjk_font_kai:n { FZKai-Z03 } } -\sys_if_engine_xetex:T +\cs_new_protected:Npn \__fdu_load_cjk_font_mac: { - \prop_gput:Nnn \g__xeCJK_family_font_name_prop { rm } { } - \prop_gput:Nnn \g__xeCJK_family_name_prop { rm } { } - \msg_redirect_name:nnn { xeCJK } { CJKfamily-redef } { none } + \__fdu_setCJKmainfont:nn { STSongti-SC } + { + UprightFont = *-Light, + BoldFont = *-Bold, + ItalicFont = *-Light, + BoldItalicFont = *-Bold + } + \__fdu_setCJKsansfont:nn { STHeitiSC } + { + UprightFont = *-Medium, + BoldFont = *-Medium, + ItalicFont = *-Medium, + BoldItalicFont = *-Medium + } + \__fdu_setCJKmonofont:n { STFangsong } + \__fdu_set_cjk_font_kai:nn { STKaitiSC } + { + UprightFont = *-Regular, + BoldFont = *-Bold, + ItalicFont = *-Regular, + BoldItalicFont = *-Bold + } } -\ctex_at_end_preamble:n +\cs_new_protected:Npn \__fdu_load_cjk_font_sinotype: { - \__fdu_set_font: - \__fdu_set_cjk_font: + \__fdu_setCJKmainfont:n { STSong } + \__fdu_setCJKsansfont:n { STHeiti } + \__fdu_setCJKmonofont:n { STFangsong } + \__fdu_set_cjk_font_kai:n { STKaiti } } -\sys_if_engine_xetex:TF +\cs_new_protected:Npn \__fdu_load_cjk_font_sourcehan: { - \prg_new_protected_conditional:Npnn - \fdu_family_if_exist:n #1 { TF } + \__fdu_setCJKmainfont:nn { SourceHanSerifSC } { - \xeCJK_family_if_exist:nTF {#1} - { \prg_return_true: } { \prg_return_false: } + UprightFont = *-Regular, + BoldFont = *-Bold, + ItalicFont = *-Regular, + BoldItalicFont = *-Bold } - } - { - \sys_if_engine_luatex:T + \__fdu_setCJKsansfont:nn { SourceHanSansSC } { - \prg_new_protected_conditional:Npnn - \fdu_family_if_exist:n #1 { TF } - { - \ctex_ltj_family_if_exist:nNTF {#1} \l__fdu_tmpa_tl - { \prg_return_true: } { \prg_return_false: } - } + UprightFont = *-Regular, + BoldFont = *-Bold, + ItalicFont = *-Regular, + BoldItalicFont = *-Bold } + \__fdu_warning:n { source-han } } -\cs_new_protected:Npx \fdu_cjk_font_kai: +\__fdu_msg_new:nn { source-han } + { Font~ set~ `sourcehan'~ does~ not~ contain~ kaiti~ and~ fangsong. } +\cs_new_protected:Npn \__fdu_load_cjk_font_windows: { - \fdu_family_if_exist:nTF { kai } - { - \sys_if_engine_xetex:TF - { \xeCJK_switch_family:n { kai } } - { - \sys_if_engine_luatex:T - { \ctex_ltj_switch_family:n { kai } } - } - } - { \exp_not:n { \rmfamily \itshape } } + \__fdu_setCJKmainfont:n { SimSun } + \__fdu_setCJKsansfont:n { SimHei } + \__fdu_setCJKmonofont:n { FangSong } + \__fdu_set_cjk_font_kai:n { KaiTi } } -\cs_new_eq:NN \fdu@kai \fdu_cjk_font_kai: +\cs_new_protected:Npn \__fdu_load_font: + { + \use:c { __fdu_load_font_ \tl_use:N \g__fdu_font_set_tl : } + \use:c { __fdu_load_cjk_font_ \tl_use:N \g__fdu_cjk_font_set_tl : } + } +\ctex_at_end_preamble:n { \__fdu_load_font: } \keys_set:nn { unicode-math } { math-style = ISO, @@ -795,17 +750,17 @@ { \int_use:N #1 } \c__fdu_fn_style_libertinus_tl { - \fontspec { Libertinus~ Serif } + \fontspec { libertinusserif-regular.otf } \__fdu_fn_symbol_libertinus:n {#1} } \c__fdu_fn_style_libertinus_neg_tl { - \fontspec { Libertinus~ Serif } + \fontspec { libertinusserif-regular.otf } \__fdu_fn_symbol_libertinus_neg:n {#1} } \c__fdu_fn_style_libertinus_sans_tl { - \fontspec { Libertinus~ Sans } + \fontspec { libertinussans-regular.otf } \__fdu_fn_symbol_libertinus_sans:n {#1} } \c__fdu_fn_style_pifont_tl @@ -818,17 +773,17 @@ { \__fdu_fn_symbol_pifont_sans_neg:n {#1} } \c__fdu_fn_style_xits_tl { - \fontspec { XITS } + \fontspec { XITS-Regular.otf } \__fdu_fn_symbol_xits:n {#1} } \c__fdu_fn_style_xits_sans_tl { - \fontspec { XITS } + \fontspec { XITS-Regular.otf } \__fdu_fn_symbol_xits_sans:n {#1} } \c__fdu_fn_style_xits_sans_neg_tl { - \fontspec { XITS } + \fontspec { XITS-Regular.otf } \__fdu_fn_symbol_xits_sans_neg:n {#1} } } @@ -991,8 +946,7 @@ secret-level .choices:nn = { none, i, ii, iii } { - \int_compare:nTF - { \l_keys_choice_int >= 2 } + \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 @@ -1097,15 +1051,11 @@ } \cs_new_protected:Npn \__fdu_cover_degree: { - \int_compare:nNnT \g__fdu_thesis_type_int = \c_two + \int_compare:nT { \g__fdu_thesis_type_int != 3 } { - \tl_set:Nx \l__fdu_tmpa_tl - { - \clist_item:Nn \c__fdu_degree_type_clist - { \l__fdu_info_degree_type_int } - } \c__fdu_fullwidth_left_paren_tl - \l__fdu_tmpa_tl + \clist_item:Nn \c__fdu_degree_type_clist + { \l__fdu_info_degree_type_int } \c__fdu_fullwidth_right_paren_tl } } @@ -1151,7 +1101,7 @@ \__fdu_quad: } } -\DeclareObjectType { fdu / cover } { \c_zero } +\DeclareObjectType { fdu / cover } { \c_zero_int } \NewDocumentCommand \DeclareCoverTemplate { m m } { \fdu_cover_declare_template:nn {#1} {#2} } \cs_new_protected:Npn \fdu_cover_declare_template:nn #1#2 @@ -1199,9 +1149,9 @@ } \tl_new:N \l__fdu_cover_template_tl \cs_new_protected:Npn \__fdu_cover_declare_template_interface:nn #1#2 - { \DeclareTemplateInterface { fdu / cover } {#1} { \c_zero } {#2} } + { \DeclareTemplateInterface { fdu / cover } {#1} { \c_zero_int } {#2} } \cs_new_protected:Npn \__fdu_cover_declare_template_code:nnn #1#2#3 - { \DeclareTemplateCode { fdu / cover } {#1} { \c_zero } {#2} {#3} } + { \DeclareTemplateCode { fdu / cover } {#1} { \c_zero_int } {#2} {#3} } \cs_generate_variant:Nn \__fdu_cover_declare_template_interface:nn { nx } \cs_generate_variant:Nn \__fdu_cover_declare_template_code:nnn { nxn } \cs_new:Npn \__fdu_cover_key_type:n #1 @@ -1396,12 +1346,12 @@ }, section / tocline = { - \CTEXnumberline {#1} #2 + \CTEXnumberline {#1} #2 }, subsection / tocline = { \fdu@kai - \CTEXnumberline {#1} #2 + \CTEXnumberline {#1} #2 } } \__fdu_patch_cmd:Nnn \tableofcontents @@ -1591,9 +1541,9 @@ } \cs_new:Npn \__fdu_biblatex_allow_url_break: { - \int_set_eq:NN \c@biburlucpenalty \c_one - \int_set_eq:NN \c@biburlnumpenalty \c_one - \int_set_eq:NN \c@biburllcpenalty \c_one + \int_set_eq:NN \c@biburlucpenalty \c_one_int + \int_set_eq:NN \c@biburlnumpenalty \c_one_int + \int_set_eq:NN \c@biburllcpenalty \c_one_int } \cs_new:Npn \__fdu_set_cite_style_numerical: { |