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