summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/fduthesis/fduthesis.cls
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-03-17 21:38:24 +0000
committerKarl Berry <karl@freefriends.org>2019-03-17 21:38:24 +0000
commit39948ee1306a518baab7bd81a847e11249643885 (patch)
treec553796b1fc65014f8f3139236889456dc917f6a /Master/texmf-dist/tex/latex/fduthesis/fduthesis.cls
parent256f8bfa32f3e9134067457fc40c38ee02d01253 (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.cls594
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:
{