diff --git a/docs/njuthesis-sample.tex b/docs/njuthesis-sample.tex
index 03e0b74c549602ddd551c5792ec68f7a4371e231..73507f408b15a883b182ddb40684f00a97e2b580 100644
--- a/docs/njuthesis-sample.tex
+++ b/docs/njuthesis-sample.tex
@@ -1,11 +1,6 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% njuthesis - 鍗椾含澶у璁烘枃妯℃澘
-% 鏈ず渚嬫枃浠剁増鏈� v1.0.0  2022-07-03
-%
-% 鍏虫敞椤圭洰鍦板潃浠ヨ幏鍙栨渶鏂板彉鍖�
+% njuthesis 绀轰緥妯℃澘 v1.0.0 2022-08-01
 % https://github.com/nju-lug/NJUThesis
-% https://git.nju.edu.cn/nju-lug/nju-latex-templates/njuthesis
-% https://ctan.org/pkg/njuthesis
 %
 % 璐$尞鑰�
 % Yu XIONG @atxy-blip   Yichen ZHAO @FengChendian
@@ -14,7 +9,6 @@
 %
 % 璁稿彲璇�
 % LaTeX Project Public License锛堢増鏈� 1.3c 鎴栨洿楂橈級
-%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 %---------------------------------------------------------------------
@@ -58,185 +52,9 @@
     % unicode-math   = false
   ]{njuthesis}
 
