diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r-- | Master/texmf-dist/tex/latex/fduthesis/fdudoc.cls | 1067 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/fduthesis/fdulogo.sty | 2253 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/fduthesis/fduthesis-en.cls | 1474 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/fduthesis/fduthesis.cls | 1743 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/fduthesis/fduthesis.def | 132 |
5 files changed, 6669 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/fduthesis/fdudoc.cls b/Master/texmf-dist/tex/latex/fduthesis/fdudoc.cls new file mode 100644 index 00000000000..ef43eb060e9 --- /dev/null +++ b/Master/texmf-dist/tex/latex/fduthesis/fdudoc.cls @@ -0,0 +1,1067 @@ +%% +%% This is file `fdudoc.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fduthesis.dtx (with options: `doc') +%% fduthesis-doc.dtx (with options: `doc') +%% +%% Copyright (C) 2017, 2018 by Xiangdong Zeng <xdzeng96@gmail.com> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3c 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 `maintained'. +%% +%% The Current Maintainer of this work is Xiangdong Zeng. +%% +%% This work consists of the files fduthesis.dtx, +%% fduthesis-doc.dtx, +%% fduthesis-logo.dtx, +%% fduthesis-template.tex, +%% and the derived files fduthesis.ins, +%% fduthesis.cls, +%% fduthesis-en.cls, +%% fduthesis.def, +%% fdudoc.cls, +%% fdulogo.sty, +%% fdulogo-example.tex, +%% fduthesis-cover.tex, +%% fduthesis-en.tex, +%% fduthesis.pdf, +%% fduthesis-en.pdf, +%% fduthesis-code.pdf, +%% latexmkrc, +%% latexmkrc-en, +%% and README.md. +%% +\NeedsTeXFormat{LaTeX2e} +\RequirePackage{expl3} +\GetIdInfo $Id: fduthesis.dtx 0.7a 2018-04-09 12:00:00Z Xiangdong Zeng <xdzeng96@gmail.com> $ + {Documentation class for fduthesis} +\ProvidesExplClass{fdudoc} + {\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} +\ExplSyntaxOff +\@namedef{ver@thumbpdf.sty}{9999/99/99} +\PassOptionsToPackage{log-declarations = false}{xparse} +\LoadClass[a4paper, full]{l3doc} +\RequirePackage[UTF8, heading, sub3section, fontset = none]{ctex} +\RequirePackage{graphicx} +\RequirePackage{caption} +\RequirePackage{geometry} +\RequirePackage{listings} +\RequirePackage{makecell} +\RequirePackage[toc]{multitoc} +\RequirePackage{siunitx} +\RequirePackage{tabularx} +\RequirePackage{threeparttable} +\RequirePackage{unicode-math} +\RequirePackage{xcolor} +\RequirePackage{xcolor-material} +\RequirePackage{zref-base} +\def\macro@code{% + \topsep \MacrocodeTopsep + \@beginparpenalty \predisplaypenalty + \partopsep \z@skip + \trivlist \parskip \z@ \item[]% + \MacroFont + \leftskip\@totalleftmargin \advance\leftskip\MacroIndent + \rightskip\z@ \parindent\z@ \parfillskip\@flushglue + \blank@linefalse \def\par{\ifblank@line + \leavevmode\fi + \blank@linetrue\@@par + \penalty\interlinepenalty} + \obeylines + \let\do\do@noligs \verbatim@nolig@list + \let\do\@makeother \dospecials + \global\@newlistfalse + \global\@minipagefalse + \init@crossref} +\ExplSyntaxOn +\tl_new:N \l__fdudoc_tmpa_tl +\tl_new:N \l__fdudoc_tmpb_tl +\cs_new_protected:Npn \__fdudoc_patch_cmd:Nnn #1#2#3 + { + \ctex_patch_cmd_once:NnnnTF #1 { } {#2} {#3} + { } { \ctex_patch_failure:N #1 } + } +\cs_new_protected:Npn \__fdudoc_preto_cmd:Nn #1#2 + { + \ctex_preto_cmd:NnnTF #1 { } {#2} + { } { \ctex_patch_failure:N #1 } + } +\cs_new_protected:Npn \__fdudoc_appto_cmd:Nn #1#2 + { + \ctex_appto_cmd:NnnTF #1 { } {#2} + { } { \ctex_patch_failure:N #1 } + } +\cs_set_protected_nopar:Npn \xmacro@code + { \__fdudoc_marco_code:w } +\cs_set_protected_nopar:Npn \sxmacro@code + { + \fontspec_print_visible_spaces: + \xmacro@code + } +\cs_new_protected_nopar:Npn \__fdudoc_marco_code:w + { + \ifcodeline@index + \__fdudoc_marco_code_every_par:n { \__fdudoc_code_line_no: } + \else: + \__fdudoc_marco_code_every_par:n { } + \fi: + \__fdudoc_make_finish_tag:x { \@currenvir } + \__fdudoc_macro_code_start:w + } +\cs_new_protected:Npn \__fdudoc_marco_code_every_par:n #1 + { + \everypar + { + \everypar {#1} + \if@inlabel + \global \@inlabelfalse \@noparlistfalse + \llap { \box \@labels \hskip \leftskip } + \fi + #1 + } + } +\group_begin: + \int_set:Nn \tex_endlinechar:D { -1 } + \use:n + { + \char_set_catcode_active:n { 32 } + \tl_const:Nn \c__fdudoc_active_space_tl + } + { } +\group_end: +\group_begin: + \char_set_catcode_active:n { 13 } + \cs_new_protected:Npx \__fdudoc_make_finish_tag:n #1 + { + \tl_set:Nn \exp_not:N \l__fdudoc_macro_code_finish_tl + { + \c_percent_str + \prg_replicate:nn { 4 } + { \exp_not:o { \c__fdudoc_active_space_tl } } + \exp_not:o { \active@escape@char } end + \c_left_brace_str #1 \c_right_brace_str + \exp_not:N ^^M + } + } + \cs_generate_variant:Nn \__fdudoc_make_finish_tag:n { x } + \cs_new_protected:Npn \__fdudoc_macro_code_start:w #1 + { + \str_if_eq:nnTF {#1} { ^^M } + { \__fdudoc_macro_code_read_line:w } + { \__fdudoc_macro_code_read_line:w #1 } + } + \cs_new_protected:Npn \__fdudoc_macro_code_read_line:w #1 ^^M + { + \tl_set:Nn \l__fdudoc_macro_code_line_tl { #1 ^^M } + \tl_if_eq:NNTF + \l__fdudoc_macro_code_line_tl \l__fdudoc_macro_code_finish_tl + { \exp_args:Nx \end { \@currenvir } } + { + \__fdudoc_macro_code_process_line: + \__fdudoc_macro_code_read_line:w + } + } + \cs_new_protected:Npn \__fdudoc_swap_cr: + { + \exp_after:wN + \__fdudoc_swap_cr_aux:w \l__fdudoc_macro_code_line_tl + } + \cs_new_protected:Npn \__fdudoc_swap_cr_aux:w #1 ^^M + { + \group_insert_after:N ^^M + \tl_set:Nn \l__fdudoc_macro_code_line_tl {#1} + } + \tl_const:Nn \c__fdudoc_active_cr_tl { ^^M } +\group_end: +\tl_new:N \l__fdudoc_macro_code_line_tl +\tl_new:N \l__fdudoc_macro_code_finish_tl +\tl_new:N \g__fdudoc_macro_code_verbatim_stop_tl +\cs_new_protected_nopar:Npn \__fdudoc_process_normal_line: + { + \str_case_x:nnF + { \str_head:N \l__fdudoc_macro_code_line_tl } + { + { \c_percent_str } + { + \__fdudoc_check_angle:x + { \tl_tail:N \l__fdudoc_macro_code_line_tl } + } + { \c_hash_str } + { \__fdudoc_output_comment_line: } + } + { \__fdudoc_output_line: } + } +\cs_new_protected_nopar:Npn \__fdudoc_process_verbatim_line: + { + \tl_if_eq:NNTF \l__fdudoc_macro_code_line_tl + \g__fdudoc_macro_code_verbatim_stop_tl + { + \tl_gclear:N \g__fdudoc_macro_code_verbatim_stop_tl + \cs_gset_eq:NN \__fdudoc_macro_code_process_line: + \__fdudoc_process_normal_line: + \__fdudoc_output_module:nn + { \color { verb@guard } } + { + \__fdudoc_swap_cr: + \__fdudoc_module_pop:n { \l__fdudoc_macro_code_line_tl } + } + } + { \tl_use:N \l__fdudoc_macro_code_line_tl } + } +\cs_new_eq:NN \__fdudoc_macro_code_process_line: + \__fdudoc_process_normal_line: +\DeclareDocumentCommand \CheckModules { } + { + \cs_set_eq:NN \__fdudoc_macro_code_process_line: + \__fdudoc_process_normal_line: + } +\DeclareDocumentCommand \DontCheckModules { } + { + \cs_set_eq:NN \__fdudoc_macro_code_process_line: + \__fdudoc_output_line: + } +\cs_new_protected:Npn \__fdudoc_check_angle:n #1 + { + \str_if_eq_x:nnTF { \str_head:n {#1} } { < } + { \__fdudoc_check_module:x { \tl_tail:n {#1} } } + { \__fdudoc_output_comment_line: } + } +\cs_generate_variant:Nn \__fdudoc_check_angle:n { x } +\cs_new_protected:Npn \__fdudoc_check_module:n #1 + { + \str_case_x:nnF { \str_head:n {#1} } + { + { * } { \__fdudoc_module_star:w } + { / } { \__fdudoc_module_slash:w } + { @ } { \__fdudoc_module_at:w } + { < } { \__fdudoc_module_verb:w } + } + { \__fdudoc_module_pm:w } + #1 \q_stop + } +\cs_generate_variant:Nn \__fdudoc_check_module:n { x } +\group_begin: + \char_set_catcode_active:N \> + \cs_new_protected:Npn \__fdudoc_module_star:w #1 > #2 \q_stop + { + \tl_set:Nn \l__fdudoc_tmpa_tl {#2} + \tl_if_eq:NNTF \l__fdudoc_tmpa_tl \c__fdudoc_active_cr_tl + { + \__fdudoc_output_module:nn + { \__fdudoc_star_color: } + { + \__fdudoc_module_push:n + { \__fdudoc_module_angle:n {#1} } + } + } + { + \__fdudoc_output_module_left:nn + { \__fdudoc_star_color: } + { + \__fdudoc_module_push:n + { \__fdudoc_module_angle:n {#1} } + } + } + \__fdudoc_output_line:n {#2} + } + \cs_new_protected:Npn \__fdudoc_module_slash:w #1 > #2 \q_stop + { + \tl_set:Nn \l__fdudoc_tmpa_tl {#2} + \tl_if_eq:NNTF \l__fdudoc_tmpa_tl \c__fdudoc_active_cr_tl + { + \__fdudoc_output_module:nn + { \__fdudoc_slash_color: } + { + \__fdudoc_module_pop:n + { \__fdudoc_module_angle:n {#1} } + } + } + { + \__fdudoc_output_module_left:nn + { \__fdudoc_slash_color: } + { + \__fdudoc_module_pop:n + { \__fdudoc_module_angle:n {#1} } + } + } + \__fdudoc_output_line:n {#2} + } + \cs_new_protected:Npn \__fdudoc_module_at:w @ @ = #1 > #2 \q_stop + { + \__fdudoc_output_module:nn + { \color { at@guard } } + { \__fdudoc_module_angle:n { @ @ = #1 } } + \tl_gset:Nn \g__codedoc_module_name_tl {#1} + \__fdudoc_output_line:n {#2} + } + \cs_new_protected:Npn \__fdudoc_module_verb:w #1 \q_stop + { + \cs_gset_eq:NN \__fdudoc_macro_code_process_line: + \__fdudoc_process_verbatim_line: + \tl_gset:Nx \g__fdudoc_macro_code_verbatim_stop_tl + { \c_percent_str \tl_tail:n {#1} } + \__fdudoc_output_module:nn + { \color { verb@guard } } + { + \__fdudoc_swap_cr: + \__fdudoc_module_push:n { \l__fdudoc_macro_code_line_tl } + } + } + \cs_new_protected:Npn \__fdudoc_module_pm:w #1 > #2 \q_stop + { + \__fdudoc_output_module_left:nn + { \__fdudoc_pm_color: } + { \__fdudoc_module_angle:n {#1} } + \__fdudoc_output_line:n {#2} + } +\group_end: +\cs_new_protected:Npn \__fdudoc_output_line:n #1 + { + \tl_set:Nn \l__fdudoc_macro_code_line_tl {#1} + \tl_if_eq:NNTF + \l__fdudoc_macro_code_line_tl \c__fdudoc_active_cr_tl + { \tl_use:N \l__fdudoc_macro_code_line_tl } + { + \str_if_eq_x:nnTF + { \str_head:N \l__fdudoc_macro_code_line_tl } { \c_percent_str } + { \__fdudoc_output_comment_line: } { \__fdudoc_output_line: } + } + } +\cs_new_protected_nopar:Npn \__fdudoc_output_line: + { + \tex_noindent:D + \__fdudoc_replace_at_at:N \l__fdudoc_macro_code_line_tl + \tl_use:N \l__fdudoc_macro_code_line_tl + } +\cs_new_protected:Npn \__fdudoc_output_comment_line: + { + \tex_noindent:D + \group_begin: + \__fdudoc_swap_cr: + \color { code@gray } \slshape \__fdudoc_output_line: + \group_end: + } +\cs_new_protected:Npn \__fdudoc_replace_at_at:N #1 + { + \tl_if_empty:NF \g__codedoc_module_name_tl + { \__fdudoc_replace_at_at_aux:No #1 \g__codedoc_module_name_tl } + } +\cs_new_protected:Npn \__fdudoc_replace_at_at_aux:Nn #1#2 + { + \tl_replace_all:Nnn #1 { _ @ @ } { _ _ #2 } + \tl_replace_all:Nnn #1 { @ @ } { _ _ #2 } + } +\cs_generate_variant:Nn \__fdudoc_replace_at_at_aux:Nn { No } +\cs_new_protected_nopar:Npn \__fdudoc_module_push:n + { \__fdudoc_module_push_aux:on { \int_use:N \c@HD@hypercount } } +\cs_new_protected:Npn \__fdudoc_module_push_aux:nn #1 + { + \seq_gpush:Nn \g__fdudoc_module_dest_seq {#1} + \hypersetup { hidelinks } + \exp_args:Nx \hdclindex + { \zref@extractdefault { HD.#1 } { guard@end } { 1 } } { } + } +\cs_generate_variant:Nn \__fdudoc_module_push_aux:nn { on } +\cs_new_protected_nopar:Npn \__fdudoc_module_pop:n + { + \seq_gpop:NNTF \g__fdudoc_module_dest_seq \l__fdudoc_tmpa_tl + { \__fdudoc_module_pop_aux:on { \l__fdudoc_tmpa_tl } } + { \BOOM \use:n } + } +\cs_new_protected:Npn \__fdudoc_module_pop_aux:nn #1 + { + \zref@labelbylist { HD.#1 } { fdudoc } + \hypersetup { hidelinks } + \hdclindex {#1} { } + } +\cs_generate_variant:Nn \__fdudoc_module_pop_aux:nn { on } +\seq_new:N \g__fdudoc_module_dest_seq +\zref@newlist { fdudoc } +\zref@newprop { guard@end } [ 1 ] + { \int_eval:n { \c@HD@hypercount - 1 } } +\zref@addprop { fdudoc } { guard@end } +\cs_set_protected:Npn \MacroFont + { + \linespread { 1.05 } + \small \ttfamily \mdseries \upshape + \__fdudoc_verb_addon: + } +\cs_new_protected:Npn \__fdudoc_output_module:nn #1#2 + { + \tex_noindent:D + \group_begin: + #1 + \footnotesize \normalfont \sffamily #2 + \group_end: + } +\cs_new_protected:Npn \__fdudoc_output_module_left:nn #1#2 + { + \tex_noindent:D + \hbox_overlap_left:n + { + \__fdudoc_output_module:nn {#1} {#2} + \skip_horizontal:n { \leftskip + \smallskipamount } + } + } +\cs_new_protected_nopar:Npn \__fdudoc_star_color: + { + \seq_gpop:NNTF \g__fdudoc_star_color_seq \current@color + { \set@color } + { \__fdudoc_select_color: } + \seq_gpush:No \g__fdudoc_slash_color_seq { \current@color } + } +\cs_new_protected_nopar:Npn \__fdudoc_slash_color: + { + \seq_gpop:NNTF \g__fdudoc_slash_color_seq \current@color + { + \set@color + \seq_gpush:No \g__fdudoc_star_color_seq { \current@color } + } + { \BOOM } + } +\cs_new_protected_nopar:Npn \__fdudoc_pm_color: + { + \seq_get:NNTF \g__fdudoc_star_color_seq \current@color + { \set@color } + { + \__fdudoc_select_color: + \seq_gpush:No \g__fdudoc_star_color_seq { \current@color } + } + } +\seq_new:N \g__fdudoc_star_color_seq +\seq_new:N \g__fdudoc_slash_color_seq +\cs_new_protected_nopar:Npn \__fdudoc_select_color: + { \color { guard@series!!+ } } +\definecolorseries { guard@series } + { cmyk } { last } { blue } { purple } +\resetcolorseries [ 3 ] { guard@series } +\definecolor { verb@guard } { named } { MaterialLime600 } +\definecolor { at@guard } { named } { MaterialPink } +\definecolor { code@gray } { named } { MaterialGrey } +\cs_new_protected:Npn \__fdudoc_module_angle:n #1 + { \textlangle #1 \textrangle } +\cs_new_protected_nopar:Npn \__fdudoc_code_line_no: + { + \int_gincr:N \c@CodelineNo + \hbox_overlap_left:n + { + \hbox_to_wd:nn + { \MacroIndent } + { + \HD@target + \tex_hss:D \__fdudoc_code_line_no_style: + \theCodelineNo \enspace + } + \tex_kern:D \@totalleftmargin + } + } +\tl_set:Nn \theCodelineNo { \arabic { CodelineNo } } +\cs_new_protected_nopar:Npn \__fdudoc_code_line_no_style: + { \color { code@gray } \normalfont \sffamily \tiny } +\cs_set_protected:Npn \HD@SetMacroIndent #1 + { + \group_begin: + \settowidth \MacroIndent + { + \__fdudoc_code_line_no_style: + \prg_replicate:nn { \tl_count:n {#1} } { 0 } + \enspace + } + \dim_gset_eq:NN \MacroIndent \MacroIndent + \group_end: + } +\sys_if_engine_xetex:TF + { + \cs_set_eq:NN \__fdudoc_verb_addon: \xeCJKVerbAddon + \cs_set:Nn \__fdudoc_plain_punct_style: + { \xeCJKsetup { PunctStyle = plain } } + \cs_set:Nn \__fdudoc_disable_ecglue: + { \xeCJKsetup { CJKecglue } } + \__fdudoc_appto_cmd:Nn \meta@font@select + { \mode_if_inner:T { \__fdudoc_disable_ecglue: } } + } + { + \cs_set_eq:NN \__fdudoc_verb_addon: \prg_do_nothing: + \cs_set_eq:NN \__fdudoc_plain_punct_style: \prg_do_nothing: + \cs_set:Nn \__fdudoc_disable_ecglue: + { \ltjsetparameter { autoxspacing = false } } + \__fdudoc_appto_cmd:Nn \meta@font@select + { \__fdudoc_disable_ecglue: } + } +\BeforeBeginEnvironment { function } + { \par \nointerlineskip } +\AtEndEnvironment { function } + { + \par + \cs_gset:Nx \__fdudoc_fix_previous_depth: + { \prevdepth = \the \prevdepth \space } + } +\AfterEndEnvironment { function } + { \__fdudoc_fix_previous_depth: } +\AtBeginEnvironment { syntax } + { + \linespread { 1.2 } + \__fdudoc_plain_punct_style: + \__fdudoc_disable_ecglue: + } +\AtBeginEnvironment { fdusyntax } + { + \cs_set:Npn \lparen { \textup { ( } } + \cs_set:Npn \rparen { \textup { ) } } + \char_set_catcode_active:N | + \char_set_catcode_active:N < + \char_set_catcode_active:N ( + \char_set_active_eq:NN | \orbar + \char_set_active_eq:NN < \syntaxopt@aux + \char_set_active_eq:NN ( \defaultval@aux + } +\cs_new_eq:NN \__fdudoc_ltx_changes:nnn \changes@ +\cs_set_protected:Npn \changes@ #1#2 + { + \__fdudoc_save_version_date:nn {#1} {#2} + \__fdudoc_ltx_changes:nnn {#1} {#2} + } +\prop_new:N \g__fdudoc_version_date_prop +\cs_new_protected:Npn \__fdudoc_save_version_date:nn #1#2 + { + \prop_get:NnNTF \g__fdudoc_version_date_prop + {#1} \l__fdudoc_tmpa_tl + { + \exp_after:wN + \__fdudoc_save_version_date_aux:nnnn \l__fdudoc_tmpa_tl + {#2} {#1} + } + { \__fdudoc_save_version_date_aux:nnn {#1} {#2} {#2} } + } +\cs_new_protected:Npn \__fdudoc_save_version_date_aux:nnnn #1#2#3#4 + { + \__fdudoc_if_date_later:nnTF {#1} {#3} + { \__fdudoc_save_version_date_aux:nnn {#4} {#3} {#2} } + { + \__fdudoc_if_date_later:nnT {#3} {#2} + { \__fdudoc_save_version_date_aux:nnn {#4} {#1} {#3} } + } + } +\cs_new_protected:Npn \__fdudoc_save_version_date_aux:nnn #1#2#3 + { \prop_gput:Nnn \g__fdudoc_version_date_prop {#1} { {#2} {#3} } } +\prg_new_conditional:Npnn \__fdudoc_if_date_later:nn #1#2 { TF, T } + { + \if_int_compare:w + \__fdudoc_parse_date:w #1 / / / 0 \q_stop > + \__fdudoc_parse_date:w #2 / / / 0 \q_stop \exp_stop_f: + \prg_return_true: + \else: + \prg_return_false: + \fi: + } +\cs_new:Npn \__fdudoc_parse_date:w #1/#2/#3/ #4 \q_stop + { #1#2#3 } +\cs_new_protected:Npn \CTEX@versionitem #1 \efill + { + \@idxitem + \prop_get:NnNTF \g__fdudoc_version_date_prop + {#1} \l__fdudoc_tmpa_tl + { + \exp_after:wN + \__fdudoc_print_version_date:nnn \l__fdudoc_tmpa_tl + {#1} + } + { \BOOM } + } +\cs_new_protected:Npn \__fdudoc_print_version_date:nnn #1#2#3 + { + \noindent + \Hy@raisedlink { \belowpdfbookmark {#3} { HD.#3 } } + \textbf {#3} \hfill + \hbox:n + { + \footnotesize + \str_if_eq:nnTF {#1} {#2} + { ( #1 ) } { ( #1 ~ -- ~ #2 ) } + } + \par \nopagebreak + } +\ctex_patch_cmd:Nnn \HDorg@theglossary + { \let \item \@idxitem } + { \let \item \CTEX@versionitem } +\ctex_patch_cmd:Nnn \@wrglossary + { hdpindex } + { + \ifnum \c@HD@hypercount = \z@ + hdpindex + \else + hdclindex { \the \c@HD@hypercount } + \fi + } +\ctex_patch_cmd:Nnn \@addtocurcol + { \vskip \intextsep } + { + \edef \save@first@penalty { \the \lastpenalty } \unpenalty + \ifnum \lastpenalty = \@M + \unpenalty + \else + \penalty \save@first@penalty \relax + \fi + \ifnum \outputpenalty < -\@Mii + \addvspace\intextsep + \vskip\parskip + \else + \addvspace\intextsep + \fi + } +\ctex_patch_cmd:Nnn \@addtocurcol + { + \vskip \intextsep + \ifnum \outputpenalty < -\@Mii + \vskip -\parskip + \fi + } + { + \ifnum \outputpenalty < -\@Mii + \aftergroup \vskip \aftergroup \intextsep + \aftergroup \nointerlineskip + \else + \vskip \intextsep + \fi + } +\ctex_patch_cmd:Nnn \@getpen { \@M } { \@Mi } +\ctex_patch_cmd:Nnn \l@section { 2.5em } { 1.5em } +\ctex_patch_cmd:Nnn \l@subsection { 2.5em } { 1.5em } +\__fdudoc_preto_cmd:Nn \@thehead + { \cs_set_eq:cN { MakeUppercase \space } \@iden } +\ctex_patch_cmd:Nnn \HDorg@thebibliography + { \section* } { \section } +\cs_set_eq:NN \thebibliography \HDorg@thebibliography +\__fdudoc_appto_cmd:Nn \GlossaryParms + { + \raggedcolumns + \cs_set_eq:NN \Hy@writebookmark \HDorg@writebookmark + \cs_set:Npn \@idxitem { \par \hangindent 2em } + \cs_set:Npn \subitem { \@idxitem \hspace* { 1em } } + \cs_set:Npn \subsubitem { \@idxitem \hspace* { 2em } } + } +\ctex_patch_cmd:Nnn \HoLogo@LaTeXe + { \hbox { \HOLOGO@MathSetup 2 $ _{ \textstyle \varepsilon } $ } } + { + \hbox + { + \mathsurround 0pt \relax + 2 + \if b \expandafter \@car \f@series \@nil + $ _{ \textstyle \symbf { \varepsilon } } $ + \else + $ _{ \textstyle \varepsilon } $ + \fi + } + } +\ctex_patch_cmd:Nnn \SpecialMainEnvIndex + { (environment) } { ~ 环境 } +\ctex_patch_cmd:Nnn \SpecialMainEnvIndex + { environments: } { 环境: } +\ctex_patch_cmd:Nnn \HDorg@SpecialEnvIndex + { (environment) } { ~ 环境 } +\ctex_patch_cmd:Nnn \HDorg@SpecialEnvIndex + { environments: } { 环境: } +\cs_set_eq:NN \list \__codedoc_oldlist:nn +\__fdudoc_patch_cmd:Nnn \__codedoc_function_descr_start:w + { \noindent } + { \skip_vertical:n { -\parskip } \noindent } +\__fdudoc_preto_cmd:Nn \__codedoc_function_assemble: + { + \box_if_empty:NTF \g__codedoc_syntax_box + { \skip_zero:N \medskipamount } + { \skip_add:Nn \medskipamount { \parskip } } + } +\__fdudoc_patch_cmd:Nnn \__codedoc_typeset_functions: + { \small \ttfamily } { \footnotesize \CodeFont } +\__fdudoc_preto_cmd:Nn \__codedoc_typeset_functions: + { \MacroFont } +\__fdudoc_patch_cmd:Nnn \__codedoc_macro_init: + { \hbox:n } { \MacroFont \hbox:n } +\__fdudoc_patch_cmd:Nnn \__codedoc_macro_dump: + { \hbox_unpack_clear:N } { \MacroFont \hbox_unpack_clear:N } +\cs_set_eq:NN \__codedoc_macro_end_style:n \use_none:n +\cs_set_protected:Npn \__codedoc_typeset_TF: + { + \group_begin: + \exp_args:No \__codedoc_if_macro_internal:nT \l__codedoc_tmpa_tl + { \color [ gray ] { 0.5 } } + \itshape TF + \makebox [ 0 pt ] [ r ] + { + \color { red } + \underline { \phantom { \itshape TF } \kern -0.1 em } + } + \group_end: + } +\cs_set_protected:Npn \__codedoc_macro_typeset_one:nN #1#2 + { + \vbox_set:Nn \l__codedoc_macro_box + { + \MacroFont + \vbox_unpack_clear:N \l__codedoc_macro_box + \hbox_set:Nn \l_tmpa_box + { \__codedoc_print_macroname:nN {#1} #2 } + \dim_set:Nn \l_tmpa_dim + { \marginparwidth - \labelsep - \marginparsep } + \dim_compare:nNnT { \box_wd:N \l_tmpa_box } > \l_tmpa_dim + { + \box_resize_to_wd_and_ht:Nnn \l_tmpa_box + { \l_tmpa_dim } { \box_ht:N \l_tmpa_box } + } + \hbox_overlap_left:n + { + \box_use:N \l_tmpa_box + \skip_horizontal:n { \marginparsep - \labelsep } + } + } + \int_incr:N \l__codedoc_macro_int + } +\cs_set_protected:Npn \__codedoc_print_macroname:nN #1#2 + { + \strut + \__codedoc_get_hyper_target:xN + { + \exp_not:n {#1} + \bool_if:NT #2 { \tl_to_str:n {TF} } + } + \l__codedoc_tmpa_tl + \cs_if_exist:cTF { r@ \l__codedoc_tmpa_tl } + { \exp_args:NNo \label@hyperref [ \l__codedoc_tmpa_tl ] } + { \use:n } + { + \tl_set:Nn \l__codedoc_tmpa_tl {#1} + \tl_replace_all:Non \l__codedoc_tmpa_tl + { \c_catcode_other_space_tl } + { \fontspec_visible_space: } + \__codedoc_macroname_prefix:o \l__codedoc_tmpa_tl + \__codedoc_macroname_suffix:N #2 + } + } +\cs_set_protected:Npn \__codedoc_special_index_module:nnnnN #1#2#3#4#5 + { + \use:x + { + \exp_not:n { \__codedoc_special_index_aux:nnnnnnn {#1} {#2} } + \tl_if_empty:nTF {#3} + { { } { } { } { } } + { + \str_if_eq_x:nnTF {#3} { TeX } + { + { TeX~ and~ LaTeX2e } + { \string \TeX{}~ 和~ \string \LaTeXe{} } + } + { {#3} { \string \pkg {#3} } } + \bool_if:NTF #5 + { { commands~ internal } { ~ 内部命令: } } + { { commands } { ~ 命令: } } + } + } + {#4} + } +\cs_new_protected:Npn \__codedoc_special_index_aux:nnnnnnn #1#2#3#4#5#6#7 + { + \tl_set:Nn \l__codedoc_index_escaped_key_tl {#1} + \__codedoc_quote_special_char:N \l__codedoc_index_escaped_key_tl + \__codedoc_special_index_set:Nn + \l__codedoc_index_escaped_macro_tl {#2} + \str_if_eq:onTF { \@currenvir } { macrocode } + { \codeline@wrindex } + { + \str_case:nnF {#7} + { + { main } { \codeline@wrindex } + { usage } { \index } + } + { \HD@target \index } + } + { + \tl_if_empty:nF { #3 #4 #5 #6 } + { #3 #5 \actualchar #4 #6 \levelchar } + \l__codedoc_index_escaped_key_tl + \actualchar + { + \token_to_str:N \verbatim@font \c_space_tl + \l__codedoc_index_escaped_macro_tl + } + \encapchar + hdclindex { \the \c@HD@hypercount } {#7} + } + } +\DeclareDocumentCommand \StopSpecialIndexModule { } + { + \cs_set_eq:NN + \__codedoc_special_index_module:nnnnN \use_none:nnnnn + } +\tl_map_inline:nn { \actualchar \encapchar \levelchar } + { \exp_args:Nx \DoNotIndex { \bslash \tl_to_str:N #1 } } +\RenewDocumentCommand \meta { m } + { + \group_begin: + \sys_if_engine_xetex:T { \xeCJKsetup { CJKecglue = { } } } + \rmfamily \__codedoc_meta:n {#1} + \group_end: + } +\msg_redirect_name:nnn { l3doc } { foreign-internal } { log } +\msg_redirect_name:nnn { l3doc } { print-changes-howto } { log } +\msg_redirect_name:nnn { l3doc } { print-index-howto } { log } +\ExplSyntaxOff +\AtBeginDocument{% + \addtocontents{toc}{\StopSpecialIndexModule}} +\pdfstringdefDisableCommands{% + \let\path\meta + \let\opt\@firstofone + \let\kaishu\relax} +\renewcommand\@makefntext[1]{\parindent 0em\noindent\@makefnmark~#1} +\IndexPrologue{% + \section{\indexname}% + \textit{无衬线字体的数字表示对应索引项出现的页码; + 带下划线的数字表示定义对应索引项的代码行号; + 其他普通数字则表示使用对应索引项的代码行号.}} +\def\IndexLayout{% + \newgeometry{% + left = 0.85 in, + right = 0.85 in, + top = 1.25 in, + bottom = 1.00 in}% + \setlength\IndexMin{0.5\textheight}% + \ctexset{section/numbering=false}% + \StopSpecialIndexModule} +\def\indexname{代码索引} +\def\usage#1{\textsf{#1}} +\GlossaryPrologue{\section{\glossaryname}} +\def\glossaryname{修订记录} +\setmainfont{TeX Gyre Pagella} +\setsansfont{TeX Gyre Heros} +\setmathfont{TeX Gyre Pagella Math} +\setCJKmainfont{FZShuSong-Z01}% + [ + BoldFont = FZHei-B01, + ItalicFont = FZKai-Z03, + BoldItalicFont = FZKai-Z03 + ] +\setCJKsansfont{FZHei-B01}% + [ + BoldFont = FZHei-B01, + ItalicFont = FZKai-Z03, + BoldItalicFont = FZKai-Z03 + ] +\setCJKmonofont{FZFangSong-Z02}% + [ + BoldFont = FZHei-B01, + ItalicFont = FZKai-Z03, + BoldItalicFont = FZKai-Z03 + ] +\newCJKfontfamily\kaishu{FZKai-Z03}% + [BoldFont = *, ItalicFont = *, BoldItalicFont = *] +\newCJKfontfamily\fangsong{FZFangSong-Z02}% + [BoldFont = *, ItalicFont = *, BoldItalicFont = *] +\setmonofont{CMU Typewriter Text}% + [ + UprightFont = * Light, + BoldFont = * Bold, + SlantedFont = * Light Oblique, + HyphenChar = None + ] +\newfontfamily\fdudoc@code@font{Source Code Pro}% + [BoldFont = * Semibold] +\newCJKfontfamily\fdudoc@cjk@code@font{Source Han Sans SC}% + [BoldFont = * Bold, AutoFakeSlant = 0.22] +\newcommand*\CodeFont{\fdudoc@code@font\fdudoc@cjk@code@font} +\ctexset + { + section = {name = {第,节}, format+ = \raggedright}, + subsubsection/tocline = {\kaishu\CTEXnumberline{#1}#2}, + paragraph = {runin = false, numbering = false} + } +\setcounter{secnumdepth}{4} +\setcounter{tocdepth}{3} +\sisetup + { + number-math-rm = \ensuremath, + inter-unit-product = \ensuremath{{}\cdot{}}, + group-digits = true, + group-minimum-digits = 4, + group-separator = \text{~}, + range-phrase = \symbol{"FF5E}, + separate-uncertainty = true + } +\hypersetup + { + bookmarksdepth = 4, + bookmarksnumbered = true, + colorlinks = true, + citecolor = MaterialGreen, + linkcolor = MaterialPink, + urlcolor = MaterialIndigo + } +\captionsetup{labelsep = quad, labelfont+ = bf} +\setlist{noitemsep, topsep=\smallskipamount} +\setlist[1]{labelindent=\parindent} +\setlist[enumerate]{leftmargin=*} +\setlist[itemize]{leftmargin=*} +\newlist{optdesc}{description}{3} +\setlist[optdesc]{% + font=\mdseries\small\ttfamily, align=right, + listparindent=\parindent, + labelsep=\marginparsep, labelindent=-\marginparsep, + leftmargin=*} +\renewlist{tablenotes}{description}{1} +\setlist[tablenotes]{% + format=\normalfont\tnote@item, align=right, + listparindent=\parindent, labelindent=\tabcolsep, + leftmargin=*, rightmargin=\tabcolsep, + after=\@noparlisttrue} +\AtBeginEnvironment{tablenotes}{% + \setlength\parindent{2\ccwd}% + \normalfont\footnotesize} +\AtBeginEnvironment{threeparttable}{% + \stepcounter{tpt@id}% + \edef\curr@tpt@id{tpt@\arabic{tpt@id}}} +\newcounter{tpt@id} +\def\tnote@item#1{% + \Hy@raisedlink{\hyper@anchor{\curr@tpt@id-#1}}#1} +\def\TPTtagStyle#1{\hyperlink{\curr@tpt@id-#1}{#1}} +\def\UrlAlphabet{% + \do\a\do\b\do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j% + \do\k\do\l\do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t% + \do\u\do\v\do\w\do\x\do\y\do\z\do\A\do\B\do\C\do\D% + \do\E\do\F\do\G\do\H\do\I\do\J\do\K\do\L\do\M\do\N% + \do\O\do\P\do\Q\do\R\do\S\do\T\do\U\do\V\do\W\do\X% + \do\Y\do\Z} +\def\UrlDigits{% + \do\1\do\2\do\3\do\4\do\5\do\6\do\7\do\8\do\9\do\0} +\g@addto@macro\UrlBreaks{\UrlOrds} +\g@addto@macro\UrlBreaks{\UrlAlphabet} +\g@addto@macro\UrlBreaks{\UrlDigits} +\DoNotIndex{\begin,\end, + \a,\b,\c,\d,\e,\f,\g,\h,\i,\j,\k,\l,\m, + \n,\o,\p,\q,\r,\s,\t,\u,\v,\w,\x,\y,\z, + \A,\B,\C,\D,\E,\F,\G,\H,\I,\J,\K,\L,\M, + \N,\O,\P,\Q,\R,\S,\T,\U,\V,\W,\X,\Y,\Z, + \0,\1,\2,\3,\4,\5,\6,\7,\8,\9} +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\newcommand*\exptarget{\Hy@raisedlink{\hypertarget{expstar}{}}} +\newcommand*\rexptarget{\Hy@raisedlink{\hypertarget{rexpstar}{}}} +\newcommand*\expstar{\hyperlink{expstar}{$\star$}} +\newcommand*\rexpstar{\hyperlink{rexpstar}{\ding{73}}} +\renewcommand*\expstar{\hyperlink{expstar}{$\mfrake$}} +\renewcommand*\rexpstar{\hyperlink{rexpstar}{$\mfrakc$}} +\ExplSyntaxOn +\cs_set_eq:NN \__codedoc_typeset_exp: \expstar +\cs_set_eq:NN \__codedoc_typeset_rexp: \rexpstar +\ExplSyntaxOff +\renewcommand*\marg[1]{\{\meta{#1}\}} +\renewcommand*\oarg[1]{[\meta{#1}]} +\renewcommand*\parg[1]{(\meta{#1})} +\DeclareDocumentCommand\opt{m}{\texttt{#1}} +\DeclareDocumentCommand\kvopt{mm} + {\texttt{#1\breakablethinspace=\breakablethinspace#2}} +\def\breakablethinspace{\hskip 0.16667em\relax} +\def\syntaxopt#1{\textit{#1}} +\def\defaultval#1{\textbf{\textup{#1}}} +\def\syntaxopt@aux#1>{\syntaxopt{#1}} +\def\defaultval@aux#1){\defaultval{#1}} +\def\orbar{\textup{\textbar}} +\def\TF{true\orbar false} +\def\TTF{\defaultval{true}\orbar false} +\def\TFF{true\orbar\defaultval{false}} +\DeclareDocumentEnvironment{arguments}{} + {\enumerate[% + label={\texttt{\#\arabic*:~}}, labelsep=0pt, nolistsep]}% + {\endenumerate} +\def\TeX{\hologo{TeX}} +\def\LaTeX{\hologo{LaTeX}} +\def\LaTeXe{\hologo{LaTeXe}} +\def\pdfTeX{\hologo{pdfTeX}} +\def\pdfLaTeX{\hologo{pdfLaTeX}} +\def\XeTeX{\hologo{XeTeX}} +\def\XeLaTeX{\hologo{XeLaTeX}} +\def\LuaTeX{\hologo{LuaTeX}} +\def\LuaLaTeX{\hologo{LuaLaTeX}} +\def\AmSLaTeX{\hologo{AmSLaTeX}} +\def\TeXLive{\TeX\ Live} +\def\MiKTeX{\hologo{MiKTeX}} +\def\BibTeX{\hologo{BibTeX}} +\def\BibTeX{\hologo{BibTeX}} +\def\biber{\hologo{biber}} +\def\TikZ{Ti\emph{k}Z} +\renewcommand*\env[1]{\textbf{\texttt{#1}}} +\newcommand*\bashcmd[1]{\texttt{#1}} +\newcommand*\scite[1]{\textsuperscript{\cite{#1}}} +\DeclareDocumentEnvironment{quote*}{oo} + {\quote\fangsong\qquad}% + {\endquote\IfNoValueF{#1}{% + \hfill —— \IfNoValueF{#2}{〔#2〕}#1}} +\lst@CCPutMacro\lst@ProcessOther {"2D}{\lst@ttfamily{-{}}{-{}}} +\@empty\z@\@empty +\lstdefinestyle{style@base} + { + extendedchars = true, + gobble = 3, + lineskip = 2 pt, + frame = l, + framerule = 1 pt, + framesep = 0 pt, + escapeinside = {(*}{*)}, + basicstyle = \small\CodeFont\color{MaterialGrey900}, + keywordstyle = \bfseries\color{MaterialIndigo}, + commentstyle = \itshape\color{MaterialGrey600}, + stringstyle = \color{MaterialRed}, + backgroundcolor = \color{MaterialGrey50} + } +\lstdefinestyle{style@shell} + { + style = style@base, + rulecolor = \color{MaterialPink}, + language = bash, + alsoletter = {-}, + emphstyle = \color{MaterialGreen800} + } +\lstdefinestyle{style@latex} + { + style = style@base, + rulecolor = \color{MaterialIndigo}, + language = [LaTeX]TeX, + alsoletter = {*, -}, + texcsstyle = *\color{MaterialDeepOrange}, + emphstyle = [1]\color{MaterialGreen800}, + emphstyle = [2]\color{MaterialTeal} + } +\lstdefinestyle{style@syntax} + { + extendedchars = true, + gobble = 6, + escapeinside = {(*}{*)}, + language = [LaTeX]TeX, + alsoletter = {*, -}, + basicstyle = \footnotesize\CodeFont\color{MaterialGrey900}, + keywordstyle = \bfseries\color{MaterialIndigo}, + commentstyle = \itshape\color{MaterialGrey600}, + texcsstyle = *\color{MaterialDeepOrange}, + emphstyle = [1]\color{MaterialGreen800}, + emphstyle = [2]\color{MaterialTeal} + } +\lstnewenvironment{shellexample}[1][]{% + \lstset{style=style@shell, #1}}{} +\lstnewenvironment{latexexample}[1][]{% + \lstset{style=style@latex, #1}}{} +\lstnewenvironment{fdusyntax}[1][]{% + \lstset{style=style@syntax, #1}\vspace{-1.8ex}}{} +\endinput +%% +%% End of file `fdudoc.cls'. diff --git a/Master/texmf-dist/tex/latex/fduthesis/fdulogo.sty b/Master/texmf-dist/tex/latex/fduthesis/fdulogo.sty new file mode 100644 index 00000000000..daa565b8257 --- /dev/null +++ b/Master/texmf-dist/tex/latex/fduthesis/fdulogo.sty @@ -0,0 +1,2253 @@ +%% +%% This is file `fdulogo.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fduthesis.dtx (with options: `logo') +%% fduthesis-logo.dtx (with options: `logo') +%% +%% Copyright (C) 2017, 2018 by Xiangdong Zeng <xdzeng96@gmail.com> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3c 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 `maintained'. +%% +%% The Current Maintainer of this work is Xiangdong Zeng. +%% +%% This work consists of the files fduthesis.dtx, +%% fduthesis-doc.dtx, +%% fduthesis-logo.dtx, +%% fduthesis-template.tex, +%% and the derived files fduthesis.ins, +%% fduthesis.cls, +%% fduthesis-en.cls, +%% fduthesis.def, +%% fdudoc.cls, +%% fdulogo.sty, +%% fdulogo-example.tex, +%% fduthesis-cover.tex, +%% fduthesis-en.tex, +%% fduthesis.pdf, +%% fduthesis-en.pdf, +%% fduthesis-code.pdf, +%% latexmkrc, +%% latexmkrc-en, +%% and README.md. +%% +\NeedsTeXFormat{LaTeX2e} +\RequirePackage{expl3} +\GetIdInfo $Id: fduthesis.dtx 0.7a 2018-04-09 12:00:00Z Xiangdong Zeng <xdzeng96@gmail.com> $ + {Fudan University's Visual Identity} +\ProvidesExplPackage{fdulogo} + {\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} +\RequirePackage { luatex85 } +\RequirePackage { xcolor, tikz } +\RequirePackage { xparse } +\NewDocumentCommand \fduname { O { } } + { + \__fdulogo_tikz:Nx \fdulogo@name + { \l__fdulogo_default_arg_tl, #1 } + } +\NewDocumentCommand \fduemblem { t+ s O { } } + { + \__fdulogo_tikz:cx + { + \IfBooleanTF {#1} + { + \IfBooleanTF {#2} + { fdulogo@emblem@new@reversed } { fdulogo@emblem@new } + } + { + \IfBooleanTF {#2} + { fdulogo@emblem@reversed } { fdulogo@emblem } + } + } + { \l__fdulogo_default_arg_tl, #3 } + } +\NewDocumentCommand \fdumotto { O { } } + { + \__fdulogo_tikz:Nx \fdulogo@motto + { \l__fdulogo_default_arg_tl, #1 } + } +\tl_const:Nn \l__fdulogo_default_arg_tl { x = 1 pt, y = 1 pt } +\cs_new_protected:Npn \__fdulogo_tikz:Nn #1#2 + { + \begin{tikzpicture} [#2] + #1 + \end{tikzpicture} + } +\cs_generate_variant:Nn \__fdulogo_tikz:Nn { Nx, cx } +\definecolor { FudanBlue } { HTML } { 0E419C } +\definecolor { FudanRed } { HTML } { C80000 } +\definecolor { MaterialGrey } { HTML } { 9E9E9E } +\ExplSyntaxOff +\def\fdulogo@name{% + \fill \fdulogo@name@fu + \fdulogo@name@dan + \fdulogo@name@da + \fdulogo@name@xue;} +\def\fdulogo@emblem{% + \fill \fdulogo@emblem@kernel + \fdulogo@emblem@text + \fdulogo@emblem@year + \fdulogo@emblem@ring@inner@i + \fdulogo@emblem@ring@inner@ii + \fdulogo@emblem@ring@outer@i + \fdulogo@emblem@ring@outer@ii;} +\def\fdulogo@emblem@reversed{% + \fill \fdulogo@emblem@text + \fdulogo@emblem@year; + \fill[even odd rule] + \fdulogo@emblem@kernel + \fdulogo@emblem@ring@inner@i + \fdulogo@emblem@ring@outer@i + \fdulogo@emblem@ring@outer@ii;} +\def\fdulogo@emblem@text{% + \fdulogo@emblem@F + \fdulogo@emblem@U@i + \fdulogo@emblem@D + \fdulogo@emblem@A + \fdulogo@emblem@N@i + \fdulogo@emblem@U@ii + \fdulogo@emblem@N@ii + \fdulogo@emblem@I@i + \fdulogo@emblem@V + \fdulogo@emblem@E + \fdulogo@emblem@R + \fdulogo@emblem@S + \fdulogo@emblem@I@ii + \fdulogo@emblem@T + \fdulogo@emblem@Y} +\def\fdulogo@emblem@year{% + \fdulogo@emblem@one + \fdulogo@emblem@nine + \fdulogo@emblem@zero + \fdulogo@emblem@five} +\def\fdulogo@emblem@new{% + \fill \fdulogo@emblem@new@kernel + \fdulogo@emblem@new@text + \fdulogo@emblem@new@year; + \fill[even odd rule] + \fdulogo@emblem@new@ring@inner@i + \fdulogo@emblem@new@ring@inner@ii + \fdulogo@emblem@new@ring@outer@i + \fdulogo@emblem@new@ring@outer@ii;} +\def\fdulogo@emblem@new@reversed{% + \fill \fdulogo@emblem@new@text + \fdulogo@emblem@new@year; + \fill[even odd rule] + \fdulogo@emblem@new@kernel + \fdulogo@emblem@new@ring@inner@i + \fdulogo@emblem@new@ring@outer@i + \fdulogo@emblem@new@ring@outer@ii;} +\def\fdulogo@emblem@new@text{% + \fdulogo@emblem@new@F + \fdulogo@emblem@new@U@i + \fdulogo@emblem@new@D + \fdulogo@emblem@new@A + \fdulogo@emblem@new@N@i + \fdulogo@emblem@new@U@ii + \fdulogo@emblem@new@N@ii + \fdulogo@emblem@new@I@i + \fdulogo@emblem@new@V + \fdulogo@emblem@new@E + \fdulogo@emblem@new@R + \fdulogo@emblem@new@S + \fdulogo@emblem@new@I@ii + \fdulogo@emblem@new@T + \fdulogo@emblem@new@Y} +\def\fdulogo@emblem@new@year{% + \fdulogo@emblem@new@one + \fdulogo@emblem@new@nine + \fdulogo@emblem@new@zero + \fdulogo@emblem@new@five} +\def\fdulogo@motto{% + \fill \fdulogo@motto@i + \fdulogo@motto@ii;} +\def\fdulogo@motto@i{% + \fdulogo@motto@bo + \fdulogo@motto@xue + \fdulogo@motto@er@i + \fdulogo@motto@du + \fdulogo@motto@zhi} +\def\fdulogo@motto@ii{% + \fdulogo@motto@qie + \fdulogo@motto@wen + \fdulogo@motto@er@ii + \fdulogo@motto@jin + \fdulogo@motto@si} +\def\fduthesis@cover{% + \hspace{1.5cm} + \begin{tikzpicture}[x=1pt, y=1pt, scale=1.1, color=MaterialGrey] + \useasboundingbox ( 100, -140) rectangle ( 800, 800); + \fdulogo@emblem@new + \end{tikzpicture} + \begin{tikzpicture}[x=1pt, y=1pt] + \useasboundingbox ( 750, -150) rectangle (1350, 850); + \fill \fdulogo@motto@i; + \end{tikzpicture} + \begin{tikzpicture}[x=1pt, y=1pt] + \useasboundingbox (1280, 10) rectangle (1880, 1210); + \fill \fdulogo@motto@ii; + \end{tikzpicture} + \hspace*{-42.5cm}} +\def\fdulogo@name@fu{% + ( 86.79426450, 309.23000203) + .. controls ( 90.52759774, 306.43000210) and ( 95.27426428, 304.13666883) .. ( 96.80759758, 299.37666895) + .. controls (100.07426416, 292.95000244) and (100.74093081, 285.69666929) .. (101.08759747, 278.60333613) + .. controls ( 97.58093089, 266.51000310) and ( 89.47426443, 256.63000335) .. ( 83.27426458, 245.87000362) + .. controls ( 76.79426475, 235.84333720) and ( 70.78093156, 225.51000413) .. ( 64.22093173, 215.53667104) + .. controls ( 62.24759844, 212.88333778) and ( 62.18093178, 209.48333786) .. ( 61.44759846, 206.37667127) + .. controls ( 66.44759834, 207.63000457) and ( 71.00759822, 205.08333797) .. ( 75.68759811, 203.80333800) + .. controls ( 77.31426473, 200.65667142) and ( 78.78093136, 197.41667150) .. ( 80.55426465, 194.33667157) + .. controls ( 80.19426466, 188.60333838) and ( 77.71426472, 183.32333852) .. ( 74.72759813, 178.52333864) + .. controls ( 68.70093162, 167.31000558) and ( 62.86093176, 155.99000587) .. ( 56.75426525, 144.81667281) + .. controls ( 54.87426529, 140.92333958) and ( 54.19426531, 136.60333968) .. ( 52.91426534, 132.51000645) + .. controls ( 54.60759863, 129.12333987) and ( 56.99426524, 126.08333995) .. ( 58.50093187, 122.61667337) + .. controls ( 59.66093184, 116.97667351) and ( 61.08759847, 111.27000698) .. ( 60.52759849, 105.45667380) + .. controls ( 59.15426519, 78.25667448) and ( 58.22093188, 51.01667516) .. ( 56.68759858, 23.83000917) + .. controls ( 54.52759864, 19.44334261) and ( 53.56759866, 12.80334278) .. ( 47.75426547, 12.03000946) + .. controls ( 42.10093228, 14.51000940) and ( 39.03426569, 20.09667593) .. ( 37.23426574, 25.71000912) + .. controls ( 36.24759909, 37.23000883) and ( 41.36759897, 48.00334190) .. ( 42.15426561, 59.35000828) + .. controls ( 43.31426558, 69.33667470) and ( 41.59426563, 79.37667445) .. ( 41.47426563, 89.39000753) + .. controls ( 41.72759896, 92.87000744) and ( 39.83426567, 95.81667404) .. ( 38.20759904, 98.71000730) + .. controls ( 36.59426575, 98.21667398) and ( 34.98093246, 97.73667399) .. ( 33.35426583, 97.24334067) + .. controls ( 28.54093262, 89.83000752) and ( 23.40759941, 82.63000770) .. ( 18.54093287, 75.25667455) + .. controls ( 16.62093292, 75.76334120) and ( 14.67426630, 76.15000786) .. ( 12.80759968, 76.81667451) + .. controls ( 12.07426636, 78.93667446) and ( 11.02093306, 81.43000773) .. ( 12.54093302, 83.45667435) + .. controls ( 20.94093281, 99.43000728) and ( 29.63426593, 115.23000688) .. ( 38.19426571, 131.11000649) + .. controls ( 42.94093226, 140.45667292) and ( 48.59426545, 149.36333936) .. ( 52.68759868, 159.00333912) + .. controls ( 55.28759862, 168.04333890) and ( 60.40759849, 176.51000535) .. ( 59.79426517, 186.20333844) + .. controls ( 54.76759863, 185.93667178) and ( 51.83426537, 181.23000523) .. ( 47.56759881, 179.16333862) + .. controls ( 44.71426555, 181.43000523) and ( 41.87426562, 183.71000517) .. ( 39.04759902, 186.01667178) + .. controls ( 40.84759898, 191.27000498) and ( 41.78093229, 196.92333818) .. ( 44.86093221, 201.65667139) + .. controls ( 52.82093201, 215.04333772) and ( 60.74093181, 228.45667072) .. ( 68.78093161, 241.80333705) + .. controls ( 74.71426480, 252.79000345) and ( 83.66093124, 262.99000319) .. ( 83.84759790, 276.12333620) + .. controls ( 83.06093126, 284.17666933) and ( 81.95426462, 292.19000246) .. ( 81.08759797, 300.24333559) + .. controls ( 82.94093126, 303.27000218) and ( 84.82093121, 306.28333544) .. ( 86.79426450, 309.23000203) + (143.71426307, 60.96334157) + .. controls (144.87426304, 59.85667494) and (146.06092968, 58.77667496) .. (147.26092965, 57.72334166) + .. controls (149.38092960, 57.35000833) and (151.54092954, 57.99000832) .. (153.66092949, 58.11000831) + .. controls (154.46092947, 59.65667494) and (155.27426278, 61.20334157) .. (156.08759610, 62.75000820) + .. controls (152.87426284, 64.45667482) and (149.39426293, 65.55000813) .. (145.88759635, 66.47000810) + .. controls (145.16759637, 64.64334148) and (144.43426306, 62.80334153) .. (143.71426307, 60.96334157) + (144.91426304, 141.67000622) + .. controls (143.54092974, 139.96333960) and (143.79426307, 137.71000632) .. (143.52759641, 135.67000637) + .. controls (146.12759635, 135.72333971) and (148.42092962, 137.09667300) .. (150.07426291, 139.03000629) + .. controls (154.63426280, 143.33667285) and (153.22092950, 150.21667268) .. (154.36759614, 155.79000587) + .. controls (151.31426288, 151.01667266) and (148.14092963, 146.32333944) .. (144.91426304, 141.67000622) + (139.83426317, 253.56333676) + .. controls (153.16759617, 263.92333650) and (166.98092916, 273.65666959) .. (180.19426216, 284.17666933) + .. controls (184.74092871, 283.19000269) and (188.98092861, 281.07000274) .. (192.24759519, 277.71000282) + .. controls (182.23426211, 263.05666986) and (165.90092919, 254.75000340) .. (153.84759615, 242.09667038) + .. controls (146.96759633, 233.00333727) and (139.40759651, 224.41667082) .. (132.67426335, 215.21667105) + .. controls (126.63426350, 204.79000465) and (121.22093030, 194.00333825) .. (115.50093045, 183.39000518) + .. controls (113.88759715, 181.04333857) and (113.86093049, 178.20333864) .. (113.84759715, 175.44333871) + .. controls (120.24759699, 184.61667182) and (126.19426351, 194.09667158) .. (132.54093002, 203.31000468) + .. controls (140.58092982, 217.01667101) and (152.38092952, 229.56333736) .. (167.99426247, 234.25667058) + .. controls (172.19426236, 231.63000397) and (176.00759560, 228.21667073) .. (178.48759554, 223.88333750) + .. controls (178.03426222, 208.04333790) and (170.72759573, 193.64333826) .. (166.24759584, 178.71000530) + .. controls (159.55426268, 161.00333907) and (159.48759601, 141.69667289) .. (154.91426279, 123.47000668) + .. controls (152.00759620, 118.13667348) and (151.20759622, 111.04334032) .. (145.19426304, 108.15000706) + .. controls (142.22092978, 112.72334028) and (137.62092989, 115.56334021) .. (132.30093003, 116.57667352) + .. controls (129.06093011, 111.89667363) and (125.34093020, 107.51000708) .. (122.47426360, 102.59000720) + .. controls (120.10093033, 96.57667402) and (117.70093039, 90.31000751) .. (118.26093038, 83.71000767) + .. controls (126.60759683, 88.87000754) and (134.99426329, 93.95000742) .. (143.28759642, 99.20334062) + .. controls (149.03426294, 101.97667388) and (155.03426279, 104.23000716) .. (160.84759598, 106.89667376) + .. controls (165.36759587, 109.01667371) and (171.96759570, 109.15000704) .. (174.74092896, 104.25667383) + .. controls (180.14092883, 99.07000729) and (179.06092886, 91.27000748) .. (179.26092885, 84.47000765) + .. controls (176.34092892, 77.25667450) and (172.12759570, 70.45667467) .. (170.91426239, 62.64334153) + .. controls (177.99426222, 55.12334172) and (184.76759538, 47.13667525) .. (193.68759516, 41.68334206) + .. controls (194.34092847, 38.95000879) and (195.18092845, 36.17667553) .. (194.71426180, 33.32334227) + .. controls (192.94092851, 33.12334227) and (191.18092855, 32.92334228) .. (189.42092860, 32.71000895) + .. controls (185.27426203, 35.52334221) and (180.14092883, 37.20334217) .. (177.14092890, 41.41667540) + .. controls (173.59426233, 46.16334194) and (168.66092912, 49.52334186) .. (163.82092924, 52.81667511) + .. controls (161.22092930, 47.79000857) and (157.30092940, 43.59000868) .. (152.34092952, 40.83000874) + .. controls (145.87426302, 45.28334197) and (139.71426317, 50.23000851) .. (134.72759663, 56.35000836) + .. controls (132.92759668, 59.23000828) and (132.14093003, 62.59000820) .. (130.94093006, 65.73667479) + .. controls (132.47426335, 69.56334136) and (134.59426330, 73.12334127) .. (137.24759657, 76.27000786) + .. controls (143.88759640, 74.47000790) and (150.47426290, 72.52334129) .. (157.11426274, 70.73667466) + .. controls (160.58092932, 73.36334126) and (164.75426255, 75.89667453) .. (166.18092918, 80.25667443) + .. controls (168.00759580, 85.73667429) and (170.20759574, 91.05667416) .. (172.34092902, 96.43000735) + .. controls (169.06092911, 96.77667401) and (165.74092919, 98.00334065) .. (162.46092927, 97.59000733) + .. controls (155.74092944, 94.68334073) and (148.95426294, 91.79000747) .. (142.84759643, 87.72334091) + .. controls (137.52759656, 84.17667433) and (131.24759672, 81.96334105) .. (126.76759683, 77.24334117) + .. controls (121.84759695, 72.37667462) and (116.75426375, 67.65667474) .. (111.88759720, 62.72334153) + .. controls (106.62093067, 55.99000837) and (101.46093080, 49.15000854) .. ( 96.48759759, 42.20334204) + .. controls ( 93.54093099, 36.41667552) and ( 90.70093107, 30.57667567) .. ( 87.42093115, 24.96334247) + .. controls ( 83.87426457, 26.44334244) and ( 79.19426469, 28.04334240) .. ( 78.46093137, 32.35000896) + .. controls ( 80.48759799, 37.96334215) and ( 83.39426458, 43.21667535) .. ( 85.60759786, 48.75000855) + .. controls ( 87.51426448, 54.04334175) and ( 92.48759769, 57.36334166) .. ( 95.11426429, 62.25667488) + .. controls ( 96.75426425, 65.41667480) and ( 98.54093087, 68.48334139) .. (100.08759750, 71.68334131) + .. controls (102.40759744, 76.51000785) and (102.58093077, 82.07000771) .. (105.12759737, 86.80334093) + .. controls (109.44759726, 94.08334075) and (113.92759715, 101.27000723) .. (118.08759705, 108.63000705) + .. controls (121.11426364, 116.92334018) and (125.23426354, 124.81667331) .. (127.67426347, 133.31000643) + .. controls (127.40759681, 142.21667288) and (125.86093019, 151.13667265) .. (127.35426348, 160.04333910) + .. controls (126.95426349, 166.37667227) and (130.68759673, 171.60333881) .. (133.59426333, 176.88333868) + .. controls (135.03426329, 179.41667195) and (138.31426321, 179.64333861) .. (140.76759648, 180.61667192) + .. controls (145.40759636, 173.87000542) and (150.78092956, 167.68333891) .. (155.87426277, 161.28333907) + .. controls (154.00759615, 168.75000555) and (157.66092939, 175.69667204) .. (159.02092936, 182.88333853) + .. controls (161.96759595, 195.19000489) and (167.38092915, 207.07000459) .. (167.04759582, 219.96333760) + .. controls (164.47426255, 219.76333760) and (161.64759596, 220.45667092) .. (159.34092935, 219.03000429) + .. controls (154.63426280, 216.43000435) and (149.44759626, 214.25667108) .. (146.07426301, 209.87000452) + .. controls (141.96759645, 204.55000465) and (136.86092991, 200.01667143) .. (133.08759667, 194.44333824) + .. controls (126.78093016, 180.76333858) and (120.64759698, 166.89667226) .. (117.15426374, 152.17667263) + .. controls (111.54093054, 136.29667302) and (108.63426395, 119.43000678) .. (100.72759748, 104.43000715) + .. controls ( 99.18093085, 102.67000720) and ( 96.75426425, 101.97667388) .. ( 94.79426430, 100.76334058) + .. controls ( 93.07426434, 102.04334055) and ( 91.35426438, 103.32334052) .. ( 89.62093109, 104.59000715) + .. controls ( 88.06093113, 110.39000701) and ( 84.32759789, 116.45667352) .. ( 86.74093116, 122.52334004) + .. controls ( 92.48759769, 139.11000629) and ( 97.71426422, 155.87000587) .. (103.47426408, 172.44333879) + .. controls (111.64759721, 187.41667175) and (119.76759701, 202.41667137) .. (127.88759680, 217.41667100) + .. controls (139.84759650, 232.69667061) and (152.04759620, 247.83000357) .. (163.92759590, 263.19000319) + .. controls (153.66092949, 255.16333672) and (145.20759637, 245.01667031) .. (135.38092995, 236.47000385) + .. controls (130.47426340, 233.84333725) and (124.72759688, 232.63000395) .. (120.52759699, 228.76333738) + .. controls (115.07426379, 223.92333750) and (109.78093059, 218.89667096) .. (104.15426406, 214.25667108) + .. controls (101.86093079, 217.11000434) and ( 99.04759752, 219.79000427) .. ( 97.95426422, 223.39000418) + .. controls ( 96.06093093, 230.88333733) and ( 96.82093091, 239.12333712) .. (100.50093082, 245.96333695) + .. controls (104.34093072, 255.28333672) and (108.88759728, 264.28333649) .. (112.63426385, 273.64333626) + .. controls (113.75426382, 277.21666950) and (116.74093041, 279.49666944) .. (119.50093035, 281.76333605) + .. controls (121.56759696, 280.59000275) and (123.74093024, 279.56333611) .. (125.63426353, 278.11000281) + .. controls (128.27426346, 274.76333623) and (129.70093009, 270.69666966) .. (131.18093005, 266.76333643) + .. controls (129.26093010, 259.37666995) and (126.90093016, 252.08333680) .. (125.56759686, 244.55000365) + .. controls (131.00759672, 246.40333694) and (135.18092995, 250.37667017) .. (139.83426317, 253.56333676)} +\def\fdulogo@name@dan{% + (318.28759204, 86.52334094) + .. controls (328.19425846, 87.00334092) and (337.14092490, 91.81667414) .. (346.11425801, 95.59000738) + .. controls (351.20759122, 94.93667406) and (356.20759109, 93.69667409) .. (360.83425765, 91.41667415) + .. controls (361.59425763, 89.11000754) and (362.34092427, 86.79000760) .. (363.11425759, 84.47000765) + .. controls (357.78092439, 79.79000777) and (350.70092457, 78.47000780) .. (344.07425806, 76.67000785) + .. controls (343.51425808, 77.64334116) and (342.42092477, 79.59000778) .. (341.87425812, 80.56334108) + .. controls (332.26092503, 77.56334116) and (322.44759194, 75.27000788) .. (312.82092551, 72.32334129) + .. controls (306.68759233, 70.84334133) and (301.54092579, 66.97667476) .. (296.48759259, 63.39000818) + .. controls (292.74092601, 58.63000830) and (291.00759272, 52.12334180) .. (285.50092620, 48.87000854) + .. controls (279.98092633, 44.65667532) and (272.30092653, 47.80334190) .. (268.44759329, 52.75000845) + .. controls (266.51426000, 56.84334168) and (264.15426006, 60.80334158) .. (262.72759343, 65.11000814) + .. controls (262.96759343, 67.80334140) and (263.51426008, 70.45667467) .. (263.96759340, 73.12334127) + .. controls (267.08759332, 73.39000793) and (270.23425991, 73.53667459) .. (273.32759317, 74.08334125) + .. controls (288.47425945, 77.64334116) and (303.11425909, 83.09667435) .. (318.28759204, 86.52334094) + (347.60759131, 212.41667112) + .. controls (352.20759119, 214.71000440) and (357.26092440, 212.57667112) .. (362.04759095, 212.12333780) + .. controls (363.84759090, 209.92333785) and (365.60759086, 207.69667124) .. (367.28759082, 205.39000463) + .. controls (364.44759089, 193.92333825) and (356.31425776, 184.75000515) .. (353.11425784, 173.41667210) + .. controls (350.19425791, 164.27000566) and (347.51425798, 155.04333922) .. (344.23425806, 146.01667278) + .. controls (342.48759144, 141.53667289) and (342.50092477, 136.68333968) .. (341.74092479, 132.00333980) + .. controls (340.55425815, 124.59000665) and (339.36759152, 117.16334017) .. (338.18092488, 109.73667369) + .. controls (336.31425826, 108.56334038) and (334.43425831, 107.39000708) .. (332.59425835, 106.17667378) + .. controls (329.91425842, 108.37667372) and (326.87425849, 110.39000701) .. (325.35425853, 113.61667359) + .. controls (323.51425858, 117.24334017) and (321.70092529, 121.09667340) .. (317.79425872, 122.88334003) + .. controls (314.35425881, 120.28334009) and (311.04759222, 117.48334016) .. (307.38092565, 115.20334022) + .. controls (303.08759242, 121.15000674) and (307.50092565, 127.88333990) .. (309.52759226, 133.76333975) + .. controls (308.32759229, 143.05667286) and (300.79425915, 151.83000597) .. (304.55425905, 161.37667240) + .. controls (305.95425902, 164.12333900) and (308.52759229, 166.09667228) .. (310.39425891, 168.52333889) + .. controls (313.00759217, 167.01667226) and (315.76759211, 165.71000562) .. (318.16759205, 163.84333900) + .. controls (322.47425860, 158.48333914) and (326.20759184, 152.29667262) .. (327.11425849, 145.35000613) + .. controls (327.94092513, 140.35000626) and (328.71425845, 135.32333972) .. (329.59425843, 130.32333984) + .. controls (330.34092507, 130.55000650) and (331.83425837, 131.00333982) .. (332.59425835, 131.21667315) + .. controls (335.83425827, 146.37667277) and (340.43425816, 161.20333907) .. (343.70092474, 176.35000536) + .. controls (345.04759137, 181.07000524) and (345.90092469, 185.93667178) .. (347.64759131, 190.53667167) + .. controls (350.00759125, 194.93667156) and (353.07425784, 199.07000479) .. (353.80759115, 204.15000466) + .. controls (347.32759132, 204.91000464) and (341.32759147, 201.87000472) .. (335.78092494, 198.93667146) + .. controls (331.47425838, 196.45667152) and (326.50092517, 195.12333822) .. (322.70092527, 191.79000497) + .. controls (315.19425879, 185.56333846) and (307.60759231, 179.45667195) .. (300.19425916, 173.12333877) + .. controls (296.47425925, 170.24333884) and (294.80759263, 165.69667229) .. (291.99425937, 162.05667238) + .. controls (292.47425935, 156.11000586) and (295.62092594, 150.99000599) .. (297.87425922, 145.64333946) + .. controls (299.80759250, 137.37667300) and (302.00759245, 127.76333990) .. (297.06092591, 120.15000676) + .. controls (295.79425927, 117.40334016) and (293.94092598, 115.01667356) .. (291.96759270, 112.76334028) + .. controls (289.50092610, 118.09667348) and (285.55425953, 123.29667335) .. (286.28759284, 129.49667319) + .. controls (286.84759283, 138.20333964) and (284.63425955, 146.71000610) .. (283.44759291, 155.27000588) + .. controls (286.83425950, 162.61667237) and (286.67425950, 170.93667216) .. (288.94092611, 178.63000530) + .. controls (291.67425937, 180.88333858) and (293.70092599, 183.88333850) .. (296.54092592, 186.00333845) + .. controls (306.46092567, 191.56333831) and (316.12759210, 197.56333816) .. (325.99425852, 203.21667135) + .. controls (333.27425833, 206.09667128) and (340.30092483, 209.61667119) .. (347.60759131, 212.41667112)} +\def\fdulogo@name@da{% + (500.52758749, 206.59000460) + .. controls (503.94092073, 220.15000426) and (500.12758750, 234.41667057) .. (504.03425407, 247.92333690) + .. controls (511.07425389, 246.55000360) and (517.44758706, 242.07000371) .. (519.55425368, 234.97667056) + .. controls (516.83425375, 217.67000432) and (512.24758719, 200.72333808) .. (509.44758726, 183.43000518) + .. controls (505.98092068, 167.81667224) and (503.00758742, 152.09667263) .. (499.86092084, 136.41667302) + .. controls (505.75425402, 140.20333959) and (512.02092053, 143.41667285) .. (517.80758705, 147.37667275) + .. controls (519.20758702, 148.73667271) and (519.98092033, 150.59000600) .. (521.03425364, 152.20333929) + .. controls (519.78092034, 156.32333919) and (518.88758703, 160.77667241) .. (522.32758694, 164.09667233) + .. controls (528.04758680, 164.07000566) and (533.75425332, 164.08333900) .. (539.46091985, 164.07000566) + .. controls (541.24758647, 162.17667238) and (544.28758639, 160.44333909) .. (542.76758643, 157.40333916) + .. controls (541.94091978, 149.95000602) and (534.75425330, 146.48333944) .. (529.51425343, 142.35000621) + .. controls (520.10092033, 136.29667302) and (510.22092058, 131.00333982) .. (500.80758748, 124.93667331) + .. controls (503.71425407, 118.32334014) and (507.70092064, 112.28334029) .. (510.84758723, 105.77667379) + .. controls (515.51425378, 95.17667405) and (524.40758689, 87.40334091) .. (531.72758671, 78.67000780) + .. controls (538.30091988, 74.05667458) and (544.99425304, 69.55000803) .. (551.88758620, 65.37667480) + .. controls (556.27425276, 63.48334151) and (560.44758599, 61.11000824) .. (564.12758590, 58.03000831) + .. controls (558.10091938, 53.81667509) and (550.71425290, 52.76334178) .. (543.98091973, 50.16334184) + .. controls (539.66091984, 48.55000855) and (534.92758663, 48.35000856) .. (530.38092007, 48.51000855) + .. controls (520.74092031, 51.48334181) and (513.10092051, 59.24334162) .. (509.72758726, 68.72334138) + .. controls (504.24758739, 85.40334096) and (500.02092083, 102.44334054) .. (494.66092097, 119.16334012) + .. controls (491.66092104, 110.84334033) and (488.38092112, 102.61667387) .. (485.64758786, 94.20334074) + .. controls (481.35425463, 87.89667423) and (477.18092140, 81.47000773) .. (472.75425485, 75.24334122) + .. controls (465.78092169, 65.49667479) and (454.34092197, 59.77667494) .. (442.62092227, 58.23000831) + .. controls (439.51425568, 58.68334163) and (436.43425576, 59.39000828) .. (433.48758916, 60.48334159) + .. controls (430.78092256, 61.73667489) and (429.92758925, 64.85667481) .. (428.51425595, 67.21667475) + .. controls (434.07425581, 68.15000806) and (439.74092234, 68.56334138) .. (445.26092220, 69.84334135) + .. controls (455.00758862, 73.60334126) and (464.20758839, 79.99000777) .. (469.18092160, 89.41667420) + .. controls (473.36758817, 98.01667398) and (479.90092134, 105.60334046) .. (481.12758797, 115.40334021) + .. controls (475.23425479, 113.83000692) and (470.84758823, 109.43000703) .. (466.18092168, 105.79000712) + .. controls (460.79425515, 100.05667393) and (457.03425524, 91.63000747) .. (448.46092212, 90.15000751) + .. controls (445.51425553, 95.32334072) and (444.71425555, 101.31000723) .. (443.67425557, 107.07000709) + .. controls (446.92758883, 106.27000711) and (450.19425541, 105.51000713) .. (453.47425533, 104.79000715) + .. controls (462.60758843, 111.72334031) and (470.71425490, 120.11000676) .. (480.90092131, 125.56333996) + .. controls (485.82092119, 128.04333990) and (487.58092114, 133.69667309) .. (488.79425445, 138.65667297) + .. controls (493.14092100, 161.23000573) and (496.22092093, 184.00333850) .. (500.52758749, 206.59000460)} +\def\fdulogo@name@xue{% + (747.62091464, 258.36333664) + .. controls (750.15424791, 256.21667003) and (752.74091451, 254.15000341) .. (755.38091445, 252.13667013) + .. controls (750.84758123, 243.33667035) and (742.26091478, 238.23000381) .. (734.47424830, 232.65667062) + .. controls (736.20758159, 230.40333734) and (737.98091488, 228.19000406) .. (739.79424817, 226.00333745) + .. controls (743.27424808, 226.81667076) and (746.76758133, 227.55000408) .. (750.28758124, 228.23000406) + .. controls (751.46091455, 225.40333746) and (752.64758118, 222.57667087) .. (753.86091449, 219.76333760) + .. controls (750.62091457, 213.24333777) and (748.54091462, 206.27000461) .. (746.78091466, 199.23000478) + .. controls (748.22091463, 197.71000482) and (749.67424792, 196.17667153) .. (751.14091455, 194.67000490) + .. controls (760.71424765, 211.47000448) and (769.88758075, 228.49667072) .. (779.47424718, 245.29667030) + .. controls (773.42091400, 244.24333699) and (767.28758082, 243.89667033) .. (761.19424764, 243.24333702) + .. controls (760.47424765, 248.00333690) and (766.58091417, 249.36333686) .. (769.60758076, 251.87000347) + .. controls (775.06091396, 251.71000347) and (782.16758045, 254.05667008) .. (786.15424701, 249.12333687) + .. controls (787.15424699, 247.96333690) and (788.06091363, 246.71000360) .. (788.99424694, 245.47000363) + .. controls (786.26091368, 234.07000391) and (778.42091387, 225.05667081) .. (772.88758068, 214.99000439) + .. controls (768.59424745, 208.51000455) and (764.74091421, 201.75000472) .. (760.55424765, 195.21667155) + .. controls (758.16758105, 190.29667167) and (756.44758109, 185.07000514) .. (754.07424781, 180.13667193) + .. controls (759.44758101, 179.95000527) and (764.83424755, 179.33667195) .. (770.22091408, 179.47000528) + .. controls (776.19424726, 180.55000525) and (781.90091379, 182.84333853) .. (787.99424697, 183.31000518) + .. controls (792.42091352, 184.25667183) and (796.32758009, 181.16333857) .. (800.31424666, 179.72333861) + .. controls (800.47424665, 177.73667199) and (800.64757998, 175.75000537) .. (800.83424665, 173.76333875) + .. controls (790.94091356, 167.73667224) and (782.19424711, 159.31000578) .. (770.64758073, 156.49667252) + .. controls (756.94091441, 154.17667258) and (743.36758142, 151.12333932) .. (729.70091509, 148.53667272) + .. controls (723.98091523, 147.25667275) and (717.72758206, 145.35000613) .. (714.59424880, 139.93667293) + .. controls (723.31424858, 140.35000626) and (731.92758170, 145.47000613) .. (740.60758148, 142.33667287) + .. controls (742.23424811, 139.56333961) and (743.82091474, 136.75000635) .. (745.38091470, 133.92333975) + .. controls (743.54091474, 131.48333981) and (742.03424812, 128.80333988) .. (740.20758149, 126.36333994) + .. controls (735.48758161, 121.79000672) and (729.54091509, 118.80334013) .. (723.72758191, 115.85667354) + .. controls (728.02091513, 114.00334025) and (732.62091502, 115.64334021) .. (737.06091491, 115.85667354) + .. controls (744.58091472, 116.27000686) and (752.03424787, 117.36334016) .. (759.52758101, 118.15000681) + .. controls (762.92758093, 116.28334019) and (766.28758084, 114.35000691) .. (769.48758076, 112.13667363) + .. controls (770.55424740, 108.49667372) and (771.60758071, 104.85667381) .. (772.66091402, 101.21667390) + .. controls (771.22091405, 98.23000731) and (769.11424744, 95.67000737) .. (766.28758084, 93.91000742) + .. controls (756.02091443, 97.39000733) and (745.16758137, 96.35000736) .. (734.52758164, 96.37667402) + .. controls (729.95424842, 95.96334070) and (725.63424853, 94.23000741) .. (721.18091530, 93.17667410) + .. controls (717.24758207, 83.47000768) and (718.54091537, 72.91000794) .. (717.83424872, 62.71000820) + .. controls (717.24758207, 53.75000842) and (722.64758193, 43.71000867) .. (716.04758210, 35.91000887) + .. controls (712.07424886, 35.36334221) and (708.03424897, 33.52334226) .. (704.04758240, 34.85667556) + .. controls (697.94091588, 36.35000886) and (691.66091604, 37.27000883) .. (685.71424952, 39.37667545) + .. controls (678.32758304, 44.67000865) and (670.20758324, 49.53667519) .. (665.38091670, 57.52334166) + .. controls (673.52758316, 53.41667510) and (681.47424963, 48.71000855) .. (690.28758274, 46.15000861) + .. controls (694.52758264, 44.61667532) and (698.95424919, 46.32334194) .. (703.22091575, 46.88334193) + .. controls (704.35424906, 49.84334185) and (705.78091569, 52.71000845) .. (706.66091567, 55.76334170) + .. controls (707.98091563, 66.84334143) and (706.18091568, 78.27000781) .. (709.15424894, 89.13667420) + .. controls (708.72758228, 89.65667419) and (707.86091564, 90.69667416) .. (707.43424898, 91.21667415) + .. controls (695.24758262, 90.37667417) and (683.74091624, 85.91000762) .. (673.22091650, 79.89667443) + .. controls (667.54091664, 76.23000786) and (660.62091682, 76.04334120) .. (654.28758364, 74.23000791) + .. controls (648.38091712, 73.23000793) and (643.48758391, 77.65667449) .. (639.82091734, 81.69667439) + .. controls (638.15425071, 84.59000765) and (637.00758407, 87.73667424) .. (635.58091744, 90.75000750) + .. controls (641.15425064, 95.83000737) and (649.06091711, 94.83000739) .. (655.91425027, 96.53667402) + .. controls (669.07424994, 99.97667393) and (682.16758295, 103.71000717) .. (695.24758262, 107.53667374) + .. controls (700.00758250, 109.08334037) and (706.22091568, 108.84334038) .. (709.24758227, 113.48334026) + .. controls (713.56758216, 119.85667344) and (721.44758196, 123.11000669) .. (724.18091523, 130.64333983) + .. controls (717.19424874, 130.88333983) and (710.54091557, 128.16333989) .. (703.74091574, 127.00333992) + .. controls (700.96758248, 129.33667320) and (700.46091582, 132.96333977) .. (699.67424917, 136.28333969) + .. controls (702.44758244, 139.24333962) and (705.16758237, 142.28333954) .. (708.15424896, 145.04333947) + .. controls (713.63424883, 149.91000602) and (720.66091532, 152.35000596) .. (727.23424849, 155.35000588) + .. controls (731.56758171, 157.07000584) and (731.92758170, 162.24333904) .. (732.67424835, 166.16333894) + .. controls (723.46091525, 167.77667224) and (714.14091548, 164.72333898) .. (705.96758235, 160.63000575) + .. controls (700.03424917, 157.68333916) and (693.82091599, 155.39000588) .. (687.82091614, 152.59000595) + .. controls (684.79424955, 153.49667259) and (682.08758295, 155.12333922) .. (679.58091634, 157.03000584) + .. controls (680.38091632, 167.76333890) and (682.68758293, 178.51000530) .. (681.42091630, 189.31000503) + .. controls (680.79424965, 193.81667159) and (681.86091629, 198.25667148) .. (682.78091626, 202.64333803) + .. controls (683.50091625, 202.24333804) and (684.95424954, 201.45667140) .. (685.67424952, 201.05667141) + .. controls (687.36758282, 198.41667147) and (689.34091610, 195.97667153) .. (691.35424938, 193.57667159) + .. controls (694.04758265, 194.40333824) and (696.83424925, 195.01667156) .. (699.39424918, 196.21667153) + .. controls (701.24758247, 198.09667148) and (702.44758244, 200.47000475) .. (704.11424906, 202.49667137) + .. controls (709.31424893, 207.03000459) and (715.47424878, 210.37667117) .. (722.04758195, 212.47000445) + .. controls (724.15424856, 214.63000440) and (726.15424851, 216.88333768) .. (728.10091513, 219.19000429) + .. controls (727.86091514, 220.85667091) and (727.62091514, 222.52333754) .. (727.40758181, 224.19000416) + .. controls (723.18091525, 223.24333752) and (719.78091534, 220.56333758) .. (716.82091541, 217.55000433) + .. controls (716.16758210, 224.28333749) and (713.46091550, 231.16333732) .. (716.06091543, 237.81667049) + .. controls (718.95424869, 236.79000385) and (721.88758195, 235.89667053) .. (724.86091521, 235.07000389) + .. controls (732.74091501, 242.52333704) and (743.15424809, 247.96333690) .. (747.62091464, 258.36333664) + (696.82091591, 220.16333759) + .. controls (700.36758249, 219.00333762) and (703.24758242, 216.63000435) .. (705.64758236, 213.81667109) + .. controls (704.32758239, 210.63000450) and (703.11424909, 207.39000458) .. (702.15424911, 204.07000466) + .. controls (700.64758248, 203.27000468) and (699.14091585, 202.45667137) .. (697.63424923, 201.64333806) + .. controls (696.60758258, 203.37667135) and (695.56758261, 205.08333797) .. (694.55424930, 206.80333793) + .. controls (695.31424928, 211.25667115) and (696.06091593, 215.71000437) .. (696.82091591, 220.16333759) + (749.11424794, 167.77667224) + .. controls (747.63424798, 165.07000564) and (746.10091468, 162.37667237) .. (744.63424805, 159.67000577) + .. controls (755.00758112, 160.13667243) and (764.79424755, 163.65667234) .. (774.58091397, 166.85667226) + .. controls (778.28758054, 167.81667224) and (780.35424716, 171.29667215) .. (782.99424709, 173.76333875) + .. controls (771.44758071, 174.45667207) and (759.56758101, 172.97667211) .. (749.11424794, 167.77667224) + (742.71424810, 179.96333860) + .. controls (740.74091481, 176.05667203) and (747.15424799, 179.88333860) .. (742.71424810, 179.96333860) + (713.83424882, 188.16333839) + .. controls (711.34091555, 184.93667181) and (709.32758227, 181.25667190) .. (706.18091568, 178.57667197) + .. controls (699.63424918, 177.63000532) and (692.48758269, 178.65667197) .. (687.60758281, 183.47000518) + .. controls (687.67424947, 177.49667199) and (687.62091614, 171.52333881) .. (687.64758281, 165.53667229) + .. controls (699.67424917, 169.11000554) and (711.88758220, 172.00333880) .. (723.98091523, 175.37667205) + .. controls (721.91424862, 176.56333868) and (719.84758200, 177.75000532) .. (717.79424872, 178.93667196) + .. controls (718.16758205, 181.56333856) and (718.52758204, 184.19000516) .. (718.88758203, 186.81667176) + .. controls (717.19424874, 187.27000508) and (715.51424878, 187.71000507) .. (713.83424882, 188.16333839) + (741.00758147, 214.85667106) + .. controls (737.16758157, 207.41667125) and (733.72758166, 199.53667144) .. (734.23424831, 190.96333832) + .. controls (735.32758162, 190.33667167) and (736.43424826, 189.69667169) .. (737.55424823, 189.07000504) + .. controls (738.12758155, 193.45667160) and (738.30091488, 197.91000482) .. (739.31424818, 202.21667138) + .. controls (740.48758149, 206.29667127) and (743.34091475, 210.61667117) .. (741.00758147, 214.85667106) + (701.99424912, 258.20333664) + .. controls (704.94091571, 255.97667003) and (708.68758228, 254.55000340) .. (711.04758222, 251.68333681) + .. controls (711.56758221, 247.73667024) and (712.63424885, 242.96333702) .. (709.48758226, 239.81667044) + .. controls (703.08758242, 233.87000392) and (696.68758258, 227.91000407) .. (690.47424940, 221.77667089) + .. controls (689.72758276, 223.44333751) and (688.99424944, 225.11000414) .. (688.27424946, 226.76333743) + .. controls (691.99424937, 232.81667061) and (695.06091596, 239.23000378) .. (698.54091587, 245.41667030) + .. controls (700.23424916, 249.49667019) and (700.87424914, 253.93667008) .. (701.99424912, 258.20333664) + (654.71425030, 137.15000634) + .. controls (658.28758354, 146.24333944) and (659.68758351, 156.59000585) .. (667.11424999, 163.60333901) + .. controls (667.80758330, 160.27000576) and (668.83424995, 157.00333917) .. (669.26091660, 153.63000592) + .. controls (668.40758329, 150.57667267) and (666.80758333, 147.80333940) .. (665.84758335, 144.79000615) + .. controls (665.35425003, 140.60333958) and (665.68758336, 136.36333969) .. (665.72758336, 132.15000646) + .. controls (664.06091673, 130.12333985) and (662.02091678, 128.45667322) .. (659.56758351, 127.47000658) + .. controls (657.88758355, 130.67000650) and (656.24758359, 133.88333975) .. (654.71425030, 137.15000634)} +\def\fdulogo@emblem@kernel{% + (351.02572456, 574.53945678) + .. controls (353.31905783, 587.19278979) and (370.06572408, 593.55278963) .. (380.65239048, 586.95278980) + .. controls (386.01239035, 582.31278991) and (389.51905693, 574.99279010) .. (388.22572363, 567.81945694) + .. controls (386.66572367, 555.08612393) and (380.57239049, 543.57945755) .. (377.06572391, 531.37945785) + .. controls (375.69239061, 525.83279133) and (379.82572384, 521.44612477) .. (382.75905710, 517.29945821) + .. controls (419.97238950, 519.71279148) and (457.09238857, 523.61945805) .. (494.39905431, 524.81945802) + .. controls (505.81238735, 525.81945799) and (517.31905373, 525.21945801) .. (528.69238678, 524.05945804) + .. controls (539.05238652, 523.29945806) and (548.67905295, 513.85945829) .. (547.86571964, 503.17945856) + .. controls (547.22571965, 497.11279204) and (542.46571977, 490.89945887) .. (535.86571994, 491.12612553) + .. controls (523.49238691, 491.00612553) and (511.29238722, 493.79279213) .. (498.93238753, 494.09945879) + .. controls (478.77238803, 495.83279208) and (458.51905520, 495.72612541) .. (438.31905571, 495.01945876) + .. controls (427.34572265, 493.97945879) and (416.13238960, 494.20612545) .. (405.57238986, 490.60612554) + .. controls (398.26572338, 488.08612560) and (390.46572357, 486.52612564) .. (383.90572374, 482.24612575) + .. controls (379.85239050, 479.57945915) and (376.14572393, 475.11279259) .. (376.97239058, 469.93945939) + .. controls (378.22572388, 458.71279300) and (386.95905699, 449.31279324) .. (386.15905701, 437.71279353) + .. controls (383.69239041, 424.51279386) and (378.01239055, 412.21946083) .. (374.45239064, 399.31279449) + .. controls (371.06572406, 387.49946145) and (370.10572408, 375.17946176) .. (368.23905746, 363.07279540) + .. controls (367.66572414, 356.96612888) and (366.55905750, 350.91279570) .. (366.34572417, 344.76612919) + .. controls (363.49239091, 318.55279651) and (365.89239085, 292.17946383) .. (366.31905751, 265.91279782) + .. controls (366.58572417, 249.05946491) and (367.50572415, 232.21946533) .. (369.07905744, 215.44613242) + .. controls (369.79905742, 204.24613270) and (372.17239070, 193.21946631) .. (372.89239068, 182.01946659) + .. controls (372.62572402, 175.80613341) and (371.38572405, 167.51280028) .. (364.62572422, 165.19280034) + .. controls (358.59905770, 163.63280038) and (350.94572456, 163.64613371) .. (346.71905800, 168.96613358) + .. controls (338.13239155, 178.77946667) and (337.71905822, 192.48613299) .. (335.77239161, 204.72613269) + .. controls (331.25239172, 230.40613205) and (330.90572506, 256.55279806) .. (331.15905839, 282.55279741) + .. controls (288.67905945, 280.91279745) and (245.66572719, 283.05946406) .. (203.82572824, 274.09946429) + .. controls (200.02572833, 273.43279764) and (195.38572845, 270.87279770) .. (192.34572852, 274.64613094) + .. controls (185.49239536, 281.73946410) and (184.87906204, 292.20613050) .. (182.30572878, 301.25946361) + .. controls (185.73239536, 303.24613022) and (188.99906194, 305.72613016) .. (192.98572851, 306.45946348) + .. controls (217.54572789, 311.79279668) and (242.75906060, 313.05946331) .. (267.81239330, 313.27279664) + .. controls (289.33239277, 313.92612996) and (310.87905889, 315.92612991) .. (332.42572502, 314.57946327) + .. controls (332.63905835, 354.81946227) and (336.22572493, 396.36612790) .. (353.90572449, 433.12612698) + .. controls (355.45239111, 435.01946026) and (353.79905782, 436.64612689) .. (352.65239118, 438.15279352) + .. controls (344.61239138, 431.49946035) and (339.75905817, 422.07279392) .. (335.77239161, 412.61946082) + .. controls (331.29239172, 401.53946110) and (322.95905859, 391.68612801) .. (322.25239194, 379.32612832) + .. controls (320.61239198, 363.93946204) and (319.06572536, 347.01946246) .. (308.14572563, 335.00612943) + .. controls (294.86572596, 321.71279643) and (275.35905978, 317.88612986) .. (257.25239357, 317.31279654) + .. controls (244.57239389, 317.01946321) and (231.38572755, 315.24612992) .. (219.17239452, 319.59279648) + .. controls (199.06572836, 326.67279631) and (183.39906208, 345.41946250) .. (180.62572882, 366.63279531) + .. controls (176.82572891, 393.49946130) and (177.69239556, 421.24612727) .. (185.07906204, 447.43279329) + .. controls (187.31906198, 454.19279312) and (188.82572861, 462.31279291) .. (195.33239512, 466.37945948) + .. controls (225.99906102, 487.49945895) and (267.79905997, 488.05945894) .. (300.91905914, 472.39279266) + .. controls (312.34572552, 465.79279283) and (313.77239216, 451.15279319) .. (315.38572545, 439.37946015) + .. controls (318.67905870, 442.36612675) and (320.02572533, 446.68612664) .. (322.13239195, 450.47279321) + .. controls (330.99905839, 465.63279283) and (344.74572471, 477.15279254) .. (354.63905780, 491.48612552) + .. controls (353.30572450, 493.36612547) and (350.90572456, 494.19279212) .. (349.06572461, 495.49945875) + .. controls (339.71905817, 486.91279230) and (328.70572512, 479.15279249) .. (315.81239210, 477.43279254) + .. controls (308.29239229, 476.05945924) and (300.81239248, 482.25945908) .. (300.05239250, 489.71279223) + .. controls (300.29239249, 493.88612546) and (303.38572575, 496.91279205) .. (305.75905902, 500.05945864) + .. controls (316.66572542, 513.49945830) and (329.54572509, 525.39279134) .. (338.87905819, 540.08612430) + .. controls (345.31905803, 550.57945737) and (348.10572463, 562.72612374) .. (351.02572456, 574.53945678) + (211.99906137, 380.15279497) + .. controls (213.41239466, 369.35279524) and (216.90572791, 357.49946220) .. (226.42572767, 351.12612903) + .. controls (238.31906071, 346.09946249) and (251.69239371, 345.40612917) .. (264.37239339, 347.04612913) + .. controls (269.66572659, 347.21946246) and (275.17239312, 348.29946243) .. (279.49239301, 351.53946235) + .. controls (289.10572611, 358.76612884) and (292.73239268, 371.93946184) .. (290.85239273, 383.45946155) + .. controls (264.70572672, 389.28612807) and (238.03906072, 383.60612822) .. (211.99906137, 380.15279497) + (220.85239448, 442.37946008) + .. controls (211.53239471, 434.35279361) and (209.46572810, 421.25946061) .. (209.38572810, 409.60612757) + .. controls (235.99906077, 409.13946091) and (262.61239343, 411.53946085) .. (289.21239277, 412.67279416) + .. controls (289.95905942, 420.89946062) and (289.99905942, 429.51279373) .. (286.93239283, 437.32612687) + .. controls (284.69239288, 443.07279340) and (279.74572634, 448.15279327) .. (273.42572650, 449.03279325) + .. controls (266.31906001, 450.25945988) and (259.06572686, 450.32612655) .. (251.90572704, 451.01945986) + .. controls (241.14572730, 450.67279321) and (229.57239426, 449.28612657) .. (220.85239448, 442.37946008) + (450.54572207, 484.52612569) + .. controls (463.87905507, 485.19279234) and (477.23905474, 484.59279236) .. (490.58572107, 484.91279235) + .. controls (506.99905399, 486.12612565) and (524.78572021, 485.08612568) .. (538.90571986, 475.72612591) + .. controls (546.77238633, 470.17945938) and (548.85238628, 459.53945965) .. (547.14571965, 450.56612654) + .. controls (546.15905301, 446.07279332) and (545.11905304, 440.93946012) .. (541.03905314, 438.16612685) + .. controls (528.78572011, 428.23279377) and (512.14572053, 427.39279379) .. (497.05238757, 427.35279379) + .. controls (466.02572168, 428.56612709) and (434.85238913, 425.24612717) .. (403.91905657, 428.87279375) + .. controls (397.62572339, 429.84612706) and (392.70572352, 435.05946026) .. (390.78572356, 440.95279345) + .. controls (388.53239029, 447.27279329) and (388.27905696, 454.15279312) .. (388.61239028, 460.79279295) + .. controls (390.07905691, 469.07279275) and (397.18572340, 474.97945926) .. (404.33238989, 478.60612584) + .. controls (418.87905619, 485.12612568) and (435.21238912, 482.07279242) .. (450.54572207, 484.52612569) + (415.59905628, 458.27279302) + .. controls (412.73238968, 456.53945973) and (413.49238966, 452.84612648) .. (413.25238967, 450.03279322) + .. controls (414.81238963, 448.92612658) and (416.33238959, 447.43279329) .. (418.39905621, 447.41945995) + .. controls (447.37238882, 446.75279330) and (476.33238809, 448.08612660) .. (505.29238737, 448.96612658) + .. controls (510.42572057, 449.33945991) and (515.23905379, 451.27279319) .. (520.01238700, 453.05945981) + .. controls (519.62572034, 456.45945973) and (518.38572037, 459.73945965) .. (515.66572044, 461.93945959) + .. controls (487.70572114, 462.57945957) and (459.71905517, 462.08612625) .. (431.78572254, 460.81945962) + .. controls (426.35905601, 460.52612629) and (420.41238949, 461.31279294) .. (415.59905628, 458.27279302) + (434.01238915,419.45946065) + .. controls (450.58572207, 421.12612728) and (467.27905498, 420.31279396) .. (483.87905457, 421.35279394) + .. controls (500.83905415, 422.59279391) and (517.85238705, 420.91279395) .. (534.57238664, 418.08612735) + .. controls (542.10571978, 417.03279405) and (547.46571965, 410.41946088) .. (549.71905292, 403.55279438) + .. controls (552.38571952, 395.33946126) and (553.19905284, 385.84612816) .. (548.91905294, 378.03279502) + .. controls (544.65238638, 370.49946188) and (536.97238658, 364.72612869) .. (528.23905346, 363.79279538) + .. controls (491.77238771, 359.75279548) and (454.99905529, 362.17946208) .. (418.42572287, 360.08612880) + .. controls (411.46572305, 358.71279550) and (403.94572323, 360.21946213) .. (398.41239004, 364.75279535) + .. controls (389.18572360, 372.11279517) and (385.21239037, 385.13946151) .. (388.13239030, 396.48612789) + .. controls (389.59905693, 400.72612779) and (392.98572351, 403.88612771) .. (395.93239010, 407.13946096) + .. controls (400.77238998, 412.32612750) and (407.02572316, 416.53946073) .. (414.21238964, 417.44612737) + .. controls (420.79905615, 418.16612735) and (427.35905598, 419.32612732) .. (434.01238915, 419.45946065) + (434.35905581, 393.23279464) + .. controls (427.49238931, 392.47279466) and (420.30572283, 393.41946130) .. (413.71905632, 390.99279470) + .. controls (413.31905633, 390.03279472) and (412.51905635, 388.11279477) .. (412.13238970, 387.15279479) + .. controls (413.11905634, 385.65946150) and (413.75905632, 383.40612822) .. (415.87905627, 383.20612823) + .. controls (424.22572273, 380.80612829) and (432.86572251, 383.40612822) .. (441.34572230, 383.33946156) + .. controls (465.45238836, 385.19279484) and (489.63905443, 385.57946150) .. (513.75905382, 387.15279479) + .. controls (517.51905373, 387.05946146) and (519.97238700, 390.40612805) .. (521.50572030, 393.41946130) + .. controls (509.73238726, 396.53946123) and (497.45238756, 395.43279459) .. (485.46572120, 394.75279460) + .. controls (468.42572162, 394.47279461) and (451.41238871, 393.20612798) .. (434.35905581, 393.23279464) + (409.93238975, 351.67279568) + .. controls (434.37238914, 354.71279560) and (459.05238852, 354.63279561) .. (483.62572124, 355.91279557) + .. controls (485.82572119, 350.48612904) and (483.75905457, 344.68612919) .. (479.95905467, 340.59279596) + .. controls (476.77238808, 336.71279605) and (472.75905485, 333.45946280) .. (470.66572157, 328.76612959) + .. controls (481.29238797, 329.64612956) and (491.83905437, 331.35279619) .. (502.50572077, 331.65946285) + .. controls (510.19905391, 333.91279612) and (513.45238716, 342.01946259) .. (519.03905369, 346.97946246) + .. controls (523.06572026, 349.80612906) and (527.89238680, 353.35279564) .. (533.07905334, 351.55279568) + .. controls (540.77238648, 348.75279575) and (544.71905305, 339.03279600) .. (542.39905311, 331.43279619) + .. controls (536.53238659, 309.72613006) and (530.59905340, 287.99279727) .. (522.91905359, 266.85946447) + .. controls (511.78572054, 262.21946458) and (499.50572085, 266.01946449) .. (487.89238780, 265.24613117) + .. controls (483.34572125, 264.73946452) and (478.39905471, 265.49946450) .. (474.30572148, 263.07279790) + .. controls (474.23905481, 261.36613127) and (474.34572147, 259.65946465) .. (474.65238813, 257.96613136) + .. controls (478.51905470, 242.35279841) and (481.25238797, 226.47279881) .. (485.98572118, 211.08613253) + .. controls (487.06572116, 204.00613271) and (487.67905447, 196.05946624) .. (484.25238789, 189.51279973) + .. controls (476.31905476, 184.71279985) and (465.85238835, 189.35279974) .. (460.89238848, 196.41946623) + .. controls (451.43905538, 210.80613254) and (446.58572217, 227.61946545) .. (443.34572225, 244.36613170) + .. controls (442.22572228, 249.07279825) and (441.66572229, 254.07279812) .. (438.85238903, 258.15279802) + .. controls (419.99905617, 259.47279799) and (405.93238985, 243.37946505) .. (387.73239031, 241.71279843) + .. controls (379.39905718, 242.19279842) and (375.17239062, 251.88613151) .. (376.69239058, 259.24613132) + .. controls (377.26572390, 264.15279787) and (381.23905714, 267.63279778) .. (385.10572371, 270.17946438) + .. controls (391.30572355, 273.80613096) and (398.41239004, 275.27279759) .. (405.15905654, 277.51279753) + .. controls (415.71905627, 280.60613079) and (426.22572268, 284.92613068) .. (437.39905573, 284.68613069) + .. controls (437.42572240, 291.23279719) and (437.54572239, 297.80613036) .. (436.70572242, 304.32613020) + .. controls (418.06572288, 303.93946354) and (402.18572328, 292.19279717) .. (383.91905707, 289.95279722) + .. controls (379.93239050, 289.39279724) and (376.61239058, 292.69946382) .. (375.42572395, 296.21946373) + .. controls (373.71905732, 301.08613028) and (374.13239065, 306.87279680) .. (376.93239058, 311.27279669) + .. controls (384.66572372, 317.89946319) and (395.17239012, 320.05946314) .. (405.07905654, 320.76612979) + .. controls (417.17238957, 322.07279642) and (429.94572258, 321.69946310) .. (441.02572231, 327.49946295) + .. controls (440.74572231, 329.12612958) and (440.49238899, 330.76612954) .. (440.25238899, 332.37946283) + .. controls (429.37238927, 333.83279613) and (417.82572289, 328.43279626) .. (407.47905648, 333.69946280) + .. controls (400.06572333, 337.24612937) and (401.46572330, 350.71279570) .. (409.93238975, 351.67279568) + (470.38572157, 306.49946348) + .. controls (470.22572158, 300.08613030) and (470.13238825, 293.64613046) .. (470.43905491, 287.23279729) + .. controls (479.91905467, 288.63279726) and (489.97238775, 287.17946396) .. (499.06572086, 290.41946388) + .. controls (502.74572076, 295.76613041) and (502.45238744, 302.59279691) .. (502.78572076, 308.79279675) + .. controls (491.93238770, 310.05946339) and (481.17238797, 307.24613012) .. (470.38572157, 306.49946348)} +\def\fdulogo@emblem@F{% + ( 85.70573119, 304.00613021) + .. controls ( 90.07906441, 311.59279668) and (100.06573083, 314.24612995) .. (108.09239730, 311.64613001) + .. controls (103.82573074, 301.69946360) and (107.82573064, 290.84613053) .. (112.17239720, 281.68613076) + .. controls (119.41239701, 280.19279747) and (126.06573018, 284.45946403) .. (132.95906334, 285.88613066) + .. controls (137.94572988, 286.45946398) and (139.27906318, 291.77946384) .. (141.21239647, 295.53946375) + .. controls (142.14572978, 295.53946375) and (144.01239640, 295.52613042) .. (144.94572971, 295.52613042) + .. controls (148.49239629, 287.19279729) and (154.53239614, 279.35279749) .. (153.91906282, 269.83279773) + .. controls (149.89239625, 270.88613103) and (145.59906303, 272.07279767) .. (141.47906313, 270.85946437) + .. controls (125.89239685, 265.43279784) and (110.17239725, 260.40613130) .. ( 94.46573097, 255.35279809) + .. controls ( 89.01239777, 253.68613146) and ( 84.71906455, 249.71279823) .. ( 80.70573132, 245.81946499) + .. controls ( 73.74573149, 252.05946484) and ( 70.87906489, 261.25946461) .. ( 68.05239830, 269.87279773) + .. controls ( 64.50573172, 280.96613078) and ( 57.47906523, 291.33946386) .. ( 58.22573188, 303.44613022) + .. controls ( 62.19906511, 305.32613017) and ( 65.98573168, 307.81946344) .. ( 70.30573158, 308.83279675) + .. controls ( 74.57239814, 304.05946354) and ( 71.82573154, 297.28613037) .. ( 71.27906488, 291.71279718) + .. controls ( 72.87906484, 283.55279738) and ( 77.30573140, 276.27279757) .. ( 80.70573132, 268.76613109) + .. controls ( 88.21239779, 270.85946437) and ( 96.07906426, 272.48613099) .. (102.67906410, 276.83279755) + .. controls (102.70573077, 283.04613073) and ( 99.11906419, 288.36613060) .. ( 97.53239756, 294.19279712) + .. controls ( 95.97239760, 299.61946365) and ( 90.13239775, 301.51279693) .. ( 85.70573119, 304.00613021)} +\def\fdulogo@emblem@U@i{% + ( 50.99906539, 392.96612798) + .. controls ( 54.67906530, 390.99279470) and ( 58.05239855, 387.84612811) .. ( 62.49239844, 387.95279477) + .. controls ( 76.31906476, 388.51279476) and ( 90.14573108, 389.13946141) .. (103.97239740, 389.69946140) + .. controls (110.18573058, 389.12612808) and (117.35906373, 390.09946139) .. (122.42573027, 385.65946150) + .. controls (129.65239676, 379.60612832) and (131.54573004, 369.59279523) .. (131.63906338, 360.61946212) + .. controls (131.19906339, 353.85946229) and (131.29239672, 346.59279581) .. (127.78573014, 340.53946263) + .. controls (126.01239685, 337.35279604) and (122.75906360, 335.13946276) .. (119.15906369, 334.52612944) + .. controls (101.30573080, 331.45946285) and ( 83.07906459, 332.15279617) .. ( 65.17239837, 329.57946290) + .. controls ( 61.19906514, 328.36612960) and ( 57.73239856, 324.13946304) .. ( 53.25239867, 325.91279632) + .. controls ( 51.42573205, 332.44612949) and ( 51.81239870, 339.35279599) .. ( 53.03906534, 345.95279582) + .. controls ( 74.42573147, 345.69946250) and ( 95.83906427, 346.47279581) .. (117.07906374, 348.97946241) + .. controls (119.71906367, 350.11279572) and (120.93239698, 353.23279564) .. (121.71906362, 355.83279558) + .. controls (123.27906358, 362.08612875) and (121.62573029, 368.72612859) .. (119.06573036, 374.47279511) + .. controls (117.10573041, 378.72612834) and (111.81239720, 378.75279500) .. (107.82573064, 378.64612834) + .. controls ( 92.15906436, 378.25946168) and ( 76.47906475, 377.84612836) .. ( 60.86573181, 376.51279506) + .. controls ( 58.59906520, 373.07279515) and ( 56.30573193, 366.75279530) .. ( 51.03906539, 368.65946192) + .. controls ( 50.62573207, 369.13946191) and ( 49.82573209, 370.11279522) .. ( 49.41239876, 370.59279521) + .. controls ( 47.93239880, 378.00612836) and ( 46.78573216, 386.17946148) .. ( 50.99906539, 392.96612798)} +\def\fdulogo@emblem@D{% + (64.02573173, 473.6194593) + .. controls ( 78.02573138, 477.27279254) and ( 92.67906435, 474.61945927) .. (106.45239734, 471.21945936) + .. controls (111.21239722, 469.93945939) and (116.33239709, 469.28612607) .. (120.49239699, 466.43279281) + .. controls (127.27906348, 462.27279292) and (131.21239672, 454.53945978) .. (132.19906336, 446.80612664) + .. controls (133.41239666, 440.40612680) and (130.65239673, 434.23279362) .. (129.90573009, 427.96612711) + .. controls (128.55906345, 418.87279400) and (127.78573014, 408.80612759) .. (121.33239697, 401.63279443) + .. controls (114.69239713, 407.53946095) and (105.42573070, 407.83279428) .. ( 97.10573091, 409.17946091) + .. controls ( 80.67906465, 411.91279417) and ( 63.93239840, 417.91279402) .. ( 47.22573215, 413.43279414) + .. controls ( 48.17239880, 428.72612709) and ( 50.41239874, 443.89946004) .. ( 52.57239869, 459.05945966) + .. controls ( 53.59906533, 465.39279284) and ( 57.58573189, 471.75279268) .. ( 64.02573173, 473.61945930) + ( 67.21239832, 459.93945964) + .. controls ( 60.79906515, 452.17945983) and ( 60.07906516, 441.68612676) .. ( 58.89239853, 432.11279367) + .. controls ( 78.57239804, 427.71279378) and ( 98.43906421, 424.23279387) .. (118.22573038, 420.35279396) + .. controls (119.94573033, 426.56612714) and (122.21239694, 432.80612699) .. (122.02573028, 439.35279349) + .. controls (121.94573028, 443.07279340) and (121.23906364, 447.20612663) .. (118.14573038, 449.64612656) + .. controls (107.43906398, 459.37945965) and ( 92.27906436, 460.72612629) .. ( 78.53239804, 462.00612626) + .. controls ( 74.75906480, 461.88612626) and ( 69.99906492, 463.28612622) .. ( 67.21239832, 459.93945964)} +\def\fdulogo@emblem@A{% + (107.38573065, 530.41945788) + .. controls (111.05239722, 526.09945799) and (114.81239713, 521.85945809) .. (118.71906370, 517.76612486) + .. controls (120.58573032, 520.44612479) and (122.43906361, 523.13945806) .. (124.26573023, 525.84612466) + .. controls (118.67906370, 527.49945795) and (113.02573051, 528.93945792) .. (107.38573065, 530.41945788) + ( 89.70573109, 544.55279086) + .. controls ( 91.74573104, 545.16612418) and ( 93.89239765, 544.69945752) .. ( 95.93239760, 544.41945753) + .. controls (115.55906378, 540.88612428) and (134.86572996, 535.79279108) .. (154.51906280, 532.49945783) + .. controls (160.10572933, 531.44612452) and (167.25239582, 533.00612448) .. (170.87906239, 527.48612462) + .. controls (168.58572912, 523.08612473) and (165.61239586, 519.11279149) .. (162.43906261, 515.32612492) + .. controls (157.33239607, 519.85945814) and (150.53239624, 521.39279144) .. (144.02572973, 522.69945807) + .. controls (139.35906318, 516.29945823) and (134.78572996, 509.81945839) .. (130.29239674, 503.28612522) + .. controls (132.79906335, 500.36612530) and (135.02572996, 497.21945871) .. (137.59906323, 494.33945878) + .. controls (140.86572981, 490.48612554) and (146.43906301, 490.76612554) .. (150.51906290, 488.17945893) + .. controls (145.53239636, 481.44612577) and (143.07906309, 472.28612600) .. (135.02572996, 468.32612610) + .. controls (120.83906365, 493.68612546) and (101.47906413, 515.53945825) .. ( 85.14573120, 539.44612432) + .. controls ( 86.58573117, 541.20612428) and ( 87.99906447, 543.03279090) .. ( 89.70573109, 544.55279086)} +\def\fdulogo@emblem@N@i{% + (153.31906283, 624.63278886) + .. controls (156.06572943, 630.35278871) and (161.94572928, 633.68612196) .. (167.59906248, 635.97945524) + .. controls (179.55906218, 618.63278901) and (194.97239513, 604.12612270) .. (208.77239478, 588.31278976) + .. controls (212.86572801, 584.17945653) and (219.05239452, 578.93945667) .. (215.43906128, 572.49945683) + .. controls (210.57239474, 572.80612349) and (206.01239485, 574.61945677) .. (201.35906163, 575.87279008) + .. controls (183.07906209, 581.17945661) and (165.26572920, 588.16612310) .. (146.61239633, 592.09945634) + .. controls (156.63906275, 580.55278996) and (168.83906245, 571.23279019) .. (179.42572885, 560.24612380) + .. controls (183.30572875, 555.93945724) and (189.82572859, 557.67279053) .. (194.91906179, 556.27279057) + .. controls (192.39906186, 547.75279078) and (184.19906206, 542.28612425) .. (177.15906224, 537.52612437) + .. controls (172.38572902, 539.67279098) and (172.66572902, 546.39279081) .. (168.70572912, 549.51279073) + .. controls (157.05239607, 560.07279047) and (146.07906301, 571.32612352) .. (134.61239663, 582.08612325) + .. controls (131.57239671, 585.24612317) and (126.90573016, 585.17945651) .. (122.93239693, 586.12612315) + -- (119.852397, 589.08612308) + .. controls (124.66573022, 596.48612289) and (131.69239671, 601.99278942) .. (137.39906323, 608.63278926) + .. controls (154.65239613, 603.63278938) and (171.90572904, 598.63278951) .. (189.26572860, 594.00612296) + .. controls (183.41239541, 601.83278943) and (175.70572894, 608.04612260) .. (169.03906244, 615.16612243) + .. controls (165.26572920, 619.17945566) and (159.41239601, 617.56612237) .. (154.55906280, 618.04612235) + .. controls (152.37239619, 619.28612232) and (152.86572951, 622.55278891) .. (153.31906283, 624.63278886)} +\def\fdulogo@emblem@U@ii{% + (258.77239353, 689.04612058) + .. controls (263.03906009, 694.20612045) and (270.21239324, 695.88612041) .. (276.62572642, 694.88612043) + .. controls (276.59905975, 690.75278720) and (275.33239312, 686.48612064) .. (276.51905975, 682.41945408) + .. controls (282.11905961, 665.88612116) and (289.74572609, 649.93945489) .. (293.02572601, 632.69945532) + .. controls (294.21239264, 626.47278881) and (291.66572604, 619.00612233) .. (285.58572619, 616.32612240) + .. controls (278.66572637, 613.15278914) and (271.43905988, 610.23278922) .. (263.81239340, 609.36612257) + .. controls (254.57239364, 608.23278927) and (245.35906053, 614.29945578) .. (241.86572729, 622.75278890) + .. controls (236.78572741, 634.63278861) and (232.09239420, 646.68612164) .. (227.06572766, 658.57945467) + .. controls (224.87906104, 664.13945454) and (217.69239456, 665.99278782) .. (216.43906126, 672.12612100) + .. controls (224.42572772, 675.79278758) and (232.47906085, 680.09945414) .. (241.53239396, 680.01945414) + .. controls (240.37239399, 674.65945427) and (235.95906077, 669.33945441) .. (238.66572737, 663.75278788) + .. controls (244.29239389, 650.99278820) and (248.97239378, 637.77945519) .. (255.50572695, 625.41945550) + .. controls (257.49239356, 621.37945560) and (262.10572678, 619.03278900) .. (266.54572667, 619.45945565) + .. controls (273.71905982, 620.08612230) and (280.29239299, 623.95278887) .. (285.22572620, 629.05945541) + .. controls (285.79905952, 636.09945524) and (282.41239294, 642.45945508) .. (280.02572633, 648.84612158) + .. controls (275.86572644, 658.92612133) and (272.35905986, 669.28612107) .. (267.86572664, 679.23278749) + .. controls (266.06572668, 683.59278738) and (260.81239348, 684.91278735) .. (258.77239353, 689.04612058)} +\def\fdulogo@emblem@N@ii{% + (345.57239136, 707.99278677) + .. controls (351.03905789, 715.44611992) and (361.02572431, 712.24612000) .. (368.81239078, 712.56611999) + .. controls (367.34572415, 708.07278677) and (363.99905757, 704.12612020) .. (363.83905757, 699.28612032) + .. controls (365.07905754, 679.73945415) and (367.55905748, 660.25945463) .. (368.05239080, 640.65945512) + .. controls (368.63905745, 636.84612188) and (362.54572427, 633.19278864) .. (360.34572432, 637.16612188) + .. controls (349.19905794, 652.40612150) and (338.90572486, 668.24612110) .. (328.15905846, 683.76612071) + .. controls (326.07905851, 686.48612064) and (324.19905856, 690.83278720) .. (320.06572533, 690.09945389) + .. controls (319.41239201, 685.96612066) and (319.43905868, 681.75278743) .. (320.21239199, 677.63278753) + .. controls (322.09239195, 666.87278780) and (322.53239194, 655.93945474) .. (324.17239190, 645.15278834) + .. controls (325.58572519, 640.72612179) and (329.97239175, 638.20612185) .. (332.14572503, 634.19278862) + .. controls (326.27905851, 628.95278875) and (317.94572538, 628.97945541) .. (310.55905890, 628.49945543) + .. controls (305.85239235, 632.85945532) and (311.27905888, 638.31278851) .. (311.17239222, 643.37945505) + .. controls (310.53239224, 656.73945472) and (307.94572563, 669.89945439) .. (306.62572567, 683.19278739) + .. controls (306.25239234, 686.61945397) and (306.75905900, 690.33945388) .. (304.94572571, 693.44612047) + .. controls (302.85239243, 697.00612038) and (300.17239250, 700.25945363) .. (298.98572586, 704.29945353) + .. controls (306.07905901, 706.59278681) and (314.30572548, 709.81945339) .. (321.50572530, 706.32612015) + .. controls (335.55905828, 694.53945378) and (342.13239145, 675.93945424) .. (356.90572441, 664.89945452) + .. controls (356.95905774, 675.96612091) and (354.50572447, 686.87278730) .. (354.14572448, 697.93945369) + .. controls (353.74572449, 702.85945357) and (348.65239128, 704.89945352) .. (345.57239136, 707.99278677)} +\def\fdulogo@emblem@I@i{% + (393.63905683, 711.84612001) + .. controls (401.78572329, 713.56611997) and (410.42572307, 711.12612003) .. (418.22572288, 708.49945343) + .. controls (419.49238951, 706.96612013) and (420.79905615, 704.49945353) .. (418.99905619, 702.80612024) + .. controls (417.34572290, 700.15278697) and (413.27905633, 699.49945365) .. (412.61238968, 696.23278707) + .. controls (410.30572308, 680.88612078) and (409.26572310, 665.35278784) .. (406.74572316, 650.01945489) + .. controls (407.15905649, 644.20612170) and (412.57238969, 639.67278848) .. (411.42572305, 633.57945530) + .. controls (402.90572326, 634.09945529) and (393.87905682, 633.55278863) .. (385.95905702, 637.24612187) + .. controls (382.23905711, 642.79278840) and (392.01239020, 645.07278835) .. (392.18572353, 650.45945488) + .. controls (394.46572347, 666.68612114) and (395.21239012, 683.08612073) .. (397.15905674, 699.33945366) + .. controls (396.67905675, 703.57945355) and (388.99905694, 707.79278678) .. (393.63905683, 711.84612001)} +\def\fdulogo@emblem@V{% + (441.78572229, 703.56612022) + .. controls (448.49238879, 702.35278691) and (455.27905528, 701.24612027) .. (461.71905512, 698.95278700) + .. controls (463.45238841, 698.27278702) and (465.39905503, 697.71278703) .. (466.45238834, 696.01945374) + .. controls (466.90572166, 691.77945384) and (462.97238843, 688.87278725) .. (461.18572180, 685.39278734) + .. controls (460.79905515, 673.55278763) and (460.79905515, 661.69945460) .. (461.15905514, 649.85945489) + .. controls (460.83905515, 646.92612163) and (463.10572176, 644.73945502) .. (464.71905505, 642.59278841) + .. controls (473.78572149, 651.93945484) and (480.62572132, 663.12612123) .. (488.50572112, 673.44612097) + .. controls (491.79905437, 677.59278753) and (488.85238778, 683.29945406) .. (491.63905438, 687.63278728) + .. controls (498.55905420, 687.17945396) and (507.41238731, 686.35278731) .. (511.02572056, 679.44612082) + .. controls (503.19905409, 674.83278760) and (496.61238758, 668.47278776) .. (491.50572105, 660.96612128) + .. controls (480.99905464, 647.37945495) and (471.69238821, 632.75278865) .. (459.53238851, 620.52612229) + .. controls (456.67905525, 622.16612225) and (453.65238866, 623.43278889) .. (450.57238874, 624.53945553) + .. controls (448.95905544, 641.12612178) and (447.43905548, 657.71278803) .. (445.82572219, 674.29945428) + .. controls (445.07905554, 679.45945415) and (445.34572220, 684.76612069) .. (443.85238890, 689.79278723) + .. controls (442.51905560, 694.27278712) and (441.53238896, 698.87278700) .. (441.78572229, 703.56612022)} +\def\fdulogo@emblem@E{% + (526.98572016, 668.59278776) + .. controls (530.17238675, 669.21945441) and (532.65238668, 666.80612114) .. (535.09238662, 665.19278784) + .. controls (547.45238631, 655.96612141) and (561.49238596, 649.28612157) .. (573.99905232, 640.27278847) + .. controls (578.85238553, 635.77945524) and (575.13238562, 627.07278880) .. (569.21238577, 625.37945550) + .. controls (565.73238586, 639.41945515) and (550.83905290, 644.23278837) .. (539.90571984, 651.08612153) + .. controls (535.22571995, 646.21945498) and (529.57238676, 641.72612176) .. (527.15905349, 635.21945526) + .. controls (529.51905343, 629.52612207) and (535.87905327, 627.33945546) .. (540.77238648, 624.31278886) + .. controls (546.33238634, 620.17945563) and (553.49238616, 625.57945550) .. (559.19905269, 622.00612226) + .. controls (557.10571941, 614.04612245) and (552.87905284, 605.24612267) .. (544.41238639, 602.64612274) + .. controls (542.49238644, 612.75278915) and (533.62571999, 619.48612232) .. (524.83905355, 623.59278888) + .. controls (521.87905362, 625.23278884) and (519.13238702, 622.43278891) .. (517.53238706, 620.20612230) + .. controls (514.90572046, 616.47278906) and (511.87905387, 612.81945582) .. (510.49238724, 608.40612260) + .. controls (509.59905393, 605.47278934) and (511.30572055, 602.61945607) .. (513.65238716, 600.96612278) + .. controls (519.42572035, 596.49945623) and (525.18572020, 591.80612301) .. (531.94572003, 588.91278975) + .. controls (536.98571991, 588.85945642) and (541.79905312, 590.76612304) .. (546.73238633, 591.63278968) + .. controls (550.63905290, 583.88612321) and (541.33238647, 575.32612342) .. (533.66571999, 578.12612335) + .. controls (521.42572030, 583.35278989) and (511.61238721, 592.63278966) .. (500.49238749, 599.72612281) + .. controls (495.63905428, 603.19278939) and (489.46572110, 605.95278932) .. (487.42572115, 612.03278917) + .. controls (495.85238760, 615.57945575) and (501.03905414, 623.43278889) .. (505.39905403, 631.05945536) + .. controls (511.77238721, 642.09945509) and (521.27905363, 651.56612152) .. (524.62572022, 664.15278787) + .. controls (525.11905354, 665.76612116) and (525.31905353, 667.68612111) .. (526.98572016, 668.59278776)} +\def\fdulogo@emblem@R{% + (594.53238514, 624.33945553) + .. controls (604.35905156, 620.15278897) and (610.29238474, 610.84612253) .. (618.54571787, 604.51278936) + .. controls (626.91905099, 597.44612287) and (634.30571748, 587.99278977) .. (635.51905078, 576.76612339) + .. controls (636.38571742, 567.01945696) and (628.43905096, 557.52612387) .. (618.63905120, 556.84612388) + .. controls (612.81238468, 556.05945724) and (607.19905149, 559.85945714) .. (601.46571830, 557.91279052) + .. controls (599.13238502, 548.69945742) and (595.37238512, 539.60612432) .. (596.02571843, 529.89945789) + .. controls (596.55905175, 525.01945801) and (590.23905191, 525.37945800) .. (587.15905199, 526.69945797) + .. controls (579.63905218, 528.67279126) and (576.29238559, 538.76612434) .. (580.51905215, 545.09945751) + .. controls (584.26571873, 550.67279071) and (587.94571863, 556.56612389) .. (589.05238527, 563.32612372) + .. controls (589.65238526, 567.80612361) and (587.42571865, 572.03279017) .. (584.82571871, 575.51279008) + .. controls (584.02571873, 575.35279009) and (582.41238544, 575.04612343) .. (581.61238546, 574.88612343) + .. controls (576.83905225, 570.57945687) and (571.67905237, 566.53945698) .. (567.95905247, 561.21945711) + .. controls (567.26571915, 557.91279052) and (567.86571914, 553.57945730) .. (564.86571921, 551.31279069) + .. controls (561.95905262, 550.63279071) and (560.17238600, 553.53945730) .. (558.30571938, 555.21945726) + .. controls (554.73238613, 559.59279048) and (550.77238623, 563.65945705) .. (547.39905298, 568.17945693) + .. controls (545.87905302, 569.69945690) and (546.42571967, 571.96612351) .. (546.21238634, 573.85945679) + .. controls (549.82571959, 575.89945674) and (554.03905282, 574.81945677) .. (557.94571938, 575.44612342) + .. controls (561.51905263, 577.15279004) and (563.70571924, 580.59278996) .. (566.37238584, 583.36612322) + .. controls (574.14571898, 591.17945636) and (581.69238546, 599.20612283) .. (589.57238526, 606.91278930) + .. controls (594.50571847, 611.35278919) and (593.13238517, 618.48612234) .. (594.53238514, 624.33945553) + (592.65238518, 585.5394565) + .. controls (591.53238521, 581.93945659) and (593.85238515, 578.40612335) .. (596.10571843, 575.77945674) + .. controls (598.30571838, 573.47279014) and (600.42571832, 570.77945687) .. (603.53238491, 569.68612356) + .. controls (612.70571802, 566.64612364) and (624.47905105, 576.00612341) .. (621.10571781, 585.80612316) + .. controls (617.58571789, 591.11278969) and (613.22571800, 596.53945623) .. (606.97238483, 598.64612284) + .. controls (601.49238496, 595.15278959) and (596.38571842, 590.89945637) .. (592.65238518, 585.53945650)} +\def\fdulogo@emblem@S{% + (638.23905071, 535.65945775) + .. controls (644.62571722, 539.87279098) and (653.18571700, 542.09945759) .. (660.43905016, 538.80612434) + .. controls (669.22571660, 534.85945777) and (674.87904979, 525.96612466) .. (676.86571641, 516.77945822) + .. controls (677.59904973, 511.88612501) and (677.78571639, 506.92612513) .. (678.57238304, 502.03279192) + .. controls (679.25238302, 497.08612538) and (683.17238292, 493.05945881) .. (682.65238293, 487.87279228) + .. controls (676.70571642, 483.33945906) and (669.71904992, 479.61945915) .. (661.99905012, 480.09945914) + .. controls (660.69238348, 487.24612562) and (669.39904993, 491.04612553) .. (669.37238327, 497.92612536) + .. controls (669.99904992, 507.01945846) and (667.61238331, 516.13945824) .. (663.41238341, 524.16612470) + .. controls (660.99905014, 528.63279126) and (654.89238363, 529.96612456) .. (650.89238373, 526.83279130) + .. controls (645.69238386, 512.75279165) and (649.19905044, 497.60612537) .. (650.66571707, 483.17945906) + .. controls (651.43905038, 478.12612585) and (648.98571711, 473.13945931) .. (645.39905053, 469.73945940) + .. controls (634.13238415, 460.97945961) and (616.05238460, 463.81945954) .. (607.49238481, 475.07279260) + .. controls (599.98571833, 484.69945902) and (597.97238505, 497.76612536) .. (599.85238500, 509.60612507) + .. controls (597.17238507, 510.68612504) and (594.49238514, 511.72612501) .. (591.83905187, 512.81945832) + .. controls (591.82571854, 514.47279161) and (591.81238520, 516.12612490) .. (591.81238520, 517.77945819) + .. controls (599.25238502, 521.72612476) and (606.35905151, 526.57945797) .. (614.50571797, 528.99279125) + .. controls (618.49238454, 530.51279121) and (621.70571779, 524.55279136) .. (618.77238453, 521.79279143) + .. controls (615.51905128, 517.81945819) and (610.41238474, 514.41945828) .. (610.30571808, 508.77945842) + .. controls (609.93238475, 501.56612527) and (609.59905143, 493.80612546) .. (613.13238467, 487.24612562) + .. controls (615.38571795, 482.81945907) and (620.01238450, 479.41945915) .. (625.03905104, 479.24612582) + .. controls (630.01238425, 480.01945914) and (632.85238418, 485.43279234) .. (633.13238417, 490.04612555) + .. controls (632.71905085, 499.36612532) and (629.99905092, 508.51279176) .. (630.45238424, 517.88612486) + .. controls (630.45238424, 524.44612469) and (632.39905086, 531.89945784) .. (638.23905071, 535.65945775)} +\def\fdulogo@emblem@I@ii{% + (693.17238267, 460.65945962) + .. controls (695.39904928, 458.89945967) and (698.14571588, 457.08612638) .. (698.39904921, 453.96612646) + .. controls (700.21238249, 444.25946003) and (703.63904908, 434.81946027) .. (704.10571573, 424.88612718) + .. controls (702.42571577, 424.35279386) and (700.77238248, 423.80612721) .. (699.13238252, 423.24612722) + .. controls (696.71904925, 426.16612715) and (694.93238263, 430.25946038) .. (690.86571606, 431.11279369) + .. controls (676.33238309, 429.47279374) and (662.25238344, 425.27279384) .. (647.78571714, 423.21946056) + .. controls (642.43905061, 422.31279391) and (636.83905075, 421.92612726) .. (632.07905086, 419.04612733) + .. controls (631.17238422, 414.68612744) and (630.98571756, 409.28612757) .. (626.54571767, 406.89946097) + .. controls (625.27905103, 407.88612761) and (623.54571774, 408.52612759) .. (622.90571776, 410.12612755) + .. controls (618.81238453, 419.75279398) and (617.74571789, 430.27279372) .. (615.85238460, 440.47279346) + .. controls (615.19905129, 444.11279337) and (616.45238459, 449.79279323) .. (621.06571781, 449.76612656) + .. controls (626.46571767, 447.93945994) and (625.82571769, 440.51279346) .. (630.81238423, 438.12612685) + .. controls (649.21238377, 441.15279344) and (667.62571664, 444.21946003) .. (685.87904952, 447.96612661) + .. controls (691.09238272, 449.81945989) and (691.13238272, 456.33945973) .. (693.17238267, 460.65945962)} +\def\fdulogo@emblem@T{% + (687.11904949, 391.40612802) + .. controls (692.18571603, 396.44612789) and (700.15904916, 398.43279451) .. (706.61238233, 394.81946127) + .. controls (706.78571566, 374.25946178) and (705.19904904, 353.75279563) .. (703.82571574, 333.25946281) + .. controls (700.34571582, 329.09946291) and (694.30571598, 327.64612961) .. (689.37238277, 329.96612956) + .. controls (688.77238278, 331.28612952) and (686.81238283, 333.12612948) .. (688.65238278, 334.40612945) + .. controls (693.03904934, 338.87279600) and (696.07904926, 344.75279585) .. (696.21238259, 351.11279569) + .. controls (676.75904975, 354.25946228) and (656.98571691, 354.79279560) .. (637.30571740, 354.53946228) + .. controls (634.55905080, 351.79279568) and (633.61238416, 346.79279580) .. (629.33238427, 345.80612916) + .. controls (626.47905100, 344.97946251) and (624.83905105, 348.13946244) .. (624.63905105, 350.49946238) + .. controls (623.18571775, 359.37946215) and (623.46571775, 368.61946192) .. (625.85238435, 377.31279504) + .. controls (626.31905101, 378.97946166) and (627.93238430, 379.81946164) .. (629.11905094, 380.89946162) + .. controls (632.85238418, 378.88612833) and (634.81238413, 374.55279511) .. (638.83905070, 373.08612848) + .. controls (652.43905036, 371.25946186) and (666.17238335, 370.56612854) .. (679.85238300, 369.60612857) + .. controls (683.91904957, 369.20612858) and (688.18571613, 368.07279527) .. (692.10571603, 369.79279523) + .. controls (696.71904925, 371.05946186) and (698.61238253, 377.13946171) .. (696.22571593, 381.05946161) + .. controls (694.06571598, 385.20612818) and (690.09238275, 387.91279477) .. (687.11904949, 391.40612802)} +\def\fdulogo@emblem@Y{% + (617.57238456, 308.67279676) + .. controls (618.33238454, 308.65946342) and (619.85238450, 308.63279676) .. (620.61238448, 308.63279676) + .. controls (623.38571775, 305.37946350) and (624.41238439, 301.15279694) .. (625.58571769, 297.15279704) + .. controls (633.54571749, 294.43279711) and (641.94571728, 290.29946388) .. (650.53238374, 292.67279716) + .. controls (660.39905016, 294.88613043) and (670.37238324, 296.63279706) .. (680.22571633, 298.93946367) + .. controls (686.91904949, 299.96613031) and (690.85238273, 306.43279681) .. (697.30571590, 308.08613010) + .. controls (698.06571588, 299.28613032) and (694.90571596, 290.91279720) .. (692.13238270, 282.73946407) + .. controls (691.75904937, 281.24613077) and (690.83904940, 280.21946413) .. (689.37238277, 279.64613081) + .. controls (686.74571616, 280.49946413) and (685.17238287, 282.87279740) .. (683.39904958, 284.80613069) + .. controls (673.79904982, 282.88613073) and (664.23905006, 280.71279745) .. (654.85238363, 277.89946419) + .. controls (662.07905011, 271.45946435) and (667.39904998, 262.52613124) .. (676.59904975, 258.60613134) + .. controls (678.67904970, 257.53946470) and (681.47904963, 257.63279803) .. (683.17238292, 255.99279807) + .. controls (684.90571621, 248.51279826) and (682.79904960, 238.67279851) .. (674.89238313, 235.51279858) + .. controls (669.46571660, 249.71279823) and (655.46571695, 257.24613137) .. (646.86571716, 269.09946441) + .. controls (641.23905064, 276.16613090) and (631.89238420, 278.01946419) .. (623.53238441, 279.72613081) + .. controls (617.95905122, 280.92613078) and (613.19905134, 272.47279766) .. (607.85238480, 276.92613088) + .. controls (608.41238479, 285.40613067) and (611.27905138, 293.47279714) .. (613.22571800, 301.68613026) + .. controls (613.77238466, 304.49946353) and (615.46571795, 306.80613014) .. (617.57238456, 308.67279676)} +\def\fdulogo@emblem@one{% + (210.6390614,174.63280011) + .. controls (216.67906125, 175.21946676) and (221.81239445, 178.87280000) .. (227.55906098, 180.56613329) + .. controls (232.15906086, 177.80613336) and (236.70572742, 174.56613344) .. (239.37239402, 169.75280023) + .. controls (238.14572738, 166.88613363) and (236.77239408, 164.03280037) .. (234.83906080, 161.55280043) + .. controls (221.77239446, 143.96613421) and (209.17239477, 126.04613465) .. (196.18572843, 108.40613510) + .. controls (194.77239513, 106.56613514) and (193.47906183, 104.56613519) .. (191.71906187, 103.00613523) + .. controls (187.97239530, 101.52613527) and (184.55906205, 104.48613519) .. (181.98572878, 106.81946847) + .. controls (179.35906218, 109.25946841) and (175.50572895, 112.13946834) .. (177.26572890, 116.21946823) + .. controls (185.81239535, 129.96613456) and (196.33239509, 142.37946758) .. (204.86572821, 156.15280057) + .. controls (200.26572833, 159.91280047) and (195.41239511, 163.57946705) .. (191.87906187, 168.41946693) + .. controls (191.99906187, 173.07280015) and (195.02572846, 177.91280002) .. (199.63906168, 179.32613332) + .. controls (203.25239492, 177.65946670) and (206.67906150, 175.33946676) .. (210.63906140, 174.63280011)} +\def\fdulogo@emblem@nine{% + (293.61239266, 125.28613467) + .. controls (287.66572614, 121.88613476) and (283.09239292, 113.28613497) .. (287.54572614, 106.99280180) + .. controls (291.95905937, 100.09946864) and (301.35905913, 98.67280201) .. (308.67905895, 100.99280195) + .. controls (313.38572550, 103.20613523) and (316.67905875, 108.65946842) .. (315.75905877, 113.87280163) + .. controls (314.18572548, 118.32613485) and (309.63905893, 120.55280146) .. (305.89239235, 122.89946807) + .. controls (302.19905911, 124.79280135) and (297.74572589, 127.05946796) .. (293.61239266, 125.28613467) + (283.21239292, 137.61946770) + .. controls (289.81239275, 139.92613431) and (297.09239257, 139.31280099) .. (303.86572574, 138.12613435) + .. controls (314.97239213, 136.04613440) and (326.23905851, 129.27280124) .. (330.05239175, 118.11280152) + .. controls (332.94572501, 105.13946851) and (328.85239178, 92.08613550) .. (324.65239188, 79.88613581) + .. controls (321.90572529, 69.68613606) and (312.95905884, 62.39280291) .. (303.49239241, 58.59280301) + .. controls (296.41239259, 55.49946975) and (288.41239279, 57.07280305) .. (281.25239297, 59.04613633) + .. controls (270.17239325, 62.33946958) and (260.70572682, 71.61946935) .. (258.78572686, 83.21946906) + .. controls (258.14572688, 88.32613560) and (261.02572681, 92.88613548) .. (265.11906004, 95.67280208) + .. controls (271.74572654, 93.39280214) and (272.38572652, 85.77946899) .. (275.58572644, 80.55280246) + .. controls (281.01239297, 73.16613598) and (292.19905936, 70.15280272) .. (300.31905916, 74.83280260) + .. controls (303.61239241, 76.65946922) and (306.47905900, 80.12613580) .. (306.43905901, 84.04613570) + .. controls (296.22572593, 85.09946901) and (285.02572621, 86.75280230) .. (277.26572640, 94.09946879) + .. controls (271.26572655, 100.64613529) and (266.10572668, 110.17946838) .. (269.73239326, 119.12613483) + .. controls (272.42572652, 126.23280132) and (275.69239311, 134.44613444) .. (283.21239292, 137.61946770)} +\def\fdulogo@emblem@zero{% + (411.01238972, 111.88613501) + .. controls (404.38572322, 109.99280172) and (402.09238995, 102.60613524) .. (401.35905663, 96.49946873) + .. controls (400.65238998, 86.93946897) and (400.89238998, 76.60613589) .. (406.01238985, 68.15280277) + .. controls (408.30572313, 64.69946952) and (411.50572305, 61.23280294) .. (415.78572294, 60.48613629) + .. controls (424.71905605, 58.92613633) and (433.35905583, 66.55280281) .. (434.53238914, 75.23280259) + .. controls (435.43905578, 84.84613568) and (432.83905585, 94.45946878) .. (429.02572261, 103.20613523) + .. controls (425.89238935, 109.53946840) and (418.07905621, 114.51280161) .. (411.01238972, 111.88613501) + (405.74572319, 127.83280128) + .. controls (415.94572293, 129.47280124) and (427.99905597, 129.88613456) .. (436.03905577, 122.24613475) + .. controls (447.95905547, 108.76613509) and (453.13238867, 90.09946889) .. (451.81238870, 72.33946933) + .. controls (450.19905541, 58.21946968) and (438.79905570, 43.93947004) .. (423.73238941, 43.91280337) + .. controls (411.93238970, 44.16613670) and (398.71905670, 47.67280328) .. (391.73239021, 57.95280302) + .. controls (384.51905705, 68.47280276) and (383.82572374, 81.67280243) .. (382.77239043, 93.95280212) + .. controls (382.50572377, 108.28613510) and (390.71905690, 124.67280136) .. (405.74572319, 127.83280128)} +\def\fdulogo@emblem@five{% + (521.86572029, 172.09946684) + .. controls (529.15905344, 177.17946671) and (539.82571984, 165.40613367) .. (533.55905333, 158.84613383) + .. controls (531.37238672, 156.05946724) and (528.26572013, 154.12613395) .. (525.10572021, 152.59280066) + .. controls (518.22572038, 149.35280074) and (511.30572055, 146.17946748) .. (504.49238739, 142.79280090) + .. controls (505.89238735, 138.48613434) and (507.39905398, 134.20613445) .. (509.29238727, 130.08613455) + .. controls (513.69238716, 132.57946782) and (518.31905371, 134.84613443) .. (521.93238695, 138.48613434) + .. controls (531.25238672, 148.75280075) and (549.73238626, 147.07280080) .. (557.66571939, 135.93946774) + .. controls (564.54571922, 127.15280129) and (566.22571918, 114.91280160) .. (563.05238592, 104.33946853) + .. controls (560.75905265, 96.36613540) and (554.18571948, 90.75280220) .. (547.63905298, 86.16613565) + .. controls (536.71905325, 79.13946916) and (521.10572031, 79.37946915) .. (511.09238722, 87.96613561) + .. controls (506.94572066, 92.15280217) and (511.54572054, 97.87280203) .. (515.22572045, 100.51280196) + .. controls (522.31905361, 102.40613525) and (528.73238678, 95.71280208) .. (535.89238660, 98.12613535) + .. controls (541.66571979, 101.15280194) and (546.25238634, 106.04613515) .. (549.17238627, 111.84613501) + .. controls (550.74571956, 119.79280148) and (545.49238636, 128.76613459) .. (537.27905323, 130.08613455) + .. controls (532.50572002, 130.93946787) and (529.15905344, 126.76613464) .. (525.82572019, 124.11280137) + .. controls (519.34572035, 118.00613486) and (511.38572055, 113.83280163) .. (503.55905408, 109.76613506) + .. controls (496.57238759, 123.39280139) and (487.81238780, 136.40613440) .. (484.21238789, 151.49946735) + .. controls (496.54572092, 158.76613384) and (509.27905393, 165.29946701) .. (521.86572029, 172.09946684)} +\def\fdulogo@emblem@ring@inner@i{% + (361.25239097, 616.49945573) + .. controls (394.65239013, 618.07278902) and (428.63905595, 615.12612243) .. (460.33238849, 603.93945604) + .. controls (533.42572000, 578.20612335) and (592.38571852, 515.31279159) .. (612.77238468, 440.47279346) + .. controls (618.50571787, 421.04612728) and (619.83905117, 400.69946112) .. (620.91905114, 380.57946162) + .. controls (621.31905113, 350.97946236) and (617.47905123, 321.11279644) .. (607.53238481, 293.12613048) + .. controls (581.78571879, 222.35279891) and (521.59905363, 164.84613368) .. (449.29238877, 143.36613422) + .. controls (411.30572305, 132.47280116) and (370.74572406, 131.20613453) .. (331.93239170, 138.13946769) + .. controls (299.90572584, 143.89946754) and (269.06572661, 156.40613390) .. (242.41239394, 175.12613343) + .. controls (198.49239504, 205.71279933) and (163.47906258, 250.28613155) .. (147.89239630, 301.81946359) + .. controls (138.98572986, 331.20612953) and (135.87906327, 362.25946208) .. (138.06572988, 392.84612798) + .. controls (139.77239651, 425.36612717) and (148.53239629, 457.45945970) .. (163.30572925, 486.47279231) + .. controls (189.25239527, 536.12612440) and (232.15906086, 577.09945671) .. (283.82572624, 599.16612283) + .. controls (308.26572563, 609.68612256) and (334.66572497, 615.49945575) .. (361.25239097, 616.49945573)} +\def\fdulogo@emblem@ring@inner@ii{% + (349.85239125, 596.91278955) + .. controls (326.69239183, 594.15278962) and (303.94572573, 587.73945645) .. (282.86572626, 577.75279003) + .. controls (223.78572774, 548.76612409) and (176.71906225, 493.71279213) .. (161.78572929, 429.11279374) + .. controls (149.99906292, 378.21946168) and (154.90572946, 323.12612973) .. (178.09239555, 276.07279757) + .. controls (192.53239519, 247.36613162) and (213.46572800, 222.12613225) .. (238.09239405, 201.59279943) + .. controls (263.25239342, 180.57946662) and (293.22572600, 165.37946700) .. (325.15905854, 157.91280052) + .. controls (375.03905729, 145.87280083) and (429.05238927, 150.95280070) .. (475.53238811, 172.84613348) + .. controls (499.71905417, 184.55279986) and (521.54572029, 200.91279945) .. (540.18571983, 220.23279897) + .. controls (557.53238606, 238.29946518) and (572.49238569, 258.88613133) .. (582.82571876, 281.77946409) + .. controls (605.98571818, 332.51279616) and (608.94571811, 391.84612801) .. (592.09238520, 444.89946002) + .. controls (582.54571877, 475.56612592) and (565.71905252, 503.83279188) .. (543.55905308, 527.05945796) + .. controls (521.82572029, 550.60612404) and (495.25238762, 569.84612356) .. (465.65238836, 582.24612325) + .. controls (449.98572208, 588.81945642) and (433.39905583, 592.84612298) .. (416.79905625, 596.25945623) + .. controls (394.66572347, 599.43278949) and (372.03905737, 599.48612282) .. (349.85239125, 596.91278955)} +\def\fdulogo@emblem@ring@outer@i{% + (368.57239079, 736.61945272) + -- (390.89239023, 736.61945272) + .. controls (400.37238999, 735.31278609) and (409.98572308, 735.60611942) .. (419.45238951, 734.27278612) + .. controls (471.66572154, 729.01945291) and (522.85238693, 712.13945334) .. (567.25238582, 684.00612071) + .. controls (616.45238459, 652.68612149) and (658.38571687, 609.85945589) .. (688.45238279, 559.87279048) + .. controls (704.79904905, 532.39279116) and (717.45238206, 502.64612524) .. (725.18571520, 471.59279268) + .. controls (732.34571502, 444.25946003) and (735.50571495, 416.08612740) .. (737.17238157, 387.93946144) + -- (737.17238157, 364.21946203) + .. controls (736.39904826, 358.60612884) and (736.11904826, 352.95279565) .. (735.83904827, 347.29946246) + .. controls (731.38571505, 289.00613058) and (713.05238217, 231.36613202) .. (680.23904966, 182.75279990) + .. controls (638.58571737, 120.48613479) and (578.70571887, 69.67280273) .. (508.59905395, 42.48613674) + .. controls (471.46572155, 28.04613710) and (431.73238921, 21.32613727) .. (392.06572353, 19.28613732) + -- (362.01239095, 19.28613732) + .. controls (301.01239247, 21.79280393) and (240.03906067, 38.79280350) .. (188.59906195, 72.15280267) + .. controls (137.71906322, 104.44613519) and ( 94.53239764, 148.89946742) .. ( 64.27906506, 201.05946611) + .. controls ( 39.81239900, 242.93946507) and ( 25.45239936, 290.41946388) .. ( 20.70573282, 338.60612934) + .. controls ( 16.61239958, 377.51279503) and ( 19.02573286, 416.99279405) .. ( 26.67906600, 455.32612642) + .. controls ( 38.51906570, 513.71279163) and ( 66.61239833, 568.51279026) .. (106.13239735, 612.99278915) + .. controls (125.09239687, 634.91278860) and (146.65239633, 654.56612144) .. (170.07906241, 671.60612102) + .. controls (218.11906121, 706.80612014) and (275.75905977, 728.24611960) .. (334.91905829, 734.28611945) + .. controls (346.09239135, 735.72611941) and (357.37239107, 735.51278608) .. (368.57239079, 736.61945272)} +\def\fdulogo@emblem@ring@outer@ii{% + (354.53239114, 717.84611986) + .. controls (321.10572531, 715.17945326) and (287.69239281, 709.16612008) .. (256.34572692, 696.99278705) + .. controls (208.13239480, 678.63278751) and (164.83906255, 648.37945493) .. (129.51906343, 610.92612253) + .. controls (106.35906401, 586.08612315) and ( 86.22573118, 558.24612385) .. ( 71.11906489, 527.77945794) + .. controls ( 36.07906576, 456.27279307) and ( 28.85239928, 372.71279515) .. ( 46.18573218, 295.37946375) + .. controls ( 61.50573180, 225.76613216) and (102.38573077, 163.29946706) .. (155.91906277, 116.89946822) + .. controls (196.98572841, 80.45946913) and (247.34572715, 54.51280311) .. (301.01239247, 42.79280340) + .. controls (383.25239042, 25.40613717) and (472.61238818, 34.95280360) .. (546.25238634, 76.84613588) + .. controls (609.82571809, 113.67280163) and (662.57238344, 169.83280023) .. (692.95904934, 236.93946522) + .. controls (715.01238212, 285.51279733) and (723.18571525, 339.56612932) .. (721.19904864, 392.63279466) + .. controls (718.73238203, 452.08612650) and (701.41238246, 511.41945835) .. (668.46571662, 561.23279044) + .. controls (631.46571755, 617.03278905) and (579.43905218, 663.59278788) .. (517.91905372, 690.64612054) + .. controls (466.78572166, 713.11278664) and (410.05238975, 721.16611978) .. (354.53239114, 717.84611986)} +\def\fdulogo@emblem@new@kernel{% + (284.68492622, 377.38587424) + .. controls (296.85159258, 374.46587432) and (317.35159207, 372.84454102) .. (328.85159178, 381.34454081) + .. controls (340.07825816, 389.64187394) and (342.01825812, 410.17787342) .. (336.41292492, 413.51120667) + .. controls (327.05025849, 419.07920653) and (273.18492650, 410.84454007) .. (263.01826009, 410.17787342) + .. controls (261.01826014, 399.01120704) and (271.06492656, 380.65520750) .. (284.68492622, 377.38587424) + (336.35159159, 441.01120599) + .. controls (336.35159159, 441.01120599) and (337.68492489, 455.17787230) .. (334.68625830, 462.27653879) + .. controls (329.13025844, 475.43120513) and (323.68492524, 480.17253834) .. (299.01825919, 480.17253834) + .. controls (282.14492628, 480.17253834) and (267.18492665, 476.01120511) .. (261.31159347, 461.96720546) + .. controls (257.23692690, 452.22453904) and (258.30759354, 437.71253940) .. (262.91292676, 437.06587275) + .. controls (270.44892657, 436.00720611) and (336.35159159, 441.01120599) .. (336.35159159, 441.01120599) + (246.59292717, 497.03520459) + .. controls (259.37426018, 506.15653769) and (276.74092641, 512.23387087) .. (300.29559249, 512.23387087) + .. controls (348.32492463, 512.23387087) and (363.12892426, 484.62187156) .. (364.18492423, 471.84453855) + -- (364.78892421, 471.84453855) + .. controls (368.40759079, 488.78853813) and (395.43425678, 511.51120422) .. (399.44359001,521.76720397) + .. controls (400.91825664, 525.54053721) and (395.33292345, 527.64187049) .. (392.01825687,525.67787054) + .. controls (389.01825694, 523.90053725) and (372.68492402, 506.42853768) .. (360.51825765,506.42853768) + .. controls (354.64359113, 506.42853768) and (344.76892471, 511.67787089) .. (344.76892471,520.02320401) + .. controls (344.76892471, 527.51120382) and (366.72892417, 547.37253666) .. (375.35159062,559.84453635) + .. controls (381.31959047, 568.47653613) and (388.58492362, 581.05386915) .. (391.51825688,595.84453545) + .. controls (395.51825678, 616.01120161) and (404.51825655, 623.17786810) .. (415.85158960,623.17786810) + .. controls (424.46225606, 623.17786810) and (437.85158905, 613.67786834) .. (429.85158925,588.01120231) + .. controls (425.73692269, 574.80853597) and (419.22092285, 550.54453658) .. (430.35158924,549.51120327) + .. controls (446.51825550, 548.01120331) and (563.19691925, 564.04320291) .. (582.07425211,556.90053642) + .. controls (592.35158519, 553.01120319) and (602.68491827, 540.51120350) .. (592.74091851,526.23387052) + .. controls (590.55558524, 523.09653727) and (546.51825300, 529.51120377) .. (514.51825380,529.51120377) + .. controls (502.89825409, 529.51120377) and (439.94758900, 527.47387049) .. (429.24358927,513.09253752) + .. controls (418.18492288, 498.23387122) and (433.51825583, 482.17787162) .. (433.51825583,471.17787190) + .. controls (433.51825583, 452.84453902) and (415.35158962, 427.34453966) .. (415.35158962,364.34454124) + .. controls (415.35158962, 329.84320877) and (418.18492288, 298.67787621) .. (422.96225609,221.78854480) + .. controls (424.97425604, 189.40721228) and (394.85159013, 194.47654548) .. (389.85159025,223.34454476) + .. controls (386.22225701, 244.30187757) and (382.29559044, 297.12187625) .. (382.07425711,314.23387582) + .. controls (336.68492492, 315.84454245) and (279.18492635, 309.56720927) .. (249.18492710,302.23387612) + .. controls (241.04359397, 300.24320951) and (230.30226091, 322.72854228) .. (232.73692751,328.19387547) + .. controls (237.18492740, 338.17787522) and (304.07292573, 341.84587513) .. (337.85159155,344.01120841) + .. controls (352.71159118, 344.96454172) and (362.68492427, 344.77654173) .. (382.07425711,343.78854175) + .. controls (382.24359044, 356.26587477) and (382.09159045, 361.90454130) .. (383.18492375,378.67787421) + .. controls (384.31292373, 395.98454045) and (387.89425697, 424.28187307) .. (391.45825688,437.71787274) + .. controls (396.07425676, 455.12187230) and (405.51825653, 466.34453869) .. (400.96225664,468.67787196) + .. controls (394.59159014, 471.94053855) and (374.85159063, 431.14587290) .. (370.35159074,409.49120677) + .. controls (367.44625748, 395.51120712) and (371.86359070, 373.07254102) .. (349.62892459,358.67787471) + .. controls (331.35159172, 346.84454167) and (282.04359295, 338.87787521) .. (256.35159359,354.84454147) + .. controls (238.74092736, 365.78854120) and (226.51826100, 381.78854080) .. (226.51826100,426.23387302) + .. controls (226.51826100, 452.40053904) and (225.85159435, 482.23387162) .. (246.59292717,497.03520459) + (519.40705368, 324.28907557) + .. controls (520.27772033, 321.35440898) and (522.26838694, 319.59440902) .. (524.01905357, 319.40640903) + .. controls (527.39772015, 319.04240904) and (544.90705304, 319.34507569) .. (546.76838633, 320.92774232) + .. controls (552.93238618, 326.17174219) and (554.93505279, 341.67840847) .. (551.93905287, 343.33840843) + .. controls (549.50438626, 344.68640839) and (532.46305336, 343.27307510) .. (523.78705357, 340.68507516) + .. controls (522.12038695, 340.18907517) and (519.07372036, 338.67840854) .. (518.75372036, 335.68107529) + .. controls (518.29638704, 331.41174206) and (518.48438704, 327.39974216) .. (519.40705368, 324.28907557) + (452.62972202, 377.89974090) + .. controls (454.40705531, 380.67840749) and (460.51772182, 383.39974076) .. (470.18438825, 383.89974075) + .. controls (482.77238793, 384.55174073) and (526.92305349, 388.98507395) .. (532.97372001, 387.58640732) + .. controls (536.18438660, 386.84507401) and (534.01771998, 379.17840753) .. (531.37772005, 375.70774095) + .. controls (529.41638676, 373.13040768) and (525.70172019, 369.17707445) .. (524.01772023, 366.92774117) + .. controls (522.12572028, 364.39974124) and (521.15772030, 361.51707464) .. (523.38305358, 360.27574134) + .. controls (525.85105352, 358.89974137) and (546.79638633, 361.95574130) .. (553.22705284, 363.09440793) + .. controls (558.79771936, 364.08107458) and (560.80971931, 369.80240777) .. (563.93505257, 374.26107432) + .. controls (569.21238577, 381.79040747) and (577.07371891, 386.01174069) .. (582.85105210, 386.01174069) + .. controls (589.62971859, 386.01174069) and (591.42305188, 374.38374099) .. (590.75238523, 366.33574119) + .. controls (589.71238526, 353.83574150) and (577.80438555, 312.07974254) .. (574.23505231, 303.75707608) + .. controls (573.29638567, 301.56640947) and (569.88438575, 300.01174284) .. (566.93505249, 300.01174284) + .. controls (562.33771927, 300.01174284) and (536.85105325, 301.92774280) .. (526.56705350, 298.69440954) + .. controls (524.00438690, 297.88907623) and (523.26838692, 295.76107628) .. (524.01772023, 290.26107642) + .. controls (524.61238688, 285.90107653) and (533.49905333, 247.55841082) .. (534.66171997, 239.50507769) + .. controls (536.96305324, 223.56641142) and (521.42305363, 220.83707816) .. (512.54305385, 232.40374453) + .. controls (504.74038738, 242.56641095) and (500.54705415, 254.53174398) .. (496.62305425, 267.26774366) + .. controls (491.90438770, 282.58240995) and (493.95505432, 293.84107633) .. (483.74038791, 292.78907636) + .. controls (470.72438823, 291.44774306) and (447.51772215, 274.87174347) .. (435.67372244, 274.87174347) + .. controls (427.17638932, 274.87174347) and (425.42038936, 289.38107644) .. (429.01772261, 295.34507629) + .. controls (435.35105578, 305.84507603) and (475.30972145, 316.46907577) .. (487.88172114, 317.47040907) + .. controls (488.71505445, 325.38774221) and (488.68438778, 330.42774208) .. (486.68438783, 337.09440858) + .. controls (479.43505468, 337.17840858) and (471.10172156, 335.26107530) .. (461.92172179, 331.04507540) + .. controls (450.90705539, 325.98640886) and (436.74438908, 322.49307562) .. (431.17372255, 322.49307562) + .. controls (425.06172271, 322.49307562) and (420.74038948, 337.89974190) .. (430.29638924, 345.12240838) + .. controls (435.23905579, 348.85840829) and (445.41505553, 351.63307489) .. (449.95372208, 352.43707487) + .. controls (458.85105520, 354.01174149) and (486.96305449, 353.34507484) .. (489.68172109, 359.03040804) + .. controls (490.40038774, 360.53574133) and (490.68438773, 364.39974124) .. (488.19772113, 365.49040787) + .. controls (485.73372119, 366.57174118) and (469.18438827, 363.01174127) .. (460.40705516, 363.89974125) + .. controls (451.95905537, 364.75574123) and (450.23372208, 374.15707432) .. (452.62972202, 377.89974090) + (465.02505504, 479.10973837) + .. controls (470.18505491, 476.67773843) and (560.01838600, 480.17773834) .. (564.76771921,482.34440495) + .. controls (570.23305241, 484.83640489) and (569.77571909, 493.67773800) .. (564.35171922,496.01107128) + .. controls (558.92771936, 498.34440455) and (473.45438816, 494.42840465) .. (468.18505496,492.56707136) + .. controls (461.68105512, 490.26840476) and (460.15705516, 481.40440498) .. (465.02505504,479.10973837) + (512.51838719, 517.56707074) + .. controls (550.96238623, 517.56707074) and (578.74105220, 517.56707074) .. (590.23038524,506.59240435) + .. controls (595.69438511, 501.37240448) and (599.18505169, 483.56707159) .. (588.92905194,472.13107188) + .. controls (579.25038552, 461.33773881) and (539.85171984, 459.34440553) .. (504.85972071,459.19507220) + .. controls (494.19305431, 459.14840553) and (455.35172195, 457.17773892) .. (449.05705544,461.39240548) + .. controls (429.26772260, 474.64440515) and (433.46105583, 495.05640464) .. (442.07438895,502.23373779) + .. controls (455.40772195, 513.34440418) and (467.40772165, 516.67773743) .. (512.51838719,517.56707074) + (469.51812160, 412.41240670) + .. controls (478.85145470, 412.22040671) and (551.62878621, 415.45640663) .. (562.58611927,417.44173991) + .. controls (572.83011901, 419.29907320) and (572.35145236, 428.51107297) .. (566.51811917,429.34440628) + .. controls (558.35945271, 430.50973958) and (474.17278815, 426.64840635) .. (466.69545500,424.28307307) + .. controls (460.51812182, 422.32973979) and (462.43545511, 412.55774003) .. (469.51812160,412.41240670) + (453.04878867, 444.45907257) + .. controls (474.88078813, 454.19773899) and (578.96211886, 454.67773898) .. (587.85145197,448.01107248) + .. controls (600.58211832, 438.46307272) and (600.43145166, 419.22840653) .. (595.50211845,409.49107344) + .. controls (586.74078533, 392.17774054) and (506.59678734, 392.17774054) .. (466.18478835,392.17774054) + .. controls (452.18478870, 392.17774054) and (435.68478911, 400.67774033) .. (435.68478911,416.51107327) + .. controls (435.68478911, 423.84440642) and (435.60612244, 436.67773943) .. (453.04878867,444.45907257)} +\def\fdulogo@emblem@new@F{% + (128.08471915, 329.48133989) + -- (127.14177837, 332.01133349) + -- (105.95308200, 324.11420442) + -- (128.23005803, 264.34310569) + -- (130.86546803, 265.32533568) + .. controls (128.57617887, 272.75622407) and (129.41093008, 275.34847365) .. (134.89258287, 277.39151202) + -- (185.91412041, 296.40748451) + .. controls (191.39577320, 298.45052287) and (193.10540239, 297.40687447) .. (196.85613434, 289.92037447) + -- (199.49154434, 290.90260446) + -- (185.34743257, 328.85250841) + -- (182.71202258, 327.87027842) + .. controls (185.90496332, 318.01481284) and (185.34717211, 315.64584725) .. (179.54927011, 313.48494128) + -- (154.98724894, 304.33055784) + .. controls (151.19058341, 315.16160902) and (153.63728983, 320.51571619) .. (165.31554342, 326.54909292) + -- (164.33331344, 329.18450291) + -- (128.70257028, 315.90475353) + -- (129.68480027, 313.26934353) + .. controls (142.40947544, 315.85081706) and (147.47417141, 313.53636504) .. (151.40309135, 302.99472506) + -- (126.94648658, 293.87963081) + .. controls (123.04607978, 292.42593043) and (121.48115619, 293.40345164) .. (119.47740703, 298.77968803) + .. controls (111.81601315, 319.33588600) and (119.27761075, 323.79769475) .. (128.08471915, 329.48133989)} +\def\fdulogo@emblem@new@U@i{% + (100.51870590, 377.96853391) + -- ( 97.71928261, 377.69763724) + -- (101.38180565, 339.84943428) + -- (104.18122894, 340.12033095) + .. controls (104.20655678, 348.03456725) and (105.53222649, 349.51915670) .. (113.59456558, 350.29933913) + -- (150.99486081, 353.91851870) + .. controls (161.96860013, 354.98043366) and (167.22791658, 357.86290671) .. (171.49391369, 365.17027770) + .. controls (174.89298469, 370.92442577) and (176.21507398, 378.28599501) .. (175.42405569, 386.46031104) + .. controls (173.33273336, 408.07185888) and (159.86303178, 414.11507061) .. (142.84253814, 412.46801883) + -- (107.12189689, 409.01137727) + .. controls (100.51525791, 408.37206111) and ( 98.57192487, 409.76636429) .. ( 96.75866006, 416.82452926) + -- ( 93.95923677, 416.55363258) + -- ( 96.34312750, 391.91870758) + -- ( 99.14255080, 392.18960425) + .. controls ( 98.96921476, 400.98882014) and (100.99203606, 403.44507611) .. (109.16635208, 404.23609440) + -- (143.31931629, 407.54103383) + .. controls (159.89190220, 409.14474215) and (168.22511905, 403.62170878) .. (169.51458722, 390.29645390) + .. controls (170.61984565, 378.87480685) and (164.50082069, 373.19652877) .. (149.27195796, 371.72285086) + -- (111.87166273, 368.10367129) + .. controls (103.02548511, 367.24763780) and (101.68899846, 369.37881776) .. (100.51870590, 377.96853391)} +\def\fdulogo@emblem@new@D{% + (161.13377402, 431.77641390) + .. controls (165.99478812, 430.84205928) and (167.67345668, 427.65541280) .. (166.66276259, 421.20524173) + -- (169.42470242, 420.67435842) + -- (176.13506745, 455.58527790) + .. controls (180.72189924, 479.44843805) and (168.53387923, 498.28768735) .. (145.66501742, 502.68340115) + .. controls (122.90663320, 507.05787961) and (106.12398751, 494.24543310) .. (101.21862573, 468.72510905) + -- ( 94.74184936, 435.02944310) + -- ( 97.50378919, 434.49855979) + .. controls ( 99.52571602, 441.44171376) and (101.58635124, 443.22225805) .. (106.66832053, 442.24543276) + (143.62723349, 483.14176993) + .. controls (169.25803513, 478.21517282) and (174.20076693, 466.38197552) .. (171.99229236, 454.89230582) + .. controls (171.03670241, 449.92081412) and (169.32443437, 448.76066473) .. (164.35294268, 449.71625468) + -- (107.56745973, 460.63121552) + .. controls (105.02647508, 461.11962816) and (104.12545061, 463.58400402) .. (104.95362857, 467.89263016) + .. controls (106.86480848, 477.83561355) and (116.44974554, 488.36566169) .. (143.62723349, 483.14176993)} +\def\fdulogo@emblem@new@A{% + (213.73056745, 560.05088194) + -- (213.52877972, 559.64866116) + .. controls (211.56134940, 555.72700852) and (208.64253939, 555.17751094) .. (194.25467970, 556.10248902) + -- (130.11298094, 560.21376615) + -- (128.70046687, 557.39822066) + -- (172.60549553, 507.43004883) + .. controls (180.04014537, 498.91738678) and (180.94311014, 496.95402046) .. (179.42665420, 491.67334867) + -- (181.94053410, 490.41217539) + -- (192.18126114, 510.82488017) + -- (189.66738124, 512.08605346) + .. controls (186.28879152, 506.35508462) and (184.02240494, 504.59723135) .. (181.40796985, 505.90885157) + .. controls (180.10075230, 506.56466167) and (177.99044785, 508.63027652) .. (173.61985282, 513.46606992) + -- (170.45490415, 516.94182818) + -- (181.80546368, 539.56674728) + .. controls (191.36396463, 539.05076331) and (195.58931486, 538.44133613) .. (197.80152917, 537.33150365) + .. controls (199.91318828, 536.27211809) and (200.26293014, 534.46043123) .. (198.69839794, 530.84010551) + .. controls (198.44616328, 530.33732953) and (197.89090837, 528.97966505) .. (197.38576172, 527.47099844) + -- (199.89964162, 526.20982516) + -- (216.24444735, 558.78970866) + (167.28995547, 520.41758644) + -- (147.59705438, 542.12837916) + -- (177.12710706, 540.02584966)} +\def\fdulogo@emblem@new@N@i{% + (180.22686421, 631.40888576) + -- (163.64330505, 614.42493307) + -- (165.65562172, 612.46005639) + .. controls (167.22752306, 614.06990973) and (169.77102921, 614.25935906) .. (178.13167444, 613.64308824) + -- (216.28519850, 576.38902642) + .. controls (220.87328050, 571.90910759) and (220.82125183, 569.60138665) .. (215.80824593, 563.01806637) + -- (217.82056260, 561.05318969) + -- (235.66164284, 579.32502506) + -- (233.64932617, 581.28990174) + .. controls (226.87307200, 575.79932200) and (223.92900012, 575.84376027) .. (218.21402078, 581.42401004) + -- (185.85596873, 613.01922702) + -- (264.77597447, 606.24373256) + -- (266.97663635, 608.49752723) + -- (219.56645561, 654.79002177) + .. controls (214.97837360, 659.26994059) and (214.95370480, 661.33808113) .. (219.2574575, 667.35605515) + -- (217.24514083, 669.32093182) + -- (200.34720140, 652.01500846) + -- (202.35951807, 650.05013179) + .. controls (208.73900170, 655.45642366) and (211.92265398, 655.33528792) .. (217.63763332, 649.75503815) + -- (242.18789670, 625.78354268)} +\def\fdulogo@emblem@new@U@ii{% + (331.45282512, 724.53468765) + -- (330.63705847, 727.22628423) + -- (294.24667267, 716.19711919) + -- (295.06243932, 713.50552261) + .. controls (302.82732441, 715.03602217) and (304.54348943, 714.02795994) .. (306.89289736, 706.27616178) + -- (317.79153974, 670.31643143) + .. controls (320.98934498, 659.76537283) and (324.84918874, 655.17508751) .. (332.85243369, 652.42834813) + .. controls (339.16237243, 650.22638488) and (346.64021167, 650.37679795) .. (354.49967369, 652.75883655) + .. controls (375.27879931, 659.05655505) and (378.55705453, 673.45122874) .. (373.59719333, 689.81613596) + -- (363.18801094, 724.16090836) + .. controls (361.26280166, 730.51307630) and (362.24800509, 732.69252743) .. (368.81218569, 735.85752868) + -- (367.99641904, 738.54912526) + -- (344.31036911, 731.37037878) + -- (345.12613576, 728.67878220) + .. controls (353.71970109, 730.57799095) and (356.52559167, 729.07732700) .. (358.90763028, 721.21786498) + -- (368.85998334, 688.38038667) + .. controls (373.68932188, 672.44613490) and (369.91166147, 663.19001105) .. (357.09966174, 659.30696182) + .. controls (346.11794768, 655.97863391) and (339.34786455, 660.86242188) .. (334.91009400, 675.50470729) + -- (324.01145163, 711.46443764) + .. controls (321.43362903, 719.96988284) and (323.26059964, 721.69913479) .. (331.45282512, 724.53468765)} +\def\fdulogo@emblem@new@N@ii{% + (409.66623928, 741.32018157) + -- (385.93186303, 740.93540199) + -- (385.97745303, 738.12327211) + .. controls (388.22715694, 738.15974410) and (390.16675926, 736.50346737) .. (395.66999384, 730.17934402) + -- (396.53438018, 676.86136137) + .. controls (396.63832537, 670.44970523) and (394.97657784, 668.84755849) .. (386.78157096, 667.70206894) + -- (386.82716096, 664.88993905) + -- (412.36130033, 665.30389623) + -- (412.31571034, 668.11602611) + .. controls (403.63793789, 668.98797568) and (401.57855597, 671.09236960) .. (401.44908038, 679.07881848) + -- (400.71599323, 724.29786706) + -- (451.98891394, 663.92106986) + -- (455.13849941, 663.97213066) + -- (454.06439908, 730.22591079) + .. controls (453.96045389, 736.63756693) and (455.39905463, 738.12358127) .. (462.69235634, 739.36696722) + -- (462.64676634, 742.17909711) + -- (438.46244932, 741.78702313) + -- (438.50803931, 738.97489325) + .. controls (446.84470898, 738.32244327) and (449.02022329, 735.99490256) .. (449.14969888, 728.00845368) + -- (449.70589684, 693.70046907)} +\def\fdulogo@emblem@new@I@i{% + (476.71960763, 671.89702757) + .. controls (475.48868767, 666.40836111) and (473.16811016, 665.31466569) .. (464.76278168, 666.39263232) + -- (464.14732170, 663.64829909) + -- (502.56798690, 655.03185940) + -- (503.18344687, 657.77619262) + .. controls (494.96376586, 660.19605760) and (493.22273019, 662.20063379) .. (494.50288695, 667.90884691) + -- (506.41819213, 721.03913821) + .. controls (507.69834888, 726.74735132) and (510.39748318, 727.98673821) .. (518.59456473, 726.49429666) + -- (519.21002471, 729.23862989) + -- (480.78935952, 737.85506958) + -- (480.17389954, 735.11073636) + .. controls (487.95448724, 732.78934497) and (489.89045116, 730.62575865) .. (488.63491281, 725.02731887)} +\def\fdulogo@emblem@new@V{% + (602.12727238, 694.33228933) + -- (580.41288862, 704.46574992) + -- (579.22351531, 701.91711333) + .. controls (586.22376857, 698.02956582) and (587.41992600, 696.60232359) .. (585.89752816, 693.34006875) + .. controls (585.13632925, 691.70894133) and (584.25959367, 690.62832056) .. (580.48079869, 687.05343948) + -- (551.88157206, 659.55539834) + -- (553.70312548, 700.17052387) + .. controls (553.90703363, 705.66199345) and (554.07015096, 707.07563874) .. (554.78377495, 708.60482070) + .. controls (555.87799839, 710.94956636) and (557.93050460, 711.35734248) .. (561.89958209, 709.75338598) + .. controls (562.40930941, 709.51551131) and (563.78217537, 708.99898266) .. (565.35893225, 708.38730413) + -- (566.54830556, 710.93594073) + -- (532.29462977, 726.92111800) + -- (531.10525646, 724.37248141) + .. controls (535.86950512, 721.28011654) and (536.40641483, 720.03637844) .. (536.33843014, 713.24000463) + -- (533.93908436, 639.99548921) + -- (536.69161188, 638.71096604) + -- (587.86166289, 687.70586863) + .. controls (593.25799982, 692.88468900) and (595.30371044, 693.54393098) .. (600.93789907, 691.78365274)} +\def\fdulogo@emblem@new@E{% + (594.15792842, 607.98334063) + .. controls (588.62449694, 612.58998385) and (587.91748388, 615.08155932) .. (591.01257229, 618.79933359) + -- (608.43144194, 639.72262136) + .. controls (617.85556742, 631.87693213) and (618.59324875, 625.55386652) .. (611.28122633, 614.66077637) + -- (613.52918286, 612.78932756) + -- (637.85801734, 642.01276254) + -- (635.61006080, 643.88421134) + .. controls (626.25153717, 635.28038827) and (620.30284663, 634.81656760) .. (611.22456061, 642.37434163) + -- (610.87872115, 642.66225683) + -- (627.57780280, 662.72094592) + .. controls (630.31299721, 666.00642086) and (632.08478468, 665.84883526) .. (636.58069775, 662.10593765) + .. controls (650.67365604, 650.37339321) and (652.46291030, 643.90679653) .. (645.05122654, 630.60816424) + -- (647.21272321, 628.80869424) + -- (661.68046206, 646.18712746) + -- (611.79311892, 687.71889519) + -- (609.99364891, 685.55739852) + .. controls (615.67146452, 680.24502184) and (616.16254119, 677.49406677) .. (612.49162238, 673.08461356) + -- (577.65388307, 631.23803803) + .. controls (573.91098546, 626.74212496) and (571.90878052, 626.79876963) .. (564.93491997, 631.43352191) + -- (563.13544997, 629.27202524) + -- (613.71447204, 587.16442711) + -- (632.14445716, 602.26892739) + -- (629.72358089, 604.28433380) + .. controls (618.15969086, 598.83394993) and (607.81858737, 596.61069020) .. (594.15792842, 607.98334063)} +\def\fdulogo@emblem@new@R{% + (703.67107461, 556.48625378) + .. controls (714.47632067, 563.60142604) and (714.27048109, 576.80121049) .. (702.94807655, 593.99564552) + -- (683.02559423, 624.25033449) + -- (680.67662770, 622.70355791) + .. controls (684.78529306, 615.44126165) and (684.24210802, 613.19777445) .. (677.47708440, 608.74305790) + -- (635.94735607, 581.39604802) + .. controls (629.08837379, 576.87946042) and (627.53007655, 577.20033640) .. (621.85850567, 583.97227242) + -- (619.50953914, 582.42549584) + -- (640.42195846, 550.66746829) + -- (642.77092499, 552.21424487) + .. controls (638.88456869, 560.16173109) and (639.29940333, 561.78189940) .. (645.97046829, 566.17474488) + -- (664.38636592, 578.30147324) + -- (666.05688463, 575.76458938) + -- (649.45513367, 536.94950373) + -- (662.13870160, 517.68797815) + -- (664.48766814, 519.23475473) + .. controls (663.37398900, 520.92601063) and (663.13341715, 522.51869961) .. (663.73616912, 524.26261004) + -- (678.07830393, 560.78155396) + .. controls (685.19134232, 555.09351361) and (693.42958052, 549.74230791) .. (703.67107461, 556.48625378) + (698.63980292, 593.58328528) + .. controls (704.33194073, 584.93908843) and (702.58094762, 578.80216225) .. (692.71528818, 572.30570063) + .. controls (681.25233149, 564.75743093) and (676.11916711, 567.43879411) .. (667.39304309, 580.28134726) + -- (691.35250174, 596.05846835) + .. controls (694.64105489, 598.22395555) and (696.72179997, 596.49600378) .. (698.63980292, 593.58328528)} +\def\fdulogo@emblem@new@S{% + (743.20312975, 515.46936653) + .. controls (738.43076287, 530.00602567) and (727.28790107, 536.17566139) .. (713.82011393, 531.75420384) + .. controls (704.41404037, 528.66620174) and (699.50487531, 520.89733859) .. (697.58812596, 506.17757866) + -- (696.51882808, 497.89322644) + .. controls (695.11756780, 487.01333370) and (693.18068300, 483.53567665) .. (687.62254863, 481.71094814) + .. controls (680.24733186, 479.28967377) and (673.71795216, 482.94805456) .. (671.01595033, 491.17836892) + .. controls (665.64703758, 507.53211045) and (681.41553406, 517.20837331) .. (686.73126071, 520.49281728) + -- (685.71362365, 523.59254607) + -- (659.31248536, 514.92508563) + -- (660.33012242, 511.82535684) + .. controls (663.21284801, 512.06130697) and (664.45556027, 511.52202777) .. (665.01701519, 509.81183258) + .. controls (666.21010691, 506.17766779) and (664.11994318, 500.28153929) .. (667.38339994, 490.34102974) + .. controls (672.57685802, 474.52172420) and (685.17136327, 466.81573355) .. (698.63915042, 471.23719110) + .. controls (706.65569038, 473.86901107) and (713.05804743, 481.41764222) .. (714.23261811, 489.38133285) + -- (716.87701653, 507.65538929) + .. controls (718.31013894, 517.71688977) and (720.21031841, 520.94568148) .. (725.34090398, 522.63004626) + .. controls (731.96791036, 524.80568411) and (737.50344312, 521.64987718) .. (739.88962656, 514.38154761) + .. controls (742.55653747, 506.25812044) and (739.77220119, 496.34505570) .. (726.88804471, 487.26049550) + -- (727.87059083, 484.26765391) + -- (751.06511313, 491.88238636) + -- (750.01238514, 495.08900235) + .. controls (746.98768142, 494.92484849) and (745.85185636, 495.49921862) .. (745.25531050, 497.31630102) + .. controls (744.27276438, 500.30914260) and (746.11567718, 506.59772897) .. (743.20312975, 515.46936653)} +\def\fdulogo@emblem@new@I@ii{% + (690.18650034, 451.64645084) + .. controls (684.60177379, 450.97454421) and (682.79616397, 452.79691191) .. (681.00644231, 461.07993480) + -- (678.21407904, 460.74398149) + -- (682.91742546, 421.65089566) + -- (685.70978873, 421.98684897) + .. controls (685.24696331, 430.54282399) and (686.55536222, 432.85315393) .. (692.36347783, 433.55193683) + -- (746.42363080, 440.05599302) + .. controls (752.23174641, 440.75477592) and (754.30105969, 438.62420089) .. (755.63056509, 430.39912000) + -- (758.42292837, 430.73507332) + -- (753.71958195, 469.82815914) + -- (750.92721867, 469.49220583) + .. controls (751.33629157, 461.38300894) and (749.94307439, 458.83585180) .. (744.24665331, 458.15050703)} +\def\fdulogo@emblem@new@T{% + (695.27817006, 394.86431990) + .. controls (686.98727938, 395.61711698) and (685.86675195, 396.96144894) .. (685.95735078, 406.66801892) + -- (683.15637420, 406.92234225) + -- (679.52463696, 366.92439666) + -- (682.32561355, 366.67007332) + .. controls (683.88289314, 376.35643423) and (685.11518604, 377.48713459) .. (693.63015485, 376.71399165) + -- (752.67474121, 371.35285572) + .. controls (750.97531414, 357.61274267) and (745.29252469, 352.25466632) .. (731.78693629, 351.56058132) + -- (731.49192122, 348.31144849) + -- (754.03211881, 346.49076699) + -- (760.13587887, 413.71420497) + -- (737.64654595, 416.09508178) + -- (737.35153088, 412.84594895) + .. controls (750.51123954, 409.73070579) and (755.13604392, 403.43671956) .. (754.32275642, 389.50318398)} +\def\fdulogo@emblem@new@Y{% + (727.37709643, 264.98714859) + -- (735.52753927, 288.35663423) + -- (732.87191590, 289.28282091) + .. controls (729.85861091, 282.35098762) and (728.37900448, 280.84154347) .. (725.29848138, 281.91592003) + .. controls (723.28020762, 282.61982191) and (720.08099945, 285.40363235) .. (716.65196381, 289.57820189) + -- (701.11261978, 308.22295111) + -- (730.20250072, 312.37493083) + .. controls (731.62538980, 312.35526096) and (735.02196252, 313.55357297) .. (737.35891108, 312.73852869) + .. controls (739.69585965, 311.92348440) and (739.98994711, 310.03373064) .. (738.47100095, 305.67850832) + -- (737.65103920, 302.98583749) + -- (740.30666256, 302.05965080) + -- (752.71756415, 337.64500393) + -- (750.06194078, 338.57119061) + .. controls (748.58987702, 335.03363777) and (745.60836911, 332.97569135) .. (741.25577198, 332.11080654) + -- (699.20940712, 324.97140268) + -- (683.59434172, 330.41738039) + .. controls (675.83992149, 333.12184551) and (675.07896935, 334.69784194) .. (677.26706220, 343.70466632) + -- (674.61143883, 344.63085301) + -- (661.75596764, 307.77080066) + -- (664.41159100, 306.84461398) + .. controls (668.29928281, 315.25867889) and (669.73200683, 315.95045356) .. (677.59265200, 313.20894097) + -- (697.13803998, 306.39220696) + -- (723.09792840, 274.58148207) + .. controls (725.02243735, 272.24224123) and (725.44996228, 269.71022039) .. (724.72147307, 265.91333528)} +\def\fdulogo@emblem@new@one{% + (274.53952078, 192.6967679) + .. controls (276.90649749, 191.17738787) and (276.61091282, 188.42592116) .. (273.75447837, 183.97600496) + -- (250.35602597, 147.52456373) + .. controls (245.37245949, 139.76088014) and (242.44569971, 139.36684000) .. (233.01169676, 145.28890583) + -- (231.55309194, 143.01660820) + -- (267.05774249, 120.22590781) + -- (268.51634731, 122.49820545) + .. controls (260.02210251, 128.21810688) and (259.32418637, 130.67147132) .. (264.00387685, 137.96175957) + -- (298.64574144, 191.92882841) + -- (297.03619728, 192.96200682) + -- (266.55257519, 197.95733905) + -- (264.97241997, 195.49568328) + .. controls (266.79116106, 194.99667541) and (272.07786501, 194.27692313) .. (274.53952078, 192.6967679)} +\def\fdulogo@emblem@new@nine{% + (346.53719503, 87.17026768) + .. controls (362.44194107, 86.72957443) and (370.45737301, 88.21059494) .. (380.22737659, 93.27206544) + .. controls (393.00061366, 99.87385110) and (401.02069729, 110.71391337) .. (403.43237633, 124.79726455) + .. controls (406.71757692, 143.98167207) and (398.66128891, 158.25957093) .. (383.13633486, 160.91811476) + .. controls (369.27476873, 163.29181460) and (357.41447084, 154.02251812) .. (354.81289581, 138.83024165) + .. controls (352.57212316, 125.74492323) and (359.14810987, 115.48728020) .. (371.23539553, 113.41741394) + .. controls (375.44931164, 112.69580918) and (378.42746538, 112.75654226) .. (381.68741805, 113.79631850) + .. controls (374.03262029, 97.75720684) and (363.55014714, 90.53485455) .. (347.03092460, 90.05347343) + (387.19655934, 133.96962358) + .. controls (386.68384018, 130.97552530) and (385.85438796, 127.46494357) .. (384.66717843, 122.53174856) + -- (383.84077127,1 19.70551161) + .. controls (383.52099316, 118.50468339) and (383.51185796, 116.45164907) .. (378.18901657, 117.36314981) + .. controls (371.31367978, 118.54050493) and (369.88353794, 125.51992491) .. (372.86490494, 142.93005197) + .. controls (375.06769840, 155.79358533) and (376.96809671, 158.89248601) .. (382.40183063, 157.96199567) + .. controls (387.61377949, 157.06948453) and (390.23489515, 151.71242822) .. (387.19655934, 133.96962358)} +\def\fdulogo@emblem@new@zero{% + (468.53843186, 119.70741769) + .. controls (473.74690799, 97.12388612) and (487.76874274, 83.38513668) .. (502.34937235, 86.74789069) + .. controls (516.49148678, 90.00950924) and (523.24855517, 108.77145056) .. (518.16649836, 130.80683817) + .. controls (513.10972541, 152.73259697) and (498.65786882, 166.83401000) .. (484.51575438, 163.57239145) + .. controls (470.37363995, 160.31077290) and (463.58279437, 141.19466133) .. (468.53843186, 119.70741769) + (501.64142414, 89.81749692) + .. controls (496.15998444, 88.55330369) and (492.58528933, 94.54100910) .. (488.84327735, 110.76607062) + -- (483.05327233, 135.87106446) + .. controls (479.23540876, 152.42501236) and (479.85189169, 159.26387584) .. (485.11407380, 160.47750135) + .. controls (490.48588471, 161.71641072) and (494.24606002, 155.42510278) .. (497.96278832, 139.30967006) + -- (503.75279334, 114.20467623) + .. controls (507.94991488, 96.00629641) and (506.02657590, 90.82885151) .. (501.64142414, 89.81749692)} +\def\fdulogo@emblem@new@five{% + (596.81323106, 144.25778675) + .. controls (593.53398643, 141.88060609) and (592.81646298, 137.88650017) .. (595.12761085, 134.69834567) + .. controls (598.62734904, 129.87056885) and (606.22172437, 130.51231652) .. (614.32874582, 136.38923538) + .. controls (629.35861705, 147.28464673) and (633.41288249, 164.11949675) .. (624.10225824, 176.96320489) + .. controls (617.23484744, 186.43657827) and (606.12245552, 189.49768961) .. (594.14661482, 185.12390882) + .. controls (589.95882917, 183.61665399) and (586.87090400, 181.93399782) .. (579.07134947, 176.97475918) + -- (575.72667581, 185.80578112) + -- (601.04973158, 204.16289844) + -- (596.58044201, 218.57075501) + -- (567.24942058, 197.30819466) + -- (581.19499276, 159.47691905) + .. controls (590.31078455, 165.11240378) and (594.44167660, 167.27320765) .. (599.37410141, 168.90338888) + .. controls (609.33004115, 172.22978413) and (617.92168735, 170.53738499) .. (622.27985189, 164.52543650) + .. controls (625.97768848, 159.42438929) and (624.87516584, 152.51098060) .. (619.77411864, 148.81314402) + .. controls (613.94435040, 144.58704507) and (603.28063019, 148.94611527) .. (596.81323106, 144.25778675)} +\def\fdulogo@emblem@new@ring@inner@i{% + (427.28478932, 410.40467342) circle [radius=241.88932729]} +\def\fdulogo@emblem@new@ring@inner@ii{% + (427.28478932, 410.40467342) circle [radius=226.77199428]} +\def\fdulogo@emblem@new@ring@outer@i{% + (427.28478932, 410.40467342) circle [radius=359.05469569]} +\def\fdulogo@emblem@new@ring@outer@ii{% + (427.28478932, 410.40467342) circle [radius=343.93732473]} +\def\fdulogo@motto@bo{% + (446.44078884, 999.91565267) + .. controls (447.61812214, 1000.07431933) and (456.16345526, 1001.95698595) .. (459.29012185, 1001.31565264) + .. controls (462.45812177, 1000.66498599) and (466.03678835, 997.51565273) .. (466.58345500, 994.39565281) + .. controls (466.94345499, 992.40898619) and (463.75145507, 988.95165295) .. (461.25012180, 987.90231964) + .. controls (452.27412203, 984.13831973) and (442.91278893, 980.49831982) .. (442.91278893, 980.49831982) + .. controls (442.83012226, 967.45698682) and (443.36478892, 968.93832011) .. (444.83012221, 956.91298708) + .. controls (446.84478883, 940.36898749) and (445.10745554, 926.59832117) .. (444.86612221, 909.79965492) + .. controls (444.24612223, 900.95698848) and (440.71412232, 902.67165510) .. (438.57945570, 901.24898847) + .. controls (434.45412247, 898.49832187) and (433.83012249, 894.41565531) .. (429.68345592, 901.04098848) + .. controls (426.80745600, 905.63832169) and (420.49412282, 921.06898798) .. (424.47678939, 936.04898760) + .. controls (429.10745594, 953.47165383) and (434.23278914, 978.47565321) .. (433.49678916, 979.24898652) + .. controls (432.91545584, 979.85965317) and (422.17945611, 977.18765324) .. (413.71812299, 974.91565330) + .. controls (406.57945650, 972.99965334) and (404.51812322, 974.85431996) .. (404.16345656, 976.97165324) + .. controls (402.99678993, 983.91565307) and (425.50345603, 995.32898612) .. (429.25012260, 996.32898609) + .. controls (430.26345591, 1003.82231924) and (427.74345597, 1012.83565235) .. (433.50345583, 1018.02231889) + .. controls (435.66345578, 1019.96898550) and (445.62345553, 1020.43565216) .. (447.27678882, 1014.63565230) + .. controls (448.91678878, 1008.86231911) and (447.44078881, 1006.90231916) .. (446.44078884, 999.91565267) + (504.16305406, 912.58232152) + .. controls (502.92838743, 909.46365493) and (498.38572087, 907.08232166) .. (494.82972096, 907.85965497) + .. controls (491.09905439, 908.67565495) and (482.10838795, 915.89165477) .. (480.82972131, 920.52632132) + .. controls (479.89638800, 923.90898790) and (488.12438780, 925.41565453) .. (489.60705443, 925.35965454) + .. controls (498.44038754, 925.02632121) and (501.60705413, 921.81565462) .. (502.99638743, 919.69298801) + .. controls (504.38572072, 917.57165473) and (505.21905404, 915.24898812) .. (504.16305406, 912.58232152) + (487.05198782, 975.33231995) + .. controls (487.49865448, 974.51765331) and (488.71198778, 974.55231997) .. (490.13598775, 974.72165330) + (485.82932119, 957.10565374) + .. controls (485.94132118, 952.99898718) and (484.68132122, 952.39632053) .. (483.66265458, 949.99898725) + .. controls (482.81865460, 948.00832064) and (481.70665462, 945.06965404) .. (480.71865465, 944.74965405) + (495.41332095, 1000.22165266) + .. controls (494.64398763, 1000.57898599) and (492.11598770, 998.61231937) .. (491.45465438, 997.29098607) + .. controls (490.95465439, 996.29098610) and (490.28798774, 993.45765283) .. (490.99598773, 992.91631951) + .. controls (491.70532104, 992.37365286) and (494.96932096, 994.68965280) .. (495.78798761, 996.16565277) + .. controls (496.77465425, 997.94298605) and (496.19065426, 999.86031934) .. (495.41332095, 1000.22165266) + (494.57998764, 976.58165325) + .. controls (495.53865428, 977.18698657) and (495.93332094, 978.03098655) .. (496.24665426, 979.35098652) + .. controls (496.74665425, 981.45498647) and (496.53865425, 983.79098641) .. (496.03865427, 984.41498639) + .. controls (495.54132094, 985.03631971) and (492.46798769, 984.60965305) .. (490.51598774, 983.77231974) + .. controls (489.52798776, 983.34831975) and (488.04798780, 982.33498644) .. (487.69065447, 981.66565313) + .. controls (487.11598782, 980.58698649) and (486.61598783, 976.12831993) .. (487.05198782, 975.33231995) + .. controls (487.49865448, 974.51765331) and (488.75465445, 974.33631998) .. (490.13598775, 974.72165330) + .. controls (492.30132103, 975.32565329) and (493.25332100, 975.74565328) .. (494.57998764, 976.58165325) + (520.88532031, 963.13765359) + .. controls (524.19465356, 967.71765348) and (523.08932026, 983.79631974) .. (523.80665357, 995.49498612) + .. controls (523.94532023, 997.75898606) and (525.24665354, 1006.99898583) .. (523.16265359, 1009.24831910) + .. controls (521.97332028, 1010.53365241) and (513.52398716, 1009.74831909) .. (511.99598720, 1008.30431913) + .. controls (509.65198726, 1006.08698585) and (508.88132061, 1000.42298599) .. (509.94132058, 1000.13765267) + .. controls (512.82932051, 999.36031935) and (513.82932049, 999.47098602) .. (513.82932049, 996.41631943) + .. controls (513.82932049, 990.90031956) and (509.78132059, 991.59898621) .. (509.92532059, 987.34565299) + .. controls (510.05198725, 983.63765308) and (513.54265383, 986.85098633) .. (514.74665380, 986.24965301) + .. controls (516.74665375, 985.24831970) and (517.45732040, 982.63365310) .. (517.66265373, 980.83231982) + .. controls (517.99598705, 977.91498655) and (517.02665374, 975.56431995) .. (514.49598714, 975.41498662) + .. controls (511.66265388, 975.24965329) and (510.16265391, 973.54832000) .. (510.07732058, 971.16565339) + .. controls (509.99598725, 968.91632011) and (514.39198714, 969.35098677) .. (515.66265378, 966.99898683) + .. controls (517.32932040, 963.91498690) and (518.41332037, 961.24832030) .. (520.88532031, 963.13765359) + (483.99598790, 899.66565518) + .. controls (487.24665449, 903.33232175) and (507.74665397, 888.08165547) .. (511.30265388, 891.05765539) + .. controls (513.19465384, 892.64032202) and (511.71865387, 906.86432166) .. (512.18665386, 913.54298816) + .. controls (512.63732052, 919.98832134) and (515.78532044, 933.76832099) .. (514.72265380, 935.48565428) + .. controls (514.09598715, 936.49632092) and (501.18798747, 932.59232102) .. (496.16265426, 931.74832104) + .. controls (488.43332112, 930.45098774) and (478.10798805, 930.19365441) .. (474.21865481, 929.24832110) + .. controls (468.21732163, 927.79098781) and (456.01998860, 919.60298801) .. (453.84132199, 924.58165455) + .. controls (450.99598873, 931.08165439) and (458.29332188, 935.63898761) .. (462.16265511, 936.91632091) + .. controls (464.67465505, 937.74432089) and (478.34665471, 939.01632086) .. (489.07998777, 940.41632083) + .. controls (496.60132092, 941.39632080) and (507.15598732, 942.95632076) .. (513.44132050, 944.02698740) + .. controls (516.05198710, 944.47098739) and (516.43465376, 948.35098729) .. (516.59732042, 951.64698721) + .. controls (516.77465375, 955.24832045) and (514.17465381, 955.60298711) .. (512.23198719, 956.74832042) + .. controls (509.83865392, 958.16032038) and (510.12132058, 960.30698699) .. (507.41332065, 960.49898699) + .. controls (504.66265405, 960.69365365) and (504.12798740, 957.67765373) .. (501.38532080, 957.74832039) + .. controls (498.16265421, 957.83232039) and (501.09598747, 966.30165351) .. (497.32932090, 969.33232010) + .. controls (495.62132094, 970.70698673) and (487.37598782, 970.38298674) .. (485.87065452, 969.15898677) + .. controls (484.53732122, 968.07632013) and (485.74398786, 960.27498700) .. (485.82932119, 957.10565374) + .. controls (485.94132118, 952.99898718) and (484.79198788, 952.31365386) .. (483.77465457, 949.91632059) + .. controls (482.92932126, 947.92432064) and (481.70665462, 945.06965404) .. (480.71865465, 944.74965405) + .. controls (478.66265470, 944.08298740) and (472.59065485, 949.98965392) .. (469.74132159, 953.72698716) + .. controls (466.61065500, 957.83232039) and (467.63465498, 960.38298699) .. (468.94132161, 967.91632014) + .. controls (469.49465493, 971.10832006) and (471.41332155, 977.09365324) .. (471.41332155, 981.08165314) + .. controls (471.41332155, 986.33231968) and (472.23865486, 991.96165287) .. (473.07998817, 995.74965278) + .. controls (474.03465482, 1000.04965267) and (477.52798806, 1001.20031931) .. (479.45465468, 999.91498600) + .. controls (481.82932129, 998.33231938) and (481.97598795, 990.93898623) .. (482.67732127, 990.00565292) + .. controls (483.66265458, 988.69365295) and (485.42132120, 987.09631966) .. (486.37998784, 994.39498614) + .. controls (486.58132117, 995.93498610) and (487.43332115, 998.91098603) .. (488.38532112, 1000.41498599) + .. controls (489.42265443, 1002.05631928) and (492.01598770, 1004.67098589) .. (492.99598768, 1005.52698586) + .. controls (496.49598759, 1008.58165245) and (496.16265426, 1011.02698573) .. (494.88532096, 1012.08165237) + .. controls (493.79065432, 1012.98698568) and (483.77465457, 1009.74831909) .. (481.49598796, 1012.91498568) + .. controls (480.45732132, 1014.36031898) and (485.74265452, 1020.96165215) .. (489.34398777, 1022.80698543) + .. controls (492.48532102, 1024.41631873) and (496.27465426, 1024.33098539) .. (496.44132092, 1025.88831869) + .. controls (497.03865424, 1031.49898522) and (496.94532091, 1036.76165175) .. (500.86265415, 1037.07631841) + .. controls (504.53998739, 1037.37098507) and (506.16265401, 1031.02698523) .. (506.94132066, 1030.86031856) + .. controls (508.01198730, 1030.63098524) and (512.47198719, 1032.08965187) .. (514.41332047, 1030.91631856) + .. controls (516.65865375, 1028.92031861) and (517.26398707, 1026.54031867) .. (516.80932041, 1023.91231874) + .. controls (516.31332043, 1021.04565214) and (512.73732051, 1017.26031890) .. (513.41332050, 1016.66565225) + .. controls (514.63465380, 1015.59231895) and (525.93465352, 1018.33498554) .. (532.07998670, 1014.33365231) + .. controls (535.66265328, 1012.00031904) and (535.94265327, 1009.57498576) .. (536.58665325, 1005.58165253) + .. controls (538.77465320, 992.02698620) and (540.78798648, 985.29098637) .. (541.55198646, 979.91631984) + .. controls (542.38265311, 974.06965332) and (543.99598640, 967.41632015) .. (540.91331981, 961.91498695) + .. controls (539.51465318, 959.42032035) and (536.03465327, 957.03232041) .. (533.41332000, 954.83232047) + .. controls (531.54665338, 953.26565384) and (529.13465344, 949.64698726) .. (533.18265334, 950.15232058) + .. controls (536.95465324, 950.62432057) and (541.92398645, 952.08032053) .. (549.91331959, 953.24965384) + .. controls (555.96931943, 954.13498715) and (570.27465241, 955.47098712) .. (571.20665239, 949.68432059) + .. controls (571.71865237, 946.50965401) and (568.74398578, 945.94832069) .. (565.86131919, 945.04432071) + .. controls (563.78798591, 944.39498739) and (561.29065263, 942.25898745) .. (557.24665274, 941.41632080) + .. controls (551.87198620, 940.29498750) and (544.23198639, 941.14698747) .. (540.16265316, 940.83232082) + .. controls (532.11198670, 940.20965416) and (526.47332017, 939.24965419) .. (524.99598688, 938.02698755) + .. controls (523.46798691, 936.76298758) and (524.03465357, 929.96565442) .. (525.66265353, 923.74832124) + .. controls (528.00398680, 914.80965480) and (531.32265338, 900.78298848) .. (531.09598672, 891.45898872) + .. controls (530.84665340, 881.19365564) and (521.08132031, 876.64032242) .. (510.91332056, 877.16565574) + .. controls (501.17598747, 877.66832239) and (499.74665417, 883.16565559) .. (492.26265436, 888.25898880) + .. controls (486.28665451, 892.32432203) and (482.35332127, 897.81098856) .. (483.99598790, 899.66565518) + (534.55198664, 1039.13791836) + .. controls (543.04798642, 1039.49258502) and (549.71998626, 1035.34591845) .. (549.16265294, 1026.74725200) + .. controls (548.87598628, 1022.31791878) and (542.22665311, 1014.58591897) .. (540.43598649, 1014.33258564) + .. controls (538.85731986, 1014.10991898) and (526.66265350, 1026.91525200) .. (524.09732023, 1031.66991854) + .. controls (523.03732026, 1033.63525183) and (529.21865344, 1038.91525170) .. (534.55198664, 1039.13791836)} +\def\fdulogo@motto@xue{% + (441.96958895, 769.22205844) + .. controls (449.34558877, 772.01539170) and (456.88558858, 744.13805907) .. (451.85358870, 731.95805937) + .. controls (450.76292206, 729.32072610) and (447.74692214, 726.46339284) .. (444.82958888, 726.49939284) + .. controls (442.41225561, 726.52872617) and (439.10692236, 728.52739279) .. (438.10692238, 733.74872599) + .. controls (437.51892240, 736.82472592) and (439.10692236, 768.13805847) .. (441.96958895, 769.22205844) + (527.62132014, 755.16565879) + .. controls (527.63065348, 757.19099207) and (526.74665350, 758.41632538) .. (525.24665354, 758.12432538) + .. controls (523.81998690, 757.84699206) and (522.13065361, 756.10565877) .. (522.80132026, 753.97099215) + .. controls (523.57998691, 751.49899222) and (525.21865354, 750.05499225) .. (525.78798686, 750.20699225) + .. controls (526.35732017, 750.36032558) and (527.60798681, 752.33232553) .. (527.62132014, 755.16565879) + (487.79865447, 742.41365911) + .. controls (490.32932108, 743.13765909) and (486.96798783, 751.05499223) .. (486.33998784, 750.40299224) + .. controls (485.70532119, 749.74565893) and (485.20932120, 747.66165898) .. (485.16265454, 746.41632568) + .. controls (485.05198787, 743.41499242) and (484.87332121, 741.57765913) .. (487.79865447, 742.41365911) + (493.82932099, 758.16565872) + .. controls (496.82932091, 757.58165873) and (496.82932091, 760.87365865) .. (496.78132091, 762.59099194) + .. controls (496.73332092, 764.27499190) and (496.70532092, 764.91499188) .. (495.07998762, 765.24832520) + .. controls (494.02932098, 765.46432520) and (491.57998771, 765.20699187) .. (490.20532108, 763.41499192) + .. controls (489.97198775, 763.11365859) and (489.53865443, 761.12432531) .. (489.82932109, 760.33232533) + .. controls (490.27998774, 759.10832536) and (492.20532103, 758.48165871) .. (493.82932099, 758.16565872) + (490.89598773, 727.51099281) + .. controls (489.52532110, 726.15365952) and (488.32932113, 724.58299289) .. (490.78798773, 724.49899289) + .. controls (493.61998766, 724.40299289) and (501.82932079, 726.29099285) .. (503.57998741, 727.16565949) + .. controls (504.53465405, 727.64299281) and (506.07998735, 730.58299274) .. (502.34532077, 731.84565937) + .. controls (498.24932088, 733.23365934) and (492.55065435, 729.14832611) .. (490.89598773, 727.51099281) + (536.09598660, 719.86165967) + .. controls (533.92931999, 720.36432633) and (512.19865386, 716.67765975) .. (499.91332084, 714.49899314) + .. controls (481.93332129, 711.31099322) and (470.32932158, 708.16565997) .. (462.88532176, 705.36032670) + .. controls (458.57198854, 703.73499341) and (445.98265552, 698.81366020) .. (440.94132231, 691.36032705) + .. controls (439.66265568, 689.47099377) and (439.80798900, 683.43632725) .. (439.44398901, 681.91632729) + .. controls (438.88532236, 679.58299401) and (437.19065574, 678.58432737) .. (434.18265581, 678.02299405) + .. controls (426.91332266, 676.66566075) and (419.64398951, 682.58299394) .. (419.66265618, 689.86032709) + .. controls (419.68532284, 698.31632688) and (425.60798936, 703.41499342) .. (429.55332259, 706.96966000) + .. controls (433.74398916, 710.74565990) and (447.44132215, 720.13765967) .. (448.70532212, 718.47099304) + .. controls (449.57065543, 717.33099307) and (444.53465555, 711.52699321) .. (445.32932220, 709.80432659) + .. controls (445.73732219, 708.92032661) and (451.32132205, 711.04432656) .. (452.85598868, 711.66432654) + .. controls (455.20532195, 712.61232652) and (461.95198845, 715.57632645) .. (463.49598841, 716.52699309) + .. controls (464.21865506, 716.97099308) and (462.32932178, 717.99899305) .. (460.57998849, 724.16565957) + .. controls (459.75065517, 727.08832616) and (459.89332184, 733.08832601) .. (460.10798850, 736.99765924) + .. controls (460.41332182, 742.58165910) and (461.99598845, 743.69365908) .. (462.88532176, 750.13765892) + .. controls (463.40932175, 753.94165882) and (463.21332175, 758.85099203) .. (463.24665509, 763.49899192) + .. controls (463.28798842, 769.28832510) and (462.91332176, 776.79099158) .. (461.28798847, 779.58165818) + .. controls (459.10398852, 783.33499142) and (459.16265519, 785.41499137) .. (461.56398846, 787.06165799) + .. controls (463.69598841, 788.52299129) and (467.03998832, 789.16299127) .. (469.55865493, 788.64032462) + .. controls (471.07332156, 788.32565796) and (473.38532150, 787.30432465) .. (472.97198818, 783.31899142) + .. controls (472.81198818, 781.77632479) and (471.38532155, 779.80432484) .. (470.74665490, 777.16565824) + .. controls (469.54398826, 772.19899170) and (468.71732162, 766.42432518) .. (468.66265495, 761.49899197) + .. controls (468.61732162, 757.31899207) and (472.82932151, 758.83232537) .. (473.66265483, 752.13765887) + .. controls (474.53732147, 745.11632571) and (474.95732146, 736.34032593) .. (474.99598813, 730.97099273) + .. controls (475.05465479, 722.92565960) and (474.30932148, 719.34165969) .. (474.71865480, 719.36032635) + .. controls (476.88398808, 719.45899302) and (483.88532124, 721.52699296) .. (483.99598790, 723.16565959) + .. controls (484.12798790, 725.10699287) and (480.57732132, 724.27899290) .. (479.80532134, 726.25499285) + .. controls (478.07998805, 730.66565940) and (478.49598804, 745.20699237) .. (479.41332135, 752.24832553) + .. controls (479.91865467, 756.13365877) and (480.64132132, 758.04299205) .. (480.78798798, 760.54032532) + .. controls (480.97598798, 763.72832524) and (480.49598799, 766.24965851) .. (480.70398798, 770.04032508) + .. controls (480.98932131, 775.22965829) and (484.05465457, 781.59499146) .. (485.17732120, 786.51099134) + .. controls (486.52398784, 792.40965786) and (487.44132115, 797.87499106) .. (496.07598760, 795.66699111) + .. controls (502.05198745, 794.13765782) and (500.72532082, 787.43099132) .. (499.95332083, 782.88432476) + .. controls (499.41332085, 779.70699151) and (496.60798758, 777.52699156) .. (497.66265423, 772.69365835) + .. controls (498.08265421, 770.77499173) and (501.99598745, 773.30432500) .. (506.21865401, 772.08299170) + .. controls (507.91465397, 771.59099171) and (508.25598729, 765.93632519) .. (508.05198730, 761.08165864) + .. controls (507.97332063, 759.21765869) and (507.81465397, 752.69899219) .. (507.82932064, 751.83232554) + .. controls (507.88532064, 748.66565895) and (511.99598720, 749.74965893) .. (512.80132051, 745.85232569) + .. controls (513.32798717, 743.29499242) and (513.53598716, 740.52565916) .. (513.21865384, 737.63765923) + .. controls (512.96798718, 735.35632595) and (510.01598725, 735.36832595) .. (509.66265393, 733.80432599) + .. controls (509.16398727, 731.59099271) and (508.98532061, 729.32832610) .. (510.21865391, 729.24965944) + .. controls (512.19065386, 729.12299277) and (519.91332034, 729.80432609) .. (525.11465354, 731.78299271) + .. controls (526.53998684, 732.32565936) and (525.49598686, 735.12432596) .. (523.71865357, 736.80432592) + .. controls (522.23465361, 738.20699255) and (521.82932029, 738.29099255) .. (519.10798702, 743.69365908) + .. controls (517.51465373, 746.85499233) and (515.41065378, 753.78565882) .. (515.16265379, 756.63765875) + .. controls (514.96132046, 758.96965870) and (517.07998707, 759.16032536) .. (517.83598705, 759.73765868) + .. controls (518.54398704, 760.28032533) and (518.53732037, 762.00432529) .. (518.32932038, 763.13765859) + .. controls (517.97332038, 765.08032521) and (515.11598712, 764.31099189) .. (514.99598713, 765.47099187) + .. controls (514.44132047, 770.86032506) and (518.88532036, 773.13765834) .. (522.85865360, 772.50165836) + .. controls (526.36132017, 771.94032504) and (529.00532011, 768.54165846) .. (530.20398674, 769.87365842) + .. controls (531.70532004, 771.54032505) and (531.45465338, 780.09632483) .. (531.03865339, 782.70699143) + .. controls (530.82532006, 784.04299140) and (528.88932011, 783.82299141) .. (527.10798682, 783.47099142) + .. controls (523.13732025, 782.68699144) and (517.91998705, 780.70699148) .. (517.25465374, 781.47899147) + .. controls (515.95998710, 782.98432476) and (521.16265364, 794.74832447) .. (531.75198671, 795.31232445) + .. controls (539.35731985, 795.71765778) and (542.37465311, 791.12832456) .. (544.21198639, 783.24565809) + .. controls (546.43865301, 773.70032499) and (548.21865296, 762.08165862) .. (546.05198635, 752.02699220) + .. controls (545.21331970, 748.13499230) and (539.41331985, 740.49899249) .. (535.16265329, 737.49899257) + .. controls (532.96798668, 735.94965927) and (532.85998668, 732.85099268) .. (533.66265333, 732.97099268) + .. controls (544.88531971, 734.64965930) and (554.99598613, 736.24832593) .. (566.55731917, 727.45899282) + .. controls (574.73198563, 721.24432630) and (574.61065230, 714.82165980) .. (565.06798587, 710.35899324) + .. controls (557.28265273, 706.71766000) and (548.89731961, 704.19232673) .. (540.56131982, 701.98566012) + .. controls (537.63065323, 701.20832681) and (531.57998671, 699.49899352) .. (529.82932009, 701.83232679) + .. controls (527.94265347, 704.34832673) and (531.13465339, 710.47632657) .. (533.77598666, 713.74832649) + .. controls (536.73998658, 717.41899307) and (539.21865319, 719.13765969) .. (536.09598660, 719.86165967) + (490.44078774, 696.97126024) + .. controls (487.89412114, 695.43659362) and (486.00745452, 693.61259366) .. (483.05145459, 690.91526040) + .. controls (482.00212128, 689.95792709) and (479.99412133, 686.74859383) .. (476.99678808, 685.85526052) + .. controls (474.50212147, 685.11126054) and (471.99678820, 687.91526047) .. (471.27412155, 690.13792708) + .. controls (470.29012158, 693.16726034) and (470.77412156, 698.66992687) .. (473.10745484, 699.75259351) + .. controls (475.92345477, 701.06059348) and (480.03812133, 700.83259348) .. (484.24612123, 702.16592678) + .. controls (488.11945446, 703.39259342) and (490.63545440, 704.66459339) .. (494.55945430, 706.37126001) + .. controls (501.39412080, 709.34459327) and (506.33012068, 710.69392657) .. (511.83012054, 710.69392657) + .. controls (518.55145370, 710.69392657) and (525.10078687, 706.36059334) .. (525.10745354, 702.91526010) + .. controls (525.12078687, 695.37392695) and (519.03145369, 693.97259365) .. (515.51145378, 691.53392705) + .. controls (512.77412051, 689.63792709) and (514.33012048, 683.41526058) .. (517.43545373, 684.01659390) + .. controls (521.96345362, 684.89126055) and (530.48745340, 684.91926055) .. (534.16345331, 684.74859388) + .. controls (540.16345316, 684.47126056) and (544.93145304, 682.47126061) .. (544.91278638, 679.08192736) + .. controls (544.89145304, 674.88592746) and (542.62745310, 670.13126092) .. (537.38478657, 667.86059431) + .. controls (533.95411998, 666.37392768) and (528.09945346, 667.61526098) .. (527.33012015, 666.41526101) + .. controls (526.74745350, 665.50859436) and (527.69012014, 659.94859450) .. (527.57945348, 654.74859463) + .. controls (527.48878681, 650.44326141) and (527.17945349, 646.96726150) .. (524.66345355, 643.13792826) + .. controls (522.54345360, 639.91259500) and (518.18478705, 633.90859515) .. (512.33012053, 628.91526195) + .. controls (507.59412064, 624.87659538) and (503.12078742, 621.70726213) .. (497.83012089, 621.70726213) + .. controls (490.16345441, 621.70726213) and (480.87145464, 628.54059529) .. (474.33012148, 633.99926182) + .. controls (465.15278837, 641.65526163) and (458.24612188, 649.79126142) .. (460.33012183, 651.91526137) + .. controls (461.24745514, 652.85126135) and (466.77545500, 651.87659471) .. (472.66345485, 649.87392809) + .. controls (476.99412141, 648.40059479) and (490.94878773, 639.93526167) .. (494.03145432, 638.97659503) + .. controls (497.28612090, 637.96459505) and (503.92612074, 644.68592822) .. (504.99678738, 654.41526131) + .. controls (505.51012070, 659.08192786) and (506.02078735, 671.32592755) .. (504.33012073, 671.02726089) + .. controls (500.71812082, 670.38859424) and (473.93678815, 661.41259447) .. (470.49678824, 659.97126117) + .. controls (468.10478830, 658.96992786) and (461.67145512, 656.10059460) .. (459.38478852, 655.02726129) + .. controls (455.24612195, 653.08192801) and (447.97945547, 653.66192799) .. (448.78745545, 661.70326113) + .. controls (449.37012210, 667.50326098) and (450.90078873, 671.64459421) .. (459.08745519, 672.16859420) + .. controls (472.32078819, 673.01792751) and (499.05412086, 678.70992737) .. (501.03812081, 679.37392735) + .. controls (501.72345412, 679.60326068) and (499.70478751, 682.41526061) .. (497.16345424, 685.47126053) + .. controls (495.04878762, 688.01259380) and (493.23012100, 689.90592709) .. (493.24612100, 692.20726036) + .. controls (493.27412100, 696.13792693) and (504.57145405, 694.69926030) .. (506.05145402, 695.91526027) + .. controls (507.53278731, 697.13259357) and (508.72078728, 701.09259348) .. (506.99678733, 701.52726013) + .. controls (502.35812077, 702.69392677) and (494.49678764, 699.41526018) .. (490.44078774, 696.97126024)} +\def\fdulogo@motto@er@i{% + (461.66398846, 521.23979797) + .. controls (458.99598853, 527.08246449) and (472.53065485, 539.48513085) .. (475.21865479, 544.85979738) + .. controls (476.99598808, 548.41579729) and (475.94132143, 551.52646388) .. (472.38532152, 549.41579727) + .. controls (469.05465494, 547.43846398) and (458.63332187, 543.46246408) .. (456.42132192, 547.74913064) + .. controls (454.32932198, 551.80513054) and (460.82932181, 560.35979699) .. (466.95065499, 564.42246356) + .. controls (473.84532149, 568.99713011) and (490.41865441, 577.49579657) .. (502.87198743, 569.37446343) + .. controls (511.49598721, 563.74913024) and (511.32932055, 558.33179704) .. (505.56532069, 552.93046385) + .. controls (501.92398745, 549.51846393) and (496.83465425, 546.36113068) .. (493.24665434, 543.41579742) + .. controls (485.96265452, 537.43446423) and (478.11865471, 528.56513112) .. (473.66132149, 524.41713123) + .. controls (469.71865492, 520.74779798) and (462.48265510, 519.44779802) .. (461.66398846, 521.23979797) + (546.32931968, 518.98566469) + .. controls (546.61998633, 523.10033126) and (546.32931968, 527.41633115) .. (542.66265310, 527.65633114) + .. controls (537.49065323, 527.99499780) and (510.67465390, 525.49633120) .. (509.65598726, 521.49899797) + .. controls (508.91332061, 518.58299804) and (515.44132045, 517.13766474) .. (518.57998704, 507.58299831) + .. controls (520.01065367, 503.22566509) and (518.96798703, 496.66566525) .. (520.91332031, 494.33233198) + .. controls (523.59598691, 491.11366539) and (528.76398678, 488.95766545) .. (531.66265338, 488.08299880) + .. controls (534.60798663, 487.19366549) and (536.81465325, 490.43366541) .. (539.74665317, 494.83233197) + .. controls (544.41331972, 501.83233179) and (545.82931969, 511.90299821) .. (546.32931968, 518.98566469) + (498.49732087, 530.70833107) + .. controls (508.24665396, 533.74966433) and (529.91465342, 538.43633088) .. (543.32931975, 539.08299753) + .. controls (556.60798608, 539.72166418) and (567.39998582, 534.18699765) .. (568.66265245, 525.86033119) + .. controls (570.82931906, 511.58299821) and (570.88531906, 504.47099839) .. (563.89731924, 491.04966539) + .. controls (561.09331931, 485.66433219) and (556.52665275, 481.04699898) .. (551.93198620, 477.05099908) + .. controls (545.75065302, 471.67499921) and (541.49731980, 470.89633256) .. (536.21865326, 470.58299924) + .. controls (526.88532016, 470.02699925) and (520.67332032, 480.32966566) .. (518.57998704, 480.24966566) + .. controls (514.24665381, 480.08299900) and (511.57998721, 464.91633271) .. (506.83732066, 462.48966611) + .. controls (504.57865405, 461.33366614) and (502.17065411, 462.86433276) .. (501.41332080, 467.08299933) + .. controls (500.24665416, 473.58299916) and (500.84265415, 491.84966537) .. (500.22265416, 499.16699852) + .. controls (499.82932084, 503.80433174) and (495.77065427, 504.87633171) .. (495.12532096, 503.36833175) + .. controls (494.05198765, 500.86033181) and (495.27465428, 494.91633196) .. (494.46798764, 489.60966543) + .. controls (493.74532099, 484.84699888) and (490.16265441, 482.50299894) .. (487.44132115, 482.02699895) + .. controls (485.21065454, 481.63633230) and (481.55198796, 482.52699894) .. (479.49598801, 488.63766545) + .. controls (476.59865475, 497.25499857) and (477.41198806, 510.16433158) .. (483.77465457, 510.58299824) + .. controls (487.57998781, 510.83233157) and (490.55465440, 506.33366501) .. (491.91865437, 507.90699830) + .. controls (493.66265433, 509.91633159) and (496.05332093, 517.31233140) .. (493.71865432, 517.91633139) + .. controls (492.40132102, 518.25633138) and (485.25598787, 515.80299811) .. (477.91332139, 511.91633154) + .. controls (470.44398824, 507.96166497) and (463.58798841, 501.50166513) .. (460.88532181, 496.24966526) + .. controls (458.21998854, 491.07099873) and (459.75598851, 486.31899884) .. (459.16265519, 480.33233233) + .. controls (458.32932188, 471.91633254) and (452.09198870, 467.21099932) .. (447.79465547, 466.89633266) + .. controls (443.49598891, 466.58299934) and (437.99598905, 472.24966586) .. (437.07198907, 480.16566567) + .. controls (436.15998910, 487.98166547) and (437.70132239, 497.62033190) .. (439.57998901, 505.83233169) + .. controls (440.57998899, 510.20566491) and (443.49065558, 518.47899804) .. (447.27465548, 518.52699804) + .. controls (451.60798871, 518.58299804) and (455.63332194, 506.69366500) .. (457.10798857, 506.91633166) + .. controls (460.49598849, 507.42699832) and (467.16265499, 515.36433145) .. (471.71865487, 518.30433138) + .. controls (477.82932139, 522.24966461) and (485.80665452, 526.74966450) .. (498.49732087, 530.70833107)} +\def\fdulogo@motto@du{% + (491.26185439,364.0330019) + .. controls (490.21918774, 365.05433521) and (485.86052119, 365.21300187) .. (483.96852123, 364.85966855) + .. controls (482.05785462, 364.50366856) and (480.77652131, 361.88100196) .. (482.45518794, 361.16633531) + .. controls (484.01785457, 360.49966866) and (488.39652112, 360.37033533) .. (489.88185442, 360.56766866) + .. controls (491.13118772, 360.73433532) and (491.72185437, 363.58233525) .. (491.26185439, 364.03300190) + (498.07918755, 309.24900327) + .. controls (495.40718761, 308.81433662) and (494.07918765, 307.79033664) .. (494.82985430, 305.12367004) + .. controls (495.38718762, 303.13967009) and (497.10052091, 300.70767015) .. (499.20452085, 301.35300347) + .. controls (500.60318748, 301.78233679) and (501.00318747, 302.68633677) .. (501.07918747, 304.95700338) + .. controls (501.16318747, 307.43700332) and (499.87118750, 309.54100326) .. (498.07918755, 309.24900327) + (513.70452049, 390.37433458) + .. controls (513.75385382, 392.10633453) and (512.80585385, 393.27566784) .. (510.68052057, 391.91433454) + .. controls (509.81918725, 391.36366789) and (508.63385395, 389.53966793) .. (507.32985398, 387.94366797) + .. controls (506.33518734, 386.72633467) and (505.35785403, 385.49300137) .. (504.91252071, 384.44366806) + .. controls (503.66318741, 381.49966813) and (505.89252069, 379.53300151) .. (508.24585396, 381.02633481) + .. controls (509.30718727, 381.69966813) and (509.86718725, 383.61700141) .. (510.91252056, 385.24900137) + .. controls (512.14452053, 387.17166799) and (513.66318716, 388.91566795) .. (513.70452049, 390.37433458) + (496.44052092, 347.91566897) + .. controls (493.14852100, 342.35966911) and (487.07918782, 342.66633577) .. (482.74585460, 346.08233568) + .. controls (477.92052139, 349.88766892) and (479.77385467, 357.30233540) .. (477.27518807, 357.35700207) + .. controls (474.57918814, 357.41566873) and (474.95785479, 352.38100219) .. (474.49652147, 351.44366888) + .. controls (473.63518816, 349.69300226) and (471.25918822, 350.27033558) .. (468.88585494, 349.97166892) + .. controls (465.80185502, 349.58233560) and (465.21918837, 348.16633563) .. (463.74585507, 348.30500229) + .. controls (461.03252181, 348.56100229) and (460.10718850, 349.27700227) .. (457.91252189, 349.74900226) + .. controls (455.31252195, 350.30900224) and (450.94052206, 349.41566893) .. (450.44052207, 355.63833544) + .. controls (449.97918875, 361.37833530) and (454.17918865, 365.29966854) .. (457.82985522, 371.66633504) + .. controls (460.86985514, 376.96633491) and (461.78852179, 382.66633477) .. (464.32985506, 384.74900138) + .. controls (466.36718834, 386.41966801) and (469.16852160, 385.19700137) .. (471.32985488, 385.66633469) + .. controls (473.82985482, 386.20766801) and (475.22452145, 387.77966797) .. (476.57918809, 387.74900131) + .. controls (482.69918793, 387.61433465) and (483.38585458, 381.13833481) .. (488.16318780, 381.08233481) + .. controls (493.07652101, 381.02500148) and (506.05252068, 393.85966782) .. (511.32985388, 398.63833437) + .. controls (516.60718708, 403.41566758) and (526.18318685, 412.05033403) .. (534.27385331, 405.24900087) + .. controls (535.89118660, 403.88900091) and (538.52051987, 400.89300098) .. (538.27385321, 398.02633439) + .. controls (537.66318656, 390.91566790) and (529.43385343, 387.95833464) .. (531.07918672, 384.66633472) + .. controls (531.99652003, 382.83300143) and (536.99651991, 384.30500139) .. (541.85385312, 382.19700145) + .. controls (548.41118629, 379.35166819) and (549.44051960, 373.19300167) .. (542.82985310, 368.24900180) + .. controls (537.34718657, 364.14900190) and (531.04452006, 363.72500191) .. (534.22051998, 357.18633541) + .. controls (536.05251993, 353.41566883) and (536.30451993, 350.42900224) .. (533.28318667, 347.61433565) + .. controls (530.38585341, 344.91566905) and (525.47118686, 346.40500234) .. (524.07918690, 344.74900238) + .. controls (522.23518694, 342.55433577) and (525.44052020, 341.22233581) .. (525.32985353, 337.02633591) + .. controls (525.21918687, 332.80500268) and (517.32985373, 332.35966936) .. (517.32985373, 329.91566942) + .. controls (517.32985373, 328.06100280) and (517.00452041, 326.62233617) .. (518.37918704, 326.18100285) + .. controls (520.82985365, 325.39433620) and (525.69518686, 326.30766951) .. (526.10052018, 323.50233625) + .. controls (526.45118684, 321.08766964) and (526.44052017, 316.61033642) .. (524.99652021, 315.74900311) + .. controls (523.49385358, 314.85300313) and (520.01518700, 315.67166978) .. (519.57118701, 314.44900314) + .. controls (519.19785369, 313.42366983) and (519.28585368, 311.29433655) .. (520.05252033, 311.08233656) + .. controls (522.37385361, 310.43966991) and (526.12985351, 311.77966987) .. (528.99652011, 311.58233655) + .. controls (531.51518671, 311.40900322) and (532.50452002, 309.87300326) .. (532.45518669, 306.41567001) + .. controls (532.34852002, 299.02367019) and (526.09652018, 299.02900353) .. (522.49652027, 296.83300358) + .. controls (519.28852035, 294.87433696) and (518.28852038, 288.99967044) .. (521.06585364, 287.72500381) + .. controls (523.74318691, 286.49567051) and (532.77652001, 291.14233706) .. (541.38585313, 293.85967032) + .. controls (548.53651962, 296.11700360) and (554.31251948, 297.13300357) .. (560.75918598, 297.13833691) + .. controls (572.57651902, 297.14767024) and (579.51918551, 289.53033710) .. (579.20318552, 278.51967071) + .. controls (578.60185220, 257.56100456) and (564.04051923, 237.39967173) .. (545.09118637, 229.35300527) + .. controls (532.67518668, 224.07967207) and (522.02318695, 225.81567202) .. (513.44052050, 235.58233845) + .. controls (507.82985397, 241.96900495) and (499.03252086, 249.68633809) .. (496.38585426, 249.35967144) + .. controls (493.72185432, 249.03300478) and (482.01785462, 246.01167152) .. (473.93118815, 244.41033823) + .. controls (466.41918834, 242.92233826) and (446.60718883, 239.41567168) .. (436.60718908, 238.35967171) + .. controls (432.82718918, 237.96100505) and (431.32985588, 236.49967176) .. (428.49652262, 236.41567176) + .. controls (425.05652271, 236.31433843) and (422.24585611, 237.95700505) .. (419.66318951, 241.66633829) + .. controls (417.99918955, 244.05433823) and (416.92052291, 247.78500481) .. (417.28852290, 251.12367139) + .. controls (417.70452289, 254.91567130) and (421.87918945, 256.95833791) .. (428.66318928, 257.62367123) + .. controls (436.16318910, 258.35967121) and (438.25385571, 256.52100459) .. (446.88985549, 256.70900458) + .. controls (453.82985532, 256.85967125) and (472.74585485, 258.33300454) .. (481.45518796, 259.49967118) + .. controls (483.41785458, 259.76233784) and (485.44185453, 260.25567116) .. (486.83252116, 260.77167115) + .. controls (487.26585449, 260.93167115) and (485.01252121, 265.87167102) .. (485.82985452, 266.08233768) + .. controls (487.77385447, 266.58233767) and (492.26718769, 263.18367109) .. (494.82985430, 263.58233775) + .. controls (501.17118747, 264.57167105) and (510.05785392, 265.77833769) .. (516.13518710, 266.74900433) + .. controls (523.76585357, 267.96767097) and (532.82985335, 268.13833763) .. (533.53518666, 265.93967102) + .. controls (534.00451998, 264.47833772) and (528.48852012, 260.62500449) .. (522.77385360, 257.91567122) + .. controls (517.58452039, 255.45567128) and (511.47918721, 254.14900465) .. (512.32985386, 253.49967133) + .. controls (513.60185383, 252.52767136) and (530.44452007, 246.09833818) .. (534.49651997, 247.08233816) + .. controls (537.41251990, 247.79033814) and (543.77785307, 254.45700464) .. (549.55251959, 264.91567105) + .. controls (553.81251949, 272.63167085) and (558.50718604, 288.15433713) .. (556.57918609, 289.33300377) + .. controls (554.65251947, 290.51033707) and (541.27785313, 286.57700384) .. (534.14051998, 284.39833723) + .. controls (520.45918699, 279.91300400) and (507.27385398, 274.85967080) .. (492.93518768, 271.51167088) + .. controls (488.76185445, 270.53700424) and (481.10718797, 269.69567093) .. (478.88585469, 272.91567085) + .. controls (476.11518810, 276.93033741) and (476.04052143, 285.11433721) .. (476.32985476, 293.16633701) + .. controls (476.60852142, 300.93567015) and (477.15518807, 308.58766995) .. (479.77385467, 311.91566987) + .. controls (482.19918795, 314.99700313) and (490.84052106, 317.42366973) .. (493.74585432, 318.08233638) + .. controls (499.99652083, 319.49966968) and (498.51652087, 322.47033627) .. (498.51652087, 325.80500286) + .. controls (498.51652087, 328.13833613) and (494.71918763, 327.13833616) .. (490.66318773, 327.91566947) + .. controls (487.01652116, 328.61566945) and (485.28718787, 332.57566935) .. (489.75652109, 337.50100257) + .. controls (491.45918771, 339.37833585) and (495.38585428, 341.74900246) .. (496.49652092, 342.41566911) + .. controls (497.60718756, 343.08233576) and (503.04452076, 345.68900236) .. (507.21918732, 346.13833568) + .. controls (512.50318719, 346.70500233) and (514.66318713, 346.02633569) .. (517.44052040, 347.52633565) + .. controls (521.31518697, 349.61966893) and (521.26318697, 364.89166855) .. (520.91252031, 366.74900183) + .. controls (520.44185366, 369.25033510) and (515.92585377, 366.09566852) .. (514.05252048, 366.47166851) + .. controls (509.62585393, 367.47966848) and (507.55252064, 370.80500173) .. (503.71918741, 370.02633509) + .. controls (498.80452086, 369.03033511) and (495.55652094, 362.61833527) .. (495.71652094, 357.26366874) + .. controls (495.84185427, 353.03433551) and (499.10718752, 352.41566886) .. (496.44052092, 347.91566897)} +\def\fdulogo@motto@zhi{% + (512.24638719, 153.66567383) + .. controls (512.47838719, 150.62834057) and (511.49705388, 146.99900733) .. (513.74638716, 147.41634065) + .. controls (518.23038704, 148.24567396) and (526.40638684, 149.32967394) .. (527.24638682, 145.37367403) + .. controls (527.95438680, 142.04034078) and (528.16238680, 138.71500753) .. (523.77438691, 135.19367429) + .. controls (520.66372032, 132.69767435) and (517.50372040, 132.90034101) .. (515.55172044, 130.47100774) + .. controls (513.99438715, 128.53500779) and (513.96905382, 119.16567469) .. (516.77438708, 119.63767468) + .. controls (519.48905368, 120.09500800) and (524.63572022, 121.27634130) .. (528.07972013, 121.41634130) + .. controls (533.64771999, 121.64034129) and (537.49438656, 118.33367471) .. (537.49571990, 113.41634150) + .. controls (537.49705323, 110.36034158) and (533.90638665, 106.28300835) .. (530.34105341, 105.88567502) + .. controls (526.60772017, 105.47100837) and (525.24638687, 108.58167495) .. (521.07972031, 108.62434162) + .. controls (515.94905377, 108.67500829) and (510.59972057, 106.95100833) .. (499.49572085, 104.08167507) + .. controls (493.72772099, 102.59234177) and (488.03838780, 100.72834182) .. (482.69705460, 99.520341850) + .. controls (477.65972139, 98.38034188) and (471.57838821, 96.480341920) .. (465.94105502, 96.248341930) + .. controls (463.30372175, 96.14034193) and (458.61438853, 96.236341930) .. (457.80238855, 100.31100849) + .. controls (457.05172191, 104.08167507) and (457.67972189, 107.07500833) .. (462.44105511, 109.24834160) + .. controls (467.55172164, 111.58300821) and (482.99705459, 112.86034151) .. (489.38505443, 114.30434148) + .. controls (492.46772102, 115.00167479) and (491.70505437, 123.16567459) .. (490.12105441, 123.70700791) + .. controls (487.46638781, 124.61634122) and (478.63838803, 121.42434130) .. (472.78238818, 122.42567461) + .. controls (469.96772158, 122.90700793) and (463.91305507, 123.10700792) .. (464.49572172, 129.33234110) + .. controls (465.10772171, 135.86034094) and (484.69438788, 137.48434090) .. (488.35172112, 138.72967420) + .. controls (491.99572103, 139.97100750) and (491.07438772, 146.65634067) .. (490.57972107, 149.11767394) + .. controls (488.73572111, 158.29634038) and (489.04505444, 164.86034021) .. (500.27838749, 165.97367352) + .. controls (511.62238721, 167.09767349) and (512.05572053, 156.16300710) .. (512.24638719, 153.66567383) + (477.14665474, 84.89994221) + .. controls (472.73998818, 81.22527564) and (467.58798831, 76.65460909) .. (463.99598840, 72.30394253) + .. controls (462.33465511, 70.29194258) and (463.05465509, 58.65327620) .. (463.10798842, 55.47060962) + .. controls (463.21865509, 48.80394312) and (460.37198849, 40.91594331) .. (453.45465533, 40.91594331) + .. controls (445.28798887, 40.91594331) and (444.20265556, 46.74927650) .. (443.32932225, 50.99860973) + .. controls (442.19732228, 56.51327626) and (443.66132224, 63.83994274) .. (445.21865554, 66.35994268) + .. controls (446.79598883, 68.91194261) and (452.75865535, 71.92527587) .. (457.92665522, 75.68794244) + .. controls (468.97065494, 83.72927558) and (482.18532128, 94.29727531) .. (483.77465457, 92.64660869) + .. controls (485.03865454, 91.33194205) and (479.27598802, 86.67460884) .. (477.14665474, 84.89994221) + (476.49638809, 72.74900918) + .. controls (480.21905466, 74.35967581) and (501.89638745, 50.07834308) .. (510.82972056, 47.24900982) + .. controls (515.82972044, 45.66634319) and (532.30172003, 46.16634318) .. (537.63505323, 46.24900985) + .. controls (538.76705320, 46.26634318) and (540.66305315, 46.49967651) .. (540.59505315, 47.73300981) + .. controls (540.52038649, 49.09834311) and (500.66305415, 75.58234245) .. (503.74572074, 79.16500902) + .. controls (505.18172070, 80.83300898) and (525.21905354, 70.58234257) .. (540.71905315, 64.52634272) + .. controls (556.74171941, 58.26634288) and (572.32971903, 53.35967634) .. (572.32971903, 48.58234312) + .. controls (572.32971903, 43.46367658) and (566.08038585, 43.41567658) .. (563.08038592, 39.49967668) + .. controls (561.54438596, 37.49567673) and (561.41371930, 34.58234347) .. (558.66305270, 32.58234352) + .. controls (549.60438626, 25.99434369) and (535.51105328, 25.81434369) .. (524.88572021, 26.15834368) + .. controls (504.88572071, 26.80501033) and (495.99638760, 29.91567692) .. (487.99638780, 40.91567665) + .. controls (478.70838803, 53.68767633) and (473.71505482, 71.54500921) .. (476.49638809, 72.74900918) + (507.10745399, 87.63794214) + .. controls (508.21812063, 90.80460873) and (515.55412044, 93.42460867) .. (524.74612021, 94.66594197) + .. controls (535.22878662, 96.08060860) and (548.44611962, 96.18060860) .. (551.57945288, 95.24860862) + .. controls (557.74611939, 93.41527533) and (560.91278598, 86.41527551) .. (560.49678599, 80.49927566) + .. controls (560.21945266, 76.56594242) and (556.38478609, 75.08194246) .. (553.55145283, 75.08194246) + .. controls (549.55145293, 75.08194246) and (543.79011974, 76.84460908) .. (539.55811984, 77.15260907) + .. controls (532.15012003, 77.69394239) and (524.42745356, 78.01127572) .. (520.71812032, 78.58194237) + .. controls (514.94078713, 79.47127568) and (505.79145402, 83.88727557) .. (507.10745399, 87.63794214)} +\def\fdulogo@motto@qie{% + ( 70.41306491, 978.12405322) + .. controls ( 68.59973162, 977.99071989) and ( 61.77439846, 976.13738660) .. ( 56.44106526, 974.19338665) + .. controls ( 51.01039872, 972.21338670) and ( 47.16373215, 968.74938678) .. ( 42.77439893, 967.74938681) + .. controls ( 38.32373238, 966.73472017) and ( 27.71839931, 965.08272021) .. ( 25.59173269, 972.32672003) + .. controls ( 24.69706605, 975.37205328) and ( 31.35573255, 978.65738654) .. ( 35.71839911, 981.09738648) + .. controls ( 40.16373233, 983.58271975) and ( 50.54506540, 987.01471966) .. ( 56.73839858, 988.37605296) + .. controls ( 60.80639848, 989.26938627) and ( 70.49573157, 991.41605288) .. ( 72.62106485, 992.66538619) + .. controls ( 74.04239815, 993.50138617) and ( 73.41306483, 1004.24938590) .. ( 72.24639819, 1007.16538582) + .. controls ( 69.62239826, 1013.72405233) and ( 69.98906492, 1025.04271871) .. ( 79.22106469, 1025.33205204) + .. controls ( 87.39039782, 1025.58938536) and ( 88.54373112, 1019.55471885) .. ( 88.66373112, 1011.74938571) + .. controls ( 88.73039778, 1007.33605249) and ( 85.75306452, 999.49871935) .. ( 87.44106448, 996.69338609) + .. controls ( 89.12906444, 993.88805282) and ( 95.55173094, 997.80405272) .. ( 96.82639758, 996.37605276) + .. controls ( 98.79706420, 994.16671948) and ( 99.24373085, 989.33205294) .. ( 96.61173092, 988.43205296) + .. controls ( 90.38506441, 986.30405301) and ( 86.55173117, 986.91605300) .. ( 85.04773121, 978.98671986) + .. controls ( 84.33173123, 975.21471996) and ( 84.13839790, 971.34805339) .. ( 83.83039790, 966.74938683) + .. controls ( 83.38773125, 960.16272033) and ( 83.64373124, 956.11872043) .. ( 84.03173123, 955.66538711) + .. controls ( 85.20506454, 954.29072048) and (101.00239747, 967.46805348) .. (109.66239726, 973.83205332) + .. controls (119.56506368, 981.10938647) and (128.27839679, 988.06005297) .. (131.55173004, 989.97071959) + .. controls (133.45439666, 991.08271956) and (135.66906327, 994.46271947) .. (136.49706325, 993.99871949) + .. controls (138.57972987, 992.83205285) and (137.16372990, 989.69338626) .. (141.07972981, 989.66538626) + .. controls (146.73839633, 989.62538626) and (150.99706289, 989.74938626) .. (150.41306291, 983.16538642) + .. controls (149.91972959, 977.59471990) and (149.02906294, 971.76405338) .. (148.24639629, 966.99872016) + .. controls (147.24639632, 960.91605365) and (152.66372952, 965.49872020) .. (153.99972948, 959.75472034) + .. controls (154.93972946, 955.71338711) and (159.54106268, 956.39872043) .. (161.71306262, 958.37872038) + .. controls (163.88506257, 960.36005366) and (167.24372915, 970.34538674) .. (168.57972912, 981.08271981) + .. controls (169.87439575, 991.48805288) and (171.32772905, 1007.98271914) .. (169.68772909, 1009.37205243) + .. controls (167.74239581, 1011.02138573) and (157.99706272, 1000.24938600) .. (149.74639626, 1000.41605266) + .. controls (142.70639643, 999.65471934) and (137.03706324, 1002.73205260) .. (136.51572992, 1004.14138590) + .. controls (135.48372995, 1006.93471916) and (143.43439641, 1010.10538575) .. (147.18639632, 1011.49471905) + .. controls (154.63972947, 1014.25338565) and (161.57972929, 1014.66538564) .. (168.57972912, 1017.83205222) + .. controls (171.25039572, 1019.04005219) and (172.36639569, 1022.16405212) .. (173.91306232, 1021.83205212) + .. controls (181.62772879, 1020.17738550) and (191.32772855, 1014.26005231) .. (191.90772854, 1006.67205250) + .. controls (192.90639518, 993.61871950) and (192.74639518, 980.61738649) .. (190.68106190, 965.57872020) + .. controls (189.56506193, 957.44672040) and (184.02772873, 952.24005386) .. (178.35172887, 946.71472067) + .. controls (172.59039569, 941.10672081) and (157.91306272, 936.49872092) .. (152.73706285, 940.72538748) + .. controls (147.28239632, 945.18005404) and (145.86106302, 950.55472057) .. (144.49706305, 951.86005387) + .. controls (143.37972975, 952.92805385) and (141.25306314, 950.52005391) .. (139.24639652, 947.33205399) + .. controls (134.99706329, 940.58272082) and (127.31439682, 929.87605442) .. (121.49706363, 923.08272126) + .. controls (115.30639712, 915.85338811) and (111.05173056, 911.24938822) .. (109.11439727, 912.24938820) + .. controls (107.65439731, 913.00272151) and (116.65706375, 928.63472112) .. (123.88506357, 945.80405402) + .. controls (130.10106341, 960.57072032) and (135.21172995, 976.57605325) .. (134.44106331, 982.30405311) + .. controls (133.99572998, 985.60805303) and (131.79706337, 985.56138636) .. (129.92239675, 984.51471972) + .. controls (124.86506355, 981.68938646) and (118.97706369, 970.97472006) .. (114.49706380, 965.99872019) + .. controls (101.56239746, 951.63472055) and (100.63439748, 950.83205390) .. ( 87.21839782, 936.91605425) + .. controls ( 81.92773129, 931.42805438) and ( 71.99573153, 921.13738797) .. ( 69.28773160, 920.91605465) + .. controls ( 66.92506499, 920.72138798) and ( 66.88506499, 923.74938791) .. ( 64.83039838, 924.58272122) + .. controls ( 62.35306511, 925.58672120) and ( 60.49706515, 924.19338790) .. ( 57.99039855, 926.09872118) + .. controls ( 50.60506540, 931.71205438) and ( 62.66373177, 937.69338756) .. ( 66.88506499, 948.02672064) + .. controls ( 71.88239820, 960.25605366) and ( 73.33039817, 968.25205346) .. ( 73.83039815, 974.16538665) + .. controls ( 74.15306481, 977.99338655) and ( 72.20506486, 978.25605321) .. ( 70.41306491, 978.12405322)} +\def\fdulogo@motto@wen{% + (113.88533049, 800.33232433) + .. controls (113.88533049, 792.49899119) and (103.44133075, 785.91499135) .. ( 93.77466432, 787.69365798) + .. controls ( 91.97599770, 788.02432464) and ( 91.99599770, 790.54032457) .. ( 92.36799769, 792.02699120) + .. controls ( 93.00133101, 794.55499114) and ( 94.03866432, 794.79099113) .. ( 94.21866431, 797.41499107) + .. controls ( 94.41999764, 800.34565766) and ( 90.55199774, 798.87365770) .. ( 90.55199774, 802.45765761) + .. controls ( 90.55199774, 807.73499081) and ( 91.41999771, 813.70699066) .. ( 93.82799765, 814.61899064) + .. controls ( 95.18533095, 815.13232396) and ( 99.94266417, 810.02832409) .. (104.23466406, 809.80299076) + .. controls (109.99599725, 809.49899077) and (113.88533049, 808.05499080) .. (113.88533049, 800.33232433) + ( 68.24639829, 746.24899235) + .. controls ( 76.02373143, 746.24899235) and ( 76.30906476, 717.77832639) .. ( 76.32906476, 695.74899361) + .. controls ( 76.34639809, 678.91566070) and ( 73.70373149, 668.63299429) .. ( 68.82639828, 668.61832762) + .. controls ( 65.44106503, 668.60899429) and ( 58.49173187, 673.23166084) .. ( 57.54506523, 683.24899392) + .. controls ( 55.93039860, 700.35032683) and ( 58.49706520, 720.08232633) .. ( 62.50239844, 732.20499270) + .. controls ( 63.84106507, 736.25832593) and ( 65.57973169, 746.24899235) .. ( 68.24639829, 746.24899235) + (117.19559707, 733.34792600) + .. controls (114.83026380, 735.24925929) and ( 94.68759763, 733.44392600) .. ( 94.49693097, 732.49859269) + .. controls ( 93.99693098, 730.02659275) and ( 98.73693086, 730.33459274) .. ( 99.60759751, 726.35992618) + .. controls (100.98626414, 720.06125967) and (103.24626409, 712.70792652) .. (105.56093069, 712.68259319) + .. controls (106.91293066, 712.66792652) and (110.07293058, 717.64525973) .. (112.74626385, 722.74925960) + .. controls (115.32226378, 727.66792614) and (118.09959705, 732.62125935) .. (117.19559707, 733.34792600) + (125.07959687, 717.74925973) + .. controls (125.16359687, 710.58259324) and (136.33026326, 717.41592640) .. (136.33026326, 709.91592659) + .. controls (136.33026326, 706.99859333) and (134.99692996, 703.58259341) .. (132.91293001, 703.16526009) + .. controls (128.86226345, 702.35592678) and (122.66493027, 701.93192679) .. (122.83026360, 700.99859348) + .. controls (123.33026358, 698.16526022) and (134.45826331, 690.91192706) .. (137.88492989, 690.69326040) + .. controls (139.35426318, 690.59992707) and (141.45292980, 694.44792697) .. (141.41292980, 701.24926014) + .. controls (141.33026313, 715.33192645) and (141.46226313, 737.09459258) .. (141.41292980, 747.83192564) + .. controls (141.33026313, 766.24925851) and (140.87559648, 775.70525828) .. (135.57959661, 774.99859163) + .. controls (130.28359674, 774.29192498) and (125.66359686, 768.83192512) .. (123.01693026, 763.93192524) + .. controls (119.17693035, 756.81859208) and (114.00093048, 755.98125877) .. (107.77559731, 760.51859199) + .. controls (103.80893074, 763.40925858) and ( 98.44093087, 763.85725857) .. ( 95.31426428, 763.30525859) + .. controls ( 91.04359772, 762.55192527) and ( 89.00626444, 756.68125875) .. ( 87.94093113, 755.30392545) + .. controls ( 85.66359786, 752.35992553) and ( 82.55159794, 750.35992558) .. ( 78.55159804, 751.41592555) + .. controls ( 74.74493146, 752.41992553) and ( 68.07959830, 757.89592539) .. ( 68.07959830, 764.08259190) + .. controls ( 68.07959830, 770.26925841) and ( 73.10359817, 771.43059172) .. ( 75.41826478, 770.34659174) + .. controls ( 78.83026470, 768.74925845) and ( 80.62226465, 763.49992525) .. ( 86.29693118, 765.48925853) + .. controls ( 89.41293110, 766.58259184) and ( 95.18626429, 773.48792500) .. (102.21826411, 775.08259163) + .. controls (106.99693066, 776.16525827) and (113.86626382, 773.31725834) .. (116.63959708, 776.18925826) + .. controls (122.11293028, 781.85592479) and (125.22626354, 780.03192484) .. (130.24626341, 783.74925808) + .. controls (133.91559665, 786.46659134) and (136.36892992, 790.42792458) .. (144.21826306, 790.47059124) + .. controls (150.91292956, 790.50792457) and (155.77292944, 786.62259134) .. (160.33026266, 779.80392484) + .. controls (164.95292921, 772.88792501) and (165.57559586, 766.17059185) .. (165.99692918, 757.80392539) + .. controls (166.52626250, 747.25325899) and (165.26626254, 744.26125906) .. (165.66359586, 734.41592598) + .. controls (166.04092918, 725.02125954) and (169.01826244, 708.54259329) .. (169.90626242, 696.58259359) + .. controls (171.03426239, 681.39592730) and (156.09159610, 668.34259429) .. (145.21826304, 666.42526101) + .. controls (136.66359658, 664.91592771) and (132.88493001, 670.47059424) .. (130.10759675, 675.24926079) + .. controls (123.69826357, 686.27192718) and (115.95026377, 694.92259363) .. (110.10759725, 698.24926021) + .. controls (106.83959733, 700.10926017) and (101.64359746, 698.15726022) .. ( 96.44093092, 699.02659353) + .. controls ( 89.31159777, 700.21726016) and ( 86.33293118, 709.19592661) .. ( 85.74626452, 719.16525969) + .. controls ( 85.49693120, 723.41592625) and ( 89.71026442, 729.00125944) .. ( 90.50226440, 730.49725941) + .. controls ( 91.91293104, 733.16525934) and ( 90.13959775, 736.64125925) .. ( 92.66359768, 738.58259254) + .. controls (100.24626416, 744.41592573) and (111.62759721, 747.60659231) .. (119.89826367, 748.24125896) + .. controls (123.97026357, 748.55325896) and (129.79693009, 746.79459233) .. (132.24626336, 743.41592575) + .. controls (134.66359663, 740.08259250) and (134.83026330, 735.58259261) .. (133.07559667, 730.62659274) + .. controls (131.31159672, 725.63992619) and (125.03826354, 721.36525964) .. (125.07959687, 717.74925973)} +\def\fdulogo@motto@er@ii{% + (108.90466394, 536.58766425) + .. controls (109.87666392, 538.57566420) and (102.97266409, 537.08499758) .. ( 98.66333087, 536.37433093) + .. controls ( 94.84066430, 535.74366428) and ( 88.89133111, 534.12899765) .. ( 86.55266450, 538.04633088) + .. controls ( 84.44066456, 541.58233080) and ( 89.92999775, 547.88499731) .. ( 94.20733098, 550.49299724) + .. controls ( 99.89399750, 553.95833049) and (111.29533055, 558.12099705) .. (118.74599703, 558.49966371) + .. controls (125.64599686, 558.84899703) and (133.83799665, 551.11166389) .. (133.85132999, 544.52899739) + .. controls (133.85932999, 539.75166418) and (127.88866347, 534.22766431) .. (126.31133018, 532.76633102) + .. controls (121.78999696, 528.57966445) and ( 98.29533088, 509.82766492) .. ( 92.82999768, 505.85966502) + .. controls ( 88.25133113, 502.53566511) and ( 86.05133118, 503.03566509) .. ( 85.59266453, 503.66499841) + .. controls ( 85.02466454, 504.44366506) and ( 86.99666449, 508.74899828) .. ( 91.82999770, 514.91566480) + .. controls ( 98.69266420, 523.67166458) and (106.80599733, 532.29699770) .. (108.90466394, 536.58766425) + (133.85066332, 493.80459866) + .. controls (134.29466331, 488.91526545) and (146.75732966, 471.29926589) .. (155.10399612, 472.01393254) + .. controls (160.93732931, 472.51393252) and (165.88532919, 481.74859896) .. (167.66266248, 488.19393213) + .. controls (168.81732911, 492.37926536) and (169.31332910, 501.70726513) .. (168.63866245, 502.65793177) + .. controls (167.98799580, 503.57259841) and (159.59866268, 500.35793183) .. (151.99599620, 498.87393186) + .. controls (143.42132975, 497.20059857) and (133.68132999, 495.66459861) .. (133.85066332, 493.80459866) + (119.70533034, 486.04059885) + .. controls (118.57999704, 486.62459884) and (116.17199710, 486.29259885) .. (115.62133044, 485.54059886) + .. controls (115.16266379, 484.91526555) and (116.61999708, 465.61526603) .. (113.77733049, 461.77526612) + .. controls (110.88399723, 457.86993289) and (102.49199744, 457.94193289) .. ( 99.68399751, 460.35259949) + .. controls ( 96.45466426, 463.12459942) and ( 94.27733098, 467.76593264) .. ( 94.44133097, 472.47126586) + .. controls ( 94.62133097, 477.66593239) and ( 97.28666423, 483.17793226) .. ( 95.79999761, 484.01126557) + .. controls ( 94.97599763, 484.47393222) and ( 86.97466449, 480.91259898) .. ( 82.37199794, 480.20726566) + .. controls ( 75.94133143, 479.22059902) and ( 74.85066480, 485.58193220) .. ( 73.28799817, 485.33259887) + .. controls ( 70.95599823, 484.95926555) and ( 72.57999819, 474.64459914) .. ( 73.60799816, 468.02726597) + .. controls ( 74.32133148, 463.43126608) and ( 75.78533144, 458.58059954) .. ( 75.32933145, 455.63793294) + .. controls ( 74.49599814, 450.24859975) and ( 71.07999822, 448.08193313) .. ( 66.74399833, 447.52726648) + .. controls ( 62.58933177, 446.99659983) and ( 58.03866522, 450.99926639) .. ( 55.91333194, 456.29126626) + .. controls ( 54.88399863, 458.85259953) and ( 53.27866533, 461.95393279) .. ( 53.38933200, 475.23793245) + .. controls ( 53.47866533, 485.96859885) and ( 56.64133192, 504.78593172) .. ( 61.67199846, 508.24993163) + .. controls ( 67.35733165, 512.16326487) and ( 70.84266490, 506.77793167) .. ( 71.96133153, 503.75393174) + .. controls ( 73.07999817, 500.72993182) and ( 71.44799821, 494.38059864) .. ( 73.20533150, 493.24859867) + .. controls ( 74.21866481, 492.59659869) and ( 85.44933120, 497.09259858) .. ( 99.66266418, 500.83259848) + .. controls (114.55199714, 504.74859838) and (131.64933004, 508.53526496) .. (143.95466307, 510.95793156) + .. controls (156.87199608, 513.49926483) and (174.41332897, 516.70726475) .. (181.47199546, 514.83393147) + .. controls (187.07332866, 513.34859817) and (191.83332854, 505.08059838) .. (193.02266184, 499.35526519) + .. controls (194.44132847, 492.52726536) and (194.20799514, 479.94593234) .. (188.99599528, 470.13793258) + .. controls (185.57732869, 463.70459941) and (180.38532882, 460.47126616) .. (173.56799566, 457.37926623) + .. controls (169.12932911, 455.36726629) and (158.60132937, 452.72859968) .. (153.71866282, 453.13793301) + .. controls (145.77466302, 453.80459966) and (142.66399643, 465.36459937) .. (139.82932984, 465.58193270) + .. controls (136.21866326, 465.86059936) and (133.63332999, 458.01526622) .. (130.27466341, 452.41526636) + .. controls (127.86533014, 448.40059979) and (124.58533022, 445.84059986) .. (123.16266359, 446.02726652) + .. controls (120.82933031, 446.33259984) and (121.47333030, 457.59259956) .. (121.60799696, 467.80459931) + .. controls (121.71866362, 476.24859910) and (120.89599698, 485.42326553) .. (119.70533034, 486.04059885)} +\def\fdulogo@motto@jin{% + (147.52999631, 311.63046988) + .. controls (148.58999629, 309.42913660) and (152.49666285, 307.13846999) .. (155.99532943, 297.70780356) + .. controls (158.12599605, 291.96247037) and (159.99666267, 280.74913732) .. (159.64332934, 273.74780416) + .. controls (159.23266269, 265.59180436) and (157.10066274, 260.92113781) .. (154.41532947, 257.01847124) + .. controls (150.25666291, 250.97713806) and (146.14599635, 247.36913815) .. (147.32999632, 247.08247149) + .. controls (150.07932958, 246.41580484) and (181.78199546, 246.25847151) .. (191.17132855, 248.63447145) + .. controls (201.71799496, 251.30513805) and (223.91666107, 249.58647143) .. (224.21799439, 243.24913825) + .. controls (224.52066105, 236.91180508) and (214.10332798, 233.82647182) .. (202.32999494, 231.99847187) + .. controls (191.77399521, 230.35980524) and (153.31132950, 227.27047199) .. (134.81932996, 228.33180529) + .. controls (111.10733056, 229.69313859) and ( 94.27533098, 234.98247179) .. ( 80.55133132, 240.13847167) + .. controls ( 70.49666490, 243.91580490) and ( 62.00199845, 249.09180478) .. ( 55.44066528, 249.69313809) + .. controls ( 50.32866541, 250.16247142) and ( 46.21799884, 248.13847147) .. ( 42.82999893, 244.69313822) + .. controls ( 39.36333235, 241.17047164) and ( 34.71799913, 241.69313829) .. ( 32.66333252, 244.24913823) + .. controls ( 31.71666587, 245.42647153) and ( 29.24599927, 249.70780476) .. ( 31.59799921, 254.44247131) + .. controls ( 33.57133249, 258.41313788) and ( 37.53133240, 261.19180447) .. ( 41.82999895, 262.62380444) + .. controls ( 47.16333215, 264.40113773) and ( 54.84866530, 263.66647108) .. ( 54.91266529, 265.66513769) + .. controls ( 55.03799862, 269.54113760) and ( 50.16333208, 275.91580410) .. ( 47.32999882, 284.91580388) + .. controls ( 45.24466554, 291.53713705) and ( 44.63399888, 303.49313675) .. ( 44.74599888, 312.16513653) + .. controls ( 44.79666555, 316.04113643) and ( 45.49933220, 319.51446968) .. ( 45.44066553, 322.30513628) + .. controls ( 45.32999887, 327.63846948) and ( 43.71533224, 330.87180273) .. ( 43.77133224, 334.48246931) + .. controls ( 43.83799890, 338.86646920) and ( 44.82733221, 343.80513574) .. ( 48.99666544, 343.91580240) + .. controls ( 55.24599862, 344.08246907) and ( 57.56066523, 337.90380256) .. ( 58.24599854, 331.83180271) + .. controls ( 58.82999853, 326.66513617) and ( 56.79799858, 319.75846968) .. ( 56.75133191, 314.24913648) + .. controls ( 56.66333192, 303.58247008) and ( 59.79266517, 301.92113679) .. ( 63.00733176, 295.52513695) + .. controls ( 66.16333168, 289.24913710) and ( 66.24466501, 276.24913743) .. ( 66.24466501, 265.97180435) + .. controls ( 66.24466501, 262.88780443) and ( 71.16733155, 260.61713782) .. ( 78.21799804, 257.80513789) + .. controls ( 84.61666455, 255.25180462) and ( 92.80599768, 252.25713803) .. (100.57933082, 250.49847141) + .. controls (110.16333058, 248.33180479) and (137.50332990, 246.89447150) .. (138.89132986, 247.36647149) + .. controls (141.16332980, 248.13847147) and (137.05132991, 250.52647141) .. (136.85932991, 256.47047126) + .. controls (136.64999658, 262.92113776) and (136.15666326, 308.45713662) .. (135.71532994, 308.55313662) + .. controls (132.49666335, 309.24913660) and (118.69266370, 301.95047012) .. (118.55133037, 293.58247033) + .. controls (118.41266371, 285.33180387) and (116.57933042, 277.41580407) .. (112.66466385, 268.59847095) + .. controls (109.55666393, 261.59980446) and (104.05666407, 254.43580464) .. ( 99.10999752, 255.39847128) + .. controls ( 93.57799766, 256.47447126) and ( 89.94599775, 263.78247107) .. ( 89.47133110, 271.23847089) + .. controls ( 88.99666444, 278.69313737) and ( 91.36733105, 295.31580362) .. ( 94.57799764, 309.33313660) + .. controls ( 97.74599756, 323.16513626) and (104.65399738, 336.30380260) .. (107.88466397, 341.63846913) + .. controls (109.72599726, 344.67713572) and (112.85266385, 350.43046891) .. (116.38466376, 358.30513538) + .. controls (118.76999703, 363.61980191) and (119.21799702, 369.63846843) .. (123.07933026, 370.91580173) + .. controls (127.88866347, 372.50646836) and (130.19533008, 369.12780177) .. (133.12199667, 368.58246845) + .. controls (135.57932994, 368.12380180) and (138.91266319, 368.54113512) .. (141.18599647, 367.05313516) + .. controls (142.73132977, 366.04246852) and (143.94066307, 364.24913523) .. (143.85399640, 359.57980201) + .. controls (143.76199641, 354.61713547) and (140.43399649, 350.66780224) .. (135.32999662, 347.63846898) + .. controls (130.22599674, 344.60780239) and (118.23266371, 338.83313587) .. (116.71799708, 335.08246929) + .. controls (116.09933043, 333.54780266) and (116.42466376, 327.45046948) .. (116.66333042, 321.74913629) + .. controls (116.91666374, 315.68780311) and (117.13933040, 310.05313658) .. (118.41266371, 310.08246992) + .. controls (119.71799701, 310.11180325) and (125.09799687, 319.04113636) .. (132.78866335, 324.87446955) + .. controls (138.17266321, 328.95846945) and (144.78466305, 331.71446938) .. (149.10732961, 333.74913599) + .. controls (154.41799614, 336.24913593) and (162.34866261, 337.07046924) .. (165.78866252, 335.24913595) + .. controls (170.03799575, 332.99846934) and (172.99666234, 329.83180276) .. (173.16332900, 325.99846952) + .. controls (173.30732900, 322.66780294) and (172.03799570, 320.29046966) .. (169.21799577, 317.74913639) + .. controls (166.46066251, 315.26246979) and (162.63532927, 314.11046982) .. (158.74599603, 313.88780316) + .. controls (153.96466282, 313.61446983) and (146.78332966, 313.18246984) .. (147.52999631, 311.63046988)} +\def\fdulogo@motto@si{% + (106.49093067, 108.99527494) + .. controls (107.99626397, 108.66594162) and (109.39359727, 109.32060827) .. (110.41359724, 111.66594154) + .. controls (112.08026386, 115.49927478) and (112.58026385, 120.99927464) .. (111.08026389, 121.66594129) + .. controls (109.64693059, 122.30327461) and (104.98826404, 120.65127465) .. (104.03359740, 120.00460800) + .. controls (102.34959744, 118.86460803) and (105.34026403, 109.24727494) .. (106.49093067, 108.99527494) + ( 93.55226433, 38.30461004) + .. controls ( 91.74159771, 33.33527684) and ( 87.66293114, 27.77527697) .. ( 79.82959800, 27.80461031) + .. controls ( 74.49759814, 27.82461031) and ( 71.40826488, 31.66327688) .. ( 69.12159827, 36.40061009) + .. controls ( 66.58026500, 41.66594329) and ( 68.38293162, 53.36727634) .. ( 71.54026488, 59.73527618) + .. controls ( 76.03759810, 68.80594262) and ( 85.36026453, 77.49794240) .. ( 85.16693120, 78.80327570) + .. controls ( 84.83893121, 81.01527564) and ( 79.32959802, 82.33260894) .. ( 78.16293138, 86.70727550) + .. controls ( 76.04826477, 94.63794197) and ( 89.88559775, 94.02727532) .. ( 90.00826442, 96.90727525) + .. controls ( 90.17359775, 100.80327515) and ( 80.55226465, 107.13794166) .. ( 80.24693133, 118.99927469) + .. controls ( 79.98826467, 129.03394111) and ( 82.75626460, 143.82727407) .. ( 85.77359786, 144.24860740) + .. controls ( 87.65226448, 144.51127406) and ( 98.21893088, 128.58194112) .. (101.22559747, 129.59527443) + .. controls (103.59626408, 130.39260774) and (107.60693064, 133.24860767) .. (109.16293060, 135.36060762) + .. controls (110.87093056, 137.67660756) and (111.02693056, 140.45927416) .. (111.60693054, 143.52727408) + .. controls (112.38559719, 147.63794064) and (119.11893036, 149.52327393) .. (121.90026362, 148.91527395) + .. controls (125.71893019, 148.08194063) and (128.20959679, 143.25127409) .. (129.77359676, 141.63794079) + .. controls (131.55226338, 139.80460751) and (134.96692996, 139.03794086) .. (134.98426329, 134.57794097) + .. controls (134.99626329, 131.19394106) and (132.67226335, 130.15794108) .. (131.78826337, 128.12460780) + .. controls (130.95493006, 126.20727451) and (130.85093006, 124.21527456) .. (130.12159675, 122.58194127) + .. controls (128.01093013, 117.86060806) and (125.46959686, 112.70860818) .. (126.91359683, 112.66594152) + .. controls (129.74693009, 112.58194152) and (135.20426329, 125.02727454) .. (142.32959644, 136.91527425) + .. controls (148.52026295, 147.24194065) and (151.95492953, 152.08194053) .. (151.95492953, 155.20727379) + .. controls (151.95492953, 157.78460706) and (139.55226318, 156.80460708) .. (128.66293012, 155.97127377) + .. controls (120.72559698, 155.36327379) and (105.30026403, 154.68727380) .. (105.06293071, 155.59527378) + .. controls (104.41359739, 158.08194038) and (107.78293064, 163.07260693) .. (118.44026371, 166.24860685) + .. controls (123.65626358, 167.80327347) and (143.06559642, 168.37794013) .. (152.58026285, 165.99927352) + .. controls (160.91359598, 163.91527357) and (172.26826236, 150.59127390) .. (174.74692896, 146.41527401) + .. controls (176.73626225, 143.06327409) and (175.10692896, 138.36060754) .. (171.26426239, 131.99527437) + .. controls (168.19492913, 126.91260783) and (160.09092933, 118.71260803) .. (153.99626282, 111.69394154) + .. controls (150.84292956, 108.06194163) and (148.52026295, 103.64327508) .. (146.05226302, 100.86060848) + .. controls (142.99626309, 97.41527523) and (132.12159670, 94.86060863) .. (124.58026355, 92.99927534) + .. controls (118.95359703, 91.60994205) and (106.72959733, 87.84860881) .. (103.41359741, 86.33260884) + .. controls (101.65893079, 85.52994220) and ( 98.92026419, 81.12727564) .. ( 98.98426419, 76.91394241) + .. controls ( 99.10693086, 68.86060928) and ( 98.60693087, 63.08194276) .. ( 97.66293089, 55.83260961) + .. controls ( 96.79493091, 49.16860977) and ( 96.03493093, 45.12060987) .. ( 93.55226433, 38.30461004) + (100.89439748, 57.58234290) + .. controls (101.56773079, 59.78367617) and (110.22639724, 56.74234292) .. (114.57306380, 54.50500964) + .. controls (123.16373025, 50.08234308) and (132.66373002, 41.41567663) .. (140.20506316, 39.04101003) + .. controls (143.06772976, 38.13967672) and (158.71839603, 37.29034340) .. (158.83039603, 39.58234335) + .. controls (158.94639603, 41.98367662) and (148.73839628, 46.95167650) .. (144.33039639, 50.74900973) + .. controls (140.16906316, 54.33167631) and (130.74639673, 62.99834276) .. (132.24106336, 65.39700937) + .. controls (133.55972999, 67.51167598) and (143.95706307, 62.07167612) .. (149.83039625, 60.49967616) + .. controls (154.49706280, 59.24900952) and (163.29172925, 58.37167621) .. (171.74639571, 56.66634292) + .. controls (181.79706212, 54.63834297) and (192.89039518, 51.46900972) .. (199.00639502, 48.75967645) + .. controls (206.71039483, 45.34634320) and (207.40239481, 43.34900992) .. (202.28639494, 37.40901007) + .. controls (197.58372839, 31.94767687) and (190.61039523, 25.90234369) .. (183.41306208, 23.33301042) + .. controls (169.41306243, 18.33301054) and (150.69039623, 18.54634387) .. (136.69706325, 20.04767717) + .. controls (120.84639698, 21.74634379) and (113.83039715, 31.41567688) .. (110.24639724, 37.24901007) + .. controls (107.79973064, 41.23167664) and (104.83573071, 49.55034310) .. (103.57973074, 52.16634303) + .. controls (102.32373078, 54.78234297) and (100.67573082, 56.86634291) .. (100.89439748, 57.58234290) + (128.04773013, 74.22207581) + .. controls (126.84373016, 74.84474246) and (132.99706334, 84.33274223) .. (142.83039643, 90.16607542) + .. controls (150.18506291, 94.52874197) and (161.83039595, 99.36074185) .. (170.55172907, 99.36074185) + .. controls (176.49706225, 99.36074185) and (181.49706213, 96.74874192) .. (184.56239539, 93.83274199) + .. controls (187.18772865, 91.33540872) and (188.57306195, 88.19274213) .. (188.28106196, 83.24874225) + .. controls (187.99706197, 78.41540904) and (183.91306207, 75.57407578) .. (178.07572888, 75.45407578) + .. controls (163.99706257, 75.16607579) and (146.80906300, 79.21140902) .. (141.89306312, 79.04474236) + .. controls (135.37706328, 78.82340903) and (130.41306341, 72.99940918) .. (128.04773013, 74.22207581)} +\endinput +%% +%% End of file `fdulogo.sty'. diff --git a/Master/texmf-dist/tex/latex/fduthesis/fduthesis-en.cls b/Master/texmf-dist/tex/latex/fduthesis/fduthesis-en.cls new file mode 100644 index 00000000000..f0737c87907 --- /dev/null +++ b/Master/texmf-dist/tex/latex/fduthesis/fduthesis-en.cls @@ -0,0 +1,1474 @@ +%% +%% This is file `fduthesis-en.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fduthesis.dtx (with options: `class-en') +%% +%% Copyright (C) 2017, 2018 by Xiangdong Zeng <xdzeng96@gmail.com> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3c 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 `maintained'. +%% +%% The Current Maintainer of this work is Xiangdong Zeng. +%% +%% This work consists of the files fduthesis.dtx, +%% fduthesis-doc.dtx, +%% fduthesis-logo.dtx, +%% fduthesis-template.tex, +%% and the derived files fduthesis.ins, +%% fduthesis.cls, +%% fduthesis-en.cls, +%% fduthesis.def, +%% fdudoc.cls, +%% fdulogo.sty, +%% fdulogo-example.tex, +%% fduthesis-cover.tex, +%% fduthesis-en.tex, +%% fduthesis.pdf, +%% fduthesis-en.pdf, +%% fduthesis-code.pdf, +%% latexmkrc, +%% latexmkrc-en, +%% and README.md. +%% +\NeedsTeXFormat{LaTeX2e} +\RequirePackage{expl3} +\GetIdInfo $Id: fduthesis.dtx 0.7a 2018-04-09 12:00:00Z Xiangdong Zeng <xdzeng96@gmail.com> $ + {Thesis template for Fudan University (English version)} +\ProvidesExplClass{\ExplFileName-en} + {\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} +\RequirePackage { xparse, xtemplate, l3keys2e } +\clist_map_inline:nn { expl3, xparse, xtemplate, l3keys2e } + { + \@ifpackagelater {#1} { 2017/12/16 } + { } { \msg_error:nnn { fduthesis } { l3-too-old } {#1} } + } +\msg_new:nnn { fduthesis } { l3-too-old } + { + Package~ "#1"~ is~ too~ old. \\\\ + Please~ update~ an~ up-to-date~ version~ of~ the~ bundles \\ + "l3kernel"~ and~ "l3packages"~ using~ your~ TeX~ package \\ + manager~ or~ from~ CTAN. + } +\sys_if_engine_xetex:F + { + \sys_if_engine_luatex:F + { + \msg_fatal:nnx { fduthesis } { unsupported-engine } + { \c_sys_engine_str } + } + } +\msg_new:nnn { fduthesis } { unsupported-engine } + { + The~ fduthesis~ class~ requires~ either~ XeTeX~ or~ LuaTeX. \\\\ + "#1"~ is~ not~ supported~ at~ present.~ You~ must~ change \\ + your~ typesetting~ engine~ to~ "xelatex"~ or~ "lualatex". + } +\box_new:N \l__fdu_tmpa_box +\clist_new:N \l__fdu_tmpa_clist +\clist_new:N \l__fdu_tmpb_clist +\dim_new:N \l__fdu_tmpa_dim +\dim_new:N \l__fdu_tmpb_dim +\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 +\clist_new:N \g__fdu_to_ctexbook_clist +\clist_new:N \g__fdu_to_hyperref_clist +\bool_new:N \g__fdu_twoside_bool +\bool_set_true:N \g__fdu_twoside_bool +\bool_new:N \g__fdu_draft_bool +\tl_new:N \g__fdu_config_tl +\cs_generate_variant:Nn \cs_generate_variant:Nn { cn } +\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 \tl_map_inline:nn { xn } +\prg_generate_conditional_variant:Nnn \tl_if_eq:nn { Vn } { T, TF } +\cs_new:Npn \__fdu_quad: { \skip_horizontal:n { 1 em } } +\cs_new:Npn \__fdu_qquad: { \skip_horizontal:n { 2 em } } +\cs_new_protected:Npn \__fdu_vspace:N #1 + { + \dim_set_eq:NN \l__fdu_tmpa_dim \prevdepth + \hrule height \c_zero_dim + \nobreak + \skip_vertical:N #1 + \skip_vertical:N \c_zero_skip + \dim_set_eq:NN \prevdepth \l__fdu_tmpa_dim + } +\cs_new_protected:Npn \__fdu_vspace:n #1 + { + \skip_set:Nn \l__fdu_tmpa_skip {#1} + \__fdu_vspace:N \l__fdu_tmpa_skip + } +\cs_generate_variant:Nn \__fdu_vspace:N { c } +\cs_new:Npn \__fdu_symbol:n #1 { \tex_char:D #1 \scan_stop: } +\cs_new:Npn \__fdu_arabic:n #1 + { \int_to_arabic:v { c@ #1 } } +\cs_new_protected:Npn \__fdu_patch_cmd:Nnn #1#2#3 + { + \ctex_patch_cmd_once:NnnnTF #1 { } {#2} {#3} + { } { \ctex_patch_failure:N #1 } + } +\cs_new_protected:Npn \__fdu_appto_cmd:Nn #1#2 + { + \ctex_appto_cmd:NnnTF #1 { } {#2} + { } { \ctex_patch_failure:N #1 } + } +\cs_new_protected:Npn \__fdu_define_fn_style:nn #1#2 + { \tl_const:cn { c__fdu_fn_style_ #1 _tl } {#2} } +\cs_new_protected:Npn \__fdu_define_punct:nn #1#2 + { \tl_const:cn { c__fdu_ #1 _tl } { \__fdu_symbol:n {#2} } } +\cs_new_protected:Npn \__fdu_define_name:nn #1#2 + { \tl_const:cn { c__fdu_name_ #1 _tl } {#2} } +\cs_new_protected:Npn \__fdu_define_name:nnn #1#2#3 + { + \tl_const:cn { c__fdu_name_ #1 _tl } {#2} + \tl_const:cn { c__fdu_name_ #1 _en_tl } {#3} + } +\cs_new:Npn \__fdu_msg_new:nn { \msg_new:nnn { fduthesis } } +\cs_new:Npn \__fdu_error:n { \msg_error:nn { fduthesis } } +\cs_new:Npn \__fdu_error:nn { \msg_error:nnn { fduthesis } } +\cs_new:Npn \__fdu_error:nx { \msg_error:nnx { fduthesis } } +\cs_new:Npn \__fdu_error:nnn { \msg_error:nnnn { fduthesis } } +\cs_new:Npn \__fdu_warning:n { \msg_warning:nn { fduthesis } } +\cs_new:Npn \__fdu_warning:nn { \msg_warning:nnn { fduthesis } } +\cs_new:Npn \__fdu_warning:nxx { \msg_warning:nnxx { fduthesis } } +\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 }, + type .initial:n = bachelor, + oneside .value_forbidden:n = true, + twoside .value_forbidden:n = true, + oneside .code:n = + { + \clist_gput_right:Nn \g__fdu_to_ctexbook_clist { oneside } + \bool_set_false:N \g__fdu_twoside_bool + }, + twoside .code:n = + { + \clist_gput_right:Nn \g__fdu_to_ctexbook_clist { twoside } + \bool_set_true:N \g__fdu_twoside_bool + }, + draft .choice:, + draft / true .code:n = + { + \bool_set_true:N \g__fdu_draft_bool + \clist_gput_right:Nn \g__fdu_to_ctexbook_clist { draft } + }, + draft / false .code:n = + { \bool_set_false:N \g__fdu_draft_bool }, + draft .default:n = true, + draft .initial:n = false, + config .tl_set:N = \g__fdu_config_tl, + unknown .code:n = { \__fdu_error:n { unknown-option } } + } +\__fdu_msg_new:nn { unknown-option } + { Class~ option~ "\l_keys_key_tl"~ is~ unknown. } +\ProcessKeysOptions { fdu / option } +\file_input:n { fduthesis.def } +\tl_if_empty:NF \g__fdu_config_tl + { + \file_input:V \g__fdu_config_tl + \__fdu_info:nx { load-config-file } { \g__fdu_config_tl } + } +\__fdu_msg_new:nn { load-config-file } + { You~ are~ loading~ config~ file~ '#1'. } +\PassOptionsToClass + { + UTF8, + scheme = plain, + heading = true, + fontset = fandol, + zihao = -4, + \g__fdu_to_ctexbook_clist + } + { ctexbook } +\clist_map_inline:nn + { + { no-math } { fontspec }, + { perpage } { footmisc }, + { amsmath, thmmarks } { ntheorem } + } + { \PassOptionsToPackage #1 } +\RequirePackage { etoolbox } +\LoadClass { ctexbook } +\RequirePackage + { + amsmath, + unicode-math, + geometry, + fancyhdr, + footmisc, + ntheorem, + graphicx, + longtable, + caption, + xcolor + } +\cs_new_protected:Npn \__fdu_check_package:nnn #1#2#3 + { + \@ifpackagelater {#1} {#2} + { } { \__fdu_error:nnn { package-too-old } {#1} {#3} } + } +\__fdu_msg_new:nn { package-too-old } + { + Package~ "#1"~ is~ too~ old. \\ + The~ fduthesis~ class~ only~ supports~ "#1"~ with~ a~ version \\ + higher~ than~ v#2. \\\\ + Please~ update~ an~ up-to-date~ version~ of~ it~ using~ your \\ + TeX~ package~ manager~ or~ from~ CTAN. + } +\__fdu_check_package:nnn { ctex } { 2017/08/07 } { 2.4.10 } +\__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 } } +\geometry + { + paper = a4paper, + vmargin = 2.54 cm, + hmargin = 3.18 cm, + 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 +\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 } + } + } +\cs_new_protected:Npn \__fdu_initialize_prop:Nn #1#2 + { + \prop_gclear:N #1 + \clist_map_inline:nn {#2} { \prop_gput:Nnn #1 {##1} { } } + } +\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 } } + } +\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 + { + \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 + { + \prop_gput:Nnn \g__fdu_cjk_font_name_prop {#1} {#2} + \prop_gput:Nnn \g__fdu_cjk_font_options_prop {#1} {#3} + } +\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_protected:Npn \__fdu_set_font: + { + \clist_map_inline:nn { main, sans, mono, math } + { + \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 + } + } +\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 } } +\__fdu_msg_new:nn { font-not-defined } + { + \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. + } +\ctex_at_end_preamble:n + { + \__fdu_set_font: + } +\keys_set:nn { unicode-math } + { + math-style = ISO, + bold-style = ISO, + } +\keys_define:nn { fdu / style } + { + font-size .choice:, + font-size .value_required:n = true, + font-size / -4 .code:n = { }, + font-size / 5 .code:n = + { + \RenewDocumentCommand \tiny { } { \zihao { 7 } } + \RenewDocumentCommand \scriptsize { } { \zihao { -6 } } + \RenewDocumentCommand \footnotesize { } { \zihao { 6 } } + \RenewDocumentCommand \small { } { \zihao { -5 } } + \RenewDocumentCommand \normalsize { } { \zihao { 5 } } + \RenewDocumentCommand \large { } { \zihao { -4 } } + \RenewDocumentCommand \Large { } { \zihao { -3 } } + \RenewDocumentCommand \LARGE { } { \zihao { -2 } } + \RenewDocumentCommand \huge { } { \zihao { 2 } } + \RenewDocumentCommand \Huge { } { \zihao { 1 } } + } + } +\keys_set:nn { ctex } + { + chapter = + { + format = \centering, + nameformat = \LARGE \bfseries, + titleformat = \huge \bfseries, + aftername = \par \nobreak \vskip 10 pt, + beforeskip = 50 pt, + afterskip = 40 pt, + number = \__fdu_arabic:n { chapter }, + fixskip = true + }, + section = + { + format = \Large \bfseries \raggedright, + beforeskip = 3.5 ex plus 1.0 ex minus 0.2 ex, + afterskip = 2.7 ex plus 0.5 ex, + fixskip = true + }, + subsection = + { + format = \large \bfseries \raggedright, + beforeskip = 3.25 ex plus 1.0 ex minus 0.2 ex, + afterskip = 2.5 ex plus 0.3 ex, + fixskip = true + } + } +\fancyhf { } +\tl_new:N \l__fdu_header_center_mark_tl +\bool_if:NTF \g__fdu_twoside_bool + { + \fancyhead [ EL ] { \small \nouppercase { \itshape \leftmark } } + \fancyhead [ OR ] { \small \nouppercase { \itshape \rightmark } } + } + { + \fancyhead [ L ] { \small \nouppercase { \itshape \leftmark } } + \fancyhead [ R ] { \small \nouppercase { \itshape \rightmark } } + \fancyhead [ C ] + { + \small \nouppercase + { \itshape \l__fdu_header_center_mark_tl } + } + } +\fancyfoot [ C ] { \small \thepage } +\cs_new:Npn \fdu_front_matter_header:n #1 + { + \bool_if:NTF \g__fdu_twoside_bool + { \markboth {#1} {#1} } + { + \markboth { } { } + \tl_gset:Nn \l__fdu_header_center_mark_tl {#1} + } + } +\RenewDocumentCommand \cleardoublepage { } + { + \clearpage + \bool_if:NT \g__fdu_twoside_bool + { + \int_if_odd:nF \c@page + { \hbox:n { } \thispagestyle { empty } \newpage } + } + \tl_gset:Nn \l__fdu_header_center_mark_tl { } + } +\pagestyle { fancy } +\clist_map_inline:nn + { + { plain } { plain }, + { libertinus } { libertinus }, + { libertinus_neg } { libertinus* }, + { libertinus_sans } { libertinus-sans }, + { pifont } { pifont }, + { pifont_neg } { pifont* }, + { pifont_sans } { pifont-sans }, + { pifont_sans_neg } { pifont-sans* }, + { xits } { xits }, + { xits_sans } { xits-sans }, + { xits_sans_neg } { xits-sans* } + } + { \__fdu_define_fn_style:nn #1 } +\tl_new:N \l__fdu_fn_style_tl +\keys_define:nn { fdu / style } + { + footnote-style .choices:nn = + { + plain, + libertinus, libertinus*, libertinus-sans, + pifont, pifont*, pifont-sans, pifont-sans*, + xits, xits-sans, xits-sans* + } + { + \tl_gset_eq:NN \l__fdu_fn_style_tl \l_keys_choice_tl + \int_compare:nT { 5 <= \l_keys_choice_int <= 8 } + { \RequirePackage { pifont } } + }, + footnote-style .value_required:n = true + } +\cs_new:Npn \__fdu_fn_symbol_libertinus:n #1 + { + \int_compare:nTF { #1 >= 21 } + { + \int_compare:nTF { #1 >= 47 } + { \__fdu_symbol:n { \int_eval:n { "24B6 - 47 + #1 } } } + { \__fdu_symbol:n { \int_eval:n { "24D0 - 21 + #1 } } } + } + { \__fdu_symbol:n { \int_eval:n { "2460 - 1 + #1 } } } + } +\cs_new:Npn \__fdu_fn_symbol_libertinus_neg:n #1 + { + \int_compare:nTF { #1 >= 11 } + { \__fdu_symbol:n { \int_eval:n { "24EB - 11 + #1 } } } + { \__fdu_symbol:n { \int_eval:n { "2776 - 1 + #1 } } } + } +\cs_new_eq:NN \__fdu_fn_symbol_libertinus_sans:n + \__fdu_fn_symbol_libertinus:n +\cs_new:Npn \__fdu_fn_symbol_pifont:n #1 + { \ding { \int_eval:n { 171 + #1 } } } +\cs_new:Npn \__fdu_fn_symbol_pifont_neg:n #1 + { \ding { \int_eval:n { 181 + #1 } } } +\cs_new:Npn \__fdu_fn_symbol_pifont_sans:n #1 + { \ding { \int_eval:n { 191 + #1 } } } +\cs_new:Npn \__fdu_fn_symbol_pifont_sans_neg:n #1 + { \ding { \int_eval:n { 201 + #1 } } } +\cs_new:Npn \__fdu_fn_symbol_xits:n #1 + { + \int_compare:nTF { #1 >= 10 } + { + \int_compare:nTF { #1 >= 36 } + { \__fdu_symbol:n { \int_eval:n { "24B6 - 36 + #1 } } } + { \__fdu_symbol:n { \int_eval:n { "24D0 - 10 + #1 } } } + } + { \__fdu_symbol:n { \int_eval:n { "2460 - 1 + #1 } } } + } +\cs_new:Npn \__fdu_fn_symbol_xits_sans:n #1 + { \__fdu_symbol:n { \int_eval:n { "2780 - 1 + #1 } } } +\cs_new:Npn \__fdu_fn_symbol_xits_sans_neg:n #1 + { \__fdu_symbol:n { \int_eval:n { "278A - 1 + #1 } } } +\cs_set:Npn \thefootnote { \fdu_footnote_number:N \c@footnote } +\cs_new:Npn \fdu_footnote_number:N #1 + { + \tl_case:NnF \l__fdu_fn_style_tl + { + \c__fdu_fn_style_plain_tl + { \int_use:N #1 } + \c__fdu_fn_style_libertinus_tl + { + \fontspec { Libertinus~ Serif } + \__fdu_fn_symbol_libertinus:n {#1} + } + \c__fdu_fn_style_libertinus_neg_tl + { + \fontspec { Libertinus~ Serif } + \__fdu_fn_symbol_libertinus_neg:n {#1} + } + \c__fdu_fn_style_libertinus_sans_tl + { + \fontspec { Libertinus~ Sans } + \__fdu_fn_symbol_libertinus_sans:n {#1} + } + \c__fdu_fn_style_pifont_tl + { \__fdu_fn_symbol_pifont:n {#1} } + \c__fdu_fn_style_pifont_neg_tl + { \__fdu_fn_symbol_pifont_neg:n {#1} } + \c__fdu_fn_style_pifont_sans_tl + { \__fdu_fn_symbol_pifont_sans:n {#1} } + \c__fdu_fn_style_pifont_sans_neg_tl + { \__fdu_fn_symbol_pifont_sans_neg:n {#1} } + \c__fdu_fn_style_xits_tl + { + \fontspec { XITS } + \__fdu_fn_symbol_xits:n {#1} + } + \c__fdu_fn_style_xits_sans_tl + { + \fontspec { XITS } + \__fdu_fn_symbol_xits_sans:n {#1} + } + \c__fdu_fn_style_xits_sans_neg_tl + { + \fontspec { XITS } + \__fdu_fn_symbol_xits_sans_neg:n {#1} + } + } + { \int_use:N #1 } + } +\cs_set:Npn \@makefntext #1 + { + \mode_leave_vertical: + \hbox_to_wd:nn { 1.5 em } { \@thefnmark \hfil } + #1 + } +\clist_const:Nn \c__fdu_thm_style_plain_clist + { plain, margin, change } +\clist_const:Nn \c__fdu_thm_style_break_clist + { break, marginbreak, changebreak } +\tl_new:N \l__fdu_thm_style_tl +\tl_new:N \l__fdu_thm_header_font_tl +\tl_new:N \l__fdu_thm_body_font_tl +\tl_new:N \l__fdu_thm_qed_tl +\tl_new:N \l__fdu_thm_counter_tl +\keys_define:nn { fdu / theorem } + { + style .tl_set:N = \l__fdu_thm_style_tl, + header-font .tl_set:N = \l__fdu_thm_header_font_tl, + body-font .tl_set:N = \l__fdu_thm_body_font_tl, + qed .tl_set:N = \l__fdu_thm_qed_tl, + counter .tl_set:N = \l__fdu_thm_counter_tl + } +\cs_new_eq:NN \__fdu_thm_ntheorem_style:n \theoremstyle +\cs_new_eq:NN \__fdu_thm_ntheorem_new:w \newtheorem +\RenewDocumentCommand \newtheorem { s o m m } + { + \IfBooleanTF {#1} + { \tl_set:Nn \l__fdu_thm_qed_tl { \ensuremath { \QED } } } + { \tl_set:Nn \l__fdu_thm_qed_tl { } } + \tl_set:Nn \l__fdu_thm_style_tl { plain } + \IfValueT {#2} { \keys_set:nn { fdu / theorem } {#2} } + \fdu_thm_set_header_font:V \l__fdu_thm_header_font_tl + \fdu_thm_set_body_font:V \l__fdu_thm_body_font_tl + \fdu_thm_set_qed:V \l__fdu_thm_qed_tl + \IfBooleanTF {#1} + { + \clist_if_in:nVF { plain, break } \l__fdu_thm_style_tl + { + \clist_if_in:NVTF + \c__fdu_thm_style_plain_clist \l__fdu_thm_style_tl + { \__fdu_thm_redefine_style:n { plain } } + { + \clist_if_in:NVTF + \c__fdu_thm_style_break_clist \l__fdu_thm_style_tl + { \__fdu_thm_redefine_style:n { break } } + { + \__fdu_error:nx { unknown-theorem-style } + { \l__fdu_thm_style_tl } + } + } + } + \tl_put_left:Nn \l__fdu_thm_style_tl { nonumber } + \fdu_thm_new_no_number:Vxx \l__fdu_thm_style_tl {#3} {#4} + } + { + \clist_clear:N \l__fdu_tmpa_clist + \clist_concat:NNN \l__fdu_tmpa_clist + \c__fdu_thm_style_plain_clist \c__fdu_thm_style_break_clist + \clist_if_in:NVF \l__fdu_tmpa_clist \l__fdu_thm_style_tl + { + \__fdu_error:nx { unknown-theorem-style } + { \l__fdu_thm_style_tl } + } + \fdu_thm_new:VVxx \l__fdu_thm_style_tl \l__fdu_thm_counter_tl + {#3} {#4} + } + } +\cs_new:Npn \__fdu_thm_redefine_style:n #1 + { + \__fdu_warning:nxx { redefine-theorem-style } + {#1} { \l__fdu_thm_style_tl } + \tl_set:Nn \l__fdu_thm_style_tl {#1} + } +\__fdu_msg_new:nn { redefine-theorem-style } + { Theorem~ style~ "#2"~ will~ be~ redefined~ as~ "#1". } +\__fdu_msg_new:nn { unknown-theorem-style } + { Theorem~ style~ "#1"~ is~ unknown. } +\cs_new:Npn \fdu_thm_new:nnnn #1#2#3#4 + { + \__fdu_thm_ntheorem_style:n {#1} + \__fdu_thm_ntheorem_new:w {#3} {#4} [#2] + } +\cs_generate_variant:Nn \fdu_thm_new:nnnn { VVxx } +\cs_new:Npn \fdu_thm_new_no_number:nnn #1#2#3 + { + \__fdu_thm_ntheorem_style:n {#1} + \__fdu_thm_ntheorem_new:w {#2} {#3} + } +\cs_generate_variant:Nn \fdu_thm_new_no_number:nnn { Vxx } +\cs_new:Npn \fdu_thm_set_qed:n #1 { \theoremsymbol {#1} } +\cs_new:Npn \fdu_thm_set_header_font:n #1 { \theoremheaderfont {#1} } +\cs_new:Npn \fdu_thm_set_body_font:n #1 { \theorembodyfont {#1} } +\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 + } +\cs_set:Npn \thefigure + { \__fdu_arabic:n { chapter } - \__fdu_arabic:n { figure } } +\cs_set:Npn \thetable + { \__fdu_arabic:n { chapter } - \__fdu_arabic:n { table } } +\clist_map_inline:nn + { + title, date, author, supervisor, department, major, student_id, + school_id, clc + } + { \tl_new:c { l__fdu_info_ #1 _tl } } +\clist_new:N \l__fdu_info_instructors_clist +\clist_new:N \l__fdu_info_keywords_clist +\clist_map_inline:nn + { 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 +\keys_define:nn { fdu / info } + { + degree .choices:nn = + { academic, professional } + { \int_set_eq:NN \l__fdu_info_degree_type_int \l_keys_choice_int }, + title .tl_set:N = \l__fdu_info_title_tl, + title* .tl_set:N = \l__fdu_info_title_en_tl, + date .tl_set:N = \l__fdu_info_date_tl, + author .tl_set:N = \l__fdu_info_author_tl, + author* .tl_set:N = \l__fdu_info_author_en_tl, + supervisor .tl_set:N = \l__fdu_info_supervisor_tl, + instructors .clist_set:N = \l__fdu_info_instructors_clist, + department .tl_set:N = \l__fdu_info_department_tl, + major .tl_set:N = \l__fdu_info_major_tl, + student-id .tl_set:N = \l__fdu_info_student_id_tl, + school-id .tl_set:N = \l__fdu_info_school_id_tl, + keywords .clist_set:N = \l__fdu_info_keywords_clist, + keywords* .clist_set:N = \l__fdu_info_keywords_en_clist, + clc .tl_set:N = \l__fdu_info_clc_tl + } +\tl_new:N \l__fdu_cover_logo_tl +\clist_new:N \l__fdu_cover_logo_size_clist +\keys_define:nn { fdu / style } + { + 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 } + }, + secret-level .value_required:n = true, + secret-year .tl_set:N = \l__fdu_info_secret_year_tl + } +\cs_new_protected:Npn \__fdu_spread_box:nn #1#2 + { + \mode_leave_vertical: + \hbox_to_wd:nn {#1} + { \tl_map_inline:xn {#2} { ##1 \hfil } \unskip } + } +\cs_new_protected:Npn \__fdu_center_box:nn #1#2 + { + \mode_leave_vertical: + \hbox_to_wd:nn {#1} { \hfil #2 \hfil } + } +\cs_generate_variant:Nn \__fdu_center_box:nn { Vn } +\cs_new:Npn \__fdu_fixed_width_box:nn #1#2 + { \parbox {#1} {#2} } +\cs_new:Npn \__fdu_fixed_width_center_box:nn #1#2 + { \parbox {#1} { \centering #2 } } +\cs_new:Npn \__fdu_get_text_width:Nn #1#2 + { + \hbox_set:Nn \l__fdu_tmpa_box {#2} + \dim_set:Nn #1 { \box_wd:N \l__fdu_tmpa_box } + } +\cs_generate_variant:Nn \__fdu_get_text_width:Nn { NV } +\cs_new:Npn \__fdu_get_max_text_width:NN #1#2 + { + \group_begin: + \clist_set_eq:NN \l__fdu_tmpa_clist #2 + \bool_until_do:nn { \clist_if_empty_p:N \l__fdu_tmpa_clist } + { + \clist_pop:NN \l__fdu_tmpa_clist \l__fdu_tmpa_tl + \__fdu_get_text_width:NV \l__fdu_tmpa_dim \l__fdu_tmpa_tl + \dim_gset:Nn #1 { \dim_max:nn {#1} { \l__fdu_tmpa_dim } } + } + \group_end: + } +\cs_new:Npn \__fdu_blank_underline:n #1 + { \rule [ -0.5 ex ] {#1} { 0.4 pt } } +\cs_new:Npn \__fdu_line_spread:N #1 + { \linespread { \fp_use:N #1 } \selectfont } +\cs_new:Npn \__fdu_line_spread:n #1 + { \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 } { } + } +\cs_new:Npn \__fdu_cover_id_aux:n #1 + { + \tl_use:c { c__fdu_name_ #1 _tl } + \c__fdu_fullwidth_colon_tl + \tl_use:c { l__fdu_info_ #1 _tl } + } +\cs_new_protected:Npn \__fdu_cover_logo: + { + \clist_pop:NN \l__fdu_cover_logo_size_clist \l__fdu_tmpa_tl + \clist_pop:NNTF \l__fdu_cover_logo_size_clist \l__fdu_tmpb_tl + { + \tl_if_empty:NTF \l__fdu_tmpa_tl + { \includegraphics [ height = \l__fdu_tmpb_tl ] } + { + \includegraphics + [ width = \l__fdu_tmpa_tl, height = \l__fdu_tmpb_tl ] + } + } + { \includegraphics [ width = \l__fdu_tmpa_tl ] } + { \l__fdu_cover_logo_tl } + } +\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 } + } + \__fdu_spread_box:nn { 0.45 \textwidth } { \l__fdu_tmpa_tl } + } +\cs_new_protected:Npn \__fdu_cover_degree: + { + \int_compare:nNnT \g__fdu_thesis_type_int = \c_two + { + \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 + \c__fdu_fullwidth_right_paren_tl + } + } +\cs_new_protected:Npn \__fdu_cover_info: + { + \begin{minipage} [ c ] { \textwidth } + \centering \zihao { 4 } + \clist_set:Nx \l__fdu_tmpa_clist + { + \c__fdu_name_department_tl, + \c__fdu_name_major_tl, + \c__fdu_name_author_tl, + \c__fdu_name_supervisor_tl, + \c__fdu_name_date_tl, + } + \clist_set:Nx \l__fdu_tmpb_clist + { + { \l__fdu_info_department_tl }, + { \l__fdu_info_major_tl }, + { \l__fdu_info_author_tl }, + { \l__fdu_info_supervisor_tl }, + { \l__fdu_info_date_tl } + } + \__fdu_get_max_text_width:NN \l__fdu_tmpb_dim \l__fdu_tmpb_clist + \bool_until_do:nn + { \clist_if_empty_p:N \l__fdu_tmpa_clist } + { + \clist_pop:NN \l__fdu_tmpa_clist \l__fdu_tmpa_tl + \clist_pop:NN \l__fdu_tmpb_clist \l__fdu_tmpb_tl + \__fdu_spread_box:nn { 6 em } { \l__fdu_tmpa_tl } + \c__fdu_fullwidth_colon_tl + \__fdu_center_box:Vn \l__fdu_tmpb_dim { \l__fdu_tmpb_tl } + \skip_vertical:n { 1 ex } + } + \end{minipage} + } +\cs_new_protected:Npn \__fdu_cover_signature:N #1 + { + \clist_map_inline:Nn #1 + { + ##1 \c__fdu_fullwidth_colon_tl + \__fdu_blank_underline:n { 6 em } + \__fdu_quad: + } + } +\DeclareObjectType { fdu / cover } { \c_zero } +\NewDocumentCommand \DeclareCoverTemplate { m m } + { \fdu_cover_declare_template:nn {#1} {#2} } +\cs_new_protected:Npn \fdu_cover_declare_template:nn #1#2 + { + \tl_set:Nn \l__fdu_cover_template_tl {#1} + \__fdu_cover_declare_template_interface:nx {#1} + { + format : tokenlist, + top-skip : skip, + bottom-skip : skip, + \clist_map_function:nN {#2} \__fdu_cover_key_type:n + } + \tl_new:c { l__fdu_cover / #1 / format_tl } + \skip_new:c { l__fdu_cover / #1 / top_skip } + \skip_new:c { l__fdu_cover / #1 / bottom_skip } + \clist_map_inline:nn {#2} + { + \tl_new:c { l__fdu_cover / #1 / ##1 / content_tl } + \tl_new:c { l__fdu_cover / #1 / ##1 / format_tl } + \skip_new:c { l__fdu_cover / #1 / ##1 / bottom_skip } + } + \__fdu_cover_declare_template_code:nxn {#1} + { + format = \exp_not:c { l__fdu_cover / #1 / format_tl }, + top-skip = \use:c { l__fdu_cover / #1 / top_skip }, + bottom-skip = \use:c { l__fdu_cover / #1 / bottom_skip }, + \clist_map_function:nN {#2} \__fdu_cover_key_binding:n + } + { + \AssignTemplateKeys + \tl_use:c { l__fdu_cover / #1 / format_tl } + \__fdu_vspace:c { l__fdu_cover / #1 / top_skip } + \clist_map_inline:nn {#2} + { + \use:c { __fdu_cover / #1 / ####1 / align:n } + { + \tl_use:c { l__fdu_cover / #1 / ####1 / format_tl } + \tl_use:c { l__fdu_cover / #1 / ####1 / content_tl } + \par + } + \__fdu_vspace:c { l__fdu_cover / #1 / ####1 / bottom_skip } + } + \__fdu_vspace:c { l__fdu_cover / #1 / bottom_skip } + } + } +\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} } +\cs_new_protected:Npn \__fdu_cover_declare_template_code:nnn #1#2#3 + { \DeclareTemplateCode { fdu / cover } {#1} { \c_zero } {#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 + { + #1 / content : tokenlist, + #1 / format : tokenlist, + #1 / bottom-skip : skip, + #1 / align : choice { left, right, center, normal } = normal, + } +\cs_new:Npn \__fdu_cover_key_binding:n #1 + { + #1 / content = + \exp_not:c + { l__fdu_cover / \l__fdu_cover_template_tl / #1 / content_tl }, + #1 / format = + \exp_not:c + { l__fdu_cover / \l__fdu_cover_template_tl / #1 / format_tl }, + #1 / bottom-skip = + \exp_not:c + { l__fdu_cover / \l__fdu_cover_template_tl / #1 / bottom_skip }, + #1 / align = + { + left = + \exp_not:N \cs_set_protected:cpn + { __fdu_cover / \l__fdu_cover_template_tl / #1 / align:n } + \exp_not:n {##1} + { + \exp_not:n + { + \group_begin: + \flushleft ##1 \endflushleft + \group_end: + } + }, + right = + \exp_not:N \cs_set_protected:cpn + { __fdu_cover / \l__fdu_cover_template_tl / #1 / align:n } + \exp_not:n {##1} + { + \exp_not:n + { + \group_begin: + \flushright ##1 \endflushright + \group_end: + } + }, + center = + \exp_not:N \cs_set_protected:cpn + { __fdu_cover / \l__fdu_cover_template_tl / #1 / align:n } + \exp_not:n {##1} + { + \exp_not:n + { + \group_begin: + \center ##1 \endcenter + \group_end: + } + }, + normal = + \exp_not:N \cs_set_protected:cpn + { __fdu_cover / \l__fdu_cover_template_tl / #1 / align:n } + \exp_not:n {##1} + { \exp_not:n { \group_begin: ##1 \group_end: } } + }, + } +\NewDocumentCommand \makecoveri { } + { + \thispagestyle { empty } + \UseInstance { fdu / cover } { cover-i-default } + } +\NewDocumentCommand \makecoverii { } + { + \thispagestyle { empty } + \UseInstance { fdu / cover } { cover-ii-default } + } +\NewDocumentCommand \makecoveriii { } + { + \cleardoublepage + \thispagestyle { empty } + \UseInstance { fdu / cover } { cover-iii-default } + } +\DeclareCoverTemplate { cover-i } + { id, logo, type, degree, title, title-en, info } +\DeclareCoverTemplate { cover-ii } { title, name-list } +\DeclareCoverTemplate { cover-iii } + { + originality-decl-name, + originality-decl-text, + originality-decl-sig, + authorization-decl-name, + authorization-decl-text, + authorization-decl-sig + } +\DeclareInstance { fdu / cover } { cover-i-default } { cover-i } + { + format = + \__fdu_line_spread:N \c__fdu_line_spread_fp, + bottom-skip = 0 pt plus 1.5 fill, + id / content = \__fdu_cover_id:, + logo / content = \__fdu_cover_logo:, + type / content = \__fdu_cover_type:, + degree / content = \__fdu_cover_degree:, + title / content = + \__fdu_fixed_width_center_box:nn + { 0.9 \textwidth } { \l__fdu_info_title_tl }, + title-en / content = + \__fdu_fixed_width_center_box:nn + { 0.9 \textwidth } { \l__fdu_info_title_en_tl }, + info / content = \__fdu_cover_info:, + id / format = \zihao { -5 }, + type / format = \zihao { 2 }, + degree / format = \zihao { 4 }, + title / format = \zihao { -2 } \sffamily, + title-en / format = + \__fdu_line_spread:n { 1.2 } \zihao { 4 } \bfseries, + id / bottom-skip = 0 pt plus 1.6 fill, + logo / bottom-skip = 0 pt plus 0.3 fill, + type / bottom-skip = -18 pt, + degree / bottom-skip = 0 pt plus 0.8 fill, + title-en / bottom-skip = 0 pt plus 2.5 fill, + id / align = right, + logo / align = center, + type / align = center, + degree / align = center, + title / align = center, + title-en / align = center, + info / align = center, + } +\DeclareInstance { fdu / cover } { cover-ii-default } { cover-ii } + { + format = + \__fdu_line_spread:N \c__fdu_line_spread_fp, + title / content = + \__fdu_spread_box:nn { 7 em } { \c__fdu_name_instructors_tl }, + name-list / content = + \clist_use:Nn \l__fdu_info_instructors_clist { \par }, + title / format = \zihao { 2 } \sffamily, + name-list / format = \large, + title / align = center, + name-list / align = center, + } +\DeclareInstance { fdu / cover } { cover-iii-default } { cover-iii } + { + format = + \__fdu_line_spread:n { 1.8 } \dim_set:Nn \parindent { 2 \ccwd }, + top-skip = 0 pt plus 0.2 fill, + bottom-skip = 0 pt plus 2.5 fill, + originality-decl-name / content = \c__fdu_name_orig_decl_tl, + originality-decl-text / content = \c__fdu_orig_decl_text_tl, + originality-decl-sig / content = + \__fdu_cover_signature:N \c__fdu_orig_decl_sign_clist, + authorization-decl-name / content = \c__fdu_name_auth_decl_tl, + authorization-decl-text / content = \c__fdu_auth_decl_text_tl, + authorization-decl-sig / content = + \__fdu_cover_signature:N \c__fdu_auth_decl_sign_clist, + originality-decl-name / format = + \__fdu_line_spread:n { 1.2 } \zihao { -2 } \sffamily, + authorization-decl-name / format = + \__fdu_line_spread:n { 1.2 } \zihao { -2 } \sffamily, + originality-decl-name / bottom-skip = 0.4 cm, + originality-decl-text / bottom-skip = 0.4 cm, + originality-decl-sig / bottom-skip = 0 pt plus 2.5 fill, + authorization-decl-name / bottom-skip = 0.4 cm, + authorization-decl-text / bottom-skip = 0.4 cm, + originality-decl-name / align = center, + originality-decl-sig / align = right, + authorization-decl-name / align = center, + authorization-decl-sig / align = right, + } +\bool_new:N \l__fdu_auto_make_cover_bool +\keys_define:nn { fdu / style } + { + auto-make-cover .bool_set:N = \l__fdu_auto_make_cover_bool, + auto-make-cover .default:n = true + } +\AtBeginDocument + { + \bool_if:NT \l__fdu_auto_make_cover_bool + { + \begin{titlepage} + \makecoveri \newpage \makecoverii + \end{titlepage} + } + } +\AtEndDocument + { \bool_if:NT \l__fdu_auto_make_cover_bool { \makecoveriii } } +\tl_const:Nn \__fdu_chapter_toc_format: { \normalfont \sffamily } +\tl_const:Nn \__fdu_chapter_toc_en_format: { \bfseries } +\keys_set:nn { ctex } + { + contentsname = \c__fdu_name_toc_en_tl, + chapter / tocline = + { + \__fdu_chapter_toc_en_format: + \CTEXnumberline {#1} #2 + }, + section / tocline = + { + \bfseries + \CTEXnumberline {#1} #2 + }, + subsection / tocline = + { + \CTEXnumberline {#1} #2 + } + } +\__fdu_patch_cmd:Nnn \tableofcontents + { + \chapter*{\contentsname + \@mkboth{% + \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}% + } + { + \chapter* { \contentsname } + \fdu_front_matter_header:n { \c__fdu_name_toc_en_tl } + } +\__fdu_patch_cmd:Nnn \@starttoc + { \begingroup } + { + \begingroup + \__fdu_line_spread:N \c__fdu_line_spread_fp + } +\NewDocumentEnvironment { abstract } { } + { \__fdu_abstract_en_begin: } { \__fdu_abstract_en_end: } +\cs_new_protected:Npn \__fdu_abstract_en_begin: + { + \chapter* { \c__fdu_name_abstract_en_tl } + \fdu_front_matter_header:n { \c__fdu_name_abstract_en_tl } + \addcontentsline { toc } { chapter } + { + \__fdu_chapter_toc_en_format: + \c__fdu_name_abstract_en_tl + } + } +\cs_new_protected:Npn \__fdu_abstract_en_end: + { + \__fdu_keywords_par: + \textbf { \c__fdu_name_keywords_en_tl } \__fdu_quad: + \clist_use:Nn \l__fdu_info_keywords_en_clist { \__fdu_quad: } + \__fdu_clc_par: + \textbf { \c__fdu_name_clc_en_tl } \__fdu_quad: + \l__fdu_info_clc_tl + } +\cs_new:Npn \__fdu_keywords_par: + { + \par \mode_leave_vertical: \par + \noindent \hangindent = 4 em \hangafter = 1 + } +\cs_new:Npn \__fdu_clc_par: + { \par \noindent } +\NewDocumentEnvironment { notation } { O { l p { 7.5 cm } } } + { + \__fdu_notation_begin: + \group_begin: + \__fdu_notation_long_table_setup: + \longtable {#1} + } + { + \endlongtable + \group_end: + } +\cs_new_protected:Npn \__fdu_notation_begin: + { + \chapter* { \c__fdu_name_notation_en_tl } + \fdu_front_matter_header:n { \c__fdu_name_notation_en_tl } + \addcontentsline { toc } { chapter } + { + \__fdu_chapter_toc_en_format: + \c__fdu_name_notation_en_tl + } + } +\cs_new_protected:Npn \__fdu_notation_long_table_setup: + { + \tl_set:Nn \arraystretch { 1.3 } + \dim_set_eq:NN \LTpre \c_zero_dim + \dim_set_eq:NN \LTpost \c_zero_dim + } +\bool_new:N \l__fdu_bibtex_bool +\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 +\tl_new:N \l__fdu_bib_resource_tl +\keys_define:nn { fdu / style } + { + bib-backend .choice:, + bib-backend .value_required:n = true, + bib-backend / bibtex .code:n = + { \bool_set_true:N \l__fdu_bibtex_bool }, + bib-backend / biblatex .code:n = + { \bool_set_false:N \l__fdu_bibtex_bool }, + bib-style .choice:, + bib-style .value_required:n = true, + bib-style / numerical .code:n = + { + \tl_set:Nn \l__fdu_bib_gb_style_tl { numerical } + \tl_clear:N \l__fdu_bib_style_tl + }, + bib-style / author-year .code:n = + { + \tl_set:Nn \l__fdu_bib_gb_style_tl { author-year } + \tl_clear:N \l__fdu_bib_style_tl + }, + bib-style / unknown .code:n = + { \tl_set_eq:NN \l__fdu_bib_style_tl \l_keys_value_tl }, + cite-style .code:n = + { + \bool_if:NTF \l__fdu_bibtex_bool + { \__fdu_warning:n { cite-style-not-available } } + { \tl_set:Nn \l__fdu_cite_style_tl {#1} } + }, + bib-resource .tl_set:N = \l__fdu_bib_resource_tl + } +\__fdu_msg_new:nn { cite-style-not-available } + { Option~ "cite-style"~ is~ not~ available~ in~ BibTeX. } +\ctex_at_end_preamble:n + { + \bool_if:NTF \l__fdu_bibtex_bool + { + \RequirePackage [ sort & compress ] { natbib } + \__fdu_bibtex_setup: + \NewDocumentCommand \printbibliography { o } + { + \exp_args:NV \bibliography \l__fdu_bib_resource_tl + \IfValueT {#1} + { \__fdu_warning:nn { invalid-option-in-bibtex } {#1} } + } + } + { + \__fdu_biblatex_setup: + \RequirePackage [ backend = biber, hyperref = manual, natbib ] + { biblatex } + \exp_args:NV \addbibresource \l__fdu_bib_resource_tl + \__fdu_biblatex_allow_url_break: + \exp_args:Nnx \DefineBibliographyStrings { english } + { bibliography = { \c__fdu_name_bib_en_tl } } + } + } +\__fdu_msg_new:nn { invalid-option-in-bibtex } + { Option(s)~ "#1"~ are~ invalid~ in~ BibTeX. } +\cs_new:Npn \__fdu_bibtex_setup: + { + \tl_if_empty:NTF \l__fdu_bib_style_tl + { + \tl_if_eq:VnTF \l__fdu_bib_gb_style_tl { numerical } + { + \bibliographystyle { gbt7714-unsrt } + \__fdu_set_cite_style_numerical: + } + { + \tl_if_eq:VnT \l__fdu_bib_gb_style_tl { author-year } + { + \bibliographystyle { gbt7714-plain } + \__fdu_set_cite_style_author_year: + \cs_set_eq:NN \cite \citep + } + } + } + { \exp_args:NV \bibliographystyle \l__fdu_bib_style_tl } + } +\cs_new:Npn \__fdu_biblatex_setup: + { + \tl_if_empty:NTF \l__fdu_bib_style_tl + { + \tl_if_eq:VnTF \l__fdu_bib_gb_style_tl { numerical } + { \PassOptionsToPackage { style = gb7714-2015 } } + { + \tl_if_eq:VnT \l__fdu_bib_gb_style_tl { author-year } + { \PassOptionsToPackage { style = gb7714-2015ay } } + } + } + { \PassOptionsToPackage { style = \l__fdu_bib_style_tl } } + { biblatex } + \tl_if_empty:NF \l__fdu_cite_style_tl + { + \PassOptionsToPackage { citestyle = \l__fdu_bib_style_tl } + { biblatex } + } + } +\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 + } +\cs_new:Npn \__fdu_set_cite_style_numerical: + { + \NAT@numberstrue \NAT@supertrue + \cs_set:Npn \NAT@open { [ } + \cs_set:Npn \NAT@close { ] } + \cs_set:Npn \NAT@sep { ,~ } + } +\cs_new:Npn \__fdu_set_cite_style_author_year: + { + \NAT@numbersfalse + } +\cs_set:Npn \bibsection + { + \chapter* { \bibname } + \fdu_front_matter_header:n { \bibname } + \addcontentsline { toc } { chapter } + { \__fdu_chapter_toc_format: \bibname } + } +\NewDocumentCommand \hypersetup { m } + { \fdu_hyperref_setup:n {#1} } +\cs_new_protected:Npn \fdu_hyperref_setup:n #1 + { \clist_gput_right:Nn \g__fdu_to_hyperref_clist {#1} } +\cs_new:Npn \__fdu_set_hyperlink_color_key:n #1 + { + hyperlink-color / \clist_item:nn {#1} {1} .code:n = + { + \__fdu_define_hyperlink_color:nnn + { \clist_item:nn {#1} {2} } + { \clist_item:nn {#1} {3} } + { \clist_item:nn {#1} {4} } + \fdu_hyperref_setup:n + { + linkcolor = fdu@link, linkbordercolor = fdu@link, + urlcolor = fdu@url, urlbordercolor = fdu@url, + citecolor = fdu@cite, citebordercolor = fdu@cite + } + }, + } +\cs_new_protected:Npn \__fdu_define_hyperlink_color:nnn #1#2#3 + { + \definecolorset { HTML } { fdu@ } { } + { link, #1; url, #2; cite, #3 } + } +\keys_define:nx { fdu / style } + { + hyperlink .choice:, + hyperlink .value_required:n = true, + hyperlink / border .code:n = { }, + hyperlink / color .code:n = + { \fdu_hyperref_setup:n { colorlinks = true } }, + hyperlink / none .code:n = + { \fdu_hyperref_setup:n { hidelinks = true } }, + hyperlink-color .choice:, + hyperlink-color .value_required:n = true, + \clist_map_function:nN + { + { autumn, D70000, D75F00, AF8700 }, + { business, D14542, 295497, 1F6E43 }, + { classic, FF0000, 0000FF, 00FF00 }, + { default, 990000, 0000B2, 007F00 }, + { elegant, 961212, C31818, 9B764F }, + { fantasy, FF4A19, FF3F94, 934BA1 }, + { material, E91E63, 009688, 4CAF50 }, + { science, CA0619, 389F9D, FF8920 }, + { summer, 00AFAF, 5F5FAF, 5F8700 }, + { graylevel, 616161, 616161, 616161 }, + { prl, 2D3092, 2D3092, 2D3092 } + } + \__fdu_set_hyperlink_color_key:n + } +\cs_new:Npn \fdu_allow_url_break: + { + \cs_new:Npn \__fdu_add_url_break_points: + { \tl_map_function:NN \c__fdu_url_break_points_tl \do } + \__fdu_appto_cmd:Nn \UrlBreaks + { \UrlOrds \__fdu_add_url_break_points: } + } +\tl_const:Nn \c__fdu_url_break_points_tl + { + abcdefghijklmnopqrstuvwxyz + ABCDEFGHIJKLMNOPQRSTUVWXYZ + 0123456789 + } +\ctex_at_end_preamble:n + { + \RequirePackage { hyperref } + \hypersetup + { + bookmarksnumbered = true, + pdftitle = \l__fdu_info_title_en_tl, + pdfauthor = \l__fdu_info_author_en_tl, + pdfkeywords = \l__fdu_info_keywords_en_clist, + pdfcreator = \c__fdu_name_pdf_creator_tl + } + \exp_args:NV \hypersetup \g__fdu_to_hyperref_clist + \fdu_allow_url_break: + \bool_if:NF \l__fdu_bibtex_bool { \BiblatexManualHyperrefOn } + } +\ctex_at_end_package:nn { hyperref } + { + \pdfstringdefDisableCommands + { + \cs_set_eq:NN \fdu@kai \prg_do_nothing: + \cs_set_eq:NN \quad \c_space_tl + \cs_set_eq:NN \qquad \c_space_tl + } + } +\keys_define:nn { fdu } + { + info .meta:nn = { fdu / info } {#1}, + style .meta:nn = { fdu / style } {#1} + } +\keys_set:nn { fdu } + { + style / font = times, + style / font-size = -4, + style / auto-make-cover = true, + style / logo = { fudan-name.pdf }, + style / logo-size = { 0.5 \textwidth }, + style / hyperlink = color, + style / hyperlink-color = default, + style / bib-style = numerical, + info / degree = academic, + info / secret-level = none, + info / school-id = { 10246 }, + info / date = { \zhtoday }, + theorem / header-font = { \bfseries \upshape }, + theorem / body-font = { \itshape }, + theorem / counter = { chapter } + } +\NewDocumentCommand \fdusetup { m } + { \keys_set:nn { fdu } {#1} } +\newtheorem* { proof } { \c__fdu_name_proof_en_tl } +\newtheorem { axiom } { \c__fdu_name_axiom_en_tl } +\newtheorem { corollary } { \c__fdu_name_corollary_en_tl } +\newtheorem { definition } { \c__fdu_name_definition_en_tl } +\newtheorem { example } { \c__fdu_name_example_en_tl } +\newtheorem { lemma } { \c__fdu_name_lemma_en_tl } +\newtheorem { theorem } { \c__fdu_name_theorem_en_tl } +\endinput +%% +%% End of file `fduthesis-en.cls'. diff --git a/Master/texmf-dist/tex/latex/fduthesis/fduthesis.cls b/Master/texmf-dist/tex/latex/fduthesis/fduthesis.cls new file mode 100644 index 00000000000..f4028da0676 --- /dev/null +++ b/Master/texmf-dist/tex/latex/fduthesis/fduthesis.cls @@ -0,0 +1,1743 @@ +%% +%% This is file `fduthesis.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fduthesis.dtx (with options: `class') +%% +%% Copyright (C) 2017, 2018 by Xiangdong Zeng <xdzeng96@gmail.com> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3c 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 `maintained'. +%% +%% The Current Maintainer of this work is Xiangdong Zeng. +%% +%% This work consists of the files fduthesis.dtx, +%% fduthesis-doc.dtx, +%% fduthesis-logo.dtx, +%% fduthesis-template.tex, +%% and the derived files fduthesis.ins, +%% fduthesis.cls, +%% fduthesis-en.cls, +%% fduthesis.def, +%% fdudoc.cls, +%% fdulogo.sty, +%% fdulogo-example.tex, +%% fduthesis-cover.tex, +%% fduthesis-en.tex, +%% fduthesis.pdf, +%% fduthesis-en.pdf, +%% fduthesis-code.pdf, +%% latexmkrc, +%% latexmkrc-en, +%% and README.md. +%% +\NeedsTeXFormat{LaTeX2e} +\RequirePackage{expl3} +\GetIdInfo $Id: fduthesis.dtx 0.7a 2018-04-09 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 } + { } { \msg_error:nnn { fduthesis } { l3-too-old } {#1} } + } +\msg_new:nnn { fduthesis } { l3-too-old } + { + Package~ "#1"~ is~ too~ old. \\\\ + Please~ update~ an~ up-to-date~ version~ of~ the~ bundles \\ + "l3kernel"~ and~ "l3packages"~ using~ your~ TeX~ package \\ + manager~ or~ from~ CTAN. + } +\sys_if_engine_xetex:F + { + \sys_if_engine_luatex:F + { + \msg_fatal:nnx { fduthesis } { unsupported-engine } + { \c_sys_engine_str } + } + } +\msg_new:nnn { fduthesis } { unsupported-engine } + { + The~ fduthesis~ class~ requires~ either~ XeTeX~ or~ LuaTeX. \\\\ + "#1"~ is~ not~ supported~ at~ present.~ You~ must~ change \\ + your~ typesetting~ engine~ to~ "xelatex"~ or~ "lualatex". + } +\box_new:N \l__fdu_tmpa_box +\clist_new:N \l__fdu_tmpa_clist +\clist_new:N \l__fdu_tmpb_clist +\dim_new:N \l__fdu_tmpa_dim +\dim_new:N \l__fdu_tmpb_dim +\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 +\clist_new:N \g__fdu_to_ctexbook_clist +\clist_new:N \g__fdu_to_hyperref_clist +\bool_new:N \g__fdu_twoside_bool +\bool_set_true:N \g__fdu_twoside_bool +\bool_new:N \g__fdu_draft_bool +\tl_new:N \g__fdu_config_tl +\cs_generate_variant:Nn \cs_generate_variant:Nn { cn } +\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 \tl_map_inline:nn { xn } +\prg_generate_conditional_variant:Nnn \tl_if_eq:nn { Vn } { T, TF } +\cs_new:Npn \__fdu_quad: { \skip_horizontal:n { 1 em } } +\cs_new:Npn \__fdu_qquad: { \skip_horizontal:n { 2 em } } +\cs_new_protected:Npn \__fdu_vspace:N #1 + { + \dim_set_eq:NN \l__fdu_tmpa_dim \prevdepth + \hrule height \c_zero_dim + \nobreak + \skip_vertical:N #1 + \skip_vertical:N \c_zero_skip + \dim_set_eq:NN \prevdepth \l__fdu_tmpa_dim + } +\cs_new_protected:Npn \__fdu_vspace:n #1 + { + \skip_set:Nn \l__fdu_tmpa_skip {#1} + \__fdu_vspace:N \l__fdu_tmpa_skip + } +\cs_generate_variant:Nn \__fdu_vspace:N { c } +\cs_new:Npn \__fdu_symbol:n #1 { \tex_char:D #1 \scan_stop: } +\cs_new:Npn \__fdu_arabic:n #1 + { \int_to_arabic:v { c@ #1 } } +\cs_new_protected:Npn \__fdu_patch_cmd:Nnn #1#2#3 + { + \ctex_patch_cmd_once:NnnnTF #1 { } {#2} {#3} + { } { \ctex_patch_failure:N #1 } + } +\cs_new_protected:Npn \__fdu_appto_cmd:Nn #1#2 + { + \ctex_appto_cmd:NnnTF #1 { } {#2} + { } { \ctex_patch_failure:N #1 } + } +\cs_new_protected:Npn \__fdu_define_fn_style:nn #1#2 + { \tl_const:cn { c__fdu_fn_style_ #1 _tl } {#2} } +\cs_new_protected:Npn \__fdu_define_punct:nn #1#2 + { \tl_const:cn { c__fdu_ #1 _tl } { \__fdu_symbol:n {#2} } } +\cs_new_protected:Npn \__fdu_define_name:nn #1#2 + { \tl_const:cn { c__fdu_name_ #1 _tl } {#2} } +\cs_new_protected:Npn \__fdu_define_name:nnn #1#2#3 + { + \tl_const:cn { c__fdu_name_ #1 _tl } {#2} + \tl_const:cn { c__fdu_name_ #1 _en_tl } {#3} + } +\cs_new:Npn \__fdu_msg_new:nn { \msg_new:nnn { fduthesis } } +\cs_new:Npn \__fdu_error:n { \msg_error:nn { fduthesis } } +\cs_new:Npn \__fdu_error:nn { \msg_error:nnn { fduthesis } } +\cs_new:Npn \__fdu_error:nx { \msg_error:nnx { fduthesis } } +\cs_new:Npn \__fdu_error:nnn { \msg_error:nnnn { fduthesis } } +\cs_new:Npn \__fdu_warning:n { \msg_warning:nn { fduthesis } } +\cs_new:Npn \__fdu_warning:nn { \msg_warning:nnn { fduthesis } } +\cs_new:Npn \__fdu_warning:nxx { \msg_warning:nnxx { fduthesis } } +\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 }, + type .initial:n = bachelor, + oneside .value_forbidden:n = true, + twoside .value_forbidden:n = true, + oneside .code:n = + { + \clist_gput_right:Nn \g__fdu_to_ctexbook_clist { oneside } + \bool_set_false:N \g__fdu_twoside_bool + }, + twoside .code:n = + { + \clist_gput_right:Nn \g__fdu_to_ctexbook_clist { twoside } + \bool_set_true:N \g__fdu_twoside_bool + }, + draft .choice:, + draft / true .code:n = + { + \bool_set_true:N \g__fdu_draft_bool + \clist_gput_right:Nn \g__fdu_to_ctexbook_clist { draft } + }, + draft / false .code:n = + { \bool_set_false:N \g__fdu_draft_bool }, + draft .default:n = true, + draft .initial:n = false, + config .tl_set:N = \g__fdu_config_tl, + unknown .code:n = { \__fdu_error:n { unknown-option } } + } +\__fdu_msg_new:nn { unknown-option } + { Class~ option~ "\l_keys_key_tl"~ is~ unknown. } +\ProcessKeysOptions { fdu / option } +\file_input:n { fduthesis.def } +\tl_if_empty:NF \g__fdu_config_tl + { + \file_input:V \g__fdu_config_tl + \__fdu_info:nx { load-config-file } { \g__fdu_config_tl } + } +\__fdu_msg_new:nn { load-config-file } + { You~ are~ loading~ config~ file~ '#1'. } +\PassOptionsToClass + { + UTF8, + heading = true, + fontset = none, + zihao = -4, + linespread = \c__fdu_line_spread_fp, + \g__fdu_to_ctexbook_clist + } + { ctexbook } +\clist_map_inline:nn + { + { no-math } { fontspec }, + { perpage } { footmisc }, + { amsmath, thmmarks } { ntheorem } + } + { \PassOptionsToPackage #1 } +\RequirePackage { etoolbox } +\LoadClass { ctexbook } +\RequirePackage + { + amsmath, + unicode-math, + geometry, + fancyhdr, + footmisc, + ntheorem, + graphicx, + longtable, + caption, + xcolor + } +\cs_new_protected:Npn \__fdu_check_package:nnn #1#2#3 + { + \@ifpackagelater {#1} {#2} + { } { \__fdu_error:nnn { package-too-old } {#1} {#3} } + } +\__fdu_msg_new:nn { package-too-old } + { + Package~ "#1"~ is~ too~ old. \\ + The~ fduthesis~ class~ only~ supports~ "#1"~ with~ a~ version \\ + higher~ than~ v#2. \\\\ + Please~ update~ an~ up-to-date~ version~ of~ it~ using~ your \\ + TeX~ package~ manager~ or~ from~ CTAN. + } +\__fdu_check_package:nnn { ctex } { 2017/08/07 } { 2.4.10 } +\__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 } } +\geometry + { + paper = a4paper, + vmargin = 2.54 cm, + hmargin = 3.18 cm, + 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 +\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} { } } + } +\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 + { + \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 + { + \prop_gput:Nnn \g__fdu_cjk_font_name_prop {#1} {#2} + \prop_gput:Nnn \g__fdu_cjk_font_options_prop {#1} {#3} + } +\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_protected:Npn \__fdu_set_font: + { + \clist_map_inline:nn { main, sans, mono, math } + { + \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 + } + } +\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 { rm, sf, tt, kai } + { + \use:c { __fdu_parse_cjk_ ##1 _font: } + \__fdu_check_cjk_font:n {##1} + \__fdu_set_cjk_font_aux:n {##1} + } + \clist_map_inline:nn { song, hei, fang } + { + \prop_gremove:Nn \g__fdu_cjk_font_name_prop {##1} + \prop_gremove:Nn \g__fdu_cjk_font_options_prop {##1} + } + } +\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_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 } + } + } +\cs_new_protected:Npn \__fdu_parse_cjk_sf_font: + { + \prop_get:NnNF \g__fdu_cjk_font_name_prop + { sf } \l__fdu_font_name_tl + { + \__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 } + } + } +\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_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 } + } + } +\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 + { + BoldFont = \l__fdu_font_name_tl, + ItalicFont = \l__fdu_font_name_tl, + BoldItalicFont = \l__fdu_font_name_tl + } + \__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 + } +\cs_new_protected:Npn \__fdu_get_cjk_kai_font: + { + \prop_get:NnN \g__fdu_cjk_font_name_prop { kai } + \l__fdu_tmpa_tl + \clist_put_right:Nx \l__fdu_font_options_clist + { + ItalicFont = \l__fdu_tmpa_tl, + BoldItalicFont = \l__fdu_tmpa_tl + } + } +\cs_new_protected:Npn \__fdu_set_cjk_font_options:n #1 + { + \prop_put:NnV \g__fdu_cjk_font_options_prop {#1} + \l__fdu_font_options_clist + } +\cs_new_protected:Npn \__fdu_check_cjk_font:n #1 + { + \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} } + } +\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 + { + \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_msg_new:nn { font-not-defined } + { + \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_msg_new:nn { cjk-font-not-defined } + { + 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. + } +\sys_if_engine_xetex:T + { + \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 } + } +\ctex_at_end_preamble:n + { + \__fdu_set_font: + \__fdu_set_cjk_font: + } +\sys_if_engine_xetex:TF + { + \prg_new_protected_conditional:Npnn + \fdu_family_if_exist:n #1 { TF } + { + \xeCJK_family_if_exist:nTF {#1} + { \prg_return_true: } { \prg_return_false: } + } + } + { + \sys_if_engine_luatex:T + { + \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: } + } + } + } +\cs_new_protected:Npx \fdu_cjk_font_kai: + { + \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 } } + } +\cs_new_eq:NN \fdu@kai \fdu_cjk_font_kai: +\keys_set:nn { unicode-math } + { + math-style = ISO, + bold-style = ISO, + } +\keys_define:nn { fdu / style } + { + font-size .choice:, + font-size .value_required:n = true, + font-size / -4 .code:n = { }, + font-size / 5 .code:n = + { + \RenewDocumentCommand \tiny { } { \zihao { 7 } } + \RenewDocumentCommand \scriptsize { } { \zihao { -6 } } + \RenewDocumentCommand \footnotesize { } { \zihao { 6 } } + \RenewDocumentCommand \small { } { \zihao { -5 } } + \RenewDocumentCommand \normalsize { } { \zihao { 5 } } + \RenewDocumentCommand \large { } { \zihao { -4 } } + \RenewDocumentCommand \Large { } { \zihao { -3 } } + \RenewDocumentCommand \LARGE { } { \zihao { -2 } } + \RenewDocumentCommand \huge { } { \zihao { 2 } } + \RenewDocumentCommand \Huge { } { \zihao { 1 } } + }, + fullwidth-stop .choice:, + fullwidth-stop .value_required:n = true, + fullwidth-stop / catcode .code:n = + { \__fdu_set_fullwidth_stop_catcode: }, + fullwidth-stop / mapping .code:n = + { + \sys_if_engine_xetex:TF + { + \clist_gset:Nn \g__xeCJK_default_features_clist + { Mapping = fullwidth-stop } + } + { + \sys_if_engine_luatex:T + { + \__fdu_warning:n { mapping-not-available } + \__fdu_set_fullwidth_stop_catcode: + } + } + }, + fullwidth-stop / false .code:n = { } + } +\__fdu_msg_new:nn { mapping-not-available } + { + Option~ "fullwidth-stop = mapping"~ is~ not~ available~ in~ LuaTeX. \\ + "fullwidth-stop = catcode"~ will~ be~ set~ instead. + } +\cs_new:Npn \__fdu_set_fullwidth_stop_catcode: + { + \char_set_active_eq:nN { "3002 } \c__fdu_fullwidth_full_stop_tl + \char_set_catcode_active:n { "3002 } + } +\keys_set:nn { ctex } + { + chapter = + { + format = \huge \normalfont \sffamily \centering, + beforeskip = 50 pt, + afterskip = 40 pt, + number = \__fdu_arabic:n { chapter }, + fixskip = true + }, + section = + { + format = \Large \normalfont \sffamily \raggedright, + beforeskip = 3.5 ex plus 1.0 ex minus 0.2 ex, + afterskip = 2.7 ex plus 0.5 ex, + fixskip = true + }, + subsection = + { + format = \large \normalfont \sffamily \raggedright, + beforeskip = 3.25 ex plus 1.0 ex minus 0.2 ex, + afterskip = 2.5 ex plus 0.3 ex, + fixskip = true + } + } +\fancyhf { } +\tl_new:N \l__fdu_header_center_mark_tl +\bool_if:NTF \g__fdu_twoside_bool + { + \fancyhead [ EL ] { \small \nouppercase { \fdu@kai \leftmark } } + \fancyhead [ OR ] { \small \nouppercase { \fdu@kai \rightmark } } + } + { + \fancyhead [ L ] { \small \nouppercase { \fdu@kai \leftmark } } + \fancyhead [ R ] { \small \nouppercase { \fdu@kai \rightmark } } + \fancyhead [ C ] + { + \small \nouppercase + { \fdu@kai \l__fdu_header_center_mark_tl } + } + } +\fancyfoot [ C ] { \small \thepage } +\cs_new:Npn \fdu_front_matter_header:n #1 + { + \bool_if:NTF \g__fdu_twoside_bool + { \markboth {#1} {#1} } + { + \markboth { } { } + \tl_gset:Nn \l__fdu_header_center_mark_tl {#1} + } + } +\RenewDocumentCommand \cleardoublepage { } + { + \clearpage + \bool_if:NT \g__fdu_twoside_bool + { + \int_if_odd:nF \c@page + { \hbox:n { } \thispagestyle { empty } \newpage } + } + \tl_gset:Nn \l__fdu_header_center_mark_tl { } + } +\pagestyle { fancy } +\clist_map_inline:nn + { + { plain } { plain }, + { libertinus } { libertinus }, + { libertinus_neg } { libertinus* }, + { libertinus_sans } { libertinus-sans }, + { pifont } { pifont }, + { pifont_neg } { pifont* }, + { pifont_sans } { pifont-sans }, + { pifont_sans_neg } { pifont-sans* }, + { xits } { xits }, + { xits_sans } { xits-sans }, + { xits_sans_neg } { xits-sans* } + } + { \__fdu_define_fn_style:nn #1 } +\tl_new:N \l__fdu_fn_style_tl +\keys_define:nn { fdu / style } + { + footnote-style .choices:nn = + { + plain, + libertinus, libertinus*, libertinus-sans, + pifont, pifont*, pifont-sans, pifont-sans*, + xits, xits-sans, xits-sans* + } + { + \tl_gset_eq:NN \l__fdu_fn_style_tl \l_keys_choice_tl + \int_compare:nT { 5 <= \l_keys_choice_int <= 8 } + { \RequirePackage { pifont } } + }, + footnote-style .value_required:n = true + } +\cs_new:Npn \__fdu_fn_symbol_libertinus:n #1 + { + \int_compare:nTF { #1 >= 21 } + { + \int_compare:nTF { #1 >= 47 } + { \__fdu_symbol:n { \int_eval:n { "24B6 - 47 + #1 } } } + { \__fdu_symbol:n { \int_eval:n { "24D0 - 21 + #1 } } } + } + { \__fdu_symbol:n { \int_eval:n { "2460 - 1 + #1 } } } + } +\cs_new:Npn \__fdu_fn_symbol_libertinus_neg:n #1 + { + \int_compare:nTF { #1 >= 11 } + { \__fdu_symbol:n { \int_eval:n { "24EB - 11 + #1 } } } + { \__fdu_symbol:n { \int_eval:n { "2776 - 1 + #1 } } } + } +\cs_new_eq:NN \__fdu_fn_symbol_libertinus_sans:n + \__fdu_fn_symbol_libertinus:n +\cs_new:Npn \__fdu_fn_symbol_pifont:n #1 + { \ding { \int_eval:n { 171 + #1 } } } +\cs_new:Npn \__fdu_fn_symbol_pifont_neg:n #1 + { \ding { \int_eval:n { 181 + #1 } } } +\cs_new:Npn \__fdu_fn_symbol_pifont_sans:n #1 + { \ding { \int_eval:n { 191 + #1 } } } +\cs_new:Npn \__fdu_fn_symbol_pifont_sans_neg:n #1 + { \ding { \int_eval:n { 201 + #1 } } } +\cs_new:Npn \__fdu_fn_symbol_xits:n #1 + { + \int_compare:nTF { #1 >= 10 } + { + \int_compare:nTF { #1 >= 36 } + { \__fdu_symbol:n { \int_eval:n { "24B6 - 36 + #1 } } } + { \__fdu_symbol:n { \int_eval:n { "24D0 - 10 + #1 } } } + } + { \__fdu_symbol:n { \int_eval:n { "2460 - 1 + #1 } } } + } +\cs_new:Npn \__fdu_fn_symbol_xits_sans:n #1 + { \__fdu_symbol:n { \int_eval:n { "2780 - 1 + #1 } } } +\cs_new:Npn \__fdu_fn_symbol_xits_sans_neg:n #1 + { \__fdu_symbol:n { \int_eval:n { "278A - 1 + #1 } } } +\cs_set:Npn \thefootnote { \fdu_footnote_number:N \c@footnote } +\cs_new:Npn \fdu_footnote_number:N #1 + { + \tl_case:NnF \l__fdu_fn_style_tl + { + \c__fdu_fn_style_plain_tl + { \int_use:N #1 } + \c__fdu_fn_style_libertinus_tl + { + \fontspec { Libertinus~ Serif } + \__fdu_fn_symbol_libertinus:n {#1} + } + \c__fdu_fn_style_libertinus_neg_tl + { + \fontspec { Libertinus~ Serif } + \__fdu_fn_symbol_libertinus_neg:n {#1} + } + \c__fdu_fn_style_libertinus_sans_tl + { + \fontspec { Libertinus~ Sans } + \__fdu_fn_symbol_libertinus_sans:n {#1} + } + \c__fdu_fn_style_pifont_tl + { \__fdu_fn_symbol_pifont:n {#1} } + \c__fdu_fn_style_pifont_neg_tl + { \__fdu_fn_symbol_pifont_neg:n {#1} } + \c__fdu_fn_style_pifont_sans_tl + { \__fdu_fn_symbol_pifont_sans:n {#1} } + \c__fdu_fn_style_pifont_sans_neg_tl + { \__fdu_fn_symbol_pifont_sans_neg:n {#1} } + \c__fdu_fn_style_xits_tl + { + \fontspec { XITS } + \__fdu_fn_symbol_xits:n {#1} + } + \c__fdu_fn_style_xits_sans_tl + { + \fontspec { XITS } + \__fdu_fn_symbol_xits_sans:n {#1} + } + \c__fdu_fn_style_xits_sans_neg_tl + { + \fontspec { XITS } + \__fdu_fn_symbol_xits_sans_neg:n {#1} + } + } + { \int_use:N #1 } + } +\cs_set:Npn \@makefntext #1 + { + \mode_leave_vertical: + \hbox_to_wd:nn { 1.5 em } { \@thefnmark \hfil } + #1 + } +\clist_const:Nn \c__fdu_thm_style_plain_clist + { plain, margin, change } +\clist_const:Nn \c__fdu_thm_style_break_clist + { break, marginbreak, changebreak } +\tl_new:N \l__fdu_thm_style_tl +\tl_new:N \l__fdu_thm_header_font_tl +\tl_new:N \l__fdu_thm_body_font_tl +\tl_new:N \l__fdu_thm_qed_tl +\tl_new:N \l__fdu_thm_counter_tl +\keys_define:nn { fdu / theorem } + { + style .tl_set:N = \l__fdu_thm_style_tl, + header-font .tl_set:N = \l__fdu_thm_header_font_tl, + body-font .tl_set:N = \l__fdu_thm_body_font_tl, + qed .tl_set:N = \l__fdu_thm_qed_tl, + counter .tl_set:N = \l__fdu_thm_counter_tl + } +\cs_new_eq:NN \__fdu_thm_ntheorem_style:n \theoremstyle +\cs_new_eq:NN \__fdu_thm_ntheorem_new:w \newtheorem +\RenewDocumentCommand \newtheorem { s o m m } + { + \IfBooleanTF {#1} + { \tl_set:Nn \l__fdu_thm_qed_tl { \ensuremath { \QED } } } + { \tl_set:Nn \l__fdu_thm_qed_tl { } } + \tl_set:Nn \l__fdu_thm_style_tl { plain } + \IfValueT {#2} { \keys_set:nn { fdu / theorem } {#2} } + \fdu_thm_set_header_font:V \l__fdu_thm_header_font_tl + \fdu_thm_set_body_font:V \l__fdu_thm_body_font_tl + \fdu_thm_set_qed:V \l__fdu_thm_qed_tl + \IfBooleanTF {#1} + { + \clist_if_in:nVF { plain, break } \l__fdu_thm_style_tl + { + \clist_if_in:NVTF + \c__fdu_thm_style_plain_clist \l__fdu_thm_style_tl + { \__fdu_thm_redefine_style:n { plain } } + { + \clist_if_in:NVTF + \c__fdu_thm_style_break_clist \l__fdu_thm_style_tl + { \__fdu_thm_redefine_style:n { break } } + { + \__fdu_error:nx { unknown-theorem-style } + { \l__fdu_thm_style_tl } + } + } + } + \tl_put_left:Nn \l__fdu_thm_style_tl { nonumber } + \fdu_thm_new_no_number:Vxx \l__fdu_thm_style_tl {#3} {#4} + } + { + \clist_clear:N \l__fdu_tmpa_clist + \clist_concat:NNN \l__fdu_tmpa_clist + \c__fdu_thm_style_plain_clist \c__fdu_thm_style_break_clist + \clist_if_in:NVF \l__fdu_tmpa_clist \l__fdu_thm_style_tl + { + \__fdu_error:nx { unknown-theorem-style } + { \l__fdu_thm_style_tl } + } + \fdu_thm_new:VVxx \l__fdu_thm_style_tl \l__fdu_thm_counter_tl + {#3} {#4} + } + } +\cs_new:Npn \__fdu_thm_redefine_style:n #1 + { + \__fdu_warning:nxx { redefine-theorem-style } + {#1} { \l__fdu_thm_style_tl } + \tl_set:Nn \l__fdu_thm_style_tl {#1} + } +\__fdu_msg_new:nn { redefine-theorem-style } + { Theorem~ style~ "#2"~ will~ be~ redefined~ as~ "#1". } +\__fdu_msg_new:nn { unknown-theorem-style } + { Theorem~ style~ "#1"~ is~ unknown. } +\cs_new:Npn \fdu_thm_new:nnnn #1#2#3#4 + { + \__fdu_thm_ntheorem_style:n {#1} + \__fdu_thm_ntheorem_new:w {#3} {#4} [#2] + } +\cs_generate_variant:Nn \fdu_thm_new:nnnn { VVxx } +\cs_new:Npn \fdu_thm_new_no_number:nnn #1#2#3 + { + \__fdu_thm_ntheorem_style:n {#1} + \__fdu_thm_ntheorem_new:w {#2} {#3} + } +\cs_generate_variant:Nn \fdu_thm_new_no_number:nnn { Vxx } +\cs_new:Npn \fdu_thm_set_qed:n #1 { \theoremsymbol {#1} } +\cs_new:Npn \fdu_thm_set_header_font:n #1 { \theoremheaderfont {#1} } +\cs_new:Npn \fdu_thm_set_body_font:n #1 { \theorembodyfont {#1} } +\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 + } +\cs_set:Npn \thefigure + { \__fdu_arabic:n { chapter } - \__fdu_arabic:n { figure } } +\cs_set:Npn \thetable + { \__fdu_arabic:n { chapter } - \__fdu_arabic:n { table } } +\clist_map_inline:nn + { + title, date, author, supervisor, department, major, student_id, + school_id, clc + } + { \tl_new:c { l__fdu_info_ #1 _tl } } +\clist_new:N \l__fdu_info_instructors_clist +\clist_new:N \l__fdu_info_keywords_clist +\clist_map_inline:nn + { 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 +\keys_define:nn { fdu / info } + { + degree .choices:nn = + { academic, professional } + { \int_set_eq:NN \l__fdu_info_degree_type_int \l_keys_choice_int }, + title .tl_set:N = \l__fdu_info_title_tl, + title* .tl_set:N = \l__fdu_info_title_en_tl, + date .tl_set:N = \l__fdu_info_date_tl, + author .tl_set:N = \l__fdu_info_author_tl, + author* .tl_set:N = \l__fdu_info_author_en_tl, + supervisor .tl_set:N = \l__fdu_info_supervisor_tl, + instructors .clist_set:N = \l__fdu_info_instructors_clist, + department .tl_set:N = \l__fdu_info_department_tl, + major .tl_set:N = \l__fdu_info_major_tl, + student-id .tl_set:N = \l__fdu_info_student_id_tl, + school-id .tl_set:N = \l__fdu_info_school_id_tl, + keywords .clist_set:N = \l__fdu_info_keywords_clist, + keywords* .clist_set:N = \l__fdu_info_keywords_en_clist, + clc .tl_set:N = \l__fdu_info_clc_tl + } +\tl_new:N \l__fdu_cover_logo_tl +\clist_new:N \l__fdu_cover_logo_size_clist +\keys_define:nn { fdu / style } + { + 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 } + }, + secret-level .value_required:n = true, + secret-year .tl_set:N = \l__fdu_info_secret_year_tl + } +\cs_new_protected:Npn \__fdu_spread_box:nn #1#2 + { + \mode_leave_vertical: + \hbox_to_wd:nn {#1} + { \tl_map_inline:xn {#2} { ##1 \hfil } \unskip } + } +\cs_new_protected:Npn \__fdu_center_box:nn #1#2 + { + \mode_leave_vertical: + \hbox_to_wd:nn {#1} { \hfil #2 \hfil } + } +\cs_generate_variant:Nn \__fdu_center_box:nn { Vn } +\cs_new:Npn \__fdu_fixed_width_box:nn #1#2 + { \parbox {#1} {#2} } +\cs_new:Npn \__fdu_fixed_width_center_box:nn #1#2 + { \parbox {#1} { \centering #2 } } +\cs_new:Npn \__fdu_get_text_width:Nn #1#2 + { + \hbox_set:Nn \l__fdu_tmpa_box {#2} + \dim_set:Nn #1 { \box_wd:N \l__fdu_tmpa_box } + } +\cs_generate_variant:Nn \__fdu_get_text_width:Nn { NV } +\cs_new:Npn \__fdu_get_max_text_width:NN #1#2 + { + \group_begin: + \clist_set_eq:NN \l__fdu_tmpa_clist #2 + \bool_until_do:nn { \clist_if_empty_p:N \l__fdu_tmpa_clist } + { + \clist_pop:NN \l__fdu_tmpa_clist \l__fdu_tmpa_tl + \__fdu_get_text_width:NV \l__fdu_tmpa_dim \l__fdu_tmpa_tl + \dim_gset:Nn #1 { \dim_max:nn {#1} { \l__fdu_tmpa_dim } } + } + \group_end: + } +\cs_new:Npn \__fdu_blank_underline:n #1 + { \rule [ -0.5 ex ] {#1} { 0.4 pt } } +\cs_new:Npn \__fdu_line_spread:N #1 + { \linespread { \fp_use:N #1 } \selectfont } +\cs_new:Npn \__fdu_line_spread:n #1 + { \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 } { } + } +\cs_new:Npn \__fdu_cover_id_aux:n #1 + { + \tl_use:c { c__fdu_name_ #1 _tl } + \c__fdu_fullwidth_colon_tl + \tl_use:c { l__fdu_info_ #1 _tl } + } +\cs_new_protected:Npn \__fdu_cover_logo: + { + \clist_pop:NN \l__fdu_cover_logo_size_clist \l__fdu_tmpa_tl + \clist_pop:NNTF \l__fdu_cover_logo_size_clist \l__fdu_tmpb_tl + { + \tl_if_empty:NTF \l__fdu_tmpa_tl + { \includegraphics [ height = \l__fdu_tmpb_tl ] } + { + \includegraphics + [ width = \l__fdu_tmpa_tl, height = \l__fdu_tmpb_tl ] + } + } + { \includegraphics [ width = \l__fdu_tmpa_tl ] } + { \l__fdu_cover_logo_tl } + } +\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 } + } + \__fdu_spread_box:nn { 0.45 \textwidth } { \l__fdu_tmpa_tl } + } +\cs_new_protected:Npn \__fdu_cover_degree: + { + \int_compare:nNnT \g__fdu_thesis_type_int = \c_two + { + \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 + \c__fdu_fullwidth_right_paren_tl + } + } +\cs_new_protected:Npn \__fdu_cover_info: + { + \begin{minipage} [ c ] { \textwidth } + \centering \zihao { 4 } + \clist_set:Nx \l__fdu_tmpa_clist + { + \c__fdu_name_department_tl, + \c__fdu_name_major_tl, + \c__fdu_name_author_tl, + \c__fdu_name_supervisor_tl, + \c__fdu_name_date_tl, + } + \clist_set:Nx \l__fdu_tmpb_clist + { + { \l__fdu_info_department_tl }, + { \l__fdu_info_major_tl }, + { \l__fdu_info_author_tl }, + { \l__fdu_info_supervisor_tl }, + { \l__fdu_info_date_tl } + } + \__fdu_get_max_text_width:NN \l__fdu_tmpb_dim \l__fdu_tmpb_clist + \bool_until_do:nn + { \clist_if_empty_p:N \l__fdu_tmpa_clist } + { + \clist_pop:NN \l__fdu_tmpa_clist \l__fdu_tmpa_tl + \clist_pop:NN \l__fdu_tmpb_clist \l__fdu_tmpb_tl + \__fdu_spread_box:nn { 6 em } { \l__fdu_tmpa_tl } + \c__fdu_fullwidth_colon_tl + \__fdu_center_box:Vn \l__fdu_tmpb_dim { \l__fdu_tmpb_tl } + \skip_vertical:n { 1 ex } + } + \end{minipage} + } +\cs_new_protected:Npn \__fdu_cover_signature:N #1 + { + \clist_map_inline:Nn #1 + { + ##1 \c__fdu_fullwidth_colon_tl + \__fdu_blank_underline:n { 6 em } + \__fdu_quad: + } + } +\DeclareObjectType { fdu / cover } { \c_zero } +\NewDocumentCommand \DeclareCoverTemplate { m m } + { \fdu_cover_declare_template:nn {#1} {#2} } +\cs_new_protected:Npn \fdu_cover_declare_template:nn #1#2 + { + \tl_set:Nn \l__fdu_cover_template_tl {#1} + \__fdu_cover_declare_template_interface:nx {#1} + { + format : tokenlist, + top-skip : skip, + bottom-skip : skip, + \clist_map_function:nN {#2} \__fdu_cover_key_type:n + } + \tl_new:c { l__fdu_cover / #1 / format_tl } + \skip_new:c { l__fdu_cover / #1 / top_skip } + \skip_new:c { l__fdu_cover / #1 / bottom_skip } + \clist_map_inline:nn {#2} + { + \tl_new:c { l__fdu_cover / #1 / ##1 / content_tl } + \tl_new:c { l__fdu_cover / #1 / ##1 / format_tl } + \skip_new:c { l__fdu_cover / #1 / ##1 / bottom_skip } + } + \__fdu_cover_declare_template_code:nxn {#1} + { + format = \exp_not:c { l__fdu_cover / #1 / format_tl }, + top-skip = \use:c { l__fdu_cover / #1 / top_skip }, + bottom-skip = \use:c { l__fdu_cover / #1 / bottom_skip }, + \clist_map_function:nN {#2} \__fdu_cover_key_binding:n + } + { + \AssignTemplateKeys + \tl_use:c { l__fdu_cover / #1 / format_tl } + \__fdu_vspace:c { l__fdu_cover / #1 / top_skip } + \clist_map_inline:nn {#2} + { + \use:c { __fdu_cover / #1 / ####1 / align:n } + { + \tl_use:c { l__fdu_cover / #1 / ####1 / format_tl } + \tl_use:c { l__fdu_cover / #1 / ####1 / content_tl } + \par + } + \__fdu_vspace:c { l__fdu_cover / #1 / ####1 / bottom_skip } + } + \__fdu_vspace:c { l__fdu_cover / #1 / bottom_skip } + } + } +\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} } +\cs_new_protected:Npn \__fdu_cover_declare_template_code:nnn #1#2#3 + { \DeclareTemplateCode { fdu / cover } {#1} { \c_zero } {#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 + { + #1 / content : tokenlist, + #1 / format : tokenlist, + #1 / bottom-skip : skip, + #1 / align : choice { left, right, center, normal } = normal, + } +\cs_new:Npn \__fdu_cover_key_binding:n #1 + { + #1 / content = + \exp_not:c + { l__fdu_cover / \l__fdu_cover_template_tl / #1 / content_tl }, + #1 / format = + \exp_not:c + { l__fdu_cover / \l__fdu_cover_template_tl / #1 / format_tl }, + #1 / bottom-skip = + \exp_not:c + { l__fdu_cover / \l__fdu_cover_template_tl / #1 / bottom_skip }, + #1 / align = + { + left = + \exp_not:N \cs_set_protected:cpn + { __fdu_cover / \l__fdu_cover_template_tl / #1 / align:n } + \exp_not:n {##1} + { + \exp_not:n + { + \group_begin: + \flushleft ##1 \endflushleft + \group_end: + } + }, + right = + \exp_not:N \cs_set_protected:cpn + { __fdu_cover / \l__fdu_cover_template_tl / #1 / align:n } + \exp_not:n {##1} + { + \exp_not:n + { + \group_begin: + \flushright ##1 \endflushright + \group_end: + } + }, + center = + \exp_not:N \cs_set_protected:cpn + { __fdu_cover / \l__fdu_cover_template_tl / #1 / align:n } + \exp_not:n {##1} + { + \exp_not:n + { + \group_begin: + \center ##1 \endcenter + \group_end: + } + }, + normal = + \exp_not:N \cs_set_protected:cpn + { __fdu_cover / \l__fdu_cover_template_tl / #1 / align:n } + \exp_not:n {##1} + { \exp_not:n { \group_begin: ##1 \group_end: } } + }, + } +\NewDocumentCommand \makecoveri { } + { + \thispagestyle { empty } + \UseInstance { fdu / cover } { cover-i-default } + } +\NewDocumentCommand \makecoverii { } + { + \thispagestyle { empty } + \UseInstance { fdu / cover } { cover-ii-default } + } +\NewDocumentCommand \makecoveriii { } + { + \cleardoublepage + \thispagestyle { empty } + \UseInstance { fdu / cover } { cover-iii-default } + } +\DeclareCoverTemplate { cover-i } + { id, logo, type, degree, title, title-en, info } +\DeclareCoverTemplate { cover-ii } { title, name-list } +\DeclareCoverTemplate { cover-iii } + { + originality-decl-name, + originality-decl-text, + originality-decl-sig, + authorization-decl-name, + authorization-decl-text, + authorization-decl-sig + } +\DeclareInstance { fdu / cover } { cover-i-default } { cover-i } + { + bottom-skip = 0 pt plus 1.5 fill, + id / content = \__fdu_cover_id:, + logo / content = \__fdu_cover_logo:, + type / content = \__fdu_cover_type:, + degree / content = \__fdu_cover_degree:, + title / content = + \__fdu_fixed_width_center_box:nn + { 0.9 \textwidth } { \l__fdu_info_title_tl }, + title-en / content = + \__fdu_fixed_width_center_box:nn + { 0.9 \textwidth } { \l__fdu_info_title_en_tl }, + info / content = \__fdu_cover_info:, + id / format = \zihao { -5 }, + type / format = \zihao { 2 }, + degree / format = \zihao { 4 }, + title / format = \zihao { -2 } \sffamily, + title-en / format = + \__fdu_line_spread:n { 1.2 } \zihao { 4 } \bfseries, + id / bottom-skip = 0 pt plus 1.6 fill, + logo / bottom-skip = 0 pt plus 0.3 fill, + type / bottom-skip = -18 pt, + degree / bottom-skip = 0 pt plus 0.8 fill, + title-en / bottom-skip = 0 pt plus 2.5 fill, + id / align = right, + logo / align = center, + type / align = center, + degree / align = center, + title / align = center, + title-en / align = center, + info / align = center, + } +\DeclareInstance { fdu / cover } { cover-ii-default } { cover-ii } + { + title / content = + \__fdu_spread_box:nn { 7 em } { \c__fdu_name_instructors_tl }, + name-list / content = + \clist_use:Nn \l__fdu_info_instructors_clist { \par }, + title / format = \zihao { 2 } \sffamily, + name-list / format = \large, + title / align = center, + name-list / align = center, + } +\DeclareInstance { fdu / cover } { cover-iii-default } { cover-iii } + { + format = + \__fdu_line_spread:n { 1.8 }, + top-skip = 0 pt plus 0.2 fill, + bottom-skip = 0 pt plus 2.5 fill, + originality-decl-name / content = \c__fdu_name_orig_decl_tl, + originality-decl-text / content = \c__fdu_orig_decl_text_tl, + originality-decl-sig / content = + \__fdu_cover_signature:N \c__fdu_orig_decl_sign_clist, + authorization-decl-name / content = \c__fdu_name_auth_decl_tl, + authorization-decl-text / content = \c__fdu_auth_decl_text_tl, + authorization-decl-sig / content = + \__fdu_cover_signature:N \c__fdu_auth_decl_sign_clist, + originality-decl-name / format = + \__fdu_line_spread:n { 1.2 } \zihao { -2 } \sffamily, + authorization-decl-name / format = + \__fdu_line_spread:n { 1.2 } \zihao { -2 } \sffamily, + originality-decl-name / bottom-skip = 0.4 cm, + originality-decl-text / bottom-skip = 0.4 cm, + originality-decl-sig / bottom-skip = 0 pt plus 2.5 fill, + authorization-decl-name / bottom-skip = 0.4 cm, + authorization-decl-text / bottom-skip = 0.4 cm, + originality-decl-name / align = center, + originality-decl-sig / align = right, + authorization-decl-name / align = center, + authorization-decl-sig / align = right, + } +\bool_new:N \l__fdu_auto_make_cover_bool +\keys_define:nn { fdu / style } + { + auto-make-cover .bool_set:N = \l__fdu_auto_make_cover_bool, + auto-make-cover .default:n = true + } +\AtBeginDocument + { + \bool_if:NT \l__fdu_auto_make_cover_bool + { + \begin{titlepage} + \makecoveri \newpage \makecoverii + \end{titlepage} + } + } +\AtEndDocument + { \bool_if:NT \l__fdu_auto_make_cover_bool { \makecoveriii } } +\tl_const:Nn \__fdu_chapter_toc_format: { \normalfont \sffamily } +\tl_const:Nn \__fdu_chapter_toc_en_format: { \bfseries } +\keys_set:nn { ctex } + { + contentsname = \c__fdu_name_toc_tl, + chapter / tocline = + { + \__fdu_chapter_toc_format: + \CTEXnumberline {#1} #2 + }, + section / tocline = + { + \CTEXnumberline {#1} #2 + }, + subsection / tocline = + { + \fdu@kai + \CTEXnumberline {#1} #2 + } + } +\__fdu_patch_cmd:Nnn \tableofcontents + { + \chapter*{\contentsname + \@mkboth{% + \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}% + } + { + \chapter* { \contentsname } + \fdu_front_matter_header:n { \c__fdu_name_toc_tl } + } +\NewDocumentEnvironment { abstract } { } + { \__fdu_abstract_begin: } { \__fdu_abstract_end: } +\NewDocumentEnvironment { abstract* } { } + { \__fdu_abstract_en_begin: } { \__fdu_abstract_en_end: } +\cs_new_protected:Npn \__fdu_abstract_begin: + { + \chapter* { \c__fdu_name_abstract_tl } + \fdu_front_matter_header:n { \c__fdu_name_abstract_tl } + \addcontentsline { toc } { chapter } + { + \__fdu_chapter_toc_format: + \c__fdu_name_abstract_tl + } + } +\cs_new_protected:Npn \__fdu_abstract_en_begin: + { + \chapter* { \c__fdu_name_abstract_en_tl } + \fdu_front_matter_header:n { \c__fdu_name_abstract_en_tl } + \addcontentsline { toc } { chapter } + { + \__fdu_chapter_toc_format: + \c__fdu_name_abstract_en_tl + } + } +\cs_new_protected:Npn \__fdu_abstract_end: + { + \__fdu_keywords_par: + \textsf { \c__fdu_name_keywords_tl \c__fdu_fullwidth_colon_tl } + \clist_use:Nn \l__fdu_info_keywords_clist + { \c__fdu_fullwidth_semicolon_tl } + \__fdu_clc_par: + \textsf { \c__fdu_name_clc_tl \c__fdu_fullwidth_colon_tl } + \l__fdu_info_clc_tl + } +\cs_new_protected:Npn \__fdu_abstract_en_end: + { + \__fdu_keywords_par: + \textbf { \c__fdu_name_keywords_en_tl } \__fdu_quad: + \clist_use:Nn \l__fdu_info_keywords_en_clist { \__fdu_quad: } + \__fdu_clc_par: + \textbf { \c__fdu_name_clc_en_tl } \__fdu_quad: + \l__fdu_info_clc_tl + } +\cs_new:Npn \__fdu_keywords_par: + { + \par \mode_leave_vertical: \par + \noindent \hangindent = 4 em \hangafter = 1 + } +\cs_new:Npn \__fdu_clc_par: + { \par \noindent } +\NewDocumentEnvironment { notation } { O { l p { 7.5 cm } } } + { + \__fdu_notation_begin: + \group_begin: + \__fdu_notation_long_table_setup: + \longtable {#1} + } + { + \endlongtable + \group_end: + } +\cs_new_protected:Npn \__fdu_notation_begin: + { + \chapter* { \c__fdu_name_notation_tl } + \fdu_front_matter_header:n { \c__fdu_name_notation_tl } + \addcontentsline { toc } { chapter } + { + \__fdu_chapter_toc_format: + \c__fdu_name_notation_tl + } + } +\cs_new_protected:Npn \__fdu_notation_long_table_setup: + { + \dim_set_eq:NN \LTpre \c_zero_dim + \dim_set_eq:NN \LTpost \c_zero_dim + } +\bool_new:N \l__fdu_bibtex_bool +\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 +\tl_new:N \l__fdu_bib_resource_tl +\keys_define:nn { fdu / style } + { + bib-backend .choice:, + bib-backend .value_required:n = true, + bib-backend / bibtex .code:n = + { \bool_set_true:N \l__fdu_bibtex_bool }, + bib-backend / biblatex .code:n = + { \bool_set_false:N \l__fdu_bibtex_bool }, + bib-style .choice:, + bib-style .value_required:n = true, + bib-style / numerical .code:n = + { + \tl_set:Nn \l__fdu_bib_gb_style_tl { numerical } + \tl_clear:N \l__fdu_bib_style_tl + }, + bib-style / author-year .code:n = + { + \tl_set:Nn \l__fdu_bib_gb_style_tl { author-year } + \tl_clear:N \l__fdu_bib_style_tl + }, + bib-style / unknown .code:n = + { \tl_set_eq:NN \l__fdu_bib_style_tl \l_keys_value_tl }, + cite-style .code:n = + { + \bool_if:NTF \l__fdu_bibtex_bool + { \__fdu_warning:n { cite-style-not-available } } + { \tl_set:Nn \l__fdu_cite_style_tl {#1} } + }, + bib-resource .tl_set:N = \l__fdu_bib_resource_tl + } +\__fdu_msg_new:nn { cite-style-not-available } + { Option~ "cite-style"~ is~ not~ available~ in~ BibTeX. } +\ctex_at_end_preamble:n + { + \bool_if:NTF \l__fdu_bibtex_bool + { + \RequirePackage [ sort & compress ] { natbib } + \__fdu_bibtex_setup: + \NewDocumentCommand \printbibliography { o } + { + \exp_args:NV \bibliography \l__fdu_bib_resource_tl + \IfValueT {#1} + { \__fdu_warning:nn { invalid-option-in-bibtex } {#1} } + } + } + { + \__fdu_biblatex_setup: + \RequirePackage [ backend = biber, hyperref = manual, natbib ] + { biblatex } + \exp_args:NV \addbibresource \l__fdu_bib_resource_tl + \__fdu_biblatex_allow_url_break: + } + } +\__fdu_msg_new:nn { invalid-option-in-bibtex } + { Option(s)~ "#1"~ are~ invalid~ in~ BibTeX. } +\cs_new:Npn \__fdu_bibtex_setup: + { + \tl_if_empty:NTF \l__fdu_bib_style_tl + { + \tl_if_eq:VnTF \l__fdu_bib_gb_style_tl { numerical } + { + \bibliographystyle { gbt7714-unsrt } + \__fdu_set_cite_style_numerical: + } + { + \tl_if_eq:VnT \l__fdu_bib_gb_style_tl { author-year } + { + \bibliographystyle { gbt7714-plain } + \__fdu_set_cite_style_author_year: + \cs_set_eq:NN \cite \citep + } + } + } + { \exp_args:NV \bibliographystyle \l__fdu_bib_style_tl } + } +\cs_new:Npn \__fdu_biblatex_setup: + { + \tl_if_empty:NTF \l__fdu_bib_style_tl + { + \tl_if_eq:VnTF \l__fdu_bib_gb_style_tl { numerical } + { \PassOptionsToPackage { style = gb7714-2015 } } + { + \tl_if_eq:VnT \l__fdu_bib_gb_style_tl { author-year } + { \PassOptionsToPackage { style = gb7714-2015ay } } + } + } + { \PassOptionsToPackage { style = \l__fdu_bib_style_tl } } + { biblatex } + \tl_if_empty:NF \l__fdu_cite_style_tl + { + \PassOptionsToPackage { citestyle = \l__fdu_bib_style_tl } + { biblatex } + } + } +\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 + } +\cs_new:Npn \__fdu_set_cite_style_numerical: + { + \NAT@numberstrue \NAT@supertrue + \cs_set:Npn \NAT@open { [ } + \cs_set:Npn \NAT@close { ] } + \cs_set:Npn \NAT@sep { ,~ } + } +\cs_new:Npn \__fdu_set_cite_style_author_year: + { + \NAT@numbersfalse + \cs_set_eq:NN \NAT@open \c__fdu_fullwidth_left_paren_tl + \cs_set_eq:NN \NAT@close \c__fdu_fullwidth_right_paren_tl + \cs_set_eq:NN \NAT@sep \c__fdu_fullwidth_semicolon_tl + \cs_set_eq:NN \NAT@aysep \c__fdu_fullwidth_comma_tl + \cs_set_eq:NN \NAT@yrsep \c__fdu_ideographic_comma_tl + } +\cs_set:Npn \bibsection + { + \chapter* { \bibname } + \fdu_front_matter_header:n { \bibname } + \addcontentsline { toc } { chapter } + { \__fdu_chapter_toc_format: \bibname } + } +\NewDocumentCommand \hypersetup { m } + { \fdu_hyperref_setup:n {#1} } +\cs_new_protected:Npn \fdu_hyperref_setup:n #1 + { \clist_gput_right:Nn \g__fdu_to_hyperref_clist {#1} } +\cs_new:Npn \__fdu_set_hyperlink_color_key:n #1 + { + hyperlink-color / \clist_item:nn {#1} {1} .code:n = + { + \__fdu_define_hyperlink_color:nnn + { \clist_item:nn {#1} {2} } + { \clist_item:nn {#1} {3} } + { \clist_item:nn {#1} {4} } + \fdu_hyperref_setup:n + { + linkcolor = fdu@link, linkbordercolor = fdu@link, + urlcolor = fdu@url, urlbordercolor = fdu@url, + citecolor = fdu@cite, citebordercolor = fdu@cite + } + }, + } +\cs_new_protected:Npn \__fdu_define_hyperlink_color:nnn #1#2#3 + { + \definecolorset { HTML } { fdu@ } { } + { link, #1; url, #2; cite, #3 } + } +\keys_define:nx { fdu / style } + { + hyperlink .choice:, + hyperlink .value_required:n = true, + hyperlink / border .code:n = { }, + hyperlink / color .code:n = + { \fdu_hyperref_setup:n { colorlinks = true } }, + hyperlink / none .code:n = + { \fdu_hyperref_setup:n { hidelinks = true } }, + hyperlink-color .choice:, + hyperlink-color .value_required:n = true, + \clist_map_function:nN + { + { autumn, D70000, D75F00, AF8700 }, + { business, D14542, 295497, 1F6E43 }, + { classic, FF0000, 0000FF, 00FF00 }, + { default, 990000, 0000B2, 007F00 }, + { elegant, 961212, C31818, 9B764F }, + { fantasy, FF4A19, FF3F94, 934BA1 }, + { material, E91E63, 009688, 4CAF50 }, + { science, CA0619, 389F9D, FF8920 }, + { summer, 00AFAF, 5F5FAF, 5F8700 }, + { graylevel, 616161, 616161, 616161 }, + { prl, 2D3092, 2D3092, 2D3092 } + } + \__fdu_set_hyperlink_color_key:n + } +\cs_new:Npn \fdu_allow_url_break: + { + \cs_new:Npn \__fdu_add_url_break_points: + { \tl_map_function:NN \c__fdu_url_break_points_tl \do } + \__fdu_appto_cmd:Nn \UrlBreaks + { \UrlOrds \__fdu_add_url_break_points: } + } +\tl_const:Nn \c__fdu_url_break_points_tl + { + abcdefghijklmnopqrstuvwxyz + ABCDEFGHIJKLMNOPQRSTUVWXYZ + 0123456789 + } +\ctex_at_end_preamble:n + { + \RequirePackage { hyperref } + \hypersetup + { + bookmarksnumbered = true, + pdftitle = \l__fdu_info_title_tl, + pdfauthor = \l__fdu_info_author_tl, + pdfkeywords = \l__fdu_info_keywords_clist, + pdfcreator = \c__fdu_name_pdf_creator_tl + } + \exp_args:NV \hypersetup \g__fdu_to_hyperref_clist + \fdu_allow_url_break: + \bool_if:NF \l__fdu_bibtex_bool { \BiblatexManualHyperrefOn } + } +\ctex_at_end_package:nn { hyperref } + { + \pdfstringdefDisableCommands + { + \cs_set_eq:NN \fdu@kai \prg_do_nothing: + \cs_set_eq:NN \quad \c_space_tl + \cs_set_eq:NN \qquad \c_space_tl + } + } +\keys_define:nn { fdu } + { + info .meta:nn = { fdu / info } {#1}, + style .meta:nn = { fdu / style } {#1} + } +\keys_set:nn { fdu } + { + style / font = times, + style / cjk-font = fandol, + style / font-size = -4, + style / fullwidth-stop = false, + style / auto-make-cover = true, + style / logo = { fudan-name.pdf }, + style / logo-size = { 0.5 \textwidth }, + style / hyperlink = color, + style / hyperlink-color = default, + style / bib-style = numerical, + info / degree = academic, + info / secret-level = none, + info / school-id = { 10246 }, + info / date = { \zhtoday }, + theorem / header-font = { \sffamily }, + theorem / body-font = { \fdu@kai }, + theorem / counter = { chapter } + } +\NewDocumentCommand \fdusetup { m } + { \keys_set:nn { fdu } {#1} } +\newtheorem* { proof } { \c__fdu_name_proof_tl } +\newtheorem { axiom } { \c__fdu_name_axiom_tl } +\newtheorem { corollary } { \c__fdu_name_corollary_tl } +\newtheorem { definition } { \c__fdu_name_definition_tl } +\newtheorem { example } { \c__fdu_name_example_tl } +\newtheorem { lemma } { \c__fdu_name_lemma_tl } +\newtheorem { theorem } { \c__fdu_name_theorem_tl } +\endinput +%% +%% End of file `fduthesis.cls'. diff --git a/Master/texmf-dist/tex/latex/fduthesis/fduthesis.def b/Master/texmf-dist/tex/latex/fduthesis/fduthesis.def new file mode 100644 index 00000000000..1835db36c6d --- /dev/null +++ b/Master/texmf-dist/tex/latex/fduthesis/fduthesis.def @@ -0,0 +1,132 @@ +%% +%% This is file `fduthesis.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fduthesis.dtx (with options: `definition') +%% +%% Copyright (C) 2017, 2018 by Xiangdong Zeng <xdzeng96@gmail.com> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3c 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 `maintained'. +%% +%% The Current Maintainer of this work is Xiangdong Zeng. +%% +%% This work consists of the files fduthesis.dtx, +%% fduthesis-doc.dtx, +%% fduthesis-logo.dtx, +%% fduthesis-template.tex, +%% and the derived files fduthesis.ins, +%% fduthesis.cls, +%% fduthesis-en.cls, +%% fduthesis.def, +%% fdudoc.cls, +%% fdulogo.sty, +%% fdulogo-example.tex, +%% fduthesis-cover.tex, +%% fduthesis-en.tex, +%% fduthesis.pdf, +%% fduthesis-en.pdf, +%% fduthesis-code.pdf, +%% latexmkrc, +%% latexmkrc-en, +%% and README.md. +%% +\GetIdInfo $Id: fduthesis.dtx 0.7a 2018-04-09 12:00:00Z Xiangdong Zeng <xdzeng96@gmail.com> $ + {Definition file for fduthesis} +\ProvidesExplFile{\ExplFileName.def} + {\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} +\tl_const:Nn \c__fdu_name_simp_tl { 复旦大学 } +\tl_const:Nn \c__fdu_name_trad_tl { 復旦大學 } +\tl_const:Nn \c__fdu_name_en_tl { Fudan~ University } +\clist_map_inline:nn + { + { ideographic_comma } { "3001 }, + { ideographic_full_stop } { "3002 }, + { fullwidth_comma } { "FF0C }, + { fullwidth_full_stop } { "FF0E }, + { fullwidth_colon } { "FF1A }, + { fullwidth_semicolon } { "FF1B }, + { fullwidth_left_paren } { "FF08 }, + { fullwidth_right_paren } { "FF09 } + } + { \__fdu_define_punct:nn #1 } +\fp_const:Nn \c__fdu_line_spread_fp + { \dim_ratio:nn { 20 pt } { 12 bp } / 1.2 } +\tl_const:Nn \c__fdu_orig_decl_text_tl + { + 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进行研究 + 工作所取得的成果。论文中除特别标注的内容外,不包含任何其他个人或机 + 构已经发表或撰写过的研究成果。对本研究做出重要贡献的个人和集体,均 + 已在论文中作了明确的声明并表示了谢意。本声明的法律结果由本人承担。 + } +\tl_const:Nn \c__fdu_auth_decl_text_tl + { + 本人完全了解复旦大学有关收藏和利用博士、硕士学位论文的规定,即:学 + 校有权收藏、使用并向国家有关部门或机构送交论文的印刷本和电子版本; + 允许论文被查阅和借阅;学校可以公布论文的全部或部分内容,可以采用影 + 印、缩印或其它复制手段保存论文。涉密学位论文在解密后遵守此规定。 + } +\clist_const:Nn \c__fdu_orig_decl_sign_clist + { 作者签名, 日期 } +\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 { 秘密, 机密, 绝密 } +\clist_map_inline:nn + { + { secret_level } { 密 \qquad 级 }, + { secret_star } { \textrm { \bigstar } }, + { school_id } { 学校代码 }, + { student_id } { 学 \qquad 号 }, + { department } { 院系 }, + { major } { 专业 }, + { author } { 姓名 }, + { supervisor } { 指导教师 }, + { date } { 完成日期 }, + { instructors } { 指导小组成员 }, + { author_sign } { 作者签名 }, + { supervisor_sign } { 导师签名 }, + { sign_date } { 日期 }, + { bib_en } { Bibliography }, + { pdf_creator } { LaTeX~ with~ fduthesis~ class }, + { orig_decl } { \c__fdu_name_simp_tl \\ 学位论文独创性声明 }, + { auth_decl } { \c__fdu_name_simp_tl \\ 学位论文使用授权声明 } + } + { \__fdu_define_name:nn #1 } +\clist_map_inline:nn + { + { abstract } { 摘 \quad 要 } { Abstract }, + { keywords } { 关键字 } { Keywords: }, + { clc } { 中图分类号 } { CLC~ number: }, + { toc } { 目 \quad 录 } { Contents }, + { notation } { 符号表 } { List~ of~ Symbols } + } + { \__fdu_define_name:nnn #1 } +\clist_map_inline:nn + { + { proof } { 证明 } { Proof }, + { axiom } { 公理 } { Axiom }, + { corollary } { 推论 } { Corollary }, + { definition } { 定义 } { Definition }, + { example } { 例 } { Example }, + { lemma } { 引理 } { Lemma }, + { theorem } { 定理 } { Theorem } + } + { \__fdu_define_name:nnn #1 } +\endinput +%% +%% End of file `fduthesis.def'. |