diff --git a/njuthesis-sample.tex b/njuthesis-sample.tex index 97939133f735596c86fcdaf0fe6320a7ef7151a8..4d419dc462c9f28448b8a5593e2e616b7f4c4797 100644 --- a/njuthesis-sample.tex +++ b/njuthesis-sample.tex @@ -18,11 +18,10 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \documentclass[ - % secondmentor=true,% 鏃犵浜屽甯堣娉ㄩ噴姝ら」 - nlcover=true,% 闇€瑕佸浗瀹跺浘涔﹂灏侀潰锛屽鏈鏃犳晥 degree=ug,% ug: 鏈, mg: 瀛︾, mf: 涓撶, phd: 鍗氬+ type=thesis,% thesis: 姣曚笟璁烘枃锛宒esign: 姣曚笟璁捐 - % systemfont=false,% 鑷畾涔夊瓧浣撹鍙栨秷娉ㄩ噴姝ら」 + nlcover=true,% 闇€瑕佸浗瀹跺浘涔﹂灏侀潰锛屽鏈鏃犳晥 + % 鑻ヤ互涓嬩袱椤逛笉璁剧疆鍒欒嚜鍔ㄨ皟鐢ㄧ郴缁熼瑁呭瓧浣� % customlatinfont=windows,% 璁剧疆鑻辨枃瀛楃闆� % customchinesefont=windows,% 璁剧疆涓枃瀛楃闆� ]{njuthesis} @@ -55,11 +54,11 @@ SupervisorA*= Li~Chengdian, SupervisorATitle = 鏁欐巿, SupervisorATitle* = Professor, - % 绗簩瀵煎笀锛屽鏃犲垯蹇界暐 - SupervisorB = 瀛欒但寮�, - SupervisorB* = Sun~Hemi, - SupervisorBTitle = 鍓暀鎺�, - SupervisorBTitle* = Associate professor, + % 绗簩瀵煎笀锛屽鏃犲垯鐣欑┖ + % SupervisorB = 瀛欒但寮�, + % SupervisorB* = Sun~Hemi, + % SupervisorBTitle = 鍓暀鎺�, + % SupervisorBTitle* = Associate professor, % 鎻愪氦鏃ユ湡 SubmitDate = 2021骞�8鏈�10鏃�, % 绛旇京锛屽潎涓虹爺绌剁敓椤� diff --git a/njuthesis.cls b/njuthesis.cls index 9b3f53f4a699ea2982b5de57b8b803c21321fbaf..2be3b6ba9e84967d3a832a0cfad2c363cf4ae4dd 100644 --- a/njuthesis.cls +++ b/njuthesis.cls @@ -38,20 +38,15 @@ \RequirePackage{l3keys2e} \keys_define:nn { nju } { - secondsupervisor .bool_set:N = \nju_second_supervisor, - secondsupervisor .initial:n = false, nlcover .bool_set:N = \nju_nl_cover, nlcover .initial:n = false, degree .tl_set:N = \nju_degree, degree .initial:n = ug, type .tl_set:N = \nju_type, type .initial:n = thesis, - systemfont .bool_set:N = \nju_systemfont, - systemfont .initial:n = true, - customlatinfont .tl_set:N = \nju_customlatinfont, - customlatinfont .initial:n = windows, - customchinesefont .tl_set:N = \nju_customchinesefont, - customchinesefont .initial:n = windows, +} +\keys_define:nn { nju } +{ info .meta:nn = { nju / info } { #1 } } \keys_define:nn { nju / info } @@ -96,8 +91,6 @@ } \NewDocumentCommand \njusetup { m } { \keys_set:nn { nju } { #1 } } -\ProcessKeysOptions { nju } -\RequirePackage{fontspec} \RequirePackage[ top=2.5cm, bottom=2.5cm, @@ -160,39 +153,85 @@ \RequirePackage{wrapfig} % Wrap text around figures \RequirePackage[hidelinks,bookmarksnumbered=true]{hyperref} \RequirePackage[capitalise,nameinlink,noabbrev]{cleveref} -\NewDocumentCommand\set_latin_fontset_windows{}{ +\RequirePackage{fontspec} +\tl_new:N \g__nju_latin_fontset_tl +\tl_new:N \g__nju_cjk_fontset_tl +\keys_define:nn { nju } +{ + customlatinfont .choices:nn = + { gyre, macos, windows, null } + { \tl_set_eq:NN \g__nju_latin_fontset_tl \l_keys_choice_tl }, + customchinesefont .choices:nn = + { fandol, founder, macos, noto, windows, null } + { \tl_set_eq:NN \g__nju_cjk_fontset_tl \l_keys_choice_tl }, +} +\ProcessKeysOptions { nju } +\bool_new:N \g__nju_load_system_fontset_tl +\tl_if_empty:NTF \g__nju_latin_fontset_tl + { \bool_gset_true:N \g__nju_load_system_fontset_tl } +{ + \tl_if_empty:NT \g__nju_cjk_fontset_tl + { \bool_gset_true:N \g__nju_load_system_fontset_tl } +} +\bool_if:NT \g__nju_load_system_fontset_tl +{ + % 妫€娴嬫槸鍚︽槸 Windows + \sys_if_platform_windows:TF + { + \tl_set:Nn \g__nju_latin_fontset_tl { windows } + \tl_set:Nn \g__nju_cjk_fontset_tl { windows } + } + { + % 妫€娴嬫槸鍚︽槸 macOS + \ctex_if_platform_macos:TF + { + \tl_set:Nn \g__nju_latin_fontset_tl { macos } + \tl_set:Nn \g__nju_cjk_fontset_tl { macos } + } + % 鍏朵綑绯荤粺涓€寰嬩娇鐢ㄨ嚜鐢卞瓧浣� + { + \tl_set:Nn \g__nju_latin_fontset_tl { gyre } + \tl_set:Nn \g__nju_cjk_fontset_tl { fandol } + } + } +} +\cs_new_protected:Npn \__nju_load_latin_font_windows: +{ \setmainfont{Times~New~Roman} \setsansfont{Arial} \setmonofont{Courier~New}[Scale=MatchLowercase] } -\NewDocumentCommand\set_latin_fontset_macos{}{ - \setmainfont{Times~New~Roman} - \setsansfont{Arial} - \setmonofont{Menlo}[Scale=MatchLowercase] +\cs_new_protected:Npn \__nju_load_latin_font_macos: +{ +\setmainfont{Times~New~Roman} +\setsansfont{Arial} +\setmonofont{Menlo}[Scale=MatchLowercase] } -\NewDocumentCommand\set_latin_fontset_gyre{}{ - \setmainfont{texgyretermes}[ - Extension=.otf, - UprightFont=*-regular, - BoldFont=*-bold, - ItalicFont=*-italic, - BoldItalicFont=*-bolditalic] - \setsansfont{texgyreheros}[ - Extension=.otf, - UprightFont=*-regular, - BoldFont=*-bold, - ItalicFont=*-italic, - BoldItalicFont=*-bolditalic] - \setmonofont{texgyrecursor}[ - Extension=.otf, - UprightFont=*-regular, - BoldFont=*-bold, - ItalicFont=*-italic, - BoldItalicFont=*-bolditalic, - Scale=MatchLowercase, - Ligatures=CommonOff] +\cs_new_protected:Npn \__nju_load_latin_font_gyre: +{ +\setmainfont{texgyretermes}[ + Extension=.otf, + UprightFont=*-regular, + BoldFont=*-bold, + ItalicFont=*-italic, + BoldItalicFont=*-bolditalic] +\setsansfont{texgyreheros}[ + Extension=.otf, + UprightFont=*-regular, + BoldFont=*-bold, + ItalicFont=*-italic, + BoldItalicFont=*-bolditalic] +\setmonofont{texgyrecursor}[ + Extension=.otf, + UprightFont=*-regular, + BoldFont=*-bold, + ItalicFont=*-italic, + BoldItalicFont=*-bolditalic, + Scale=MatchLowercase, + Ligatures=CommonOff] } -\NewDocumentCommand\set_chinese_fontset_windows{}{ +\cs_new_protected:Npn \__nju_load_cjk_font_windows: +{ \setCJKmainfont{SimSun}[ AutoFakeBold=2.17, ItalicFont=KaiTi] @@ -205,166 +244,125 @@ \setCJKfamilyfont{zhnewhei}{Microsoft~YaHei}[ BoldFont=Microsoft~YaHei~Bold] } -\NewDocumentCommand\set_chinese_fontset_macos{}{ - % 绉婚櫎 does not contain script "CJK" 璀﹀憡 - \msg_redirect_name:nnn {fontspec} {no-script} {info} - \setCJKmainfont{Songti~SC~Light}[ - BoldFont=Songti~SC~Bold, - ItalicFont=Kaiti~SC, - BoldItalicFont=Kaiti~SC~Bold] - \setCJKsansfont{Heiti~SC~Light}[BoldFont=Heiti~SC~Medium] - \setCJKmonofont{STFangsong} - \setCJKfamilyfont{zhsong}{Songti~SC~Light}[BoldFont=Songti~SC~Bold] - \setCJKfamilyfont{zhhei}{Heiti~SC~Light}[BoldFont=Heiti~SC~Medium] - \setCJKfamilyfont{zhfs}{STFangsong} - \setCJKfamilyfont{zhkai}{Kaiti~SC} - [ - BoldFont=Kaiti~SC~Bold, - % 鍙傝€僀TeX鎵嬪唽绗�9鑺� LuaLATEX 涓嬬殑涓枃鏀寔鏂瑰紡 - % AlternateFont = - % { - % {鉄╟haracter range1鉄﹠ {鉄╝lternate font name1鉄﹠ - % {鉄╝lternate font features2鉄﹠ , - % ...... - % } - ] - \setCJKfamilyfont{zhnewhei}{PingFang~SC} +\cs_new_protected:Npn \__nju_load_cjk_font_macos: +{ +\msg_redirect_name:nnn {fontspec} {no-script} {info} +\setCJKmainfont{Songti~SC~Light}[ + BoldFont=Songti~SC~Bold, + ItalicFont=Kaiti~SC, + BoldItalicFont=Kaiti~SC~Bold] +\setCJKsansfont{Heiti~SC~Light}[BoldFont=Heiti~SC~Medium] +\setCJKmonofont{STFangsong} +\setCJKfamilyfont{zhsong}{Songti~SC~Light}[BoldFont=Songti~SC~Bold] +\setCJKfamilyfont{zhhei}{Heiti~SC~Light}[BoldFont=Heiti~SC~Medium] +\setCJKfamilyfont{zhfs}{STFangsong} +\setCJKfamilyfont{zhkai}{Kaiti~SC} + [ + BoldFont=Kaiti~SC~Bold, + % 鍙傝€僀TeX鎵嬪唽绗�9鑺� LuaLATEX 涓嬬殑涓枃鏀寔鏂瑰紡 + % AlternateFont = + % { + % {鉄╟haracter range1鉄﹠ {鉄╝lternate font name1鉄﹠ + % {鉄╝lternate font features2鉄﹠ , + % ...... + % } + ] +\setCJKfamilyfont{zhnewhei}{PingFang~SC} } -\NewDocumentCommand\set_chinese_fontset_fandol{}{ - % 绉婚櫎 does not contain script "CJK" 璀﹀憡 - \msg_redirect_name:nnn {fontspec} {no-script} {info} - \setCJKmainfont{FandolSong-Regular}[ - Extension=.otf, - BoldFont=FandolSong-Bold, - ItalicFont=FandolKai-Regular] - \setCJKsansfont{FandolHei-Regular}[ - Extension=.otf, - BoldFont=FandolHei-Bold] - \setCJKmonofont{FandolFang-Regular}[Extension=.otf] - \setCJKfamilyfont{zhsong}{FandolSong-Regular}[ - Extension=.otf, - BoldFont=FandolSong-Bold] - \setCJKfamilyfont{zhhei}{FandolHei-Regular}[ - Extension=.otf, - BoldFont=FandolHei-Bold] - \setCJKfamilyfont{zhfs}{FandolFang-Regular}[Extension=.otf] - \setCJKfamilyfont{zhkai}{FandolKai-Regular}[ - Extension=.otf, - AutoFakeBold=2.17] +\cs_new_protected:Npn \__nju_load_cjk_font_fandol: +{ +\msg_redirect_name:nnn {fontspec} {no-script} {info} +\setCJKmainfont{FandolSong-Regular}[ + Extension=.otf, + BoldFont=FandolSong-Bold, + ItalicFont=FandolKai-Regular] +\setCJKsansfont{FandolHei-Regular}[ + Extension=.otf, + BoldFont=FandolHei-Bold] +\setCJKmonofont{FandolFang-Regular}[Extension=.otf] +\setCJKfamilyfont{zhsong}{FandolSong-Regular}[ + Extension=.otf, + BoldFont=FandolSong-Bold] +\setCJKfamilyfont{zhhei}{FandolHei-Regular}[ + Extension=.otf, + BoldFont=FandolHei-Bold] +\setCJKfamilyfont{zhfs}{FandolFang-Regular}[Extension=.otf] +\setCJKfamilyfont{zhkai}{FandolKai-Regular}[ + Extension=.otf, + AutoFakeBold=2.17] } -\NewDocumentCommand\set_chinese_fontset_founder{}{ - \setCJKmainfont{FZSSK}[ - Extension=.ttf, - BoldFont=FZXBSK, - ItalicFont=FZKTK] - % FZXH1K 鏂规缁嗛粦涓€锛堢畝绻佹墿灞曪級 http://www.foundertype.com/index.php/FontInfo/index/id/161 璁捐甯堥潪鍟嗗厤璐� - % FZHTK 鏂规榛戜綋锛堢畝绻佹墿灞曪級 http://www.foundertype.com/index.php/FontInfo/index/id/131 鍏嶈垂鍟嗙敤 - \setCJKsansfont{FZXH1K}[ - Extension=.ttf, - BoldFont=FZHTK] - % FZFSK 鏂规浠垮畫锛堢畝绻佹墿灞曪級 http://www.foundertype.com/index.php/FontInfo/index/id/128 - \setCJKmonofont{FZFSK}[Extension=.ttf] - - \setCJKfamilyfont{zhsong}{FZSSK}[ +\cs_new_protected:Npn \__nju_load_cjk_font_founder: +{ +\setCJKmainfont{FZSSK}[% 鏂规涔﹀畫 + Extension=.ttf, + BoldFont=FZXBSK,% 鏂规灏忔爣瀹� + ItalicFont=FZKTK]% 鏂规妤蜂綋 +\setCJKsansfont{FZXH1K}[% 鏂规缁嗛粦涓€ + Extension=.ttf, + BoldFont=FZHTK]% FZHTK 鏂规榛戜綋 +\setCJKmonofont{FZFSK}[Extension=.ttf]% 鏂规浠垮畫 +\setCJKfamilyfont{zhsong} + {FZSSK}[ Extension=.ttf, BoldFont=FZXBSK] - \setCJKfamilyfont{zhhei}{FZHTK}[ +\setCJKfamilyfont{zhhei} + {FZHTK}[ Extension=.ttf, AutoFakeBold=2.17] - \setCJKfamilyfont{zhfs}{FZFSK}[Extension=.ttf] - \setCJKfamilyfont{zhkai}{FZKTK}[Extension=.ttf] - % FZYouHK_508R 鏂规鎮犻粦508R锛堢畝绻佹墿灞曪級 http://www.foundertype.com/index.php/FontInfo/index/id/244 璁捐甯堥潪鍟嗗厤璐� - % FZYouHK_511M 鏂规鎮犻粦511M锛堢畝绻佹墿灞曪級 http://www.foundertype.com/index.php/FontInfo/index/id/244 璁捐甯堥潪鍟嗗厤璐� - \setCJKfamilyfont{zhnewhei}{FZYouHK_508R}[ +\setCJKfamilyfont{zhfs} + {FZFSK}[Extension=.ttf] +\setCJKfamilyfont{zhkai} + {FZKTK}[Extension=.ttf] +\setCJKfamilyfont{zhnewhei} + {FZYouHK_508R}[% 鏂规鎮犻粦508R Extension=.ttf, - BoldFont=FZYouHK_511M] + BoldFont=FZYouHK_511M]% 鏂规鎮犻粦511M } -\NewDocumentCommand\set_chinese_fontset_noto{}{ - % 鎬濇簮瀹嬩綋 https://www.google.com/get/noto/#serif-hans - \setCJKmainfont[ - UprightFont=NotoSerifCJKsc-Regular, - BoldFont=NotoSerifCJKsc-Bold, - ItalicFont=NotoSerifCJKsc-Regular, - BoldItalicFont=NotoSerifCJKsc-Bold, - ItalicFeatures=FakeSlant, - BoldItalicFeatures=FakeSlant]{Noto~Serif~CJK~SC} - - % 鎬濇簮榛戜綋 https://www.google.com/get/noto/#sans-hans - \setCJKsansfont[ - UprightFont=NotoSansCJKsc-Regular, - BoldFont=NotoSansCJKsc-Bold, - ItalicFont=NotoSansCJKsc-Regular, - BoldItalicFont=NotoSansCJKsc-Bold, - ItalicFeatures=FakeSlant, - BoldItalicFeatures=FakeSlant]{Noto~Sans~CJK~SC} +\cs_new_protected:Npn \__nju_load_cjk_font_noto: +{ +\setCJKmainfont[ + UprightFont=NotoSerifCJKsc-Regular, + BoldFont=NotoSerifCJKsc-Bold, + ItalicFont=NotoSerifCJKsc-Regular, + BoldItalicFont=NotoSerifCJKsc-Bold, + ItalicFeatures=FakeSlant, + BoldItalicFeatures=FakeSlant]{Noto~Serif~CJK~SC} - % 鍖呭惈浜庝笂杩版€濇簮榛戜綋 - \setCJKmonofont[ - UprightFont=NotoSansMonoCJKsc-Regular, - BoldFont=NotoSansMonoCJKsc-Bold, - ItalicFont=NotoSansMonoCJKsc-Regular, - BoldItalicFont=NotoSansMonoCJKsc-Bold, - ItalicFeatures=FakeSlant, - BoldItalicFeatures=FakeSlant]{Noto~Sans~Mono~SC} +\setCJKsansfont[ + UprightFont=NotoSansCJKsc-Regular, + BoldFont=NotoSansCJKsc-Bold, + ItalicFont=NotoSansCJKsc-Regular, + BoldItalicFont=NotoSansCJKsc-Bold, + ItalicFeatures=FakeSlant, + BoldItalicFeatures=FakeSlant]{Noto~Sans~CJK~SC} - \setCJKfamilyfont{zhsong}{Noto~Serif~CJK~SC} - \setCJKfamilyfont{zhhei}{Noto~Sans~CJK~SC} +\setCJKmonofont[ + UprightFont=NotoSansMonoCJKsc-Regular, + BoldFont=NotoSansMonoCJKsc-Bold, + ItalicFont=NotoSansMonoCJKsc-Regular, + BoldItalicFont=NotoSansMonoCJKsc-Bold, + ItalicFeatures=FakeSlant, + BoldItalicFeatures=FakeSlant]{Noto~Sans~Mono~SC} - % 鏂规妤蜂綋銆佹柟姝d豢瀹嬩负鍏嶈垂鍟嗙敤瀛椾綋锛屼笖鏀寔CJK瀛楃闆� - % 鏂规浠垮畫 http://www.foundertype.com/index.php/FontInfo/index/id/128.html - % 鏂规妤蜂綋 http://www.foundertype.com/index.php/FontInfo/index/id/137.html - \setCJKfamilyfont{zhfs}{鏂规浠垮畫绠€浣搣[AutoFakeBold=2.17] - \setCJKfamilyfont{zhkai}{鏂规妤蜂綋绠€浣搣[AutoFakeBold=2.17] +\setCJKfamilyfont{zhsong}{Noto~Serif~CJK~SC} +\setCJKfamilyfont{zhhei}{Noto~Sans~CJK~SC} +\setCJKfamilyfont{zhfs}{鏂规浠垮畫绠€浣搣[AutoFakeBold=2.17] +\setCJKfamilyfont{zhkai}{鏂规妤蜂綋绠€浣搣[AutoFakeBold=2.17] } -\bool_if:NTF \nju_systemfont +\cs_new_protected:Npn \__nju_load_font: { - % 妫€娴嬫槸鍚︽槸 Windows - \sys_if_platform_windows:TF - { - \set_latin_fontset_windows - \set_chinese_fontset_windows - } - { - % 妫€娴嬫槸鍚︽槸 macOS - \ctex_if_platform_macos:TF - { - \set_latin_fontset_macos - \set_chinese_fontset_macos - } - % 鍏朵綑绯荤粺涓€寰嬩娇鐢ㄨ嚜鐢卞瓧浣� - { - \set_latin_fontset_gyre - \set_chinese_fontset_fandol - } - } -} -{ - % 濡傛灉鐢ㄦ埛闇€瑕佽嚜瀹氫箟瀛椾綋 - % 姝ゅ闇€瑕佷娇鐢╘str_case_e鑰屼笉鏄痋str_case浣垮畯灞曞紑涓哄瓧绗︿覆 - \str_case_e:nn { \nju_customlatinfont } - { - { windows } { \set_latin_fontset_windows } - { macos } { \set_latin_fontset_macos } - { gyre } { \set_latin_fontset_gyre } - { null } {} - } - \str_case_e:nn { \nju_customchinesefont } - { - { windows } { \set_chinese_fontset_windows } - { macos } { \set_chinese_fontset_macos } - { gyre } { \set_chinese_fontset_gyre } - { founder } { \set_chinese_fontset_founder } - { noto } { \set_chinese_fontset_noto } - { null } {} - } + \use:c { __nju_load_latin_font_ \g__nju_latin_fontset_tl : } + \use:c { __nju_load_cjk_font_ \g__nju_cjk_fontset_tl : } + + \NewDocumentCommand\songti{}{\CJKfamily{zhsong}} + \NewDocumentCommand\heiti{}{\CJKfamily{zhhei}} + \NewDocumentCommand\fangsong{}{\CJKfamily{zhfs}} + \NewDocumentCommand\kaishu{}{\CJKfamily{zhkai}} } +\__nju_load_font: \setmathfont{XITSMath-Regular}[ BoldFont = XITSMath-Bold, Extension = .otf] -\NewDocumentCommand\songti{}{\CJKfamily{zhsong}} -\NewDocumentCommand\heiti{}{\CJKfamily{zhhei}} -\NewDocumentCommand\fangsong{}{\CJKfamily{zhfs}} -\NewDocumentCommand\kaishu{}{\CJKfamily{zhkai}} \RequirePackage{fancyhdr} % 璋冩暣椤电湁椤佃剼 \fancypagestyle{njuplain}{% \fancyhead{} @@ -455,12 +453,12 @@ { \nju_tocpagestyle:nnn {\listtablename}{\listtablename}{lot} } -\newenvironment{preface} +\NewDocumentEnvironment{preface}{} {% \chapter*{鍓嶈█} \addcontentsline{toc}{chapter}{鍓嶈█} }{} -\newenvironment{acknowledgement} +\NewDocumentEnvironment{acknowledgement}{} {% \chapter*{鑷磋阿} \addcontentsline{toc}{chapter}{鑷磋阿} @@ -542,7 +540,9 @@ xleftmargin=2em,xrightmargin=2em,% set the width of the code environment } \lstdefinestyle{LaTeX}{ language=TeX, - morekeywords={begin, caption, label, mathrm, frac, toprule, midrule, bottomrule, includegraphics} + morekeywords={ + begin, caption, label, mathrm, frac, + toprule, midrule, bottomrule, includegraphics} } \DeclareCaptionFont{songticap}{\zihao{5}\bf\songti} \captionsetup{ @@ -661,168 +661,179 @@ numberwithin=section, \l__nju_info_title_b_tl \l__nju_info_title_c_tl } -\bool_if:NTF \nju_second_supervisor +\tl_if_empty:NTF \l__nju_info_supv_b_tl { - \tl_const:Nn \nju_supervisor_full + \tl_const:Nn \l__nju_info_supv_full_tl { - \l__nju_info_supv_a_tl\ \l__nju_info_supv_a_title_tl - \ \ \l__nju_info_supv_b_tl\ \l__nju_info_supv_b_title_tl + \l__nju_info_supv_a_tl\hspace{.5em} + \l__nju_info_supv_a_title_tl } - \tl_const:Nn \nju_supervisor_full_en + \tl_const:Nn \l__nju_info_supv_full_tl_en { - \l__nju_info_supv_a_en_tl\ \l__nju_info_supv_a_title_en_tl - \ \ \l__nju_info_supv_b_en_tl\ \l__nju_info_supv_b_title_en_tl + \l__nju_info_supv_a_en_tl\hspace{.5em} + \l__nju_info_supv_a_title_en_tl } } { - \tl_const:Nn \nju_supervisor_full + \tl_const:Nn \l__nju_info_supv_full_tl { - \l__nju_info_supv_a_tl\ \l__nju_info_supv_a_title_tl + \l__nju_info_supv_a_tl\hspace{.5em} + \l__nju_info_supv_a_title_tl\hspace{1em} + \l__nju_info_supv_b_tl\hspace{.5em} + \l__nju_info_supv_b_title_tl } - \tl_const:Nn \nju_supervisor_full_en + \tl_const:Nn \l__nju_info_supv_full_tl_en { - \l__nju_info_supv_a_en_tl\ \l__nju_info_supv_a_title_en_tl + \l__nju_info_supv_a_en_tl\hspace{.5em} + \l__nju_info_supv_a_title_en_tl\hspace{1em} + \l__nju_info_supv_b_en_tl\hspace{.5em} + \l__nju_info_supv_b_title_en_tl } } \str_if_eq:NNTF {\nju_degree} { ug } { % 鏈 - \tl_const:Nn \nju_degree_name {鏈琝hfill 绉慭hfill } + \tl_const:Nn \c__nju_name_diploma_tl { 鏈琝hfill 绉慭hfill } + \tl_const:Nn \c__nju_name_title_tl { 棰榎hfill 鐩� } - % 鏈寮哄埗涓嶆墦鍗板浗瀹跺浘涔﹂灏侀潰 - \bool_set_false:N \nju_nl_cover + \tl_const:Nn \c__nju_cover_uline_len_a_tl { 250pt } + \tl_const:Nn \c__nju_cover_uline_len_b_tl { 90pt } + \tl_const:Nn \c__nju_cover_uline_font_tl { \songti } + \tl_const:Nn \c__nju_cover_uline_style_tl { \bf } + \tl_const:Nn \c__nju_cover_uline_bskip_tl {} - % 灏侀潰涓嬪垝绾� - \cs_new:Npn \nju_cover_uline_ug:nn #1 #2 - { - \uline{\makebox[#1]{\rm\songti#2}} - } + \tl_const:Nn \c__nju_cover_box_len_tl { 4.2em } - % 灏侀潰琛ㄦ牸杈规 - \cs_new:Npn \nju_coverbox_ug:n #1 - { - \makebox[4.2em][s]{#1} - } + % 鏈寮哄埗涓嶆墦鍗板浗瀹跺浘涔﹂灏侀潰 + \bool_set_false:N \nju_nl_cover } { % 鏈浠ュ閮芥槸鐮旂┒鐢� - \tl_const:Nn \nju_degree_name {鐮擻hfill 绌禱hfill 鐢焅hfill } + \tl_const:Nn \c__nju_name_diploma_tl { 鐮擻hfill 绌禱hfill 鐢焅hfill } + \tl_const:Nn \c__nju_name_title_tl { 璁篭hfill 鏂嘰hfill 棰榎hfill 鐩� } - % 灏侀潰涓嬪垝绾� - \cs_new:Npn \nju_cover_uline_g:n #1 - { - \uline{\makebox[250pt]{\rm\kaishu#1}} - } + \tl_const:Nn \c__nju_cover_uline_len_a_tl { 250pt } + \tl_const:Nn \c__nju_cover_uline_len_b_tl { 14em } + \tl_const:Nn \c__nju_cover_uline_font_tl { \kaishu } + \tl_const:Nn \c__nju_cover_uline_style_tl { } + \tl_const:Nn \c__nju_cover_uline_bskip_tl { \hspace{1em} } - % 鍥藉鍥句功棣嗗皝闈笅鍒掔嚎 - \cs_new:Npn \nju_cover_uline_nl:nn #1 #2 - { - \uline{\makebox[#1]{#2}} - } - - % 灏侀潰琛ㄦ牸杈规 - \cs_new:Npn \nju_coverbox_g:n #1 - { - \makebox[6em][s]{#1\hspace{1em}} - } + \tl_const:Nn \c__nju_cover_box_len_tl { 6em } % 鐮旂┒鐢熷浣嶅垎绫� \str_case_e:nn { \nju_degree } { - { mg } { \tl_const:Nn \nju_degree_title {纭曞+} } - { mf } { \tl_const:Nn \nju_degree_title {纭曞+涓撲笟} } - { phd } { \tl_const:Nn \nju_degree_title {鍗氬+} } + { mg } { \tl_const:Nn \c__nju_name_degree_tl {纭曞+} } + { mf } { \tl_const:Nn \c__nju_name_degree_tl {纭曞+涓撲笟} } + { phd } { \tl_const:Nn \c__nju_name_degree_tl {鍗氬+} } } } +\cs_new:Npn \__nju_cover_uline_a:n #1 +{ + \uline{\makebox[\c__nju_cover_uline_len_a_tl] + {\rm\c__nju_cover_uline_font_tl #1 }} +} +\cs_new:Npn \__nju_cover_uline_b:n #1 +{ + \uline{\makebox[\c__nju_cover_uline_len_b_tl] + {\rm\c__nju_cover_uline_font_tl #1 }} +} +\cs_new:Npn \__nju_cover_uline_nl:nn #1 #2 +{ + \uline{\makebox[#1] + {\rm\c__nju_cover_uline_font_tl #2 }} +} +\cs_new:Npn \__nju_cover_box:n #1 +{ + \makebox[\c__nju_cover_box_len_tl][s]{ + #1\c__nju_cover_uline_bskip_tl} +} \str_if_eq:NNTF {\nju_type} {thesis} { \tl_const:Nn \nju_type_name - { \nju_degree_name 姣昞hfill 涓歕hfill 璁篭hfill 鏂� } + { \c__nju_name_diploma_tl 姣昞hfill 涓歕hfill 璁篭hfill 鏂� } } { \tl_const:Nn \nju_type_name - { \nju_degree_name 姣昞hfill 涓歕hfill 璁綷hfill 璁� } + { \c__nju_name_diploma_tl 姣昞hfill 涓歕hfill 璁綷hfill 璁� } +} +\cs_new_protected:Npn \__nju_cover_title_breakline: +{ + \__nju_cover_box:n {\c__nju_name_title_tl} + & \__nju_cover_uline_a:n + { \c__nju_cover_uline_style_tl \l__nju_info_title_a_tl } \\ + % 濡傛灉鏌愯鏍囬绌哄垯涓嶈緭鍑烘帴涓嬫潵鐨勮嫢骞茶 + \tl_if_empty:NF \l__nju_info_title_b_tl + { + \tl_if_empty:NTF \l__nju_info_title_c_tl + { + & \__nju_cover_uline_a:n + {\c__nju_cover_uline_style_tl \l__nju_info_title_b_tl } \\ + } + { + & \__nju_cover_uline_a:n + { \c__nju_cover_uline_style_tl \l__nju_info_title_b_tl } \\ + & \__nju_cover_uline_a:n + { \c__nju_cover_uline_style_tl \l__nju_info_title_c_tl } \\ + } + } } \tl_new:N \nju_printcoverinfo_ug \tl_set:Nn \nju_printcoverinfo_ug { \begin{tabular}{p{4.2em}c} - \nju_coverbox_ug:n {闄hfill 绯粆 - & \nju_cover_uline_ug:nn {250pt}{\l__nju_info_dept_tl} \\ - \nju_coverbox_ug:n {涓揬hfill 涓殅 - & \nju_cover_uline_ug:nn {250pt}{\l__nju_major_tl} \\ - - \nju_coverbox_ug:n {棰榎hfill 鐩畗 - & \nju_cover_uline_ug:nn {250pt}{\bf{\l__nju_info_title_a_tl}} \\ - % 鑷姩鍒ゆ柇鏍囬鎹㈣ - \tl_if_empty:NTF \l__nju_info_title_b_tl {} - { - \tl_if_empty:NTF \l__nju_info_title_c_tl - { & \nju_cover_uline_ug:nn {250pt}{\bf{\l__nju_info_title_b_tl}} \\ } - { - & \nju_cover_uline_ug:nn {250pt}{\bf{\l__nju_info_title_b_tl}} \\ - & \nju_cover_uline_ug:nn {250pt}{\bf{\l__nju_info_title_c_tl}} \\ - } - } + \__nju_cover_box:n {闄hfill 绯粆 + & \__nju_cover_uline_a:n {\l__nju_info_dept_tl} \\ + \__nju_cover_box:n {涓揬hfill 涓殅 + & \__nju_cover_uline_a:n {\l__nju_major_tl} \\ + \__nju_cover_title_breakline: \end{tabular}\\ \begin{tabular}{p{4.2em}cp{4.2em}c} - \nju_coverbox_ug:n {骞碶hfill 绾 - & \nju_cover_uline_ug:nn {90pt}{\l__nju_info_grade_tl} - & \nju_coverbox_ug:n {瀛hfill 鍙穧 - & \nju_cover_uline_ug:nn {90pt}{\l__nju_info_id_tl}\\ + \__nju_cover_box:n {骞碶hfill 绾 + & \__nju_cover_uline_b:n {\l__nju_info_grade_tl} + & \__nju_cover_box:n {瀛hfill 鍙穧 + & \__nju_cover_uline_b:n {\l__nju_info_id_tl}\\ \end{tabular}\\ \begin{tabular}{p{4.2em}c} - \nju_coverbox_ug:n {瀛hfill 鐢焅hfill 濮揬hfill 鍚峿 - & \nju_cover_uline_ug:nn {250pt}{\l__nju_info_author_tl} + \__nju_cover_box:n {瀛hfill 鐢焅hfill 濮揬hfill 鍚峿 + & \__nju_cover_uline_a:n {\l__nju_info_author_tl} \end{tabular}\\ \begin{tabular}{p{4.2em}cp{4.2em}c} - \nju_coverbox_ug:n {瀵糪hfill 甯坿 - & \nju_cover_uline_ug:nn {90pt}{\l__nju_info_supv_a_tl} - & \nju_coverbox_ug:n {鑱孿hfill 绉皚 - & \nju_cover_uline_ug:nn {90pt}{\l__nju_info_supv_a_title_tl}\\ + \__nju_cover_box:n {瀵糪hfill 甯坿 + & \__nju_cover_uline_b:n {\l__nju_info_supv_a_tl} + & \__nju_cover_box:n {鑱孿hfill 绉皚 + & \__nju_cover_uline_b:n {\l__nju_info_supv_a_title_tl}\\ % 绗簩瀵煎笀 - \bool_if:NT \nju_second_supervisor + \tl_if_empty:NF \l__nju_info_supv_b_tl { - \nju_coverbox_ug:n {绗琝hfill 浜孿hfill 瀵糪hfill 甯坿 - & \nju_cover_uline_ug:nn {90pt}{\l__nju_info_supv_b_tl} - & \nju_coverbox_ug:n {鑱孿hfill 绉皚 - & \nju_cover_uline_ug:nn {90pt}{\l__nju_info_supv_b_title_tl}\\ + \__nju_cover_box:n {绗琝hfill 浜孿hfill 瀵糪hfill 甯坿 + & \__nju_cover_uline_b:n {\l__nju_info_supv_b_tl} + & \__nju_cover_box:n {鑱孿hfill 绉皚 + & \__nju_cover_uline_b:n {\l__nju_info_supv_b_title_tl}\\ } \end{tabular}\\ \begin{tabular}{p{4.2em}c} - \nju_coverbox_ug:n {鎻怽hfill 浜hfill 鏃hfill 鏈焳 - & \nju_cover_uline_ug:nn {250pt}{\l__nju_submit_date_tl}\\ + \__nju_cover_box:n {鎻怽hfill 浜hfill 鏃hfill 鏈焳 + & \__nju_cover_uline_a:n {\l__nju_submit_date_tl}\\ \end{tabular} } \tl_new:N \nju_printcoverinfo_g \tl_set:Nn \nju_printcoverinfo_g { \begin{tabular}{p{6em}c} - \nju_coverbox_g:n {璁篭hfill 鏂嘰hfill 棰榎hfill 鐩畗 - & \nju_cover_uline_g:n {\l__nju_info_title_a_tl} \\ - % 鑷姩鍒ゆ柇鏍囬鎹㈣ - \tl_if_empty:NTF \l__nju_info_title_b_tl {} - { - \tl_if_empty:NTF \l__nju_info_title_c_tl - { & \nju_cover_uline_g:n {\l__nju_info_title_b_tl} \\ } - { - & \nju_cover_uline_g:n {\l__nju_info_title_b_tl} \\ - & \nju_cover_uline_g:n {\l__nju_info_title_c_tl} \\ - } - } - - \nju_coverbox_g:n {浣淺hfill 鑰匼hfill 濮揬hfill 鍚峿 - & \nju_cover_uline_g:n {\l__nju_info_author_tl}\\ - \nju_coverbox_g:n {涓揬hfill 涓歕hfill 鍚峔hfill 绉皚 - & \nju_cover_uline_g:n {\l__nju_major_tl}\\ - \nju_coverbox_g:n {鐮擻hfill 绌禱hfill 鏂筡hfill 鍚憓 - & \nju_cover_uline_g:n {\l__nju_field_tl}\\ - \nju_coverbox_g:n {鎸嘰hfill 瀵糪hfill 鏁橽hfill 甯坿 - & \nju_cover_uline_g:n {\nju_supervisor_full}\\ + \__nju_cover_title_breakline: + \__nju_cover_box:n {浣淺hfill 鑰匼hfill 濮揬hfill 鍚峿 + & \__nju_cover_uline_a:n {\l__nju_info_author_tl}\\ + \__nju_cover_box:n {涓揬hfill 涓歕hfill 鍚峔hfill 绉皚 + & \__nju_cover_uline_a:n {\l__nju_major_tl}\\ + \__nju_cover_box:n {鐮擻hfill 绌禱hfill 鏂筡hfill 鍚憓 + & \__nju_cover_uline_a:n {\l__nju_field_tl}\\ + \__nju_cover_box:n {鎸嘰hfill 瀵糪hfill 鏁橽hfill 甯坿 + & \__nju_cover_uline_a:n {\l__nju_info_supv_full_tl}\\ \end{tabular} } \tl_new:N \nju_printcover_nl % 鍥藉鍥句功棣嗗皝闈� @@ -840,13 +851,13 @@ numberwithin=section, \vskip -20mm \hskip -15mm \songti\zihao{-4} \makebox[40pt][l]{鍒嗙被鍙穧 - \nju_cover_uline_nl:nn {150pt}{\l__nju_info_classif_tl} + \__nju_cover_uline_b:n {\l__nju_info_classif_tl} \hfill \makebox[40pt][l]{瀵嗙骇} - \nju_cover_uline_nl:nn {150pt}{\l__nju_info_seclv_tl} + \__nju_cover_uline_b:n {\l__nju_info_seclv_tl} \vskip 10pt \hskip -15mm \makebox[40pt][l]{UDC} - \nju_cover_uline_nl:nn {150pt}{\l__nju_info_udc_tl} + \__nju_cover_uline_b:n {\l__nju_info_udc_tl} } % 涓儴 @@ -857,9 +868,9 @@ numberwithin=section, { \kaishu\zihao{1} \vskip \stretch{1} - \nju_cover_uline_nl:nn {14em}{\l__nju_info_title_a_tl}\\ - \nju_cover_uline_nl:nn {14em}{\l__nju_info_title_b_tl}\\ - \nju_cover_uline_nl:nn {14em}{\l__nju_info_title_c_tl}\\ + \__nju_cover_uline_b:n {\l__nju_info_title_a_tl}\\ + \__nju_cover_uline_b:n {\l__nju_info_title_b_tl}\\ + \__nju_cover_uline_b:n {\l__nju_info_title_c_tl}\\ } \vskip \stretch{1} {\kaishu\zihao{4}锛堥鍚嶅拰鍓鍚嶏級} @@ -874,25 +885,25 @@ numberwithin=section, { \kaishu\zihao{4} \noindent 鎸囧鏁欏笀濮撳悕銆佽亴鍔°€佽亴绉般€佸浣嶃€佸崟浣嶅悕绉板強鍦板潃% - \nju_cover_uline_nl:nn {94pt}{\l__nju_info_supv_a_tl}\par - \noindent\nju_cover_uline_nl:nn {\textwidth}{% + \__nju_cover_uline_nl:nn {94pt}{\l__nju_info_supv_a_tl}\par + \noindent\__nju_cover_uline_nl:nn {\textwidth}{% \l__nju_info_supv_cont_tl}\par \noindent 鐢宠瀛︿綅绾у埆% - \nju_cover_uline_nl:nn {9em}{\nju_degree_title}% + \__nju_cover_uline_nl:nn {9em}{\c__nju_name_degree_tl}% \noindent 涓撲笟鍚嶇О% \uline{\hfill\l__nju_major_tl\hfill}\par% 闇€瑕佽皟鏁翠笅鍒掔嚎闀垮害 \noindent 璁烘枃鎻愪氦鏃ユ湡% - \nju_cover_uline_nl:nn {9em}{\l__nju_submit_date_tl}% + \__nju_cover_uline_nl:nn {9em}{\l__nju_submit_date_tl}% 璁烘枃绛旇京鏃ユ湡% \uline{\hfill\l__nju_defend_date_tl\hfill}\par% 闇€瑕佽皟鏁翠笅鍒掔嚎闀垮害 \noindent 瀛︿綅鎺堜簣鍗曚綅鍜屾棩鏈焅uline{\hfill}\par \noindent\hfill 绛旇京濮斿憳浼氫富甯細% - \nju_cover_uline_nl:nn {9em}{\l__nju_info_chairman_tl}\par + \__nju_cover_uline_nl:nn {9em}{\l__nju_info_chairman_tl}\par \noindent\hfill 璇勯槄浜猴細% - \nju_cover_uline_nl:nn {9em}{\l__nju_info_reviewer_a_tl}\par - \noindent\hfill\nju_cover_uline_nl:nn {9em}{\l__nju_info_reviewer_b_tl}\par - \noindent\hfill\nju_cover_uline_nl:nn {9em}{\l__nju_info_reviewer_c_tl}\par - \noindent\hfill\nju_cover_uline_nl:nn {9em}{\l__nju_info_reviewer_d_tl}\par + \__nju_cover_uline_nl:nn {9em}{\l__nju_info_reviewer_a_tl}\par + \noindent\hfill\__nju_cover_uline_nl:nn {9em}{\l__nju_info_reviewer_b_tl}\par + \noindent\hfill\__nju_cover_uline_nl:nn {9em}{\l__nju_info_reviewer_c_tl}\par + \noindent\hfill\__nju_cover_uline_nl:nn {9em}{\l__nju_info_reviewer_d_tl}\par \begin{center} \kaishu\zihao{3}\hspace{2em} 骞碶hspace{1em} 鏈圽hspace{1em} 鏃� @@ -946,7 +957,7 @@ numberwithin=section, \vskip 15mm {\zihao{1}\makebox[10em][s]{\bf{\kaishu\nju_type_name}}} \vskip 5mm - {\zihao{1}\bf{\kaishu{锛堢敵璇穃nju_degree_title 瀛︿綅锛墋}} + {\zihao{1}\bf{\kaishu{锛堢敵璇穃c__nju_name_degree_tl 瀛︿綅锛墋}} \par\vfill \vskip\stretch{0} {\bgroup @@ -1015,7 +1026,7 @@ numberwithin=section, 闄㈢郴锛� \l__nju_info_dept_tl \\ 涓撲笟锛� \l__nju_major_tl \\ 鏈鐢熷鍚嶏細 \l__nju_info_author_tl \\ - 鎸囧鏁欏笀锛堝鍚嶃€佽亴绉帮級锛歕nju_supervisor_full \\ + 鎸囧鏁欏笀锛堝鍚嶃€佽亴绉帮級锛歕l__nju_info_supv_full_tl \\ 鎽樿锛� \egroup } @@ -1046,7 +1057,7 @@ numberwithin=section, DEPARTMENT: ~~\l__nju_info_dept_en_tl \\ SPECIALIZATION: ~~\l__nju_major_en_tl \\ UNDERGRADUATE:~~\l__nju_info_author_en_tl \\ - MENTOR:~~\nju_supervisor_full_en \\ + MENTOR:~~\l__nju_info_supv_full_tl_en \\ ABSTRACT: \egroup } @@ -1081,10 +1092,11 @@ numberwithin=section, \tl_set:Nn \arraystretch {0.8} \noindent 姣曚笟璁烘枃棰樼洰锛歕hspace{0.5em}\nju_underline:n {\l__nju_info_title_tl\hfill}\\ - \uline{\makebox[9em]{\l__nju_major_tl}}涓撲笟\uline{\makebox[4em]{\l__nju_info_grade_tl}}绾� + \uline{\makebox[9em]{\l__nju_major_tl}}涓撲笟 + \uline{\makebox[4em]{\l__nju_info_grade_tl}}绾� \str_if_eq:NNTF {\nju_degree} { phd } {鍗殅{纭晑 澹敓濮撳悕锛歕uline{\hfill\l__nju_info_author_tl\hfill} \\ - 鎸囧鏁欏笀锛堝鍚嶃€佽亴绉帮級锛歕uline{\hfill\nju_supervisor_full\hfill}\par + 鎸囧鏁欏笀锛堝鍚嶃€佽亴绉帮級锛歕uline{\hfill\l__nju_info_supv_full_tl\hfill}\par \egroup \kaishu\zihao{4}\par% @@ -1114,7 +1126,7 @@ numberwithin=section, THESIS: ~~\l__nju_info_title_en_tl \\ SPECIALIZATION: ~~\l__nju_major_en_tl \\ POSTGRADUATE:~~\l__nju_info_author_en_tl \\ - MENTOR:~~\nju_supervisor_full_en\par + MENTOR:~~\l__nju_info_supv_full_tl_en\par \egroup } \zihao{4}\par% diff --git a/njuthesis.dtx b/njuthesis.dtx index 1f285b743bf5bc58997ba73da5e37fd909814485..59b3f0e07b083baf875eb0a4a15a967b87b5456f 100644 --- a/njuthesis.dtx +++ b/njuthesis.dtx @@ -225,7 +225,7 @@ through XeTeX. %</driver> % \fi % -% \title{\color{njuviolet}The \textsc{NJuThesis} class\\ 鍗椾含澶у瀛︿綅璁烘枃妯℃澘} +% \title{\color{njuviolet} The \textsc{NJuThesis} class\\ 鍗椾含澶у瀛︿綅璁烘枃妯℃澘} % % \author{^^A % Nanjing University Linux User Group\thanks{E-mail: \href{mailto:nju.lug@yaoge123.cn}{nju.lug@yaoge123.cn}}} @@ -368,16 +368,9 @@ through XeTeX. % % 灏栨嫭鍙峰唴鍒楀嚭浜嗚嫢骞蹭釜鍏佽鐨勯€夐」锛屽叾涓姞绮楃殑涓洪粯璁ら€夐」 % -% \end{function} +% 灏侀潰鐣欑┖鍗冲彲鑷姩鍖栨崲琛� % -% \begin{function}[added=2021-09-07]{secondsupervisor} -% \begin{syntax} -% secondsupervisor = <\TFF> -% \end{syntax} -% -% 鐢ㄤ簬鍦ㄥ皝闈㈠拰鎽樿娣诲姞绗簩瀵煎笀銆傜敱浜庣洰鍓嶆潵璇存嫢鏈変袱浣嶆寚瀵艰€佸笀骞朵笉鏄竴绉嶆櫘閬嶇姸鍐碉紝鍥犳姝ら」榛樿涓篭opt{false}銆� -% \opt{true}锛孿opt{false}锛堥粯璁わ級銆� -% \end{function} +% 绗簩瀵煎笀涓嶅~鍒欑暀绌恒€傜敱浜庣洰鍓嶆潵璇存嫢鏈変袱浣嶆寚瀵艰€佸笀骞朵笉鏄竴绉嶆櫘閬嶇姸鍐碉紝鍥犳姝ら」榛樿涓篭opt{false}銆� % % \begin{function}[added=2021-09-07]{nlcover} % \begin{syntax} @@ -412,16 +405,11 @@ through XeTeX. % % \subsubsection{鎸囧畾瀛椾綋} % -% \begin{function}[added=2021-09-07]{systemfont} -% \begin{syntax} -% systemfont = <\TFF> -% \end{syntax} % % 瀛︽牎璁烘枃鏍煎紡瑕佹眰浣跨敤鐨勫瓧浣撲竴鑸凡缁忛瑁呭湪鍚勪釜鎿嶄綔绯荤粺锛屾湰妯℃澘閽堝涓嶅悓骞冲彴杩涜浜嗚嚜鍔ㄦ娴嬮€傞厤锛屽彲浠ュ紑绠卞嵆鐢ㄣ€� % -% 濡傛灉甯屾湜鏇存敼鏈ā鏉夸娇鐢ㄧ殑瀛椾綋锛岃灏嗘湰閫夐」璁剧疆涓篭opt{false}锛岀劧鍚庝娇鐢ㄤ互涓嬩袱涓€夐」鍗曠嫭璁剧疆瑗挎枃鍜屼腑鏂囧瓧浣撱€� +% 濡傛灉甯屾湜鏇存敼鏈ā鏉夸娇鐢ㄧ殑瀛椾綋锛岃濉啓浠ヤ笅涓や釜閫夐」 % -% \end{function} % % \begin{function}[added=2021-09-07]{customlatinfont} % \begin{syntax} @@ -441,12 +429,33 @@ through XeTeX. % 鎵嬪姩鎸囧畾涓枃瀛椾綋锛屽彲閫夛細 % \opt{windows}锛堥粯璁わ級锛� \opt{macos}锛� \opt{fandol}锛� \opt{founder}锛孿opt{noto}锛孿opt{null}銆� % -% FZSSK 鏂规涔﹀畫锛堢畝绻佹墿灞曪級 \href{http://www.foundertype.com/index.php/FontInfo/index/id/151 鍏嶈垂鍟嗙敤}{涓嬭浇閾炬帴} +% 鏂规瀛椾綋锛堢畝绻佹墿灞曪級绯诲垪 +% FZSSK \href{http://www.foundertype.com/index.php/FontInfo/index/id/151}{鏂规涔﹀畫} 鍏嶈垂鍟嗙敤 +% +% FZXBSK \href{http://www.foundertype.com/index.php/FontInfo/index/id/164}{鏂规灏忔爣瀹媫 璁捐甯堥潪鍟嗗厤璐� +% +% FZKTK \href{http://www.foundertype.com/index.php/FontInfo/index/id/137}{鏂规妤蜂綋} 鍏嶈垂鍟嗙敤 +% +% FZXH1K \href{http://www.foundertype.com/index.php/FontInfo/index/id/161}{鏂规缁嗛粦涓€} 璁捐甯堥潪鍟嗗厤璐� +% +% FZHTK \href{http://www.foundertype.com/index.php/FontInfo/index/id/131}{鏂规榛戜綋} 鍏嶈垂鍟嗙敤 +% +% FZFSK \href{http://www.foundertype.com/index.php/FontInfo/index/id/128}{鏂规浠垮畫} % -% FZXBSK 鏂规灏忔爣瀹嬶紙绠€绻佹墿灞曪級 \href{http://www.foundertype.com/index.php/FontInfo/index/id/164 璁捐甯堥潪鍟嗗厤璐箎{涓嬭浇閾炬帴} +% FZYouHK_508R \href{http://www.foundertype.com/index.php/FontInfo/index/id/244}{鏂规鎮犻粦508R} 璁捐甯堥潪鍟嗗厤璐� +% +% FZYouHK_511M \href{http://www.foundertype.com/index.php/FontInfo/index/id/244}{鏂规鎮犻粦511M} 璁捐甯堥潪鍟嗗厤璐� +% +% 鎬濇簮瀛椾綋\footnote{鎬濇簮瀹嬩綋鍜屾€濇簮榛戜綋鏈変袱绉嶈嫳鏂囧懡鍚嶏紝鏈ā鏉块噰鐢℅oogle鐨刵oto绯诲垪}锛� +% \href{https://www.google.com/get/noto/#serif-hans}{鎬濇簮瀹嬩綋}銆� +% \href{https://www.google.com/get/noto/#sans-hans}{鎬濇簮榛戜綋} +% % -% FZKTK 鏂规妤蜂綋锛堢畝绻佹墿灞曪級 \href{http://www.foundertype.com/index.php/FontInfo/index/id/137 鍏嶈垂鍟嗙敤}{涓嬭浇閾炬帴} % +% 鏂规妤蜂綋銆佹柟姝d豢瀹嬩负鍏嶈垂鍟嗙敤瀛椾綋锛屼笖鏀寔CJK瀛楃闆� +% \href{http://www.foundertype.com/index.php/FontInfo/index/id/128.html}{鏂规浠垮畫} +% \href{http://www.foundertype.com/index.php/FontInfo/index/id/137.html}{鏂规妤蜂綋} +% % 鍚勪釜绯荤粺鐨勯粯璁ゅ瓧浣撹鍙傝€冦€傚彲浠ョ湅鍒帮紝涓嶅悓绯荤粺涓婁娇鐢ㄧ殑瀛椾綋鏈夋墍宸埆锛屽疄闄呰緭鍑虹粨鏋滃彲鑳藉瓨鍦ㄧ粏寰笉鍚�, 浣跨敤鏃惰娉ㄦ剰銆備緥濡傦紝鍦↙inux骞冲彴鎴栬€呬娇鐢ㄤ簡Ubuntu鍚庣鐨勫崡澶hologo{TeX}涓婏紝瀹嬩綋鍔犵矖鏁堟灉鏇存槑鏄撅紱鍙︿竴鏂归潰锛屽湪Windows骞冲彴杩涜缂栬瘧鐨勬晥鏋滄洿鎺ヨ繎Word鍔犵矖\footnote{鍥犱负SimSun娌℃湁鍘熺敓绮椾綋锛岄€氳繃AutoFakeBold=2.17杩涜妯′豢}锛岀鍚堣瑙変範鎯€� % % \end{function} @@ -586,18 +595,6 @@ through XeTeX. % \begin{macrocode} \keys_define:nn { nju } { -% titlelength .int_set:N = \nju_titlelength, -% titlelength .initial:n = 1, -% \end{macrocode} -% -% Put text here. -% \begin{macrocode} - secondsupervisor .bool_set:N = \nju_second_supervisor, - secondsupervisor .initial:n = false, -% \end{macrocode} -% -% Put text here. -% \begin{macrocode} nlcover .bool_set:N = \nju_nl_cover, nlcover .initial:n = false, % \end{macrocode} @@ -610,34 +607,15 @@ through XeTeX. % \begin{macrocode} type .tl_set:N = \nju_type, type .initial:n = thesis, +} % \end{macrocode} -% -% \begin{macrocode} - systemfont .bool_set:N = \nju_systemfont, - systemfont .initial:n = true, -% \end{macrocode} -% -% Put text here. -% \begin{macrocode} - customlatinfont .tl_set:N = \nju_customlatinfont, - customlatinfont .initial:n = windows, -% \end{macrocode} -% -% Put text here. -% \begin{macrocode} - customchinesefont .tl_set:N = \nju_customchinesefont, - customchinesefont .initial:n = windows, -% \end{macrocode} -% +% % Put text here. % \begin{macrocode} +\keys_define:nn { nju } +{ info .meta:nn = { nju / info } { #1 } } -% \end{macrocode} -% -% Put text here. -% -% \begin{macrocode} \keys_define:nn { nju / info } { % \end{macrocode} @@ -716,38 +694,23 @@ through XeTeX. } % \end{macrocode} % -% This environment does nothing. It is merely an example. -% If this were a real environment, you would put a paragraph here -% describing what the environment is supposed to do, what its -% mandatory and optional arguments are, and so forth. % \begin{macrocode} \NewDocumentCommand \njusetup { m } { \keys_set:nn { nju } { #1 } } % \end{macrocode} -% mandatory and optional arguments are, and so forth. -% \begin{macrocode} -\ProcessKeysOptions { nju } -% \end{macrocode} % % mandatory and optional arguments are, and so forth. % \begin{macrocode} -\RequirePackage{fontspec} \RequirePackage[ top=2.5cm, bottom=2.5cm, left=3.2cm, right=3.2cm ]{geometry} -% \RequirePackage{ifthen} \RequirePackage{xparse} -% \RequirePackage{etoolbox} -% \RequirePackage{titlesec} % 淇敼绔犺妭鏍囬鍔熻兘鐢盋TeX鎻愪緵 \RequirePackage{titletoc} % 淇敼鐩綍鍐呮爣棰樻牸寮� -% \RequirePackage{appendix} % 瀹氫箟闄勫綍鏍峰紡 \RequirePackage[hyphens]{url} % generate better linebreaks in the url % \RequirePackage[normalem]{ulem} % 缁樺埗涓嬪垝绾� -% \RequirePackage{soul} % 鐢ㄤ笉璧锋潵 -% \RequirePackage{soulutf8} \RequirePackage{dashundergaps} \RequirePackage{setspace} \RequirePackage{lastpage} @@ -849,54 +812,146 @@ through XeTeX. % \end{macrocode} % % \subsection{瀛椾綋璁剧疆} +% +% 鍔犺浇璁剧疆瀛椾綋鎵€闇€鐨勫寘\pkg{fontspec} +% \begin{macrocode} +\RequirePackage{fontspec} +% \end{macrocode} +% +% +% +% \begin{variable}{\g_@@_latin_fontset_tl,\g_@@_cjk_fontset_tl} +% 鐢ㄤ簬瀛樺偍鎵€浣跨敤瀛椾綋鍚嶇О鐨勫叏灞€鍙橀噺锛屾敞鎰忓畯鐨勫懡鍚嶏紝l浠h〃灞€閮ㄥ彉閲忥紝g浠h〃鍏ㄥ眬鍙橀噺 +% \begin{macrocode} +\tl_new:N \g_@@_latin_fontset_tl +\tl_new:N \g_@@_cjk_fontset_tl +% \end{macrocode} +% \end{variable} +% +% 瀹氫箟瀛椾綋閫夐」 +% \begin{macrocode} +\keys_define:nn { nju } +{ + customlatinfont .choices:nn = + { gyre, macos, windows, null } + { \tl_set_eq:NN \g_@@_latin_fontset_tl \l_keys_choice_tl }, + customchinesefont .choices:nn = + { fandol, founder, macos, noto, windows, null } + { \tl_set_eq:NN \g_@@_cjk_fontset_tl \l_keys_choice_tl }, +} +% \end{macrocode} +% +% \begin{macro}{\ProcessKeysOptions} +% 鍦ㄥ畾涔夊畬鍏ㄩ儴璁剧疆浠ュ悗浠巘ex鏂囦欢瀵艰█鍖鸿緭鍏ュ弬鏁� % \begin{macrocode} -% 璁剧疆瑗挎枃瀛椾綋 -\NewDocumentCommand\set_latin_fontset_windows{}{ +\ProcessKeysOptions { nju } +% \end{macrocode} +% \end{macro} +% +% 濡傛灉鏈繘琛岃缃垯浣跨敤绯荤粺榛樿瀛椾綋瑕嗙洊杈撳叆鍙傛暟 +% +% \begin{variable}{\g_@@_load_system_fontset_tl} +% 鐢ㄤ簬鍒ゆ柇鏄惁闇€瑕佽浇鍏ョ郴缁熼瑁呭瓧浣撶殑鍏ㄥ眬鍙橀噺 +% \begin{macrocode} +\bool_new:N \g_@@_load_system_fontset_tl +% \end{macrocode} +% \end{variable} +% +% 鍒ゆ柇鐢ㄦ埛鏄惁鑷畾涔変簡涓嫳鏂囧瓧浣擄紝濡傛灉鍏朵腑浠绘剰涓€绉嶆湭琚畾涔夛紝 +% 鍒欎娇鐢ㄧ郴缁熼瑁呭瓧浣撹鐩栧瓧浣撻€夐」 +% \begin{macrocode} +\tl_if_empty:NTF \g_@@_latin_fontset_tl + { \bool_gset_true:N \g_@@_load_system_fontset_tl } +{ + \tl_if_empty:NT \g_@@_cjk_fontset_tl + { \bool_gset_true:N \g_@@_load_system_fontset_tl } +} +\bool_if:NT \g_@@_load_system_fontset_tl +{ + % 妫€娴嬫槸鍚︽槸 Windows + \sys_if_platform_windows:TF + { + \tl_set:Nn \g_@@_latin_fontset_tl { windows } + \tl_set:Nn \g_@@_cjk_fontset_tl { windows } + } + { + % 妫€娴嬫槸鍚︽槸 macOS + \ctex_if_platform_macos:TF + { + \tl_set:Nn \g_@@_latin_fontset_tl { macos } + \tl_set:Nn \g_@@_cjk_fontset_tl { macos } + } + % 鍏朵綑绯荤粺涓€寰嬩娇鐢ㄨ嚜鐢卞瓧浣� + { + \tl_set:Nn \g_@@_latin_fontset_tl { gyre } + \tl_set:Nn \g_@@_cjk_fontset_tl { fandol } + } + } +} +% \end{macrocode} +% +% 鎺ヤ笅鏉ラ€愪釜瀹氫箟鎵€闇€瑕佷娇鐢ㄧ殑瀛楃闆� +% +% \begin{macro}{\@@_load_latin_font_windows:} +% Windows 瑗挎枃瀛椾綋 +% \begin{macrocode} +\cs_new_protected:Npn \@@_load_latin_font_windows: +{ \setmainfont{Times~New~Roman} \setsansfont{Arial} \setmonofont{Courier~New}[Scale=MatchLowercase] } % \end{macrocode} +% \end{macro} % -% Put text here. +% +% \begin{macro}{\@@_load_latin_font_macos:} +% macOS 瑗挎枃瀛椾綋 % \begin{macrocode} -\NewDocumentCommand\set_latin_fontset_macos{}{ - \setmainfont{Times~New~Roman} - \setsansfont{Arial} - \setmonofont{Menlo}[Scale=MatchLowercase] +\cs_new_protected:Npn \@@_load_latin_font_macos: +{ +\setmainfont{Times~New~Roman} +\setsansfont{Arial} +\setmonofont{Menlo}[Scale=MatchLowercase] } % \end{macrocode} +% \end{macro} % -% Put text here. +% +% \begin{macro}{\@@_load_latin_font_gyre:} +% 寮€婧愮殑 gyre 瑗挎枃瀛椾綋 % \begin{macrocode} -\NewDocumentCommand\set_latin_fontset_gyre{}{ - \setmainfont{texgyretermes}[ - Extension=.otf, - UprightFont=*-regular, - BoldFont=*-bold, - ItalicFont=*-italic, - BoldItalicFont=*-bolditalic] - \setsansfont{texgyreheros}[ - Extension=.otf, - UprightFont=*-regular, - BoldFont=*-bold, - ItalicFont=*-italic, - BoldItalicFont=*-bolditalic] - \setmonofont{texgyrecursor}[ - Extension=.otf, - UprightFont=*-regular, - BoldFont=*-bold, - ItalicFont=*-italic, - BoldItalicFont=*-bolditalic, - Scale=MatchLowercase, - Ligatures=CommonOff] +\cs_new_protected:Npn \@@_load_latin_font_gyre: +{ +\setmainfont{texgyretermes}[ + Extension=.otf, + UprightFont=*-regular, + BoldFont=*-bold, + ItalicFont=*-italic, + BoldItalicFont=*-bolditalic] +\setsansfont{texgyreheros}[ + Extension=.otf, + UprightFont=*-regular, + BoldFont=*-bold, + ItalicFont=*-italic, + BoldItalicFont=*-bolditalic] +\setmonofont{texgyrecursor}[ + Extension=.otf, + UprightFont=*-regular, + BoldFont=*-bold, + ItalicFont=*-italic, + BoldItalicFont=*-bolditalic, + Scale=MatchLowercase, + Ligatures=CommonOff] } % \end{macrocode} +% \end{macro} % -% Put text here. +% \begin{macro}{\@@_load_cjk_font_windows:} +% Windows 涓枃瀛椾綋 % \begin{macrocode} -% 璁剧疆涓枃瀛椾綋 -\NewDocumentCommand\set_chinese_fontset_windows{}{ +\cs_new_protected:Npn \@@_load_cjk_font_windows: +{ \setCJKmainfont{SimSun}[ AutoFakeBold=2.17, ItalicFont=KaiTi] @@ -910,201 +965,173 @@ through XeTeX. BoldFont=Microsoft~YaHei~Bold] } % \end{macrocode} +% \end{macro} % -% Put text here. +% +% \begin{macro}{\@@_load_cjk_font_macos:} +% macOS 瀛椾綋 % \begin{macrocode} -\NewDocumentCommand\set_chinese_fontset_macos{}{ - % 绉婚櫎 does not contain script "CJK" 璀﹀憡 - \msg_redirect_name:nnn {fontspec} {no-script} {info} - \setCJKmainfont{Songti~SC~Light}[ - BoldFont=Songti~SC~Bold, - ItalicFont=Kaiti~SC, - BoldItalicFont=Kaiti~SC~Bold] - \setCJKsansfont{Heiti~SC~Light}[BoldFont=Heiti~SC~Medium] - \setCJKmonofont{STFangsong} - \setCJKfamilyfont{zhsong}{Songti~SC~Light}[BoldFont=Songti~SC~Bold] - \setCJKfamilyfont{zhhei}{Heiti~SC~Light}[BoldFont=Heiti~SC~Medium] - \setCJKfamilyfont{zhfs}{STFangsong} - \setCJKfamilyfont{zhkai}{Kaiti~SC} - [ - BoldFont=Kaiti~SC~Bold, - % 鍙傝€僀TeX鎵嬪唽绗�9鑺� LuaLATEX 涓嬬殑涓枃鏀寔鏂瑰紡 - % AlternateFont = - % { - % {鉄╟haracter range1鉄﹠ {鉄╝lternate font name1鉄﹠ - % {鉄╝lternate font features2鉄﹠ , - % ...... - % } - ] - \setCJKfamilyfont{zhnewhei}{PingFang~SC} +\cs_new_protected:Npn \@@_load_cjk_font_macos: +{ +% 绉婚櫎 does not contain script "CJK" 璀﹀憡 +\msg_redirect_name:nnn {fontspec} {no-script} {info} +\setCJKmainfont{Songti~SC~Light}[ + BoldFont=Songti~SC~Bold, + ItalicFont=Kaiti~SC, + BoldItalicFont=Kaiti~SC~Bold] +\setCJKsansfont{Heiti~SC~Light}[BoldFont=Heiti~SC~Medium] +\setCJKmonofont{STFangsong} +\setCJKfamilyfont{zhsong}{Songti~SC~Light}[BoldFont=Songti~SC~Bold] +\setCJKfamilyfont{zhhei}{Heiti~SC~Light}[BoldFont=Heiti~SC~Medium] +\setCJKfamilyfont{zhfs}{STFangsong} +\setCJKfamilyfont{zhkai}{Kaiti~SC} + [ + BoldFont=Kaiti~SC~Bold, + % 鍙傝€僀TeX鎵嬪唽绗�9鑺� LuaLATEX 涓嬬殑涓枃鏀寔鏂瑰紡 + % AlternateFont = + % { + % {鉄╟haracter range1鉄﹠ {鉄╝lternate font name1鉄﹠ + % {鉄╝lternate font features2鉄﹠ , + % ...... + % } + ] +\setCJKfamilyfont{zhnewhei}{PingFang~SC} } % \end{macrocode} +% \end{macro} % -% Put text here. +% +% \begin{macro}{\@@_load_cjk_font_fandol:} +% Fandol 瀛椾綋 % \begin{macrocode} -\NewDocumentCommand\set_chinese_fontset_fandol{}{ - % 绉婚櫎 does not contain script "CJK" 璀﹀憡 - \msg_redirect_name:nnn {fontspec} {no-script} {info} - \setCJKmainfont{FandolSong-Regular}[ - Extension=.otf, - BoldFont=FandolSong-Bold, - ItalicFont=FandolKai-Regular] - \setCJKsansfont{FandolHei-Regular}[ - Extension=.otf, - BoldFont=FandolHei-Bold] - \setCJKmonofont{FandolFang-Regular}[Extension=.otf] - \setCJKfamilyfont{zhsong}{FandolSong-Regular}[ - Extension=.otf, - BoldFont=FandolSong-Bold] - \setCJKfamilyfont{zhhei}{FandolHei-Regular}[ - Extension=.otf, - BoldFont=FandolHei-Bold] - \setCJKfamilyfont{zhfs}{FandolFang-Regular}[Extension=.otf] - \setCJKfamilyfont{zhkai}{FandolKai-Regular}[ - Extension=.otf, - AutoFakeBold=2.17] +\cs_new_protected:Npn \@@_load_cjk_font_fandol: +{ +% 绉婚櫎 does not contain script "CJK" 璀﹀憡 +\msg_redirect_name:nnn {fontspec} {no-script} {info} +\setCJKmainfont{FandolSong-Regular}[ + Extension=.otf, + BoldFont=FandolSong-Bold, + ItalicFont=FandolKai-Regular] +\setCJKsansfont{FandolHei-Regular}[ + Extension=.otf, + BoldFont=FandolHei-Bold] +\setCJKmonofont{FandolFang-Regular}[Extension=.otf] +\setCJKfamilyfont{zhsong}{FandolSong-Regular}[ + Extension=.otf, + BoldFont=FandolSong-Bold] +\setCJKfamilyfont{zhhei}{FandolHei-Regular}[ + Extension=.otf, + BoldFont=FandolHei-Bold] +\setCJKfamilyfont{zhfs}{FandolFang-Regular}[Extension=.otf] +\setCJKfamilyfont{zhkai}{FandolKai-Regular}[ + Extension=.otf, + AutoFakeBold=2.17] } % \end{macrocode} +% \end{macro} % -% Put text here. +% +% \begin{macro}{\@@_load_cjk_font_founder:} +% 鏂规瀛楃闆嗭紙绠€绻佹墿灞曪級 % \begin{macrocode} -% 鏂规瀛楃闆� -\NewDocumentCommand\set_chinese_fontset_founder{}{ - \setCJKmainfont{FZSSK}[ - Extension=.ttf, - BoldFont=FZXBSK, - ItalicFont=FZKTK] - % FZXH1K 鏂规缁嗛粦涓€锛堢畝绻佹墿灞曪級 http://www.foundertype.com/index.php/FontInfo/index/id/161 璁捐甯堥潪鍟嗗厤璐� - % FZHTK 鏂规榛戜綋锛堢畝绻佹墿灞曪級 http://www.foundertype.com/index.php/FontInfo/index/id/131 鍏嶈垂鍟嗙敤 - \setCJKsansfont{FZXH1K}[ - Extension=.ttf, - BoldFont=FZHTK] - % FZFSK 鏂规浠垮畫锛堢畝绻佹墿灞曪級 http://www.foundertype.com/index.php/FontInfo/index/id/128 - \setCJKmonofont{FZFSK}[Extension=.ttf] - - \setCJKfamilyfont{zhsong}{FZSSK}[ +\cs_new_protected:Npn \@@_load_cjk_font_founder: +{ +\setCJKmainfont{FZSSK}[% 鏂规涔﹀畫 + Extension=.ttf, + BoldFont=FZXBSK,% 鏂规灏忔爣瀹� + ItalicFont=FZKTK]% 鏂规妤蜂綋 +\setCJKsansfont{FZXH1K}[% 鏂规缁嗛粦涓€ + Extension=.ttf, + BoldFont=FZHTK]% FZHTK 鏂规榛戜綋 +\setCJKmonofont{FZFSK}[Extension=.ttf]% 鏂规浠垮畫 +\setCJKfamilyfont{zhsong} + {FZSSK}[ Extension=.ttf, BoldFont=FZXBSK] - \setCJKfamilyfont{zhhei}{FZHTK}[ +\setCJKfamilyfont{zhhei} + {FZHTK}[ Extension=.ttf, AutoFakeBold=2.17] - \setCJKfamilyfont{zhfs}{FZFSK}[Extension=.ttf] - \setCJKfamilyfont{zhkai}{FZKTK}[Extension=.ttf] - % FZYouHK_508R 鏂规鎮犻粦508R锛堢畝绻佹墿灞曪級 http://www.foundertype.com/index.php/FontInfo/index/id/244 璁捐甯堥潪鍟嗗厤璐� - % FZYouHK_511M 鏂规鎮犻粦511M锛堢畝绻佹墿灞曪級 http://www.foundertype.com/index.php/FontInfo/index/id/244 璁捐甯堥潪鍟嗗厤璐� - \setCJKfamilyfont{zhnewhei}{FZYouHK_508R}[ +\setCJKfamilyfont{zhfs} + {FZFSK}[Extension=.ttf] +\setCJKfamilyfont{zhkai} + {FZKTK}[Extension=.ttf] +\setCJKfamilyfont{zhnewhei} + {FZYouHK_508R}[% 鏂规鎮犻粦508R Extension=.ttf, - BoldFont=FZYouHK_511M] + BoldFont=FZYouHK_511M]% 鏂规鎮犻粦511M } % \end{macrocode} +% \end{macro} % -% Put text here. +% +% \begin{macro}{\@@_load_cjk_font_noto:} +% 鎬濇簮瀛椾綋 % \begin{macrocode} -\NewDocumentCommand\set_chinese_fontset_noto{}{ - % 鎬濇簮瀹嬩綋 https://www.google.com/get/noto/#serif-hans - \setCJKmainfont[ - UprightFont=NotoSerifCJKsc-Regular, - BoldFont=NotoSerifCJKsc-Bold, - ItalicFont=NotoSerifCJKsc-Regular, - BoldItalicFont=NotoSerifCJKsc-Bold, - ItalicFeatures=FakeSlant, - BoldItalicFeatures=FakeSlant]{Noto~Serif~CJK~SC} - - % 鎬濇簮榛戜綋 https://www.google.com/get/noto/#sans-hans - \setCJKsansfont[ - UprightFont=NotoSansCJKsc-Regular, - BoldFont=NotoSansCJKsc-Bold, - ItalicFont=NotoSansCJKsc-Regular, - BoldItalicFont=NotoSansCJKsc-Bold, - ItalicFeatures=FakeSlant, - BoldItalicFeatures=FakeSlant]{Noto~Sans~CJK~SC} - - % 鍖呭惈浜庝笂杩版€濇簮榛戜綋 - \setCJKmonofont[ - UprightFont=NotoSansMonoCJKsc-Regular, - BoldFont=NotoSansMonoCJKsc-Bold, - ItalicFont=NotoSansMonoCJKsc-Regular, - BoldItalicFont=NotoSansMonoCJKsc-Bold, - ItalicFeatures=FakeSlant, - BoldItalicFeatures=FakeSlant]{Noto~Sans~Mono~SC} - - \setCJKfamilyfont{zhsong}{Noto~Serif~CJK~SC} - \setCJKfamilyfont{zhhei}{Noto~Sans~CJK~SC} - - % 鏂规妤蜂綋銆佹柟姝d豢瀹嬩负鍏嶈垂鍟嗙敤瀛椾綋锛屼笖鏀寔CJK瀛楃闆� - % 鏂规浠垮畫 http://www.foundertype.com/index.php/FontInfo/index/id/128.html - % 鏂规妤蜂綋 http://www.foundertype.com/index.php/FontInfo/index/id/137.html - \setCJKfamilyfont{zhfs}{鏂规浠垮畫绠€浣搣[AutoFakeBold=2.17] - \setCJKfamilyfont{zhkai}{鏂规妤蜂綋绠€浣搣[AutoFakeBold=2.17] +\cs_new_protected:Npn \@@_load_cjk_font_noto: +{ +% 鎬濇簮瀹嬩綋 +\setCJKmainfont[ + UprightFont=NotoSerifCJKsc-Regular, + BoldFont=NotoSerifCJKsc-Bold, + ItalicFont=NotoSerifCJKsc-Regular, + BoldItalicFont=NotoSerifCJKsc-Bold, + ItalicFeatures=FakeSlant, + BoldItalicFeatures=FakeSlant]{Noto~Serif~CJK~SC} + +% 鎬濇簮榛戜綋 +\setCJKsansfont[ + UprightFont=NotoSansCJKsc-Regular, + BoldFont=NotoSansCJKsc-Bold, + ItalicFont=NotoSansCJKsc-Regular, + BoldItalicFont=NotoSansCJKsc-Bold, + ItalicFeatures=FakeSlant, + BoldItalicFeatures=FakeSlant]{Noto~Sans~CJK~SC} + +% 鍖呭惈浜庝笂杩版€濇簮榛戜綋 +\setCJKmonofont[ + UprightFont=NotoSansMonoCJKsc-Regular, + BoldFont=NotoSansMonoCJKsc-Bold, + ItalicFont=NotoSansMonoCJKsc-Regular, + BoldItalicFont=NotoSansMonoCJKsc-Bold, + ItalicFeatures=FakeSlant, + BoldItalicFeatures=FakeSlant]{Noto~Sans~Mono~SC} + +\setCJKfamilyfont{zhsong}{Noto~Serif~CJK~SC} +\setCJKfamilyfont{zhhei}{Noto~Sans~CJK~SC} +\setCJKfamilyfont{zhfs}{鏂规浠垮畫绠€浣搣[AutoFakeBold=2.17] +\setCJKfamilyfont{zhkai}{鏂规妤蜂綋绠€浣搣[AutoFakeBold=2.17] } % \end{macrocode} +% \end{macro} % -% Put text here. +% 杞藉叆璁剧疆鐨勫瓧浣� % \begin{macrocode} -% 瀛椾綋鍒ゆ柇 -\bool_if:NTF \nju_systemfont -% 鏍规嵁鎿嶄綔绯荤粺鑷姩閫夋嫨鐩稿簲瀛椾綋 +\cs_new_protected:Npn \@@_load_font: { - % 妫€娴嬫槸鍚︽槸 Windows - \sys_if_platform_windows:TF - { - \set_latin_fontset_windows - \set_chinese_fontset_windows - } - { - % 妫€娴嬫槸鍚︽槸 macOS - \ctex_if_platform_macos:TF - { - \set_latin_fontset_macos - \set_chinese_fontset_macos - } - % 鍏朵綑绯荤粺涓€寰嬩娇鐢ㄨ嚜鐢卞瓧浣� - { - \set_latin_fontset_gyre - \set_chinese_fontset_fandol - } - } -} -{ - % 濡傛灉鐢ㄦ埛闇€瑕佽嚜瀹氫箟瀛椾綋 - % 姝ゅ闇€瑕佷娇鐢╘str_case_e鑰屼笉鏄痋str_case浣垮畯灞曞紑涓哄瓧绗︿覆 - \str_case_e:nn { \nju_customlatinfont } - { - { windows } { \set_latin_fontset_windows } - { macos } { \set_latin_fontset_macos } - { gyre } { \set_latin_fontset_gyre } - { null } {} - } - \str_case_e:nn { \nju_customchinesefont } - { - { windows } { \set_chinese_fontset_windows } - { macos } { \set_chinese_fontset_macos } - { gyre } { \set_chinese_fontset_gyre } - { founder } { \set_chinese_fontset_founder } - { noto } { \set_chinese_fontset_noto } - { null } {} - } + \use:c { @@_load_latin_font_ \g_@@_latin_fontset_tl : } + \use:c { @@_load_cjk_font_ \g_@@_cjk_fontset_tl : } + + \NewDocumentCommand\songti{}{\CJKfamily{zhsong}} + \NewDocumentCommand\heiti{}{\CJKfamily{zhhei}} + \NewDocumentCommand\fangsong{}{\CJKfamily{zhfs}} + \NewDocumentCommand\kaishu{}{\CJKfamily{zhkai}} } -% 閫夋嫨鍏朵粬瀛椾綋锛岃纭繚鐩稿簲瀛椾綋宸插畨瑁� +\@@_load_font: % \end{macrocode} % -% Put text here. -% \begin{macrocode} % 璁剧疆鏁板瀛椾綋 (XITS, 鎴栬€� STIX, 涓� Times New Roman 鏈€涓虹浉杩�) +% \begin{macrocode} % \setmathfont{STIXTwoMath-Regular}[Extension = .otf] \setmathfont{XITSMath-Regular}[ BoldFont = XITSMath-Bold, Extension = .otf] % \end{macrocode} % -% Put text here. -% \begin{macrocode} -\NewDocumentCommand\songti{}{\CJKfamily{zhsong}} -\NewDocumentCommand\heiti{}{\CJKfamily{zhhei}} -\NewDocumentCommand\fangsong{}{\CJKfamily{zhfs}} -\NewDocumentCommand\kaishu{}{\CJKfamily{zhkai}} -% \NewDocumentCommand\lishu{}{\CJKfamily{zhli}} -% \end{macrocode} +% +% \subsection{椤甸潰鏍峰紡} +% +% \subsubsection{椤电湁椤佃剼} % % Put text here. % \begin{macrocode} @@ -1233,25 +1260,28 @@ through XeTeX. } % \end{macrocode} % +% \begin{environment}{preface} % Put text here. % \begin{macrocode} % 瀹氬埗鍓嶈█銆佽嚧璋㈢幆澧� -\newenvironment{preface} +\NewDocumentEnvironment{preface}{} {% \chapter*{鍓嶈█} \addcontentsline{toc}{chapter}{鍓嶈█} }{} % \end{macrocode} +% \end{environment} % -% \DescribeEnv{acknowledgements} +% \begin{environment}{acknowledgement} % 鍗曠嫭鍒朵綔鐨勮嚧璋㈤〉銆� % \begin{macrocode} -\newenvironment{acknowledgement} +\NewDocumentEnvironment{acknowledgement}{} {% \chapter*{鑷磋阿} \addcontentsline{toc}{chapter}{鑷磋阿} }{} % \end{macrocode} +% \end{environment} % % Put text here. % \begin{macrocode} @@ -1376,7 +1406,9 @@ through XeTeX. % \begin{macrocode} \lstdefinestyle{LaTeX}{ language=TeX, - morekeywords={begin, caption, label, mathrm, frac, toprule, midrule, bottomrule, includegraphics} + morekeywords={ + begin, caption, label, mathrm, frac, + toprule, midrule, bottomrule, includegraphics} } % \end{macrocode} % @@ -1538,30 +1570,36 @@ through XeTeX. } % \end{macrocode} % -% Put text here. +% 鍙屽甯堢殑澶勭悊 % \begin{macrocode} % 鎷煎悎瀵煎笀 -\bool_if:NTF \nju_second_supervisor -{ - \tl_const:Nn \nju_supervisor_full +\tl_if_empty:NTF \l_@@_info_supv_b_tl +{ + \tl_const:Nn \l_@@_info_supv_full_tl { - \l_@@_info_supv_a_tl\ \l_@@_info_supv_a_title_tl - \ \ \l_@@_info_supv_b_tl\ \l_@@_info_supv_b_title_tl + \l_@@_info_supv_a_tl\hspace{.5em} + \l_@@_info_supv_a_title_tl } - \tl_const:Nn \nju_supervisor_full_en + \tl_const:Nn \l_@@_info_supv_full_tl_en { - \l_@@_info_supv_a_en_tl\ \l_@@_info_supv_a_title_en_tl - \ \ \l_@@_info_supv_b_en_tl\ \l_@@_info_supv_b_title_en_tl + \l_@@_info_supv_a_en_tl\hspace{.5em} + \l_@@_info_supv_a_title_en_tl } } -{ - \tl_const:Nn \nju_supervisor_full +{ + \tl_const:Nn \l_@@_info_supv_full_tl { - \l_@@_info_supv_a_tl\ \l_@@_info_supv_a_title_tl + \l_@@_info_supv_a_tl\hspace{.5em} + \l_@@_info_supv_a_title_tl\hspace{1em} + \l_@@_info_supv_b_tl\hspace{.5em} + \l_@@_info_supv_b_title_tl } - \tl_const:Nn \nju_supervisor_full_en + \tl_const:Nn \l_@@_info_supv_full_tl_en { - \l_@@_info_supv_a_en_tl\ \l_@@_info_supv_a_title_en_tl + \l_@@_info_supv_a_en_tl\hspace{.5em} + \l_@@_info_supv_a_title_en_tl\hspace{1em} + \l_@@_info_supv_b_en_tl\hspace{.5em} + \l_@@_info_supv_b_title_en_tl } } % \end{macrocode} @@ -1572,66 +1610,110 @@ through XeTeX. \str_if_eq:NNTF {\nju_degree} { ug } { % 鏈 - \tl_const:Nn \nju_degree_name {鏈琝hfill 绉慭hfill } + \tl_const:Nn \c_@@_name_diploma_tl { 鏈琝hfill 绉慭hfill } + \tl_const:Nn \c_@@_name_title_tl { 棰榎hfill 鐩� } + + \tl_const:Nn \c_@@_cover_uline_len_a_tl { 250pt } + \tl_const:Nn \c_@@_cover_uline_len_b_tl { 90pt } + \tl_const:Nn \c_@@_cover_uline_font_tl { \songti } + \tl_const:Nn \c_@@_cover_uline_style_tl { \bf } + \tl_const:Nn \c_@@_cover_uline_bskip_tl {} + + \tl_const:Nn \c_@@_cover_box_len_tl { 4.2em } % 鏈寮哄埗涓嶆墦鍗板浗瀹跺浘涔﹂灏侀潰 \bool_set_false:N \nju_nl_cover - - % 灏侀潰涓嬪垝绾� - \cs_new:Npn \nju_cover_uline_ug:nn #1 #2 - { - \uline{\makebox[#1]{\rm\songti#2}} - } - - % 灏侀潰琛ㄦ牸杈规 - \cs_new:Npn \nju_coverbox_ug:n #1 - { - \makebox[4.2em][s]{#1} - } } { % 鏈浠ュ閮芥槸鐮旂┒鐢� - \tl_const:Nn \nju_degree_name {鐮擻hfill 绌禱hfill 鐢焅hfill } + \tl_const:Nn \c_@@_name_diploma_tl { 鐮擻hfill 绌禱hfill 鐢焅hfill } + \tl_const:Nn \c_@@_name_title_tl { 璁篭hfill 鏂嘰hfill 棰榎hfill 鐩� } - % 灏侀潰涓嬪垝绾� - \cs_new:Npn \nju_cover_uline_g:n #1 - { - \uline{\makebox[250pt]{\rm\kaishu#1}} - } + \tl_const:Nn \c_@@_cover_uline_len_a_tl { 250pt } + \tl_const:Nn \c_@@_cover_uline_len_b_tl { 14em } + \tl_const:Nn \c_@@_cover_uline_font_tl { \kaishu } + \tl_const:Nn \c_@@_cover_uline_style_tl { } + \tl_const:Nn \c_@@_cover_uline_bskip_tl { \hspace{1em} } - % 鍥藉鍥句功棣嗗皝闈笅鍒掔嚎 - \cs_new:Npn \nju_cover_uline_nl:nn #1 #2 - { - \uline{\makebox[#1]{#2}} - } + \tl_const:Nn \c_@@_cover_box_len_tl { 6em } - % 灏侀潰琛ㄦ牸杈规 - \cs_new:Npn \nju_coverbox_g:n #1 - { - \makebox[6em][s]{#1\hspace{1em}} - } - % 鐮旂┒鐢熷浣嶅垎绫� \str_case_e:nn { \nju_degree } { - { mg } { \tl_const:Nn \nju_degree_title {纭曞+} } - { mf } { \tl_const:Nn \nju_degree_title {纭曞+涓撲笟} } - { phd } { \tl_const:Nn \nju_degree_title {鍗氬+} } + { mg } { \tl_const:Nn \c_@@_name_degree_tl {纭曞+} } + { mf } { \tl_const:Nn \c_@@_name_degree_tl {纭曞+涓撲笟} } + { phd } { \tl_const:Nn \c_@@_name_degree_tl {鍗氬+} } } } % \end{macrocode} % % Put text here. % \begin{macrocode} +% 灏侀潰涓嬪垝绾� +\cs_new:Npn \@@_cover_uline_a:n #1 +{ + \uline{\makebox[\c_@@_cover_uline_len_a_tl] + {\rm\c_@@_cover_uline_font_tl #1 }} +} +\cs_new:Npn \@@_cover_uline_b:n #1 +{ + \uline{\makebox[\c_@@_cover_uline_len_b_tl] + {\rm\c_@@_cover_uline_font_tl #1 }} +} +\cs_new:Npn \@@_cover_uline_nl:nn #1 #2 +{ + \uline{\makebox[#1] + {\rm\c_@@_cover_uline_font_tl #2 }} +} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +% 灏侀潰琛ㄦ牸杈规 +\cs_new:Npn \@@_cover_box:n #1 +{ + \makebox[\c_@@_cover_box_len_tl][s]{ + #1\c_@@_cover_uline_bskip_tl} +} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} % 鍒ゆ柇绫诲瀷 \str_if_eq:NNTF {\nju_type} {thesis} { \tl_const:Nn \nju_type_name - { \nju_degree_name 姣昞hfill 涓歕hfill 璁篭hfill 鏂� } + { \c_@@_name_diploma_tl 姣昞hfill 涓歕hfill 璁篭hfill 鏂� } } { \tl_const:Nn \nju_type_name - { \nju_degree_name 姣昞hfill 涓歕hfill 璁綷hfill 璁� } + { \c_@@_name_diploma_tl 姣昞hfill 涓歕hfill 璁綷hfill 璁� } +} +% \end{macrocode} +% +% 瀵瑰琛屾爣棰樿繘琛岃嚜鍔ㄥ垽鏂紝骞惰緭鍑烘崲琛屽悗鐨勭粨鏋� +% +% \begin{macrocode} +\cs_new_protected:Npn \@@_cover_title_breakline: +{ + \@@_cover_box:n {\c_@@_name_title_tl} + & \@@_cover_uline_a:n + { \c_@@_cover_uline_style_tl \l_@@_info_title_a_tl } \\ + % 濡傛灉鏌愯鏍囬绌哄垯涓嶈緭鍑烘帴涓嬫潵鐨勮嫢骞茶 + \tl_if_empty:NF \l_@@_info_title_b_tl + { + \tl_if_empty:NTF \l_@@_info_title_c_tl + { + & \@@_cover_uline_a:n + {\c_@@_cover_uline_style_tl \l_@@_info_title_b_tl } \\ + } + { + & \@@_cover_uline_a:n + { \c_@@_cover_uline_style_tl \l_@@_info_title_b_tl } \\ + & \@@_cover_uline_a:n + { \c_@@_cover_uline_style_tl \l_@@_info_title_c_tl } \\ + } + } } % \end{macrocode} % @@ -1642,55 +1724,43 @@ through XeTeX. \tl_set:Nn \nju_printcoverinfo_ug { \begin{tabular}{p{4.2em}c} - \nju_coverbox_ug:n {闄hfill 绯粆 - & \nju_cover_uline_ug:nn {250pt}{\l__nju_info_dept_tl} \\ - \nju_coverbox_ug:n {涓揬hfill 涓殅 - & \nju_cover_uline_ug:nn {250pt}{\l__nju_major_tl} \\ - - \nju_coverbox_ug:n {棰榎hfill 鐩畗 - & \nju_cover_uline_ug:nn {250pt}{\bf{\l__nju_info_title_a_tl}} \\ - % 鑷姩鍒ゆ柇鏍囬鎹㈣ - \tl_if_empty:NTF \l__nju_info_title_b_tl {} - { - \tl_if_empty:NTF \l__nju_info_title_c_tl - { & \nju_cover_uline_ug:nn {250pt}{\bf{\l__nju_info_title_b_tl}} \\ } - { - & \nju_cover_uline_ug:nn {250pt}{\bf{\l__nju_info_title_b_tl}} \\ - & \nju_cover_uline_ug:nn {250pt}{\bf{\l__nju_info_title_c_tl}} \\ - } - } + \@@_cover_box:n {闄hfill 绯粆 + & \@@_cover_uline_a:n {\l_@@_info_dept_tl} \\ + \@@_cover_box:n {涓揬hfill 涓殅 + & \@@_cover_uline_a:n {\l_@@_major_tl} \\ + \@@_cover_title_breakline: \end{tabular}\\ \begin{tabular}{p{4.2em}cp{4.2em}c} - \nju_coverbox_ug:n {骞碶hfill 绾 - & \nju_cover_uline_ug:nn {90pt}{\l_@@_info_grade_tl} - & \nju_coverbox_ug:n {瀛hfill 鍙穧 - & \nju_cover_uline_ug:nn {90pt}{\l_@@_info_id_tl}\\ + \@@_cover_box:n {骞碶hfill 绾 + & \@@_cover_uline_b:n {\l_@@_info_grade_tl} + & \@@_cover_box:n {瀛hfill 鍙穧 + & \@@_cover_uline_b:n {\l_@@_info_id_tl}\\ \end{tabular}\\ \begin{tabular}{p{4.2em}c} - \nju_coverbox_ug:n {瀛hfill 鐢焅hfill 濮揬hfill 鍚峿 - & \nju_cover_uline_ug:nn {250pt}{\l_@@_info_author_tl} + \@@_cover_box:n {瀛hfill 鐢焅hfill 濮揬hfill 鍚峿 + & \@@_cover_uline_a:n {\l_@@_info_author_tl} \end{tabular}\\ \begin{tabular}{p{4.2em}cp{4.2em}c} - \nju_coverbox_ug:n {瀵糪hfill 甯坿 - & \nju_cover_uline_ug:nn {90pt}{\l_@@_info_supv_a_tl} - & \nju_coverbox_ug:n {鑱孿hfill 绉皚 - & \nju_cover_uline_ug:nn {90pt}{\l_@@_info_supv_a_title_tl}\\ + \@@_cover_box:n {瀵糪hfill 甯坿 + & \@@_cover_uline_b:n {\l_@@_info_supv_a_tl} + & \@@_cover_box:n {鑱孿hfill 绉皚 + & \@@_cover_uline_b:n {\l_@@_info_supv_a_title_tl}\\ % 绗簩瀵煎笀 - \bool_if:NT \nju_second_supervisor + \tl_if_empty:NF \l_@@_info_supv_b_tl { - \nju_coverbox_ug:n {绗琝hfill 浜孿hfill 瀵糪hfill 甯坿 - & \nju_cover_uline_ug:nn {90pt}{\l_@@_info_supv_b_tl} - & \nju_coverbox_ug:n {鑱孿hfill 绉皚 - & \nju_cover_uline_ug:nn {90pt}{\l_@@_info_supv_b_title_tl}\\ + \@@_cover_box:n {绗琝hfill 浜孿hfill 瀵糪hfill 甯坿 + & \@@_cover_uline_b:n {\l_@@_info_supv_b_tl} + & \@@_cover_box:n {鑱孿hfill 绉皚 + & \@@_cover_uline_b:n {\l_@@_info_supv_b_title_tl}\\ } \end{tabular}\\ \begin{tabular}{p{4.2em}c} - \nju_coverbox_ug:n {鎻怽hfill 浜hfill 鏃hfill 鏈焳 - & \nju_cover_uline_ug:nn {250pt}{\l_@@_submit_date_tl}\\ + \@@_cover_box:n {鎻怽hfill 浜hfill 鏃hfill 鏈焳 + & \@@_cover_uline_a:n {\l_@@_submit_date_tl}\\ \end{tabular} } % \end{macrocode} @@ -1702,27 +1772,15 @@ through XeTeX. \tl_set:Nn \nju_printcoverinfo_g { \begin{tabular}{p{6em}c} - \nju_coverbox_g:n {璁篭hfill 鏂嘰hfill 棰榎hfill 鐩畗 - & \nju_cover_uline_g:n {\l_@@_info_title_a_tl} \\ - % 鑷姩鍒ゆ柇鏍囬鎹㈣ - \tl_if_empty:NTF \l__nju_info_title_b_tl {} - { - \tl_if_empty:NTF \l__nju_info_title_c_tl - { & \nju_cover_uline_g:n {\l_@@_info_title_b_tl} \\ } - { - & \nju_cover_uline_g:n {\l_@@_info_title_b_tl} \\ - & \nju_cover_uline_g:n {\l_@@_info_title_c_tl} \\ - } - } - - \nju_coverbox_g:n {浣淺hfill 鑰匼hfill 濮揬hfill 鍚峿 - & \nju_cover_uline_g:n {\l_@@_info_author_tl}\\ - \nju_coverbox_g:n {涓揬hfill 涓歕hfill 鍚峔hfill 绉皚 - & \nju_cover_uline_g:n {\l_@@_major_tl}\\ - \nju_coverbox_g:n {鐮擻hfill 绌禱hfill 鏂筡hfill 鍚憓 - & \nju_cover_uline_g:n {\l_@@_field_tl}\\ - \nju_coverbox_g:n {鎸嘰hfill 瀵糪hfill 鏁橽hfill 甯坿 - & \nju_cover_uline_g:n {\nju_supervisor_full}\\ + \@@_cover_title_breakline: + \@@_cover_box:n {浣淺hfill 鑰匼hfill 濮揬hfill 鍚峿 + & \@@_cover_uline_a:n {\l_@@_info_author_tl}\\ + \@@_cover_box:n {涓揬hfill 涓歕hfill 鍚峔hfill 绉皚 + & \@@_cover_uline_a:n {\l_@@_major_tl}\\ + \@@_cover_box:n {鐮擻hfill 绌禱hfill 鏂筡hfill 鍚憓 + & \@@_cover_uline_a:n {\l_@@_field_tl}\\ + \@@_cover_box:n {鎸嘰hfill 瀵糪hfill 鏁橽hfill 甯坿 + & \@@_cover_uline_a:n {\l_@@_info_supv_full_tl}\\ \end{tabular} } % \end{macrocode} @@ -1750,13 +1808,13 @@ through XeTeX. \vskip -20mm \hskip -15mm \songti\zihao{-4} \makebox[40pt][l]{鍒嗙被鍙穧 - \nju_cover_uline_nl:nn {150pt}{\l_@@_info_classif_tl} + \@@_cover_uline_b:n {\l_@@_info_classif_tl} \hfill \makebox[40pt][l]{瀵嗙骇} - \nju_cover_uline_nl:nn {150pt}{\l_@@_info_seclv_tl} + \@@_cover_uline_b:n {\l_@@_info_seclv_tl} \vskip 10pt \hskip -15mm \makebox[40pt][l]{UDC} - \nju_cover_uline_nl:nn {150pt}{\l_@@_info_udc_tl} + \@@_cover_uline_b:n {\l_@@_info_udc_tl} } % 涓儴 @@ -1767,9 +1825,9 @@ through XeTeX. { \kaishu\zihao{1} \vskip \stretch{1} - \nju_cover_uline_nl:nn {14em}{\l_@@_info_title_a_tl}\\ - \nju_cover_uline_nl:nn {14em}{\l_@@_info_title_b_tl}\\ - \nju_cover_uline_nl:nn {14em}{\l_@@_info_title_c_tl}\\ + \@@_cover_uline_b:n {\l_@@_info_title_a_tl}\\ + \@@_cover_uline_b:n {\l_@@_info_title_b_tl}\\ + \@@_cover_uline_b:n {\l_@@_info_title_c_tl}\\ } \vskip \stretch{1} {\kaishu\zihao{4}锛堥鍚嶅拰鍓鍚嶏級} @@ -1784,25 +1842,25 @@ through XeTeX. { \kaishu\zihao{4} \noindent 鎸囧鏁欏笀濮撳悕銆佽亴鍔°€佽亴绉般€佸浣嶃€佸崟浣嶅悕绉板強鍦板潃% - \nju_cover_uline_nl:nn {94pt}{\l_@@_info_supv_a_tl}\par - \noindent\nju_cover_uline_nl:nn {\textwidth}{% + \@@_cover_uline_nl:nn {94pt}{\l_@@_info_supv_a_tl}\par + \noindent\@@_cover_uline_nl:nn {\textwidth}{% \l_@@_info_supv_cont_tl}\par \noindent 鐢宠瀛︿綅绾у埆% - \nju_cover_uline_nl:nn {9em}{\nju_degree_title}% + \@@_cover_uline_nl:nn {9em}{\c_@@_name_degree_tl}% \noindent 涓撲笟鍚嶇О% \uline{\hfill\l_@@_major_tl\hfill}\par% 闇€瑕佽皟鏁翠笅鍒掔嚎闀垮害 \noindent 璁烘枃鎻愪氦鏃ユ湡% - \nju_cover_uline_nl:nn {9em}{\l_@@_submit_date_tl}% + \@@_cover_uline_nl:nn {9em}{\l_@@_submit_date_tl}% 璁烘枃绛旇京鏃ユ湡% \uline{\hfill\l_@@_defend_date_tl\hfill}\par% 闇€瑕佽皟鏁翠笅鍒掔嚎闀垮害 \noindent 瀛︿綅鎺堜簣鍗曚綅鍜屾棩鏈焅uline{\hfill}\par \noindent\hfill 绛旇京濮斿憳浼氫富甯細% - \nju_cover_uline_nl:nn {9em}{\l_@@_info_chairman_tl}\par + \@@_cover_uline_nl:nn {9em}{\l_@@_info_chairman_tl}\par \noindent\hfill 璇勯槄浜猴細% - \nju_cover_uline_nl:nn {9em}{\l_@@_info_reviewer_a_tl}\par - \noindent\hfill\nju_cover_uline_nl:nn {9em}{\l_@@_info_reviewer_b_tl}\par - \noindent\hfill\nju_cover_uline_nl:nn {9em}{\l_@@_info_reviewer_c_tl}\par - \noindent\hfill\nju_cover_uline_nl:nn {9em}{\l_@@_info_reviewer_d_tl}\par + \@@_cover_uline_nl:nn {9em}{\l_@@_info_reviewer_a_tl}\par + \noindent\hfill\@@_cover_uline_nl:nn {9em}{\l_@@_info_reviewer_b_tl}\par + \noindent\hfill\@@_cover_uline_nl:nn {9em}{\l_@@_info_reviewer_c_tl}\par + \noindent\hfill\@@_cover_uline_nl:nn {9em}{\l_@@_info_reviewer_d_tl}\par \begin{center} \kaishu\zihao{3}\hspace{2em} 骞碶hspace{1em} 鏈圽hspace{1em} 鏃� @@ -1866,7 +1924,7 @@ through XeTeX. \vskip 15mm {\zihao{1}\makebox[10em][s]{\bf{\kaishu\nju_type_name}}} \vskip 5mm - {\zihao{1}\bf{\kaishu{锛堢敵璇穃nju_degree_title 瀛︿綅锛墋}} + {\zihao{1}\bf{\kaishu{锛堢敵璇穃c_@@_name_degree_tl 瀛︿綅锛墋}} \par\vfill \vskip\stretch{0} {\bgroup @@ -1946,7 +2004,7 @@ through XeTeX. 闄㈢郴锛� \l_@@_info_dept_tl \\ 涓撲笟锛� \l_@@_major_tl \\ 鏈鐢熷鍚嶏細 \l_@@_info_author_tl \\ - 鎸囧鏁欏笀锛堝鍚嶃€佽亴绉帮級锛歕nju_supervisor_full \\ + 鎸囧鏁欏笀锛堝鍚嶃€佽亴绉帮級锛歕l_@@_info_supv_full_tl \\ 鎽樿锛� \egroup } @@ -1977,7 +2035,7 @@ through XeTeX. DEPARTMENT: ~~\l_@@_info_dept_en_tl \\ SPECIALIZATION: ~~\l_@@_major_en_tl \\ UNDERGRADUATE:~~\l_@@_info_author_en_tl \\ - MENTOR:~~\nju_supervisor_full_en \\ + MENTOR:~~\l_@@_info_supv_full_tl_en \\ ABSTRACT: \egroup } @@ -2016,10 +2074,11 @@ through XeTeX. \tl_set:Nn \arraystretch {0.8} \noindent 姣曚笟璁烘枃棰樼洰锛歕hspace{0.5em}\nju_underline:n {\l_@@_info_title_tl\hfill}\\ - \uline{\makebox[9em]{\l_@@_major_tl}}涓撲笟\uline{\makebox[4em]{\l_@@_info_grade_tl}}绾� + \uline{\makebox[9em]{\l_@@_major_tl}}涓撲笟 + \uline{\makebox[4em]{\l_@@_info_grade_tl}}绾� \str_if_eq:NNTF {\nju_degree} { phd } {鍗殅{纭晑 澹敓濮撳悕锛歕uline{\hfill\l_@@_info_author_tl\hfill} \\ - 鎸囧鏁欏笀锛堝鍚嶃€佽亴绉帮級锛歕uline{\hfill\nju_supervisor_full\hfill}\par + 鎸囧鏁欏笀锛堝鍚嶃€佽亴绉帮級锛歕uline{\hfill\l_@@_info_supv_full_tl\hfill}\par \egroup \kaishu\zihao{4}\par% @@ -2049,7 +2108,7 @@ through XeTeX. THESIS: ~~\l_@@_info_title_en_tl \\ SPECIALIZATION: ~~\l_@@_major_en_tl \\ POSTGRADUATE:~~\l_@@_info_author_en_tl \\ - MENTOR:~~\nju_supervisor_full_en\par + MENTOR:~~\l_@@_info_supv_full_tl_en\par \egroup } \zihao{4}\par%