-\njusetup{
-    % 璁剧疆鍙傛暟
-    %
-    % 涓€浜涙彁閱掞細
-    %   1. 鍗冧竾涓嶈鏈夌┖琛�
-    %   2. 浣跨敤鑻辨枃鍗婅閫楀彿(,)鍒嗛殧閫夐」
-    %   3. 绛変簬鍙�(=)涓や晶鐨勭┖鏍间細琚拷鐣�
-    %       3.1. 涓洪伩鍏嶆涔夛紝璇风敤鑺辨嫭鍙�({})鍖呰9鍐呭
-    %   4. 鏈鐢熸棤闇€濉啓鐨勯」鐩凡琚壒鍒爣娉�
-    %
-    % info 绫荤敤浜庡綍鍏ヤ釜浜轰俊鎭�
-    %   甯�*鍙风殑涓哄搴旇嫳鏂囧瓧娈�
-    info = {
-        title = {绗竴琛屾爣棰榎\绗簩琛屾爣棰榎\绗笁琛屾爣棰榼,
-        % 涓枃棰樼洰
-        % 鐩存帴濉啓鏍囬灏辨槸鑷姩鎹㈣
-        % 鍙互浣跨敤鎹㈣鎺у埗绗�(\\)鎵嬪姩鎸囧畾鎹㈣浣嶇疆
-        %
-        title* = {My Title in English},
-        % 鑻辨枃棰樼洰
-        %
-        author = {濮撳悕},
-        % 浣滆€呭鍚�
-        %
-        author* = {Ming Xing},
-        % 浣滆€呰嫳鏂囧鍚�
-        % 涓€鑸娇鐢ㄦ嫾闊�
-        %
-        keywords = {鎴�,灏辨槸,鍏呮暟鐨�,鍏抽敭璇峿,
-        % 涓枃鍏抽敭璇嶅垪琛�
-        % 浣跨敤鑻辨枃鍗婅閫楀彿(,)鍒嗛殧
-        %
-        keywords* = {Dummy,Keywords,Here,{It Is}},
-        % 鑻辨枃鍏抽敭璇�
-        % 浣跨敤鑻辨枃鍗婅閫楀彿(,)鍒嗛殧
-        %
-        grade = {2018},
-        % 骞寸骇
-        %
-        student-id = {189114514},
-        % 瀛﹀彿
-        % 鐮旂┒鐢熻鏂熼厡澶у皬鍐欏瓧姣嶆牸寮�
-        % 鏈ā鏉垮苟涓嶄細鑷姩鏇存澶у皬鍐�
-        %
-        department = {鍖栧鍖栧伐瀛﹂櫌},
-        department* = {School of Chemistry and Chemical Engineering},
-        % 闄㈢郴
-        %
-        major = {鍖栧},
-        major* = {Chemistry},
-        % 涓撲笟
-        %
-        supervisor = {瀵煎笀濮撳悕,鏁欐巿},
-        supervisor*= {Professor My Supervisor},
-        % 瀵煎笀鍏ㄧО
-        % 鏂扮増瀵归€夐」杩涜浜嗘敼鍔�
-        % 浣跨敤鑻辨枃鍗婅閫楀彿(,)鍒嗛殧涓枃濮撳悕鍜岃亴绉�
-        %
-        % supervisor-ii = {绗簩瀵煎笀濮撳悕,鍓暀鎺坿,
-        % supervisor-ii* = {Associate professor My Second Supervisor},
-        % 绗簩瀵煎笀鍏ㄧО
-        % 濡傛灉纭疄娌℃湁绗簩瀵煎笀锛屼笉濉啓鍗冲彲
-        %
-        submit-date = {2021-08-10},
-        % 鎻愪氦鏃ユ湡
-        % 鏍煎紡涓� yyyy-mm-dd
-        % 涓嶅~灏辨槸缂栬瘧褰撳ぉ鏃ユ湡
-        %
-        %
-        % 浠ヤ笅鍧囦负鐮旂┒鐢熼」
-        field = {鐗╃悊鍖栧},
-        field* = {Physical Chemistry},
-        % 鐮旂┒棰嗗煙
-        %
-        defend-date = {2021-09-19},
-        % 绛旇京鏃ユ湡
-        % 鏍煎紡涓� yyyy-mm-dd
-        % 涓嶅~灏辨槸缂栬瘧褰撳ぉ鏃ユ湡
-        %
-        email = {xyz@smail.nju.edu.cn},
-        % 鐢靛瓙閭鍦板潃
-        % 鍙敤浜庡嚭鐗堟巿鏉冧功
-        %
-        %
-        % 浠ヤ笅鐢ㄤ簬鍥藉鍥句功棣嗗皝闈�
-        confer-date = {2022-05-20},
-        % 瀛︿綅鎺堜簣鏃ユ湡
-        %
-        bottom-date = {2022-05-21},
-        % 灏侀潰搴曢儴鏃ユ湡
-        %
-        chairman = {鏌愭煇鏌悀鏁欐巿},
-        % 绛旇京濮斿憳浼氫富甯�
-        % 鎺ㄨ崘浣跨敤娉㈡氮鍙�(~)鍒嗛殧濮撳悕鍜岃亴绉�
-        %
-        reviewer = {
-            鏌愭煇鏌悀鏁欐巿,
-            鏌愭煇鏌悀鏁欐巿
-        },
-        % 绛旇京濮斿憳浼氭垚鍛�
-        % 涓€鑸负鍥涘悕锛屼娇鐢ㄨ嫳鏂囧崐瑙掗€楀彿(,)鍒嗛殧
-        %
-        clc = {0175.2},
-        % 涓浘鍒嗙被鍙�
-        %
-        secret-level = {闄愬埗},
-        % 瀵嗙骇
-        %
-        udc = {004.72},
-        % UDC鍒嗙被鍙�
-        %
-        supervisor-contact = {
-            鍗椾含澶у~
-            姹熻嫃鐪佸崡浜競鏍栭湠鍖轰粰鏋楀ぇ閬�163鍙�
-        }
-        % 瀵煎笀鑱旂郴鏂瑰紡
-    },
-    %
-    %
-    % bib 绫荤敤浜庡弬鑰冩枃鐚缃�
-    bib = {
-        % style = numeric|author-year,
-        % 鍙傝€冩枃鐚牱寮�
-        % 榛樿涓洪『搴忕紪鐮佸埗锛坣umeric锛�
-        % 鍙€夎憲鑰�-鍑虹増骞村埗锛坅uthor-year锛�
-        %
-        resource = {njuthesis-sample.bib},
-        % 鍙傝€冩枃鐚暟鎹簮
-        % 闇€瑕佸甫鎵╁睍鍚嶇殑瀹屾暣鏂囦欢鍚�
-        % 鍙娇鐢ㄩ€楀彿鍒嗛殧澶氫釜鏂囦欢
-        % 姝ゆ潯绛夋晥浜� \addbibresource 鍛戒护
-        %
-        % option = {
-            % doi    = false,
-            % isbn   = false,
-            % url    = false,
-            % eprint = false,
-            % 鍏抽棴閮ㄥ垎鏃犵敤鏂囩尞淇℃伅
-            %
-            % refsection = chapter,
-            % 灏嗗弬鑰冩枃鐚〃缃簬姣忕珷鍚�
-            %
-            % gbnamefmt = lowercase
-            % 浣跨敤浠呴瀛楁瘝澶у啓鐨勫鍚�
-        %   }
-        % 棰濆鐨� biblatex 瀹忓寘閫夐」
-    },
-    %
-    %
-    % style 绫荤敤浜庡瑙傛牱寮忚缃�
-    style = {
-        emblem-img = {nju-emblem},
-        % 澶栫疆鏍″窘鍥剧墖璺緞
-        % 寤鸿浣跨敤鐭㈤噺鍥�
-        % 浣跨敤澶栫疆鍥剧墖鏈夊姪浜庡噺灏戠紪璇戞椂闂�
-        % 绌虹疆鏃朵細鑷姩浣跨敤 njuisual 瀹忓寘缁樺埗
-        %
-        name-img = {nju-name},
-        % 澶栫疆鏍″悕鍥剧墖璺緞
-        % 璇存槑鍚屼笂
-        %
-        % abstract-title = strict|centered|natural,
-        % 鎽樿鏍囬缁樺埗鏂瑰紡锛岃瑙佹墜鍐�
-        % 榛樿涓� strict
-        %
-        % abstract-in-toc = false,
-        % 鏄惁鍦ㄧ洰褰曚腑鏄剧ず鎽樿锛岄粯璁ゆ樉绀�
-        %
-        % toc-in-toc = false,
-        % 鏄惁鍦ㄧ洰褰曚腑鏄剧ず鐩綍锛岄粯璁ゆ樉绀�
-        %
-        % header = {
-        %     {OR}{\thepage},{OL}{\rightmark},
-        %     {EL}{\thepage},{ER}{\leftmark}
-        %   },
-        % footer = {},
-        % 鑷畾涔夐〉鐪夐〉鑴氳缃�
-    }
-}
+% 妯℃澘閫夐」璁剧疆锛屽寘鎷釜浜轰俊鎭€佸瑙傛牱寮忕瓑
+% 杈冧负鍐楅暱涓斾竴鑸笉闇€瑕佷慨鏀癸紝鏀惧湪鍗曠嫭鐨勬枃浠堕噷
+\input{njuthesis-setup.def}
 
 % 鑷杞藉叆鎵€闇€瀹忓寘
 % \usepackage{subcaption} % 鐢ㄤ簬宓屽灏忓箙鍥惧儚锛屾瘮 subfig 鍜� subfigure 濂界敤
@@ -251,13 +69,12 @@
 
 % 鍦ㄥ瑷€鍖洪殢鎰忓畾鍒舵墍闇€鍛戒护
 % \DeclareMathOperator{\spn}{span}
-% \renewcommand{\vec}[1]{\symbf{#1}}
 % \NewDocumentCommand\mathbi{m}{\textbf{\em #1}}
 
 % 涓€浜涚伒娲昏皟鏁�
 % \njusetname{notation}{鏈琛▆ % 鏇存敼绗﹀彿琛ㄥ悕绉�
 % \njusetname{tableofcontents}{鐩甛qquad{}娆 % 鏇存敼鐩綍鍚嶇О
-% \njusetlength{coveruline}{330pt} % 鍔犻暱灏侀潰椤典笅鍒掔嚎
+% \njusetlength{crulewd}{330pt} % 鍔犻暱灏侀潰椤典笅鍒掔嚎
 
 % 寮€濮嬬紪鍐欒鏂�
 \begin{document}
diff --git a/install-unix.sh b/install-unix.sh
index f5d04f9ddcf1f960f3b959ec0abe57edf7e1a2d1..64bb38c2fca272ffc9a98d0f42f954796b7d6cfd 100755
--- a/install-unix.sh
+++ b/install-unix.sh
@@ -5,6 +5,7 @@ cd "mythesis"
 
 cp -f "../docs/njuthesis-sample.tex"            .
 cp -f "../docs/njuthesis-sample.bib"            .
+cp -f "../docs/njuthesis-setup.def"             .
 cp -f "../docs/nju-emblem.pdf"                  .
 cp -f "../docs/nju-name.pdf"                    .
 cp -f "../source/njuthesis.dtx"                 .
diff --git a/install-win.bat b/install-win.bat
index 63db1beb93a6c0ad37c524ed777c5cd4b987828b..f4be8a1c53cd48d1cab8079dcfbdba40962987ac 100644
--- a/install-win.bat
+++ b/install-win.bat
@@ -5,6 +5,7 @@ CD    "mythesis"
 
 COPY /Y "..\docs\njuthesis-sample.tex"            .
 COPY /Y "..\docs\njuthesis-sample.bib"            .
+COPY /Y "..\docs\njuthesis-setup.def"             .
 COPY /Y "..\docs\nju-emblem.pdf"                  .
 COPY /Y "..\docs\nju-name.pdf"                    .
 COPY /Y "..\source\njuthesis.dtx"                 .
diff --git a/source/njuthesis.dtx b/source/njuthesis.dtx
index 37cf5839739b94df858444dd55372022f9c980d4..2b9e5f329e3d4618b026033ac772f6af4a6a1365 100644
--- a/source/njuthesis.dtx
+++ b/source/njuthesis.dtx
@@ -118,7 +118,7 @@ To produce the documentation run the original source files ending with
 %<*!(driver|install)>
 % ^^A 璇氳€€鐧惧豢锛岄泟鍒涗竴娴�
 % ^^A 鍗椾含澶у涓€鐧句簩鍗佸懆骞村崕璇為個鎮ㄥ叡瑗勭洓涓撅紒
-%<+!driver>\GetIdInfo $Id: njuthesis.dtx 1.0.0 2022-07-16 00:20:00
+%<+!driver>\GetIdInfo $Id: njuthesis.dtx 1.0.0 2022-08-01 16:20:00
 %<+!driver>  +0800 NJU LUG <git+nju-lug-email-3104-issue-@yaoge123.cn>$
 %<class>  {Thesis template for Nanjing University}
 %<class>\ProvidesExplClass{njuthesis}
@@ -211,7 +211,7 @@ To produce the documentation run the original source files ending with
     style      = style@base,
     rulecolor  = \color{njublue},
     language   = [LaTeX]TeX,
-    alsoletter = {*, -},
+    alsoletter = {*, -, .},
     texcsstyle = *\color{njuviolet},
     emphstyle  = [1]\color{nju-ai-orange},
     emphstyle  = [2]\color{nju-cs-green}
@@ -334,7 +334,7 @@ To produce the documentation run the original source files ending with
 % \thanks{E-mail: \href{mailto:git+nju-lug-email-3104-issue-@yaoge123.cn}
 %   {git+nju-lug-email-3104-issue-@yaoge123.cn}}}
 %
-% \date{v0.21.0 \quad 2022-06-16}
+% \date{v1.0.0 \quad 2022-08-01}
 %
 % \changes{v0.1}{2021/09/04}{寮€濮嬪紑鍙戙€倉
 % \changes{v0.2}{2021/09/07}{鍒濇鎼缓浜嗗彲鐢ㄧ殑妯℃澘銆倉
@@ -1217,18 +1217,63 @@ To produce the documentation run the original source files ending with
 %
 % \subsection{涓汉淇℃伅}
 %
-% \begin{function}[added=2021-09-10]{\njusetup}
+% \begin{function}[added=2021-09-10,updated=2022-08-01]{\njusetup}
 %   \begin{syntax}
-%     \tn{njusetup} \Arg{閿€煎垪琛▆
+%     \tn{njusetup}\oarg{閿矾寰剗\marg{璁剧疆椤箎
 %   \end{syntax}
-% 鏄� \cls{njuthesis} 鏂囨。绫荤殑閫氱敤璁剧疆鍛戒护锛岀敤鏉ヨ缃悇椤瑰姛鑳姐€�
-% \tn{njusetup} 鐨勫弬鏁版槸涓€涓娇鐢ㄨ嫳鏂囧崐瑙掗€楀彿鍒嗛殧鐨勯敭鍊煎垪琛紝
-% 閫氬父褰㈠ \meta{key}|=|\meta{value}銆�
+% \cls{njuthesis} 鏂囨。绫荤殑閫氱敤璁剧疆鍛戒护锛屾彁渚涜嚜瀹氫箟鎺ュ彛銆�
 % \end{function}
 %
-% 鐩墠锛孿tn{njusetup} 浠呭寘鍚敤浜庤缃釜浜轰俊鎭殑 |info| 绫汇€�
+% 鏍规嵁鍙€夊弬鏁板~鍐欐柟寮忎笉鍚岋紝\cs{njusetup} 鍏辨湁鍥涚绛夋晥鐨勪娇鐢ㄦ柟寮忥紝
+% 鍙互鏍规嵁瀹為檯鎯呭喌杩涜鐏垫椿閫夋嫨銆�
+%
+% 鍦ㄩ敭璺緞鐣欑┖鏃讹紝涓烘渶鍩虹鐨勭敤娉曘€傛鏃惰缃」鐨勫弬鏁版槸涓€涓娇鐢ㄨ嫳鏂�
+% 鍗婅閫楀彿鍒嗛殧鐨勯敭鍊煎垪琛紝閫氬父褰㈠ \meta{key}|=|\meta{value}銆�
+%
+% \begin{latexexample}[moretexcs={\njusetup},emph={[2]info,bib}]
+%   \njusetup{
+%       info/title   = {濂囨枃},
+%       info/author  = {浣氬悕},
+%       bib/resource = {ref1.bib, ref1.bib}
+%     }
+% \end{latexexample}
+%
+% 浠ヤ笂涓烘渶鍩虹鐨勫~鍐欐柟娉曪紝鍙互鍒嗙粍涓猴細
+%
+% \begin{latexexample}[moretexcs={\njusetup},emph={[2]info,bib}]
+%   \njusetup{
+%       info = {
+%           title    = {濂囨枃},
+%           author   = {浣氬悕}
+%         },
+%       bib = {
+%           resource = {ref1.bib, ref1.bib},
+%         }
+%     }
+% \end{latexexample}
+%
+% 鍦ㄩ敭璺緞濉叆妯″潡锛堢被锛夋椂锛屽彧鑳借瀹氬綋鍓嶆ā鍧椾笅鐨勯€夐」銆傛鏃跺弬鏁版槸閿€煎垪琛ㄣ€�
+%
+% \begin{latexexample}[moretexcs={\njusetup},emph={[2]info,bib}]
+%   \njusetup[info]{
+%       title    = {濂囨枃},
+%       author   = {浣氬悕}
+%     }
+%   \njusetup[bib]{
+%       resource = {ref1.bib, ref1.bib}
+%     }
+% \end{latexexample}
+%
+% 鍦ㄩ敭璺緞濉叆鍏蜂綋閫夐」鍚嶇О鏃讹紝鍙兘璁惧畾璇ラ€夐」鐨勫€笺€�
+%
+% \begin{latexexample}[moretexcs={\njusetup},emph={[2]info,bib}]
+%   \njusetup[info/title]{濂囨枃}
+%   \njusetup[info/author]{浣氬悕}
+%   \njusetup[bib/resource]{ref1.bib, ref1.bib}
+% \end{latexexample}
+%
+% |info| 绫荤敤浜庤缃釜浜轰俊鎭€�
 % 浠ヤ笅涓哄叏閮ㄧ殑涓汉淇℃伅鍙傛暟锛屽叾涓甫鏈夋槦鍙风殑涓哄搴旂殑鑻辨枃瀛楁銆�
-% 璇锋敞鎰忥紝閮ㄥ垎鍙傛暟宸茶寮冪疆锛屽垪浜庡悗鏂广€�
 %
 % \begin{function}[updated=2022-01-14]{info/title,info/title*}
 %   \begin{syntax}
@@ -1267,10 +1312,10 @@ To produce the documentation run the original source files ending with
 %
 % \begin{function}[updated=2021-10-01]{info/student-id}
 %   \begin{syntax}
-%     student-id = \Arg{瀛﹀彿}
+%     student-id = \Arg{瀛﹀彿鎴栧伐鍙穧
 %   \end{syntax}
-% 瀛﹀彿銆傚崡浜ぇ瀛︽湰绉戠敓涓�9浣嶆暟瀛楀鍙凤紝
-% 鐮旂┒鐢熶负涓や綅澶у啓瀛楁瘝鏍囪瘑鍔犱笂鏁板瓧缁勬垚鐨勫鍙枫€�
+% 瀛﹀彿鎴栧伐鍙枫€傚崡浜ぇ瀛︽湰绉戠敓涓�9浣嶆暟瀛楀鍙凤紝
+% 鐮旂┒鐢熶负涓や綅澶у啓瀛楁瘝鏍囪瘑鍔犱笂鏁板瓧缁勬垚鐨勫鍙凤紙2022绾ф敼涓虹函鏁板瓧锛夈€�
 % \end{function}
 %
 % \begin{function}[updated=2021-10-01]{info/author,info/author*}
@@ -1378,69 +1423,80 @@ To produce the documentation run the original source files ending with
 % 鏈鐢熷彲浠ュ弬鑰冨涓嬭寖渚嬭緭鍏ヤ釜浜轰俊鎭€傛敞鎰忎笉鑳芥湁绌鸿銆�
 %
 % \begin{latexexample}[moretexcs={\njusetup},emph={[2]info}]
-%   \njusetup {
-%       info = {
-%           title        = {绗竴琛屾爣棰榎\绗簩琛屾爣棰榼,
-%           title*       = {My title in English},
-%           keywords     = {鎴�,灏辨槸,鍏呮暟鐨�,鍏抽敭璇峿,
-%           keywords*    = {Dummy, Keywords, Here, {it is}},
-%           grade        = {2018},
-%           student-id   = {189114514},
-%           author       = {鍛ㄧ厹鍗巬,
-%           author*      = {Zhou Yuhua},
-%           department   = {鍖栧鍖栧伐瀛﹂櫌},
-%           department*  = {School of Chemistry and Chemical Engineering},
-%           major        = {鍖栧},
-%           major*       = {Chemistry},
-%           supervisor   = {鏉庢垚娈�,鏁欐巿},
-%           supervisor*  = {Professor Li Chengdian},
-%           submit-date  = {2021-09-12}
-%         }
-%     }
+%   \njusetup[info]{
+%       title        = {绗竴琛屾爣棰榎\绗簩琛屾爣棰榼,
+%       title*       = {My title in English},
+%       keywords     = {鎴�,灏辨槸,鍏呮暟鐨�,鍏抽敭璇峿,
+%       keywords*    = {Dummy, Keywords, Here, {it is}},
+%       grade        = {2018},
+%       student-id   = {189114514},
+%       author       = {鍛ㄧ厹鍗巬,
+%       author*      = {Zhou Yuhua},
+%       department   = {鍖栧鍖栧伐瀛﹂櫌},
+%       department*  = {School of Chemistry and Chemical Engineering},
+%       major        = {鍖栧},
+%       major*       = {Chemistry},
+%       supervisor   = {鏉庢垚娈�,鏁欐巿},
+%       supervisor*  = {Professor Li Chengdian},
+%       submit-date  = {2021-09-12}
+%   }
 % \end{latexexample}
 %
 % 鐮旂┒鐢熷彲浠ュ弬鑰冨涓嬪垪琛ㄨ緭鍏ヤ釜浜轰俊鎭�
 %
 % \begin{latexexample}[moretexcs={\njusetup},emph={[2]info}]
-%   \njusetup {
-%       info = {
-%           title        = {绗竴琛屾爣棰榎\绗簩琛屾爣棰榎\绗笁琛屾爣棰榼,
-%           title*       = {My title in English},
-%           keywords     = {鎴�,灏辨槸,鍏呮暟鐨�,鍏抽敭璇峿,
-%           keywords*    = {Dummy,Keywords,Here,{it is}},
-%           grade        = {2018},
-%           student-id   = {DZ18114514},
-%           author       = {鍛ㄧ厹鍗巬,
-%           author*      = {Zhou Yuhua},
-%           department   = {鍖栧鍖栧伐瀛﹂櫌},
-%           department*  = {School of Chemistry and Chemical Engineering},
-%           major        = {鍖栧},
-%           major*       = {Chemistry},
-%           field        = {鐗╃悊鍖栧},
-%           field*       = {Physical Chemistry},
-%           supervisor   = {鏉庢垚娈�,鏁欐巿},
-%           supervisor*  = {Professor Li Chengdian},
-%           submit-date  = {2021-09-12},
-%           defend-date  = {2022-01-15},
-%           email        = {git+nju-lug-email-3104-issue-@yaoge123.cn}
-%         }
-%     }
+%   \njusetup[info]{
+%       title        = {绗竴琛屾爣棰榎\绗簩琛屾爣棰榎\绗笁琛屾爣棰榼,
+%       title*       = {My title in English},
+%       keywords     = {鎴�,灏辨槸,鍏呮暟鐨�,鍏抽敭璇峿,
+%       keywords*    = {Dummy,Keywords,Here,{it is}},
+%       grade        = {2018},
+%       student-id   = {DZ18114514},
+%       author       = {鍛ㄧ厹鍗巬,
+%       author*      = {Zhou Yuhua},
+%       department   = {鍖栧鍖栧伐瀛﹂櫌},
+%       department*  = {School of Chemistry and Chemical Engineering},
+%       major        = {鍖栧},
+%       major*       = {Chemistry},
+%       field        = {鐗╃悊鍖栧},
+%       field*       = {Physical Chemistry},
+%       supervisor   = {鏉庢垚娈�,鏁欐巿},
+%       supervisor*  = {Professor Li Chengdian},
+%       submit-date  = {2021-09-12},
+%       defend-date  = {2022-01-15},
+%       email        = {git+nju-lug-email-3104-issue-@yaoge123.cn}
+%   }
 % \end{latexexample}
 %
 % 濡傛灉闇€瑕佸浗瀹跺浘涔﹂灏侀潰锛岃繕闇€瑕佸姞鍏ュ涓嬩俊鎭�
 %
 % \begin{latexexample}[moretexcs={\njusetup},emph={[2]info}]
-%   \njusetup {
-%       info = {
-%           confer-date  = {2022-05-20},
-%           bottom-date  = {2022-05-21},
-%           chairman     = {寮犳檽灞眫鏁欐巿},
-%           reviewer     = {鐜嬬憺甯寏鏁欐巿,閮痉绾瞺鍓暀鎺�,鍗庤妶搴搤鏁欐巿,鎴磋彶鑿瞺鏁欐巿},
-%           clc          = {0175.2},
-%           secret-level = {闄愬埗},
-%           udc          = {004.72},
-%           supervisor-contact = {鎷夊お璧瀛︿笌鎶€鏈闄� 鏋濇睙甯傜粨涓樿矾 19 鍙� 114514}
-%         }
+%   \njusetup[info]{
+%       confer-date  = {2022-05-20},
+%       bottom-date  = {2022-05-21},
+%       chairman     = {寮犳檽灞眫鏁欐巿},
+%       reviewer     = {鐜嬬憺甯寏鏁欐巿,閮痉绾瞺鍓暀鎺�,鍗庤妶搴搤鏁欐巿,鎴磋彶鑿瞺鏁欐巿},
+%       clc          = {0175.2},
+%       secret-level = {闄愬埗},
+%       udc          = {004.72},
+%       supervisor-contact = {鎷夊お璧瀛︿笌鎶€鏈闄� 鏋濇睙甯傜粨涓樿矾 19 鍙� 114514}
+%   }
+% \end{latexexample}
+%
+% 鍗氬+鍚庡彲浠ュ弬鑰冨涓嬭寖渚嬭緭鍏ヤ釜浜轰俊鎭€�
+%
+% \begin{latexexample}[moretexcs={\njusetup},emph={[2]info}]
+%   \njusetup[info]{
+%       title        = {绗竴琛屾爣棰榎\绗簩琛屾爣棰榼,
+%       title*       = {My title in English},
+%       keywords     = {鎴�,灏辨槸,鍏呮暟鐨�,鍏抽敭璇峿,
+%       keywords*    = {Dummy, Keywords, Here, {it is}},
+%       student-id   = {189114514},
+%       author       = {鍛ㄧ厹鍗巬,
+%       department   = {鍖栧鍖栧伐瀛﹂櫌},
+%       major        = {鍖栧},
+%       supervisor   = {鏉庢垚娈�,鏁欐巿},
+%       submit-date  = {2021-09-12}
 %     }
 % \end{latexexample}
 %
@@ -1483,15 +1539,10 @@ To produce the documentation run the original source files ending with
 %
 % 鑰冭檻鍒板悇涓櫌绯诲浜庨〉鐪夊唴瀹圭殑瑙勫畾骞朵笉涓€鑷达紝鏈ā鏉挎彁渚涗簡鑻ュ共涓嚜瀹氫箟閫夐」銆�
 %
-% \begin{function}{style/header/format,style/footer/format,
-%   style/header,style/header*,style/footer,style/footer*}
+% \begin{function}{header/content,header/content*,footer/content,footer/content*}
 %   \begin{syntax}
-%     header/format = \Arg{鏍煎紡}
-%     footer/format = \Arg{鏍煎紡}
-%     header  = \{\Arg{浣嶇疆}\Arg{鍐呭},\Arg{浣嶇疆}\Arg{鍐呭},...\}
-%     header* = \{\Arg{浣嶇疆}\Arg{鍐呭},\Arg{浣嶇疆}\Arg{鍐呭},...\}
-%     footer  = \{\Arg{浣嶇疆}\Arg{鍐呭},\Arg{浣嶇疆}\Arg{鍐呭},...\}
-%     footer* = \{\Arg{浣嶇疆}\Arg{鍐呭},\Arg{浣嶇疆}\Arg{鍐呭},...\}
+%     content  = \{\Arg{浣嶇疆}\Arg{鍐呭},\Arg{浣嶇疆}\Arg{鍐呭},...\}
+%     content* = \{\Arg{浣嶇疆}\Arg{鍐呭},\Arg{浣嶇疆}\Arg{鍐呭},...\}
 %   \end{syntax}
 % 椤电湁椤佃剼鐨勬牸寮忎笌鍐呭璁剧疆銆傚甫鏈夋槦鍙风殑璁剧疆椤逛緵鍗曢潰妯″紡涓嬩娇鐢ㄣ€�
 % \end{function}
@@ -1505,17 +1556,14 @@ To produce the documentation run the original source files ending with
 % 鎺ヤ笅鏉ュ睍绀轰簡涓€涓墜鍔ㄨ缃〉鐪夊唴瀹圭殑渚嬪瓙銆傝繖閲屾垜浠竻绌轰簡椤佃剼锛�
 % 骞跺皢椤电湁鏍煎紡璁剧疆鎴愪簲鍙烽粦浣擄紝濂囨暟椤靛乏渚т负鑺傚悕锛屽彸渚т负椤电爜锛�
 % 鍋舵暟椤靛乏渚т负椤电爜锛屽彸渚т负绔犲悕銆�
-% \begin{latexexample}[moretexcs={\njusetup,\sffamily},emph={[2]style}]
-%   \njusetup {
-%       style = {
-%           header/format = \small \sffamily,
-%           header = {
-%               { OR } { \thepage }, { OL } { \rightmark },
-%               { EL } { \thepage }, { ER } { \leftmark  }
-%             },
-%           footer = {},
-%         }
-%     }
+% \begin{latexexample}[moretexcs={\njusetup,\sffamily,\njusetformat},
+%   emph={[2]header,footer}]
+%   \njusetup[header/content]{
+%       { OR } { \thepage }, { OL } { \rightmark },
+%       { EL } { \thepage }, { ER } { \leftmark  }
+%   },
+%   \njusetup[footer/content]{}
+%   \njusetformat{header}{\small\sffamily}
 % \end{latexexample}
 %
 %
@@ -1718,17 +1766,15 @@ To produce the documentation run the original source files ending with
 %
 % 榛樿鐨勫浗鏍囬鏍� \opt{GB} 鐩稿綋浜庡湪瀵艰█鍖鸿缃簡
 % \begin{latexexample}[moretexcs={\njusetup},emph={[2]math}]
-%   \njusetup{
-%     math = {
-%       uppercase-greek    = italic,
-%       less-than-or-equal = slanted,
+%   \njusetup[math]{
 %       integral           = upright,
 %       integral-limits    = false,
-%       partial            = upright,
+%       less-than-or-equal = slanted,
 %       math-ellipsis      = centered,
+%       partial            = upright,
+%       real-part          = roman,
 %       vector             = boldfont,
-%       real-part          = roman
-%     }
+%       uppercase-greek    = italic
 %   }
 % \end{latexexample}
 %
@@ -1770,7 +1816,7 @@ To produce the documentation run the original source files ending with
 %
 % \begin{function}[added=2022-07-31]{math/partial}
 %   \begin{syntax}
-%     partial = <TeX|ISO|(GB)>
+%     partial = <upright|italic>
 %   \end{syntax}
 % 鍋忓井鍒嗙鍙风殑姝�/鏂滀綋銆�
 % \end{function}
@@ -1904,16 +1950,14 @@ To produce the documentation run the original source files ending with
 %
 % \begin{latexexample}[moretexcs={\njusetup,\bfseries,\itshape,\mdwhtsquare},
 %   emph={[2]theorem}]
-%   \njusetup {
-%       theorem = {
-%           predefine   = true,
-%           style       = plain,
-%           header=font = \normalfont \bfseries,
-%           body-font   = \itshape,
-%           qed-symbol  = \ensuremath { \mdwhtsquare },
-%           counter     = chapter
-%         }
-%     }
+%   \njusetup[theorem]{
+%       predefine   = true,
+%       style       = plain,
+%       header=font = \normalfont \bfseries,
+%       body-font   = \itshape,
+%       qed-symbol  = \ensuremath { \mdwhtsquare },
+%       counter     = chapter
+%   }
 % \end{latexexample}
 %
 %
@@ -2055,19 +2099,17 @@ To produce the documentation run the original source files ending with
 % 鍏朵腑 \opt{bib/option} 鐨勫唴瀹规棬鍦ㄥ叧闂儴鍒嗕笉闇€鏄剧ず鐨勬枃鐚俊鎭紝
 % 骞堕噰鍙栦粎棣栧瓧姣嶅ぇ鍐欑殑浣滆€呭鍚嶆牸寮忥紝鍙牴鎹渶瑕佷娇鐢ㄣ€�
 % \begin{latexexample}[moretexcs={\njusetup},emph={[2]bib}]
-%   \njusetup {
-%       bib = {
-%           style    = author-year,
-%           resource = {njuthesis-sample.bib}锛�
-%           option   = {
-%               doi    = false,
-%               isbn   = false,
-%               url    = false,
-%               eprint = false,
-%               gbnamefmt = lowercase
-%             }
-%         }
-%     }
+%   \njusetup[bib]{
+%       style    = author-year,
+%       resource = {njuthesis-sample.bib}锛�
+%       option   = {
+%           doi       = false,
+%           isbn      = false,
+%           url       = false,
+%           eprint    = false,
+%           gbnamefmt = lowercase
+%       }
+%   }
 % \end{latexexample}
 %
 %
@@ -2082,9 +2124,7 @@ To produce the documentation run the original source files ending with
 % 鍋囧闇€瑕佸湪姣忕珷鏈熬闄勪笂鍗曠嫭鐨勫弬鑰冩枃鐚〃锛屽瑷€鍖烘坊鍔犱互涓嬭缃紝
 % 骞跺湪姣忕珷鍚庝娇鐢� \cs{printbibliography} 鍗冲彲銆�
 % \begin{latexexample}[moretexcs={\njusetup},emph={[2]bib}]
-%   \njusetup {
-%       bib = { option = { refsection = chapter } }
-%     }
+%   \njusetup[bib/option]{refsection = chapter}
 % \end{latexexample}
 %
 % 濡傛灉寮€鍚簡鑽夌ǹ妯″紡锛屾偍鍙兘浼氭敞鎰忓埌閮ㄥ垎鏉$洰瀛樺湪瓒呭鐨勯棶棰樸€�
@@ -2294,9 +2334,9 @@ To produce the documentation run the original source files ending with
 % \begin{latexexample}[moretexcs={\njusetup},
 %   emph={[2]tableofcontents,listoffigures,listoftables}]
 %   \njusetup{
-%     tableofcontents/toc-entry = true, % 浠呬綔灞曠ず锛屾棤闇€鎵嬪姩鍚敤
-%     listoffigures/toc-entry   = false,
-%     listoftables/toc-entry    = false
+%       tableofcontents/toc-entry = true, % 浠呬綔灞曠ず锛屾棤闇€鎵嬪姩鍚敤
+%       listoffigures/toc-entry   = false,
+%       listoftables/toc-entry    = false
 %   }
 % \end{latexexample}
 %
@@ -2413,7 +2453,7 @@ To produce the documentation run the original source files ending with
 % 璀锛屽皢灏侀潰椤靛~鍐欎釜浜轰俊鎭殑妯嚎鍔犻暱锛岀ず渚嬪涓嬶細
 %
 % \begin{latexexample}[moretexcs={\njusetlength}]
-%   \njusetlength{coveruline}{330pt}
+%   \njusetlength{crulewd}{330pt}
 % \end{latexexample}
 %
 % \subsubsection{鏍峰紡}
@@ -2882,10 +2922,10 @@ To produce the documentation run the original source files ending with
 %    \end{macrocode}
 % \end{variable}
 %
-% \begin{variable}{\l_@@_second_supv_bool}
+% \begin{variable}{\l_@@_second_supvbool}
 % 瀹氫箟鐢ㄤ簬鍒ゆ柇鏄惁鏈夌浜屽甯堢殑鍙橀噺銆�
 %    \begin{macrocode}
-\bool_new:N \l_@@_second_supv_bool
+\bool_new:N \l_@@_second_supvbool
 %    \end{macrocode}
 % \end{variable}
 %
@@ -3010,8 +3050,8 @@ To produce the documentation run the original source files ending with
 % \begin{macro}{\@@_vskip:,\@@_hskip:}
 % 鐢熸垚涓€涓緝灏忕殑 skip銆�
 %    \begin{macrocode}
-\cs_new:Nn \@@_vskip: { \skip_vertical:N   \c_@@_smallvskip_dim }
-\cs_new:Nn \@@_hskip: { \skip_horizontal:N \c_@@_smallhskip_dim }
+\cs_new:Nn \@@_vskip: { \skip_vertical:N   \c_@@_vsep_dim }
+\cs_new:Nn \@@_hskip: { \skip_horizontal:N \c_@@_hsep_dim }
 %    \end{macrocode}
 % \end{macro}
 %
@@ -3098,9 +3138,9 @@ To produce the documentation run the original source files ending with
 \cs_new_protected:Npn \@@_ulined_center_box:nn #1#2
   {
     \mode_leave_vertical:
-    \rule [ -0.55 ex ] { #1 } { 0.4 pt }
+    \rule [ \c_@@_ruledpi_dim ] { #1 } { \c_@@_rulehti_dim }
     \skip_horizontal:n { -#1 }
-    \hbox_to_wd:nn { #1 } { \hfil #2 \hfil }
+    \hbox_to_wd:nn { #1 } { \tex_hfil:D #2 \tex_hfil:D }
   }
 %    \end{macrocode}
 % \end{macro}
@@ -3124,11 +3164,11 @@ To produce the documentation run the original source files ending with
       {
         \dim_compare:nTF { \l_@@_tmpa_dim > #1 }
           {
-            \hfil \scalebox
+            \tex_hfil:D \scalebox
               { \dim_to_decimal_in_unit:nn { #1 } { \l_@@_tmpa_dim } }
-              [ 1.0 ] { #2 #3 } \hfil
+              [ 1.0 ] { #2 #3 } \tex_hfil:D
           }
-          { #2 \tl_map_inline:nn { #3 } { ##1 \hfil } \unskip }
+          { #2 \tl_map_inline:nn { #3 } { ##1 \tex_hfil:D } \unskip }
       }
   }
 \cs_generate_variant:Nn \@@_spread_box:nnn { nnV }
@@ -3142,7 +3182,7 @@ To produce the documentation run the original source files ending with
 \cs_new_protected:Npn \@@_center_box:nn #1#2
   {
     \mode_leave_vertical:
-    \hbox_to_wd:nn {#1} { \hfil #2 \hfil }
+    \hbox_to_wd:nn {#1} { \tex_hfil:D #2 \tex_hfil:D }
   }
 \cs_generate_variant:Nn \@@_center_box:nn  { Vn }
 %    \end{macrocode}
@@ -3183,7 +3223,7 @@ To produce the documentation run the original source files ending with
 \cs_new_protected:Npn \@@_uline:n #1
   {
     \mode_leave_vertical:
-    \rule [ \c_@@_ulineshifti_dim ] { #1 } { \c_@@_ulinewidthi_dim }
+    \rule [ \c_@@_ruledpi_dim ] { #1 } { \c_@@_rulehti_dim }
     \skip_horizontal:n { -#1 }
   }
 %    \end{macrocode}
@@ -3198,9 +3238,9 @@ To produce the documentation run the original source files ending with
 \cs_new_protected:Npn \@@_uuline:n #1
   {
     \mode_leave_vertical:
-    \rule [ \c_@@_ulineshiftii_dim  ] { #1 } { \c_@@_ulinewidthii_dim }
+    \rule [ \c_@@_ruledpii_dim  ] { #1 } { \c_@@_rulehtii_dim }
     \skip_horizontal:n { -#1 }
-    \rule [ \c_@@_ulineshiftiii_dim ] { #1 } { \c_@@_ulinewidthii_dim }
+    \rule [ \c_@@_ruledpiii_dim ] { #1 } { \c_@@_rulehtii_dim }
     \skip_horizontal:n { -#1 }
   }
 %    \end{macrocode}
@@ -3404,6 +3444,9 @@ To produce the documentation run the original source files ending with
 %    \begin{macrocode}
 \cs_new:Npn \@@_breakpar_loop:n #1
   {
+    \dim_set:Nn \l_@@_tmpa_dim
+      { - \tex_prevdepth:D - \c_@@_ruledpi_dim - \c_@@_rulehti_dim }
+    \hbox_gset:Nn \l_@@_tmpc_box { }
     \@@_loop_until:nnn { \box_if_empty_p:N \l_@@_tmpb_box }
       {
         \box_gset_to_last:N \l_@@_tmpb_box
@@ -3415,8 +3458,7 @@ To produce the documentation run the original source files ending with
             \vbox_top:n
               {
                 \box_use_drop:N \l_@@_tmpb_box
-                \__kernel_kern:n { -\tex_prevdepth:D        }
-                \__kernel_kern:n { -\c_@@_ulineshifti_dim }
+                \__kernel_kern:n { \l_@@_tmpa_dim }
                 \tex_hrule:D
               }
             \tex_penalty:D
@@ -3454,7 +3496,6 @@ To produce the documentation run the original source files ending with
         \skip_set:Nn \tex_leftskip:D { .5 em plus 1 fill }
         \skip_set_eq:NN \tex_rightskip:D \tex_leftskip:D
         \g_@@_info_title_tl \tex_par:D
-        \hbox_gset:Nn \l_@@_tmpc_box { }
 %    \end{macrocode}
 % 浣跨敤寰幆瀵绘壘鏂鐐癸紝瀛樺叆宸茶娓呯┖鐨� 3 鍙风洅瀛愩€�
 %    \begin{macrocode}
@@ -3483,12 +3524,12 @@ To produce the documentation run the original source files ending with
     \@@_spread_box:nnV { #1 } { #3 } \c_@@_name_title_tl
     \mode_leave_vertical: \@@_hskip:
 %    \end{macrocode}
-% 杩欓噷闇€瑕佸瓨鍌� \tn{baselineskip} 鐨勫€硷紝浠ヤ娇 \tn{parbox} 鍚庤璺濇纭€�
+% 杩欓噷闇€瑕佸瓨鍌� \tn{prevdepth} 鐨勫€硷紝浠ヤ娇 \tn{parbox} 鍚庤璺濇纭€�
 % \footnote{\url{https://tex.stackexchange.com/q/34971/}}
 %    \begin{macrocode}
     \parbox [ t ] { #2 }
       {
-        \dim_set_eq:NN \baselineskip \c_@@_coverlineskip_dim
+        \dim_set_eq:NN \tex_baselineskip:D \c_@@_clineskip_dim
         \c_@@_fmt_covertitle_tl \@@_uline_title:
         \dim_gset_eq:NN \l_@@_tmpa_dim \tex_prevdepth:D
       }
@@ -3640,7 +3681,6 @@ To produce the documentation run the original source files ending with
 %    \end{macrocode}
 % 浣跨敤寰幆瀵绘壘鏂鐐癸紝瀛樺叆宸茶娓呯┖鐨� 3 鍙风洅瀛愶紝鍚屾椂缁熻琛屾暟銆�
 %    \begin{macrocode}
-        \hbox_gset:Nn \l_@@_tmpc_box { }
         \int_gzero:N \l_@@_tmpa_int
         \@@_breakpar_loop:n { \int_gincr:N \l_@@_tmpa_int }
       }
@@ -3953,6 +3993,7 @@ To produce the documentation run the original source files ending with
         stix, bonum, dejavu, pagella, schola, termes, xits, none
       }
       { \tl_set_eq:NN \g_@@_font_math_tl  \l_keys_choice_tl },
+    math-font         .initial:n  = xits,
 %    \end{macrocode}
 % \end{macro}
 %
@@ -4074,35 +4115,45 @@ To produce the documentation run the original source files ending with
 %
 % \subsection{鐢ㄦ埛鎺ュ彛}
 %
-% \begin{macro}{bib,info,label-sep,style,theorem,
-%   tableofcontents}
-% 瀹氫箟鍏冿紙meta锛夐敭鍊煎銆備负 v1.0 鍗囩骇棰勭暀浜嗘柊鐨勬帴鍙c€�
+% \begin{macro}{abstract, bib, ext-image, footer, header,
+%   info, label-sep, listoffigures, listoftables,
+%   math, style, theorem, tableofcontents}
+% 瀹氫箟妯″潡鍚嶇殑鍏冿紙meta锛夐敭鍊煎銆�
 %    \begin{macrocode}
-\keys_define:nn { nju }
+\clist_map_inline:nn
   {
-    abstract  .meta:nn = { nju / abstract  } { #1 },
-    bib       .meta:nn = { nju / bib       } { #1 },
-    % font     .meta:nn = { nju / font     } { #1 },
-    % footer   .meta:nn = { nju / footer   } { #1 },
-    % footnote .meta:nn = { nju / footnote } { #1 },
-    % header   .meta:nn = { nju / header   } { #1 },
-    info      .meta:nn = { nju / info      } { #1 },
-    label-sep .meta:nn = { nju / label-sep } { #1 },
-    math      .meta:nn = { nju / math      } { #1 },
-    style     .meta:nn = { nju / style     } { #1 },
-    theorem   .meta:nn = { nju / theorem   } { #1 },
-    tableofcontents .meta:nn = { nju / tableofcontents } { #1 },
-    listoffigures   .meta:nn = { nju / listoffigures   } { #1 },
-    listoftables    .meta:nn = { nju / listoftables    } { #1 }
+    abstract, bib, ext-image, footer, header,
+    info, label-sep, listoffigures, listoftables,
+    math, style, theorem, tableofcontents
   }
+  { \keys_define:nn { nju } { #1 .meta:nn = { nju / #1 } {##1} } }
 %    \end{macrocode}
 % \end{macro}
 %
 % \begin{macro}{\njusetup}
 % \changes{v0.6}{2021/09/10}{鏀圭敤閿€煎杈撳叆淇℃伅銆倉
-% 瀹氫箟鐢ㄤ簬璁剧疆淇℃伅鐨勫懡浠ゃ€�
+% \changes{v1.0}{2022/08/01}{澧炲姞杈撳叆閿矾寰勭殑鍙€夊弬鏁般€倉
+% 瀹氫箟璁剧疆鎺ュ彛銆�
+% \begin{arguments}
+%   \item 鍙€夌殑閿矾寰�
+%   \item 璁剧疆椤�
+% \end{arguments}
+% \cls{njuthesis} 鐨勯敭鍊煎璁剧疆涓€鍏变笁灞傦細鏈€澶栧眰涓烘寚绀哄悕绌洪棿鐨�
+% \opt{nju}锛岀浜屽眰涓轰笂鏂硅瀹氱殑妯″潡鍚嶇О锛屾渶鍐呭眰涓哄叿浣撹缃」銆�
+% 鍦ㄨ矾寰勭暀绌烘椂锛屾湰鎺ュ彛浠呬娇鐢ㄦ渶澶栧眰鍚嶇┖闂达紝鍚戜笅鍏煎鏃х増璁剧疆锛�
+% 鍦ㄨ矾寰勫~鍏ユā鍧楀悕鏃讹紝绗簩涓弬鏁颁负閿€煎绫诲瀷锛屽彲浠ュ噺灏戜竴灞傜缉杩涳紱
+% 鍦ㄨ矾寰勫~鍏ュ畬鏁磋缃」鏃讹紝绗簩涓弬鏁颁负鍏蜂綋鐨勫€笺€�
 %    \begin{macrocode}
-\NewDocumentCommand \njusetup { m } { \keys_set:nn { nju } { #1 } }
+\NewDocumentCommand \njusetup { o m }
+  {
+    \tl_if_novalue:nTF { #1 }
+      { \keys_set:nn { nju } { #2 } }
+      {
+        \tl_if_in:nnTF { #1 } { / }
+          { \keys_set:nn { nju } { #1 = {#2} } }
+          { \keys_set:nn { nju / #1 }   {#2}   }
+      }
+  }
 %    \end{macrocode}
 % \end{macro}
 % \tn{njusetup} 浠呰兘鍦ㄥ瑷€鍖轰娇鐢ㄣ€�
@@ -4159,13 +4210,10 @@ To produce the documentation run the original source files ending with
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_set_tokenlist:nnnnn #1#2#3#4#5
   {
-    \tl_if_novalue:nTF { #3 }
-      { \tl_clear:N \l_@@_tmpa_tl          }
-      { \tl_set:Nn  \l_@@_tmpa_tl { _ #3 } }
-    \bool_if:nTF       { #1 }
-      { \tl_set:Nn  \l_@@_tmpb_tl { _en  } }
-      { \tl_clear:N \l_@@_tmpb_tl          }
-    \tl_gset:cn { c_@@_ #5 _ #2 \l_@@_tmpa_tl \l_@@_tmpb_tl _tl } {#4}
+    \bool_if:nTF { #1 }
+      { \tl_set_eq:NN \l_@@_tmpb_tl \c_@@_name_suffix_en_tl }
+      { \tl_clear:N   \l_@@_tmpb_tl }
+    \tl_gset:cn { c_@@_ #5 _ #2 #3 \l_@@_tmpb_tl _tl } {#4}
   }
 %    \end{macrocode}
 % \end{macro}
@@ -4571,12 +4619,12 @@ To produce the documentation run the original source files ending with
 %    \end{macrocode}
 % 鎷煎悎鍙屽甯堢殑濮撳悕鍜岃亴绉般€�
 %    \begin{macrocode}
-    \bool_set:Nn \l_@@_second_supv_bool
+    \bool_set:Nn \l_@@_second_supvbool
       { ! \clist_if_empty_p:N \g_@@_info_supvii_clist }
     \tl_set:Nx \g_@@_info_supvfull_tl
       {
         \clist_use:Nn \g_@@_info_supv_clist { \@@_hskip: }
-        \bool_if:NT \l_@@_second_supv_bool
+        \bool_if:NT \l_@@_second_supvbool
           {
             \@@_quad:
             \clist_use:Nn \g_@@_info_supvii_clist { \@@_hskip: }
@@ -4585,7 +4633,7 @@ To produce the documentation run the original source files ending with
     \tl_set:Nx \g_@@_info_supvfull_en_tl
       {
         \g_@@_info_supv_en_tl
-        \bool_if:NT \l_@@_second_supv_bool
+        \bool_if:NT \l_@@_second_supvbool
           { \@@_quad: \g_@@_info_supvii_en_tl }
       }
   }
@@ -5120,12 +5168,14 @@ To produce the documentation run the original source files ending with
     \NewDocumentCommand \fangsong { } { \CJKfamily { zhfs   } }
     \NewDocumentCommand \kaishu   { } { \CJKfamily { zhkai  } }
 %    \end{macrocode}
+% \begin{macro}{\bigger}
 % 閲嶅畾涔夊瓧鍙峰懡浠ゃ€�
 %    \begin{macrocode}
-    \RenewDocumentCommand \large  { } { \zihao     { 4      } }
+    \NewDocumentCommand \bigger   { } { \ctex_zihao:n { 4   } }
   }
 %    \end{macrocode}
 % \end{macro}
+% \end{macro}
 %
 % 杞藉叆璁剧疆鐨勫瓧浣撱€備负浜嗗惛鏀跺瑷€鍖虹殑璁剧疆锛屾斁鍦ㄥ叾鍚庤浇鍏ャ€�
 %    \begin{macrocode}
@@ -5156,48 +5206,52 @@ To produce the documentation run the original source files ending with
 %
 % \subsubsection{椤电湁椤佃剼}
 % \changes{v1.0}{2022/07/01}{鍒犻櫎 |header/format| 鍜� |footer/format|銆倉
+% \changes{v1.0}{2022/08/01}{椤电湁鎺ュ彛鏇村悕涓� \opt{header} 绫汇€倉
+% \changes{v1.0}{2022/08/01}{椤佃剼鎺ュ彛鏇村悕涓� \opt{footer} 绫汇€倉
+%
 % 鎻愪緵璁剧疆椤电湁椤佃剼鐨勭敤鎴锋帴鍙c€傚湪 \cs{fancyhead} 鐨勫彲閫夊弬鏁颁腑锛�
 % \opt{E} 鍜� \opt{O} 鍒嗗埆琛ㄧず鍦ㄥ伓鏁伴〉锛坋ven锛夊拰濂囨暟椤碉紙odd锛夛紝
 % 鑰� \opt{L}銆乗opt{R} 鍜� \opt{C} 鍒欏垎鍒〃绀哄乏锛坙eft锛夈€佸彸
 % 锛坮ight锛夊拰涓棿锛坈enter锛夈€傛寜鐓ч€氬父鐨勬帓鐗堣鍒欙紝鍦ㄥ弻闈㈡ā寮忎笅锛�
 % 鍋舵暟椤电殑涓棿椤电湁鏂囧瓧鍦ㄥ乏锛屽鏁伴〉鍒欏湪鍙炽€傚崟闈㈡ā寮忎笅锛屽乏鍙抽〉鐪夐兘瑕佹樉绀恒€�
 %    \begin{macrocode}
-\keys_define:nn { nju / style }
+\keys_define:nn { nju / header }
   {
 %    \end{macrocode}
 %
-% \begin{macro}{style/header,style/header*}
+% \begin{macro}{header/content,header/content*}
 % \changes{v0.16}{2022/03/18}{鍙墜鍔ㄦ寚瀹氶〉鐪夊唴瀹广€倉
 % 椤电湁鍐呭锛屽垎鍒搴斿弻闈㈡ā寮忓拰鍗曢潰妯″紡銆�
 % 涓轰簡渚夸簬鎸囧畾澶嶆潅鐨勯〉鐪夋牱寮忥紝杩欓噷鐢� |clist| 瀛樺偍浣嶇疆鍜屽唴瀹逛俊鎭€�
 %    \begin{macrocode}
-    header     .clist_gset:N = \g_@@_header_twoside_clist,
-    header*    .clist_gset:N = \g_@@_header_oneside_clist,
-    header        .initial:n =
-      {
-        { EL } { \leftmark  }, { OR } { \rightmark }
-      },
-    header*       .initial:n =
-      {
-        {  L } { \leftmark  }, {  R } { \rightmark }
-      },
+    content  .clist_gset:N = \g_@@_header_twoside_clist,
+    content* .clist_gset:N = \g_@@_header_oneside_clist,
+    content     .initial:n =
+      { { EL } { \leftmark  }, { OR } { \rightmark } },
+    content*    .initial:n =
+      { {  L } { \leftmark  }, {  R } { \rightmark } }
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{style/footer,style/footer*}
+%    \begin{macrocode}
+  }
+\keys_define:nn { nju / footer }
+  {
+%    \end{macrocode}
+% \begin{macro}{footer/content,footer/content*}
 % \changes{v0.16}{2022/03/18}{鍙墜鍔ㄦ寚瀹氶〉鑴氬唴瀹广€倉
 % 椤佃剼鍐呭锛屽悓椤电湁銆�
 %    \begin{macrocode}
-    footer     .clist_gset:N = \g_@@_footer_twoside_clist,
-    footer*    .clist_gset:N = \g_@@_footer_oneside_clist,
-    footer        .initial:n = { { C } { \thepage } },
-    footer*       .initial:n = { { C } { \thepage } }
+    content  .clist_gset:N = \g_@@_footer_twoside_clist,
+    content* .clist_gset:N = \g_@@_footer_oneside_clist,
+    content     .initial:n = { { C } { \thepage } },
+    content*    .initial:n = { { C } { \thepage } }
   }
 %    \end{macrocode}
 % \end{macro}
 %
 % \begin{macro}{\g_@@_header_clist,\g_@@_footer_clist}
-% 璁剧疆椤电湁椤佃剼銆�
+% 瀛樺偍椤电湁椤佃剼鍐呭銆�
 %    \begin{macrocode}
 \clist_new:N \g_@@_header_clist
 \clist_new:N \g_@@_footer_clist
@@ -5642,9 +5696,10 @@ To produce the documentation run the original source files ending with
 %    \begin{macrocode}
     \pdfstringdefDisableCommands
       {
-        \cs_set_eq:NN \\     \prg_do_nothing:
-        \cs_set_eq:NN \quad  \prg_do_nothing:
-        \cs_set_eq:NN \qquad \prg_do_nothing:
+        \cs_set_eq:NN \\      \prg_do_nothing:
+        \cs_set_eq:NN \quad   \prg_do_nothing:
+        \cs_set_eq:NN \qquad  \prg_do_nothing:
+        \cs_set_eq:NN \bigger \prg_do_nothing:
       }
     \hypersetup
       {
@@ -5774,7 +5829,7 @@ To produce the documentation run the original source files ending with
 \cs_set:Npn \@makefntext #1
   {
     \mode_leave_vertical:
-    \hbox_to_wd:nn { 1.5 em } { \@thefnmark \hfil }
+    \hbox_to_wd:nn { 1.5 em } { \@thefnmark \tex_hfil:D }
     #1
   }
 %    \end{macrocode}
@@ -5980,9 +6035,9 @@ To produce the documentation run the original source files ending with
 % 绉垎鍙锋牱寮忥紝鐩寸珛鎴栧€炬枩銆�
 %    \begin{macrocode}
     integral                      .choice:,
-    integral / upright              .code:n =
+    integral / upright              .code:n  =
       { \bool_set_true:N  \g_@@_opt_math_int_bool },
-    integral / slanted              .code:n =
+    integral / slanted              .code:n  =
       { \bool_set_false:N \g_@@_opt_math_int_bool },
 %    \end{macrocode}
 % \end{macro}
@@ -5992,9 +6047,9 @@ To produce the documentation run the original source files ending with
 % 涓や釜閫夐」鍒嗗埆鐩稿綋浜� \tn{removenolimits} 鍜� \tn{addnolimits}銆�
 %    \begin{macrocode}
     integral-limits               .choice:,
-    integral-limits / true          .code:n =
+    integral-limits / true          .code:n  =
       { \tl_clear:N   \l__um_nolimits_tl },
-    integral-limits / false         .code:n =
+    integral-limits / false         .code:n  =
       { \tl_set_eq:NN \l__um_nolimits_tl \c_@@_name_integral_tl },
 %    \end{macrocode}
 % \end{macro}
@@ -6003,9 +6058,9 @@ To produce the documentation run the original source files ending with
 % 灏忎簬绛変簬鍙峰拰澶т簬绛変簬鍙风殑妯嚎鏍峰紡锛屽€炬枩鎴栨按骞炽€�
 %    \begin{macrocode}
     less-than-or-equal            .choice:,
-    less-than-or-equal / slanted    .code:n =
+    less-than-or-equal / slanted    .code:n  =
       { \bool_set_true:N  \g_@@_opt_math_leq_bool },
-    less-than-or-equal / horizontal .code:n =
+    less-than-or-equal / horizontal .code:n  =
       { \bool_set_false:N \g_@@_opt_math_leq_bool },
 %    \end{macrocode}
 % \end{macro}
@@ -6014,12 +6069,12 @@ To produce the documentation run the original source files ending with
 % 鐪佺暐鍙风殑鏍峰紡锛屽眳涓垨搴曢儴銆�
 %    \begin{macrocode}
     math-ellipsis                 .choice:,
-    math-ellipsis / centered        .code:n =
+    math-ellipsis / centered        .code:n  =
       {
         \DeclareRobustCommand \mathellipsis
           { \mathinner { \unicodecdots    } }
       },
-    math-ellipsis / lower           .code:n =
+    math-ellipsis / lower           .code:n  =
       {
         \DeclareRobustCommand \mathellipsis
           { \mathinner { \unicodeellipsis } }
@@ -6030,11 +6085,8 @@ To produce the documentation run the original source files ending with
 % \begin{macro}{math/partial}
 % 鍋忓井鍒嗗彿鏍峰紡锛屾浣撴垨鏂滀綋銆�
 %    \begin{macrocode}
-    partial                       .choice:,
-    partial / upright               .code:n =
-      { \@@_um_setup:n { partial = upright } },
-    partial / italic                .code:n =
-      { \@@_um_setup:n { partial = italic  } },
+    partial                      .choices:nn =
+      { upright, italic } { \@@_um_setup:n { partial = #1 } },
 %    \end{macrocode}
 % \end{macro}
 %
@@ -6042,9 +6094,9 @@ To produce the documentation run the original source files ending with
 % 瀹為儴鍜岃櫄閮ㄧ鍙风殑鏍峰紡锛岀綏椹綋鎴栬姳浣撱€�
 %    \begin{macrocode}
     real-part                     .choice:,
-    real-part / roman               .code:n =
+    real-part / roman               .code:n  =
       { \bool_set_true:N  \g_@@_opt_math_re_bool },
-    real-part / fraktur             .code:n =
+    real-part / fraktur             .code:n  =
       { \bool_set_false:N \g_@@_opt_math_re_bool },
 %    \end{macrocode}
 % \end{macro}
@@ -6053,9 +6105,9 @@ To produce the documentation run the original source files ending with
 % 鍚戦噺绗﹀彿鏍峰紡锛岀矖鏂滀綋鎴栫澶淬€�
 %    \begin{macrocode}
     vector                        .choice:,
-    vector / boldfont               .code:n =
+    vector / boldfont               .code:n  =
       { \bool_set_true:N  \g_@@_opt_math_vec_bool },
-    vector / arrow             .code:n =
+    vector / arrow                  .code:n  =
       { \bool_set_false:N \g_@@_opt_math_vec_bool },
 %    \end{macrocode}
 % \end{macro}
@@ -6064,9 +6116,9 @@ To produce the documentation run the original source files ending with
   % 澶у啓甯岃厞瀛楁瘝鐨勬牱寮忥紝姝d綋鎴栨枩浣撱€�
   %    \begin{macrocode}
       uppercase-greek               .choice:,
-      uppercase-greek / upright       .code:n =
+      uppercase-greek / upright       .code:n  =
         { \@@_um_setup:n { math-style = ISO } },
-      uppercase-greek / italic        .code:n =
+      uppercase-greek / italic        .code:n  =
         { \@@_um_setup:n { math-style = TeX } },
   %    \end{macrocode}
   % \end{macro}
@@ -6075,7 +6127,7 @@ To produce the documentation run the original source files ending with
 % 鏁翠綋鏍峰紡銆�
 %    \begin{macrocode}
     style                      .choice:,
-    style / TeX                  .code:n =
+    style / TeX                  .code:n  =
       {
         \keys_set:nn { nju / math }
           {
@@ -6091,7 +6143,7 @@ To produce the documentation run the original source files ending with
         \@@_um_setup:n { bold-style = TeX }
         \@@_loadfont_math:
       },
-    style / ISO                  .code:n =
+    style / ISO                  .code:n  =
       {
         \keys_set:nn { nju / math }
           {
@@ -6107,7 +6159,7 @@ To produce the documentation run the original source files ending with
         \@@_um_setup:n { bold-style = ISO }
         \@@_loadfont_math:
       },
-    style / GB                   .code:n =
+    style / GB                   .code:n  =
       {
         \keys_set:nn { nju / math }
           {
@@ -6168,7 +6220,7 @@ To produce the documentation run the original source files ending with
 %<*def-u>
 \@@_declare_element:nn { u / cover / emblem-img }
   {
-    content     = \@@_emblem:N \c_@@_emblemwidth_dim,
+    content     = \@@_emblem:N \c_@@_emblemwd_dim,
     bottom-skip = 1 cm,
     align       = l
   }
@@ -6180,7 +6232,7 @@ To produce the documentation run the original source files ending with
 %    \begin{macrocode}
 \@@_declare_element:nn { u / cover / name-img }
   {
-    content     = \@@_name:N \c_@@_namewidth_dim,
+    content     = \@@_name:N \c_@@_namewd_dim,
     bottom-skip = 1 cm
   }
 %    \end{macrocode}
@@ -6206,9 +6258,9 @@ To produce the documentation run the original source files ending with
   {
     content  =
       \@@_u_cover_info:NNNN
-        \c_@@_coverlabel_dim
-        \c_@@_coveruline_dim
-        \c_@@_smallhskip_dim
+        \c_@@_clabelwd_dim
+        \c_@@_crulewd_dim
+        \c_@@_hsep_dim
         \c_@@_fmt_coverlabel_tl,
     format   = \zihao { 3 }
   }
@@ -6226,7 +6278,7 @@ To produce the documentation run the original source files ending with
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_u_cover_info:NNNN #1#2#3#4
   {
-    \dim_set_eq:NN \baselineskip \c_@@_coverlineskip_dim
+    \dim_set_eq:NN \tex_baselineskip:D \c_@@_clineskip_dim
 %    \end{macrocode}
 % 鐭唴瀹圭洅瀛愮殑闀垮害鍊兼槸閫氳繃璁$畻寰楀埌鐨勩€倈dim| 鍨嬪彉閲忕殑涔橀櫎闇€瑕侀噰鍙�
 % \cs{dim_ratio:nn} 鎻愪緵鐨勫舰寮忋€�
@@ -6238,7 +6290,7 @@ To produce the documentation run the original source files ending with
     \@@_cover_entry:nnNNN { grade } { id } #1 \l_@@_tmpb_dim #4
     \@@_cover_entry:nNNN { author } #1 #2 #4
     \@@_cover_entry_supv:nNNN { supv } #1 \l_@@_tmpb_dim #4
-    \bool_if:NT \l_@@_second_supv_bool
+    \bool_if:NT \l_@@_second_supvbool
       { \@@_cover_entry_supv:nNNN { supvii } #1 \l_@@_tmpb_dim #4 }
     \@@_cover_entry:nNNN { submitdate } #1 #2 #4
   }
@@ -6252,7 +6304,7 @@ To produce the documentation run the original source files ending with
 %    \begin{macrocode}
 \@@_declare_element:nn { u / decl / orig / emblem }
   {
-    content     = \@@_emblem:N \c_@@_emblemwidthi_dim,
+    content     = \@@_emblem:N \c_@@_emblemwdi_dim,
     bottom-skip = 30 pt
   }
 %    \end{macrocode}
@@ -6320,7 +6372,7 @@ To produce the documentation run the original source files ending with
 %<*def-g>
 \@@_declare_element:nn { g / cover-front / emblem-img }
   {
-    content     = \@@_emblem:N \c_@@_emblemwidthi_dim,
+    content     = \@@_emblem:N \c_@@_emblemwdi_dim,
     bottom-skip = 1.5 cm
   }
 %    \end{macrocode}
@@ -6331,7 +6383,7 @@ To produce the documentation run the original source files ending with
 %    \begin{macrocode}
 \@@_declare_element:nn { g / cover-front / name-img }
   {
-    content     = \@@_name:N \c_@@_namewidth_dim,
+    content     = \@@_name:N \c_@@_namewd_dim,
     bottom-skip = 100 pt
   }
 %    \end{macrocode}
@@ -6369,9 +6421,9 @@ To produce the documentation run the original source files ending with
   {
     content     =
       \@@_g_cover_info:NNNN
-        \c_@@_coverlabel_dim
-        \c_@@_coveruline_dim
-        \c_@@_smallhskip_dim
+        \c_@@_clabelwd_dim
+        \c_@@_crulewd_dim
+        \c_@@_hsep_dim
         \c_@@_fmt_coverlabel_tl,
     bottom-skip = 0 pt plus 1.5 fil
   }
@@ -6397,7 +6449,7 @@ To produce the documentation run the original source files ending with
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_g_cover_info:NNNN #1#2#3#4
   {
-    \dim_set_eq:NN \baselineskip \c_@@_coverlineskip_dim
+    \dim_set_eq:NN \tex_baselineskip:D \c_@@_clineskip_dim
     \@@_cover_entry_title:NNN  #1 #2 #4
     \clist_map_inline:nn { author, major, field, supvfull }
       { \@@_cover_entry:nNNN { ##1 } #1 #2 #4 }
@@ -6414,7 +6466,7 @@ To produce the documentation run the original source files ending with
   {
     content =
       \@@_g_cover_back:NN
-        \c_@@_coverlabel_dim
+        \c_@@_clabelwd_dim
         \c_@@_fmt_coverlabel_tl,
     align   = l
   }
@@ -6430,7 +6482,7 @@ To produce the documentation run the original source files ending with
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_g_cover_back:NN #1#2
   {
-    \dim_set_eq:NN \baselineskip \c_@@_coverlineskip_dim
+    \dim_set_eq:NN \tex_baselineskip:D \c_@@_clineskip_dim
     \@@_spread_box:nnV { #1 } { #2 } \c_@@_name_id_tl
       \c_@@_name_colon_tl \g_@@_info_id_tl \tex_par:D
     \@@_spread_box:nnV { #1 } { #2 } \c_@@_name_defenddate_tl
@@ -6496,7 +6548,7 @@ To produce the documentation run the original source files ending with
 %    \begin{macrocode}
 \@@_declare_element:nn { g / cover-en / emblem-img }
   {
-    content     = \@@_emblem:N \c_@@_emblemwidthii_dim,
+    content     = \@@_emblem:N \c_@@_emblemwdii_dim,
     bottom-skip = 1.5 cm
   }
 %    \end{macrocode}
@@ -6534,7 +6586,7 @@ To produce the documentation run the original source files ending with
 \@@_declare_element:nn { cover-nl / name }
   {
     content     =
-      \@@_spread_box:nnV { 6 em } { } \c_@@_name_title_b_tl,
+      \@@_spread_box:nnV { 6 em } { } \c_@@_name_titleb_tl,
     format      = \zihao { -0 },
     bottom-skip = 0 pt plus 1 fil
   }
@@ -6634,7 +6686,7 @@ To produce the documentation run the original source files ending with
       }
       { 1 em plus 1 fill }
     \@@_uline_bientry:Nnnn \l_@@_tmpa_dim { degree      } { degree     } { }
-    \@@_uline_bientry:Nnnn \l_@@_tmpa_dim { major_b     } { major      } { } \\
+    \@@_uline_bientry:Nnnn \l_@@_tmpa_dim { majorb     } { major      } { } \\
     \@@_uline_bientry:Nnnn \l_@@_tmpa_dim { submitdate  } { submitdate } { }
     \@@_uline_bientry:Nnnn \l_@@_tmpa_dim { defenddate  } { defenddate } { } \\
     \@@_uline_entry:Nnnn   \l_@@_tmpa_dim { confer      } { confer     } { }
@@ -6786,12 +6838,12 @@ To produce the documentation run the original source files ending with
         cell{1}{2} = {c=5}{m}, cell{3}{2} = {c=5}{m},
         cell{4}{2} = {c=5}{m}, cell{5}{2} = {c=5}{m}
       }
-      \c_@@_name_title_c_tl  & \g_@@_info_title_tl \\
-      \c_@@_name_id_a_tl     & \g_@@_info_id_tl    &
-      \c_@@_name_dept_a_tl   & \g_@@_info_dept_tl  &
+      \c_@@_name_titlec_tl  & \g_@@_info_title_tl \\
+      \c_@@_name_ida_tl     & \g_@@_info_id_tl    &
+      \c_@@_name_depta_tl   & \g_@@_info_dept_tl  &
       \c_@@_name_year_tl     &
         \tl_range:Nnn \g_@@_info_submitdate_raw_tl {1} {4} \\
-      \c_@@_name_degree_a_tl &
+      \c_@@_name_degreea_tl &
         {
           \@@_degree_checkbox:n { 2 } 瀛︽湳瀛︿綅纭曞+ \qquad{}
           \@@_degree_checkbox:n { 4 } 涓撲笟瀛︿綅纭曞+ \\
@@ -6799,9 +6851,9 @@ To produce the documentation run the original source files ending with
           \@@_degree_checkbox:n { 6 } 涓撲笟瀛︿綅鍗氬+
         } \\
       \c_@@_name_email_tl    & \g_@@_info_email_tl \\
-      \c_@@_name_supv_b_tl   &
+      \c_@@_name_supvb_tl   &
         \clist_item:Nn \g_@@_info_supv_clist {1}
-        \bool_if:NT \l_@@_second_supv_bool
+        \bool_if:NT \l_@@_second_supvbool
           {
             \@@_quad:
             \clist_item:Nn \g_@@_info_supvii_clist {1}
@@ -6817,7 +6869,7 @@ To produce the documentation run the original source files ending with
 \cs_new_protected:Npn \@@_g_decl_auth_sign:
   {
     \c_@@_name_authsign_tl \tex_par:D
-    \c_@@_name_blankdate_a_tl
+    \c_@@_name_blankdatea_tl
   }
 %    \end{macrocode}
 % \end{macro}
@@ -6843,7 +6895,7 @@ To produce the documentation run the original source files ending with
 %<*def-p>
 \@@_declare_element:nn { p / cover / name-img }
   {
-    content     = \@@_name:N \c_@@_namewidth_dim,
+    content     = \@@_name:N \c_@@_namewd_dim,
     bottom-skip = 40 pt
   }
 %    \end{macrocode}
@@ -6883,7 +6935,7 @@ To produce the documentation run the original source files ending with
   {
     content     =
       \@@_p_cover_info:NN
-        \c_@@_coverlabel_dim
+        \c_@@_clabelwd_dim
         \c_@@_fmt_coverlabel_tl,
     format      = \zihao { -4 },
     bottom-skip = 0 pt
@@ -6910,7 +6962,7 @@ To produce the documentation run the original source files ending with
 %    \end{macrocode}
 % 鐢ㄥ惊鐜緭鍑哄悇瀛楁銆�
 %    \begin{macrocode}
-    \dim_set_eq:NN \baselineskip \c_@@_coverlineskip_dim
+    \dim_set_eq:NN \tex_baselineskip:D \c_@@_clineskip_dim
     \clist_map_inline:Nn \l_@@_tmp_clist
       {
         \@@_spread_box:nnx { #1 } { #2 } { \@@_name:n { ##1 } }
@@ -6990,7 +7042,7 @@ To produce the documentation run the original source files ending with
   {
     content     =
       \@@_p_decl_sign:nn { authsign   } { date }
-      \@@_p_decl_sign:nn { authsign_a } { date },
+      \@@_p_decl_sign:nn { authsigna } { date },
     bottom-skip = 0 pt plus 1 fill
   }
 %    \end{macrocode}
@@ -7223,38 +7275,36 @@ To produce the documentation run the original source files ending with
 %
 % \subsubsection{鐢ㄦ埛鎺ュ彛}
 %
-% \begin{macro}{\@@_new_img_cmd:nn,\@@_new_img_cmd:nV}
+% \begin{macro}{\@@_new_img_cmd:nn}
 % 鐢ㄤ簬瀹氫箟鎻掑叆鍥剧墖鍛戒护鐨勮緟鍔╁嚱鏁般€�
 %    \begin{macrocode}
 %<*class>
 \cs_new_protected:Npn \@@_new_img_cmd:nn #1#2
   {
-    \exp_args:Nc \NewDocumentCommand { #1 } { o m m }
+    \exp_args:Nc \NewDocumentCommand { nju #1 } { o m m }
       { \includegraphics [ width = ##2, height = ##3 ] { #2 } }
   }
-\cs_generate_variant:Nn \@@_new_img_cmd:nn { nV }
 %    \end{macrocode}
 % \end{macro}
 %
+% \changes{v1.0}{2022/08/01}{澶栫疆鍥剧墖鎺ュ彛鏇村悕涓� \opt{ext-image} 绫汇€倉
 %    \begin{macrocode}
-\keys_define:nn { nju / style }
+\keys_define:nn { nju / ext-image }
   {
 %    \end{macrocode}
-% \begin{macro}{style/emblem-img,\njuemblem}
+% \begin{macro}{ext-image/emblem,\njuemblem}
 % \changes{v0.14}{2021/12/23}{鎻愪緵閫夋嫨澶栫疆鏍″窘鍥剧墖鐨勬帴鍙c€倉
 % 鏍″窘鍥剧墖璺緞銆�
 %    \begin{macrocode}
-    emblem-img .code:n =
-      { \@@_new_img_cmd:nV { njuemblem } \l_keys_value_tl },
+    emblem .code:n = { \@@_new_img_cmd:nn { emblem } {#1} },
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{style/name-img,\njuname}
+% \begin{macro}{ext-image/name,\njuname}
 % \changes{v0.14}{2021/12/23}{鎻愪緵閫夋嫨澶栫疆鏍″悕鍥剧墖鐨勬帴鍙c€倉
 % 鏍″悕鍥剧墖璺緞銆�
 %    \begin{macrocode}
-    name-img   .code:n =
-      { \@@_new_img_cmd:nV { njuname   } \l_keys_value_tl }
+    name   .code:n = { \@@_new_img_cmd:nn { name   } {#1} }
   }
 %    \end{macrocode}
 % \end{macro}
@@ -7417,7 +7467,7 @@ To produce the documentation run the original source files ending with
 %<*(def-g|def-p)>
 \@@_declare_element:nn { abstract / mark }
   {
-    content     = \c_@@_name_abstract_b_tl,
+    content     = \c_@@_name_abstractb_tl,
     format      = \sffamily \zihao { -3 },
     bottom-skip = 1 cm
   }
@@ -7429,7 +7479,7 @@ To produce the documentation run the original source files ending with
 %    \begin{macrocode}
 \@@_declare_element:nn { abstract / en / mark }
   {
-    content     = \c_@@_name_abstract_b_en_tl,
+    content     = \c_@@_name_abstractb_en_tl,
     format      = \sffamily \zihao { -3 },
     bottom-skip = 1 cm
   }
@@ -7465,7 +7515,7 @@ To produce the documentation run the original source files ending with
 %    \end{macrocode}
 % 鐢变簬浣滆€呭鍚嶄娇鐢ㄧ殑瀛楁牱鍙戠敓浜嗗彉鍔紝杩欓噷杩涜鏇挎崲浠ヤ究宓屽叆寰幆銆�
 %    \begin{macrocode}
-    \tl_set_eq:NN \c_@@_name_author_tl \c_@@_name_author_a_tl
+    \tl_set_eq:NN \c_@@_name_author_tl \c_@@_name_authora_tl
 %    \end{macrocode}
 % 浣跨敤寰幆杈撳嚭闄㈢郴銆佷笓涓氥€佷綔鑰呫€佸甯堜俊鎭€�
 %    \begin{macrocode}
@@ -7488,23 +7538,23 @@ To produce the documentation run the original source files ending with
 %    \begin{macrocode}
 %<*def-g>
 \cs_new_protected:Npn \@@_abs_info_g:
-  { \@@_abs_info_g:n    { \c_@@_name_colon_tl    } }
+  { \@@_abs_info_g:N    \c_@@_name_colon_tl    }
 \cs_new_protected:Npn \@@_abs_info_en_g:
-  { \@@_abs_info_en_g:n { \c_@@_name_colon_en_tl } }
+  { \@@_abs_info_en_g:N \c_@@_name_colon_en_tl }
 %    \end{macrocode}
 % \end{macro}
 %
 %
-% \begin{macro}{\@@_abs_info_g:n}
+% \begin{macro}{\@@_abs_info_g:N}
 % 缁樺埗鐮旂┒鐢熶腑鏂囨憳瑕佷俊鎭爮銆�
 % \begin{arguments}
 %   \item 鍒嗛殧绗�
 % \end{arguments}
 % 鐮旂┒鐢熶腑鏂囨憳瑕侀〉鍖呮嫭涓嬪垝绾夸互鍙婅嫢骞茬壒娈婄殑瀵归綈鏂瑰紡锛屽疄鐜版柟寮忚緝涓虹箒鐞愩€備娇鐢� \cs{@@_full_uline:NV} 纭畾鍐呭瀹藉害鍚庯紝璋冪敤 \cs{@@_uline:n} 鎴� \cs{@@_ulined_center_box:nn} 鍛戒护浠ョ粯鍒舵í绌块〉闈㈢殑涓嬪垝绾裤€傚墠涓よ涓烘爣棰樸€�
 %    \begin{macrocode}
-\cs_new_protected:Npn \@@_abs_info_g:n #1
+\cs_new_protected:Npn \@@_abs_info_g:N #1
   {
-    \@@_uline_list:xnn { \c_@@_name_title_a_tl #1 }
+    \@@_uline_list:xnn { \c_@@_name_titlea_tl #1 }
       { \g_@@_info_title_tl } { \g_@@_abs_title_left_skip }
 %    \end{macrocode}
 % 涓撲笟銆佸勾绾с€佸鍚嶃€�
@@ -7512,9 +7562,9 @@ To produce the documentation run the original source files ending with
     \@@_full_uline:NV \l_@@_tmpa_dim
       {
         \@@_ulined_center_box:nn { 11 em } { \g_@@_info_major_tl }
-        \c_@@_name_major_a_tl
+        \c_@@_name_majora_tl
         \@@_ulined_center_box:nn { 4  em } { \g_@@_info_grade_tl }
-        \c_@@_name_grade_tl \c_@@_name_author_a_tl #1
+        \c_@@_name_grade_tl \c_@@_name_authora_tl #1
       }
     \@@_ulined_center_box:nn { \l_@@_tmpa_dim }
       { \g_@@_info_author_tl } \\
@@ -7522,21 +7572,21 @@ To produce the documentation run the original source files ending with
 % 瀵煎笀濮撳悕銆佽亴绉般€�
 %    \begin{macrocode}
     \@@_full_uline:NV \l_@@_tmpa_dim
-      { \c_@@_name_supv_a_tl #1 }
+      { \c_@@_name_supva_tl #1 }
     \@@_ulined_center_box:nn { \l_@@_tmpa_dim }
       { \g_@@_info_supvfull_tl }
   }
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\@@_abs_info_en_g:n}
+% \begin{macro}{\@@_abs_info_en_g:N}
 % \changes{v1.0}{2022/07/01}{绉婚櫎鐮旂┒鐢熻嫳鏂囨憳瑕佺殑涓嬪垝绾裤€倉
 % 缁樺埗鐮旂┒鐢熻嫳鏂囨憳瑕佷俊鎭爮銆�
 % \begin{arguments}
 %   \item 鍒嗛殧绗�
 % \end{arguments}
 %    \begin{macrocode}
-\cs_new_protected:Npn \@@_abs_info_en_g:n #1
+\cs_new_protected:Npn \@@_abs_info_en_g:N #1
   {
     \clist_map_inline:nn { title, major, author, supvfull }
       { \@@_name:n { ##1 _en } #1 \@@_info:n { ##1 _en } \\ }
@@ -7669,7 +7719,7 @@ To produce the documentation run the original source files ending with
   {
     \cleardoublepage
     \thispagestyle { plain }
-    \@@_abs_bookmark:Vn \c_@@_name_abstract_a_tl { abstract }
+    \@@_abs_bookmark:Vn \c_@@_name_abstracta_tl { abstract }
     \@@_make_abstract:
     \group_begin: \kaishu \zihao { -4 } #1
   }
@@ -7684,7 +7734,7 @@ To produce the documentation run the original source files ending with
   {
     \cleardoublepage
     \thispagestyle { plain }
-    \@@_abs_bookmark:Vn \c_@@_name_abstract_a_en_tl { abstract-en }
+    \@@_abs_bookmark:Vn \c_@@_name_abstracta_en_tl { abstract-en }
     \@@_make_abstract_en:
     \group_begin: \zihao { -4 } #1
   }
@@ -7762,7 +7812,7 @@ To produce the documentation run the original source files ending with
 % \begin{macro}{\@@_notation_label:n}
 % 宸﹀榻愮殑鏍囩鏍煎紡锛岀敤浜庣鍙疯〃銆�
 %    \begin{macrocode}
-\cs_new_protected:Npn \@@_notation_label:n #1 { #1 \hfil }
+\cs_new_protected:Npn \@@_notation_label:n #1 { #1 \tex_hfil:D }
 %    \end{macrocode}
 % \end{macro}
 %
@@ -7854,32 +7904,32 @@ To produce the documentation run the original source files ending with
   {
     { acknowledgement } { 鑷� \qquad{} 璋�                     },
 %<def-g>    { apply           } {锛堢敵璇� \g_@@_info_degree_tl 瀛︿綅锛墋,
-%<def-g>    { authdecl        } { 瀛︿綅璁烘枃鍑虹増鎺堟潈涔�                 },
-%<def-p>    { authdecl        } { 鐮旂┒鎶ュ憡浣跨敤鎺堟潈涔�                 },
+%<def-g>    { auth decl       } { 瀛︿綅璁烘枃鍑虹増鎺堟潈涔�                 },
+%<def-p>    { auth decl       } { 鐮旂┒鎶ュ憡浣跨敤鎺堟潈涔�                 },
 %<def-p>    { author          } { 浣滆€�                               },
 %    \end{macrocode}
 % 鐢ㄤ簬鎽樿鐨勪綔鑰呭悕绉板瓧鏍�
 %    \begin{macrocode}
-%<def-u>    { author_a        } { 鏈鐢熷鍚�                         },
-%<def-g>    { author_a        } { \g_@@_info_type_tl 鐢熷鍚�        },
-%<def-g>    { authsign        } { 浣滆€呯鍚嶏細\njuline{\hspace{6em}}   },
-%<def-p>    { authsign        } { 鏈汉绛惧悕                           },
-%<def-p>    { authsign_a      } { 瀵煎笀绛惧悕                           },
+%<def-u>    { author        a } { 鏈鐢熷鍚�                         },
+%<def-g>    { author        a } { \g_@@_info_type_tl 鐢熷鍚�        },
+%<def-g>    { auth sign       } { 浣滆€呯鍚嶏細\njuline{\hspace{6em}}   },
+%<def-p>    { auth sign       } { 鏈汉绛惧悕                           },
+%<def-p>    { auth sign     a } { 瀵煎笀绛惧悕                           },
 %<def-g>    { chairman        } { 绛旇京濮斿憳浼氫富甯細                   },
 %<def-g>    { clc             } { 鍒嗙被鍙�                             },
 %<def-g>    { confer          } { 瀛︿綅鎺堜簣鍗曚綅鍜屾棩鏈�                 },
     { date            } { 鏃ユ湡                               },
-%<def-g>    { defenddate      } { 璁烘枃绛旇京鏃ユ湡                       },
+%<def-g>    { defend date     } { 璁烘枃绛旇京鏃ユ湡                       },
 %<def-g>    { degree          } { 鐢宠瀛︿綅绾у埆                       },
 %    \end{macrocode}
 % 鐢ㄤ簬鍑虹増鎺堟潈涔︾殑瀛︿綅鍚嶇О瀛楁牱
 %    \begin{macrocode}
-%<def-g>    { degree_a        } { 璁烘枃绾у埆                           },
+%<def-g>    { degree        a } { 璁烘枃绾у埆                           },
 %<def-p>    { dept            } { 绯诲埆                               },
 %    \end{macrocode}
 % 鐢ㄤ簬鍑虹増鎺堟潈涔︾殑闄㈢郴鍚嶇О瀛楁牱
 %    \begin{macrocode}
-%<def-g>    { dept_a          } { 鎵€鍦ㄩ櫌绯�                           },
+%<def-g>    { dept          a } { 鎵€鍦ㄩ櫌绯�                           },
 %<def-g>    { email           } { 浣滆€� Email                         },
 %<def-g>    { field           } { 鐮旂┒鏂瑰悜                           },
 %<def-u>    { grade           } { 骞寸骇                               },
@@ -7889,71 +7939,71 @@ To produce the documentation run the original source files ending with
 %    \end{macrocode}
 % 鐢ㄤ簬鍑虹増鎺堟潈涔︾殑瀛﹀彿鍚嶇О瀛楁牱
 %    \begin{macrocode}
-%<def-g>    { id_a            } { 鐮旂┒鐢熷鍙�                         },
+%<def-g>    { id            a } { 鐮旂┒鐢熷鍙�                         },
     { listoffigures   } { 鎻掑浘鐩綍                           },
     { listoftables    } { 琛ㄦ牸鐩綍                           },
 %<def-p>    { major           } { 瀛︾涓撲笟                           },
 %    \end{macrocode}
 % 鐢ㄤ簬鎽樿鐨勪笓涓氬悕绉板瓧鏍�
 %    \begin{macrocode}
-%<def-g>    { major_a         } { 涓撲笟                               },
+%<def-g>    { major         a } { 涓撲笟                               },
 %    \end{macrocode}
 % 鐢ㄤ簬鍥藉鍥句功棣嗗皝闈㈢殑涓撲笟鍚嶇О瀛楁牱
 %    \begin{macrocode}
-%<def-g>    { major_b         } { 涓撲笟鍚嶇О                           },
+%<def-g>    { major         b } { 涓撲笟鍚嶇О                           },
     { notation        } { 绗﹀彿琛�                             },
-%<def-u>    { origdecl        }
+%<def-u>    { orig decl       }
 %<def-u>      { 鍗椾含澶у鏈姣曚笟璁烘枃锛堣璁★級 \\ 璇氫俊鎵胯涔�           },
-%<def-g>    { origdecl        } { 鍗椾含澶у瀛︿綅璁烘枃鍘熷垱鎬у0鏄�         },
-%<def-p>    { origdecl        } { 鐮旂┒鎶ュ憡鍘熷垱鎬у0鏄�                 },
-%<def-u>    { origsign        } { 浣滆€呯鍚�                           },
-%<def-g>    { origsign        } { 鐮旂┒鐢熺鍚�                         },
-%<def-p>    { origsign        } { 鐮旂┒鎶ュ憡浣滆€呯鍚�                   },
-    { paperlist       } { 鍙戣〃鏂囩珷鐩綍                       },
-    { pdfcreator      } { LaTeX~ with~ njuthesis~ class      },
+%<def-g>    { orig decl       } { 鍗椾含澶у瀛︿綅璁烘枃鍘熷垱鎬у0鏄�         },
+%<def-p>    { orig decl       } { 鐮旂┒鎶ュ憡鍘熷垱鎬у0鏄�                 },
+%<def-u>    { orig sign       } { 浣滆€呯鍚�                           },
+%<def-g>    { orig sign       } { 鐮旂┒鐢熺鍚�                         },
+%<def-p>    { orig sign       } { 鐮旂┒鎶ュ憡浣滆€呯鍚�                   },
+    { paper list      } { 鍙戣〃鏂囩珷鐩綍                       },
+    { pdf creator     } { LaTeX~ with~ njuthesis~ class      },
     { preface         } { 鍓� \qquad{} 瑷€                     },
 %<def-p>    { report          } { 鍗氬+鍚庣爺绌跺伐浣滄姤鍛�                 },
 %<def-g>    { reviewer        } { 璇勯槄浜猴細                           },
-%<def-g>    { secretlv        } { 瀵嗙骇                               },
-%<def-g>    { secretstatus    } { 璁烘枃娑夊瘑鎯呭喌锛�                     },
-%<def-g>    { secretfree      } { 涓嶄繚瀵�                             },
-%<def-g>    { secretdate      }
-%<def-g>      { 淇濆瘑锛屼繚瀵嗘湡锛� \c_@@_name_blankdate_a_tl 鑷�
-%<def-g>                       \c_@@_name_blankdate_a_tl 锛�        },
+%<def-g>    { secret lv       } { 瀵嗙骇                               },
+%<def-g>    { secret status   } { 璁烘枃娑夊瘑鎯呭喌锛�                     },
+%<def-g>    { secret free     } { 涓嶄繚瀵�                             },
+%<def-g>    { secret date     }
+%<def-g>      { 淇濆瘑锛屼繚瀵嗘湡锛� \c_@@_name_blankdatea_tl 鑷�
+%<def-g>                       \c_@@_name_blankdatea_tl 锛�        },
 %<def-g>    { sign            } { 锛堢瀛楋級                           },
-%<def-u>    { submitdate      } { 鎻愪氦鏃ユ湡                           },
-%<def-g>    { submitdate      } { 璁烘枃鎻愪氦鏃ユ湡                       },
-%<def-p>    { submitdate      } { 瀹屾垚鏃ユ湡                           },
+%<def-u>    { submit date     } { 鎻愪氦鏃ユ湡                           },
+%<def-g>    { submit date     } { 璁烘枃鎻愪氦鏃ユ湡                       },
+%<def-p>    { submit date     } { 瀹屾垚鏃ユ湡                           },
 %<def-g>    { subtitle        } { 锛堥鍚嶅拰鍓鍚嶏級                   },
 %<def-u>    { supv            } { 鎸囧鏁欏笀                           },
 %<def-g>    { supv            } { 瀵煎笀                               },
-%<def-p>    { supvfull        } { 鍚堜綔瀵煎笀                           },
+%<def-p>    { supv full       } { 鍚堜綔瀵煎笀                           },
 %    \end{macrocode}
 % 鐢ㄤ簬鎽樿鐨勫甯堝悕绉板瓧鏍�
 %    \begin{macrocode}
-%<def-g>    { supv_a          } { 鎸囧鏁欏笀锛堝鍚嶃€佽亴绉帮級             },
+%<def-g>    { supv          a } { 鎸囧鏁欏笀锛堝鍚嶃€佽亴绉帮級             },
 %    \end{macrocode}
 % 鐢ㄤ簬鍑虹増鎺堟潈涔︾殑瀵煎笀鍚嶇О瀛楁牱
 %    \begin{macrocode}
-%<def-g>    { supv_b          } { 瀵煎笀濮撳悕                           },
-%<def-g>    { supvinfo        }
+%<def-g>    { supv          b } { 瀵煎笀濮撳悕                           },
+%<def-g>    { supv info       }
 %<def-g>      { 鎸囧鏁欏笀濮撳悕銆佽亴鍔°€佽亴绉般€佸浣嶃€佸崟浣嶅悕绉板強鍦板潃       },
-    { supvii          } { 绗簩瀵煎笀                           },
-    { supvtitle       } { 鑱岀О                               },
+    { supv ii         } { 绗簩瀵煎笀                           },
+    { supv title      } { 鑱岀О                               },
     { tableofcontents } { 鐩� \qquad{} 褰�                     },
 %<def-p>    { title           } { 鎶ュ憡棰樼洰                           },
 %    \end{macrocode}
 % 鐢ㄤ簬鎽樿鐨勬爣棰樺悕绉板瓧鏍�
 %    \begin{macrocode}
-%<def-g>    { title_a         } { 姣曚笟璁烘枃棰樼洰                       },
+%<def-g>    { title         a } { 姣曚笟璁烘枃棰樼洰                       },
 %    \end{macrocode}
 % 鐢ㄤ簬鍥藉鍥句功棣嗗皝闈㈢殑鏍囬鍚嶇О瀛楁牱
 %    \begin{macrocode}
-%<def-g>    { title_b         } { 瀛︿綅璁烘枃                           },
+%<def-g>    { title         b } { 瀛︿綅璁烘枃                           },
 %    \end{macrocode}
 % 鐢ㄤ簬鍑虹増鎺堟潈涔︾殑鏍囬鍚嶇О瀛楁牱
 %    \begin{macrocode}
-%<def-g>    { title_c         } { 璁烘枃棰樺悕                           },
+%<def-g>    { title         c } { 璁烘枃棰樺悕                           },
 %<def-g>    { udc             } { U D C                              },
 %<def-g>    { year            } { 瀛︿綅骞村害                           }
   }
@@ -7968,11 +8018,11 @@ To produce the documentation run the original source files ending with
 %    \end{macrocode}
 % 鐢ㄤ簬涔︾鐨勬憳瑕佸悕绉板瓧鏍�
 %    \begin{macrocode}
-    { abstract_a    } { 涓枃鎽樿        } { ABSTRACT              },
+    { abstract    a } { 涓枃鎽樿        } { ABSTRACT              },
 %    \end{macrocode}
 % 鐢ㄤ簬灏忔爣棰樼殑鎽樿鍚嶇О瀛楁牱
 %    \begin{macrocode}
-    { abstract_b    } { 鎽榎qquad{}瑕�    } { ABSTRACT              },
+    { abstract    b } { 鎽榎qquad{}瑕�    } { ABSTRACT              },
 %<def-u|def-g>    { abstracttitle }
 %<def-u>      { 鍗椾含澶у鏈鐢熸瘯涓氳鏂囷紙璁捐銆佷綔鍝侊級涓枃鎽樿              }
 %<def-u>      { 鍗椾含澶у鏈鐢熸瘯涓氳鏂囷紙璁捐銆佷綔鍝侊級鑻辨枃鎽樿              },
@@ -7982,7 +8032,7 @@ To produce the documentation run the original source files ending with
 %<def-u>    { author        } { 瀛︾敓濮撳悕        } { UNDERGRADUATE         },
 %<def-g>    { author        } { 浣滆€呭鍚�        } { POSTGRADUATE          },
     { blankdate     } { \qquad{}骞� \quad{}鏈� \quad{}鏃�   } {      },
-    { blankdate_a   } { \njuline{\qquad\qquad} 骞�
+    { blankdate   a } { \njuline{\qquad\qquad} 骞�
             \njuline{\qquad} 鏈� \njuline{\qquad} 鏃�      } {      },
     { colon         } { 锛�              } { : \c_space_tl         },
 %<def-u|def-g>    { dept          } { 闄㈢郴            } { DEPARTMENT            },
@@ -7992,8 +8042,9 @@ To produce the documentation run the original source files ending with
 %<def-u>    { major         } { 涓撲笟            } { SPECIALIZATION        },
 %<def-g>    { major         } { 涓撲笟鍚嶇О        } { SPECIALIZATION        },
     { nju           } { 鍗椾含澶у        } { Nanjing~ University   },
-%<def-u>    { supvfull      } { 鎸囧鏁欏笀锛堝鍚嶃€佽亴绉帮級   } { MENTOR       },
-%<def-g>    { supvfull      } { 鎸囧鏁欏笀        } { MENTOR                },
+    { suffix        } {                 } { _en                   },
+%<def-u>    { supv full     } { 鎸囧鏁欏笀锛堝鍚嶃€佽亴绉帮級   } { MENTOR       },
+%<def-g>    { supv full     } { 鎸囧鏁欏笀        } { MENTOR                },
     { table         } { 琛�              } { table                 },
 %<def-u>    { title         } { 棰樼洰            } { THESIS                },
 %<def-g>    { title         } { 璁烘枃棰樼洰        } { THESIS                },
@@ -8110,39 +8161,57 @@ To produce the documentation run the original source files ending with
 %    \begin{macrocode}
 \clist_map_inline:nn
   {
-%<def-u>    { coverlabel    } { 68   pt },
-%<def-g>    { coverlabel    } { 80   pt },
-%<def-p>    { coverlabel    } { 50   pt },
-%<def-u>    { coverlineskip } { 40   pt },
-%<def-g>    { coverlineskip } { 32   pt },
-%<def-p>    { coverlineskip } { 28   pt },
-%<def-u>    { coveruline    } { 270  pt },
-%<def-g>    { coveruline    } { 240  pt },
-%<def-u>    { emblemwidth   } { 68   pt },
-%<def-u>    { emblemwidthi  } { 68   pt },
-%<def-g>    { emblemwidthi  } { 46   pt },
-%<def-g>    { emblemwidthii } { 61   pt },
-%<def-u>    { namewidth     } { 300  pt },
-%<def-g>    { namewidth     } { 126  pt },
-%<def-p>    { namewidth     } { 220  pt },
-%    \end{macrocode}
-% 涓嬪垝绾垮搴︺€備笅鍒掔嚎缁樺埗鍛戒护鏄€氱敤鐨勶紝鍥犳娌℃湁浣滄枃浠跺尯鍒嗐€�
-%    \begin{macrocode}
-    { ulinewidthi   } { .4   pt },
-    { ulinewidthii  } { .8   pt },
-    { ulineshifti   } { -.5  ex },
-    { ulineshiftii  } { -.7  ex },
-    { ulineshiftiii } { -1   ex },
+%    \end{macrocode}
+% 灏侀潰淇℃伅鏍忕殑琛岃窛銆傛澶勭殑绌烘牸浠呯敤鏉ユ彁鍗囧彲璇绘€э紝鍦ㄧ敓鎴愬彉閲忓悕鏃朵細琚垹鍘汇€�
+%    \begin{macrocode}
+%<def-u>    { c lineskip     } { 40   pt },
+%<def-g>    { c lineskip     } { 32   pt },
+%<def-p>    { c lineskip     } { 28   pt },
+%    \end{macrocode}
+% 灏侀潰淇℃伅鏍忔爣绛剧殑瀹藉害銆�
+%    \begin{macrocode}
+%<def-u>    { c label wd     } { 68   pt },
+%<def-g>    { c label wd     } { 80   pt },
+%<def-p>    { c label wd     } { 50   pt },
+%    \end{macrocode}
+% 灏侀潰淇℃伅鏍忔í绾跨殑瀹藉害銆�
+%    \begin{macrocode}
+%<def-u>    { c rule  wd     } { 270  pt },
+%<def-g>    { c rule  wd     } { 240  pt },
+%    \end{macrocode}
+% 鏍″窘鍥剧墖鐨勫搴︺€�
+%    \begin{macrocode}
+%<def-u>    { emblem  wd     } { 68   pt },
+%<def-u>    { emblem  wd i   } { 68   pt },
+%<def-g>    { emblem  wd i   } { 46   pt },
+%<def-g>    { emblem  wd ii  } { 61   pt },
+%    \end{macrocode}
+% 鏍″悕鍥剧墖鐨勫搴︺€�
+%    \begin{macrocode}
+%<def-u>    { name    wd     } { 300  pt },
+%<def-g>    { name    wd     } { 126  pt },
+%<def-p>    { name    wd     } { 220  pt },
+%    \end{macrocode}
+% 涓嬪垝绾块珮搴︼紙鍘氬害锛夈€備笅鍒掔嚎缁樺埗鍛戒护鏄€氱敤鐨勶紝鍥犳娌℃湁浣滄枃浠跺尯鍒嗐€�
+%    \begin{macrocode}
+    { rule    ht i   } { .4   pt },
+    { rule    ht ii  } { .8   pt },
+%    \end{macrocode}
+% 涓嬪垝绾挎繁搴︼紙鍋忕Щ閲忥級銆�
+%    \begin{macrocode}
+    { rule    dp i   } { -.5  ex },
+    { rule    dp ii  } { -.7  ex },
+    { rule    dp iii } { - 1  ex },
 %    \end{macrocode}
 % 灏忓箙绌烘牸銆�
 %    \begin{macrocode}
-    { smallhskip    } { 5    pt },
-    { smallvskip    } { 1    ex },
+    { h sep         } { 5    pt },
+    { v sep         } { 1    ex },
 %    \end{macrocode}
 % 绔犺妭鏍囬鍓嶅悗闂磋窛銆�
 %    \begin{macrocode}
     { beforechapter } { 10   pt },
-    { afterchapter  } { 60   pt }
+    { after chapter } { 60   pt }
   }
   { \@@_define_dim:nn #1 }
 %    \end{macrocode}
@@ -8160,21 +8229,21 @@ To produce the documentation run the original source files ending with
 %<def-g|def-p>    { pagestyle     } { headings                          },
     { abslabel      } { \bfseries                         },
     { abslabel_en   } {                                   },
-%<def-u>    { covertitle    } { \bfseries                         },
-%<def-g>    { covertitle    } {                                   },
-%<def-u>    { coverlabel    } { \kaishu                           },
-%<def-g>    { coverlabel    } { \bfseries                         },
-%<def-p>    { coverlabel    } {                                   },
-    { emblemcolor   } { black                             },
-    { namecolor     } { black                             },
-    { section       } { \large \normalfont \sffamily      },
+%<def-u>    { cover title   } { \bfseries                         },
+%<def-g>    { cover title   } {                                   },
+%<def-u>    { cover label   } { \kaishu                           },
+%<def-g>    { cover label   } { \bfseries                         },
+%<def-p>    { cover label   } {                                   },
+    { emblem color  } { black                             },
+    { name   color  } { black                             },
+    { section       } { \bigger \normalfont \sffamily     },
     { chapter       } { \c_@@_fmt_section_tl \centering },
     { chapterintoc  } { \c_@@_fmt_section_tl            },
     { subsection    } { \c_@@_fmt_section_tl            },
     { subsubsection } { \c_@@_fmt_section_tl            },
     { paragraph     } { \c_@@_fmt_section_tl            },
     { subparagraph  } { \c_@@_fmt_section_tl            },
-    { toctitle      } { \centering \zihao { 3 } \bfseries },
+    { toc title     } { \centering \zihao { 3 } \bfseries },
     { header        } { \small \kaishu                    },
     { footer        } { \small \rmfamily                  }
   }