diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index e0faf69043422b09cf1045d99ddf9d3c91b5ecb3..6a39a27eac6ec5266d1ddf1372c1f95fda722d80 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -10,9 +10,23 @@ jobs:
   tagged-release:
     name: "Tagged Release"
     runs-on: "ubuntu-latest"
-
+    strategy:
+      matrix:
+        latex: [xelatex, lualatex]
     steps:
+      - name: Set up Git repository
+        uses: actions/checkout@v2
+
+      - name: Compile to PDF
+        uses: HermitSun/latex-action@v3
+        with:
+          root_file: njuthesis.tex
+          latexmk_use_${{ matrix.latex }}: true
+          args: '-bibtex'
+
       - uses: "marvinpinto/action-automatic-releases@latest"
         with:
           repo_token: "${{ secrets.GITHUB_TOKEN }}"
-          prerelease: false
+          prerelease: true
+          files: |
+          njuthesis.pdf
diff --git a/coverinfo.tex b/coverinfo.tex
deleted file mode 100644
index f6ac560f754a476e7e718a34247811600f1403d7..0000000000000000000000000000000000000000
--- a/coverinfo.tex
+++ /dev/null
@@ -1,36 +0,0 @@
-%----------------------------------------
-%	涓汉淇℃伅
-%----------------------------------------
-
-% 鏍囬
-\setTitleA{涓€绉嶄娇鐢ㄥ崡浜ぇ瀛hologo{LaTeX}妯$増}%绗竴琛屾爣棰�
-\setTitleB{缂栧啓鏈鐢熸瘯涓氳鏂囩殑缁忛獙鎬ф柟娉晑%绗簩琛屾爣棰�
-\setTitleC{娌℃湁绗笁琛屽氨涓嶇敤濉繖涓摝}%绗笁琛屾爣棰�
-\setTitleEN{An~Empirical~Way~of~Composing~Undergraduate~Thesis~with~NJU~\hologo{LaTeX}~Template}%娉ㄦ剰鑻辨枃鍚嶄腑绌烘牸蹇呴』鏇挎崲涓烘尝娴嚎
-
-% 濮撳悕瀛﹀彿
-\setGrade{2018}
-\setStudentID{181114514}
-\setStudentName{鍛ㄧ厹鍗巬
-\setStudentNameEN{Zhou~Yuhua}
-
-% 闄㈢郴涓撲笟
-\setDepartment{鎷夊お璧瀛︿笌鎶€鏈闄
-\setDepartmentEN{School~of~\hologo{LaTeX}}
-\setMajor{鎷夊お璧瑷€瀛
-\setMajorEN{\hologo{LaTeX}~Linguistics}
-
-% 瀵煎笀
-\setMentorA{鏉庢垚娈縸
-\setMentorAEN{Li~Chengdian}
-\setMentorATitle{鏁欐巿}
-\setMentorATitleEN{Professor}
-
-% 绗簩瀵煎笀
-\setMentorB{瀛欒但寮
-\setMentorBEN{Sun~Hemi}
-\setMentorBTitle{鍓暀鎺坿
-\setMentorBTitleEN{Associate professor}
-
-% 鎻愪氦鏃堕棿
-\setSubmitDate{2021骞�8鏈�10鏃
diff --git a/custom.tex b/custom.tex
deleted file mode 100644
index 316404b57b058e4a85384d711c4057ddaba95ffe..0000000000000000000000000000000000000000
--- a/custom.tex
+++ /dev/null
@@ -1,4 +0,0 @@
-\lstdefinestyle{LaTeX}{
-  language=TeX,
-  morekeywords={begin, caption, label, mathrm, frac, toprule, midrule, bottomrule, includegraphics}
-}
diff --git a/njuthesis.cls b/njuthesis.cls
index 920fe8592c6def532f8df12adcef766889ddb00b..e87e5200403f9b0378af0949b869978ed0ca559e 100644
--- a/njuthesis.cls
+++ b/njuthesis.cls
@@ -1,14 +1,8 @@
 \NeedsTeXFormat{LaTeX2e}
+\ProvidesExplClass{njuthesis}{2021-09-04}{0.5.0}{NJU Thesis Undergraduate LaTeX Template}
 
-\ProvidesClass{njuthesis}[2021/09/10 NJU Thesis Undergraduate LaTeX Template]
-
-\RequirePackage{kvoptions}
-
-\SetupKeyvalOptions{
-    family=njuthesis,
-    prefix=nju@,% 鏁呮剰鐣欑┖闃叉鍑虹幇澶ч噺@锛屼絾浼拌瑕佸彂甯僀TAN杩樺緱鍔犲洖nju@銆�
-    setkeys=\kvsetkeys
-}
+% 閫氳繃绫讳紶閫掑弬鏁�
+\RequirePackage{l3keys2e}
 
 \LoadClass[
   a4paper,
@@ -20,15 +14,74 @@
   zihao=-4
   ]{ctexbook}[2018/04/01]
 
-\DeclareStringOption[1]{titlelength}
-\DeclareBoolOption[false]{secondsupervisor}
-\DeclareStringOption[UG]{degree}
-\DeclareStringOption[thesis]{type}
-\DeclareBoolOption[true]{systemfont}
-\DeclareStringOption[windows]{customlatinfont}
-\DeclareStringOption[windows]{customchinesefont}
+% 瀹氫箟妯℃澘閿€�
+% 鐢ㄤ簬鏍煎紡鎺у埗鐨勯敭鍊�
+\keys_define:nn { nju }
+{
+  titlelength       .int_set:N    =   \nju_titlelength,
+  titlelength       .initial:n    =   1,
+
+  secondmentor      .bool_set:N   =   \nju_second_mentor,
+  secondmentor      .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,
 
-\ProcessKeyvalOptions*\relax
+  info              .meta:nn      =   { nju / info } { #1 }
+}
+
+\keys_define:nn { nju / info }
+{
+  % 棰樼洰
+  TitleA            .tl_set:N     =   \nju_title_a,
+  TitleB            .tl_set:N     =   \nju_title_b,
+  TitleC            .tl_set:N     =   \nju_title_c,
+  TitleEN           .tl_set:N     =   \nju_title_en,
+
+  % 骞寸骇濮撳悕瀛﹀彿
+  Grade             .tl_set:N     =   \nju_grade,
+  StudentID         .tl_set:N     =   \nju_student_id,
+  StudentName       .tl_set:N     =   \nju_student_name,
+  StudentNameEN     .tl_set:N     =   \nju_student_name_en,
+
+  % 闄㈢郴涓撲笟
+  Department        .tl_set:N     =   \nju_department,
+  DepartmentEN      .tl_set:N     =   \nju_department_en,
+  Major             .tl_set:N     =   \nju_major,
+  MajorEN           .tl_set:N     =   \nju_major_en,
+
+  % 瀵煎笀
+  MentorA           .tl_set:N     =   \nju_mentor_a,
+  MentorAEN         .tl_set:N     =   \nju_mentor_a_en,
+  MentorATitle      .tl_set:N     =   \nju_mentor_a_title,
+  MentorATitleEN    .tl_set:N     =   \nju_mentor_a_title_en,
+
+  % 绗簩瀵煎笀
+  MentorB           .tl_set:N     =   \nju_mentor_b,
+  MentorBEN         .tl_set:N     =   \nju_mentor_b_en,
+  MentorBTitle      .tl_set:N     =   \nju_mentor_b_title,
+  MentorBTitleEN    .tl_set:N     =   \nju_mentor_b_title_en,
+
+  % 鎻愪氦鏃堕棿
+  SubmitDate        .tl_set:N     =   \nju_submit_date,
+}
+  
+\NewDocumentCommand \njusetup { m }
+{ \keys_set:nn { nju } { #1 } }
+  
+\ProcessKeysOptions { nju }
 
 % 杈撳叆閰嶇疆鏂囦欢
 \RequirePackage{profile/packages}
diff --git a/njuthesis.tex b/njuthesis.tex
index 5c91a2cf2b40f8bc13714f732d08fd4dc04c9c3a..2236a86f9eea61e26f19fc79a7b748743e8b2b30 100755
--- a/njuthesis.tex
+++ b/njuthesis.tex
@@ -17,19 +17,47 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \documentclass[
     titlelength=2,% 閫夋嫨鏍囬琛屾暟锛岃寖鍥存槸1~3
-    secondsupervisor=true,% 鏈夌浜屽甯堣鍙嶆敞閲婃椤�
+    secondmentor=true,% 鏈夌浜屽甯堣鍙栨秷娉ㄩ噴姝ら」
     % degree=UG,% UG: 鏈 鏈」涓嶉渶鏇存敼
     type=thesis,% thesis: 姣曚笟璁烘枃锛宒esign: 姣曚笟璁捐
-    % systemfont=false,% 鑷畾涔夊瓧浣撹鍙嶆敞閲婃椤�
+    % systemfont=false,% 鑷畾涔夊瓧浣撹鍙栨秷娉ㄩ噴姝ら」
     % customlatinfont=windows,% 璁剧疆鑻辨枃瀛楃闆�
     % customchinesefont=windows,% 璁剧疆涓枃瀛楃闆�
     ]{njuthesis}
 
-% 娣诲姞鑷畾涔夐厤缃�
-\input{custom.tex}
-
-% 杈撳叆灏侀潰淇℃伅
-\input{coverinfo.tex}
+% 璁剧疆涓汉淇℃伅
+\njusetup {
+    % 娉ㄦ剰涓嶈鏈夌┖琛岋紝鍚﹀垯鍙兘鎶ラ敊
+    info = {
+        % 棰樼洰
+        TitleA = 涓€绉嶄娇鐢ㄥ崡浜ぇ瀛hologo{LaTeX}妯$増,
+        TitleB = 缂栧啓鏈鐢熸瘯涓氳鏂囩殑缁忛獙鎬ф柟娉�,
+        % TitleC = 娌℃湁绗笁琛屽氨涓嶇敤濉繖涓摝,
+        TitleEN = An~Empirical~Way~of~Composing~Undergraduate~Thesis~with~NJU~\hologo{LaTeX}~Template, %娉ㄦ剰鑻辨枃鍚嶄腑绌烘牸蹇呴』鏇挎崲涓烘尝娴嚎
+        % 濮撳悕瀛﹀彿
+        Grade = 2018,
+        StudentID = 181114514,
+        StudentName = 鍛ㄧ厹鍗�,
+        StudentNameEN = Zhou~Yuhua,
+        % 闄㈢郴涓撲笟
+        Department = 鎷夊お璧瀛︿笌鎶€鏈闄�,
+        DepartmentEN = School~of~\hologo{LaTeX},
+        Major = 鎷夊お璧瑷€瀛�,
+        MajorEN = \hologo{LaTeX}~Linguistics,
+        % 瀵煎笀
+        MentorA = 鏉庢垚娈�,
+        MentorAEN= Li~Chengdian,
+        MentorATitle = 鏁欐巿,
+        MentorATitleEN = Professor,
+        % 绗簩瀵煎笀
+        MentorB = 瀛欒但寮�,
+        MentorBEN = Sun~Hemi,
+        MentorBTitle = 鍓暀鎺�,
+        MentorBTitleEN = Associate professor,
+        % 鎻愪氦鏃堕棿
+        SubmitDate = 2021骞�8鏈�10鏃�,
+    }
+}
 
 % 瀵煎叆鍙傝€冩枃鐚簮
 \addbibresource{njuthesis.bib}
diff --git a/profile/abstract.sty b/profile/abstract.sty
index d86b8eacc0599191cfeb5a0a4e362653d7a40522..15d524052e3d592d193c0db84cdf0b6bca5b3dc6 100644
--- a/profile/abstract.sty
+++ b/profile/abstract.sty
@@ -15,15 +15,17 @@
     \tl_set:Nn \tabcolsep {0pt}
     \tl_set:Nn \arraystretch {0.8}
     \noindent
-    棰樼洰锛� \Title \\
-    闄㈢郴锛� \Department \\
-    涓撲笟锛� \Major \\
-    鏈鐢熷鍚嶏細 \StudentName \\
-    鎸囧鏁欏笀锛堝鍚嶃€佽亴绉帮級锛� \MentorA\ \MentorATitle 
+    棰樼洰锛� \nju_title \\
+    闄㈢郴锛� \nju_department \\
+    涓撲笟锛� \nju_major \\
+    鏈鐢熷鍚嶏細 \nju_student_name \\
+    鎸囧鏁欏笀锛堝鍚嶃€佽亴绉帮級锛� \nju_mentor_a\ \nju_mentor_a_title 
     % 绗簩瀵煎笀
-    \ifnju@secondsupervisor
-    \ \MentorB\ \MentorBTitle 
-    \fi
+    \bool_if:NTF \nju_second_mentor
+    {
+    \ \nju_mentor_b\ \nju_mentor_b_title 
+    }
+    {}
     \\
     鎽樿锛�
     \egroup
@@ -50,15 +52,17 @@
   \end{center}
   {
     \bgroup
-    THESIS: ~~\Title_EN \\
-    DEPARTMENT: ~~\Department_EN \\
-    SPECIALIZATION: ~~\Major_EN \\
-    UNDERGRADUATE:~~\StudentName_EN \\
-    MENTOR:~~\MentorA_EN \ \MentorATitle_EN 
+    THESIS: ~~\nju_title_en \\
+    DEPARTMENT: ~~\nju_department_en \\
+    SPECIALIZATION: ~~\nju_major_en \\
+    UNDERGRADUATE:~~\nju_student_name_en \\
+    MENTOR:~~\nju_mentor_a_en \ \nju_mentor_a_title_en 
     % 绗簩瀵煎笀
-    \ifnju@secondsupervisor
-    \ \MentorB_EN\ \MentorBTitle_EN
-    \fi
+    \bool_if:NTF \nju_second_mentor
+    {
+    \ \nju_mentor_b_en\ \nju_mentor_b_title_en
+    }
+    {}
     \\
     ABSTRACT:
     \egroup
diff --git a/profile/components.sty b/profile/components.sty
index 2fed45602ded8ba026a0978281f81e2fe15a7625..704e4b8fcd50b2055c2aaae7a1e132e5c33b2a3a 100644
--- a/profile/components.sty
+++ b/profile/components.sty
@@ -35,6 +35,11 @@
 	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}
+}
+
 % 鍥捐〃鏍囬鏍峰紡
 \DeclareCaptionFont{songticap}{\zihao{5}\bf\songti}
 \captionsetup{
diff --git a/profile/cover.sty b/profile/cover.sty
index 3431c9169855774c5fb66fa2a541ea8818ace0e7..6e11238ba48b7e5d46e05ef39b4769a6696a34b2 100644
--- a/profile/cover.sty
+++ b/profile/cover.sty
@@ -1,112 +1,86 @@
 \ProvidesExplPackage{profile/cover}{2021-09-04}{0.1}{NJU Thesis Undergraduate cover design} 
 
-% 灏侀潰淇℃伅
-\NewDocumentCommand\setTitleA{m}{\tl_const:Nn \TitleA {#1}}% 绗竴琛屾爣棰�
-\NewDocumentCommand\setTitleB{m}{\tl_const:Nn \TitleB {#1}}% 绗簩琛屾爣棰�
-\NewDocumentCommand\setTitleC{m}{\tl_const:Nn \TitleC {#1}}% 绗笁琛屾爣棰�
-\NewDocumentCommand\setTitleEN{m}{\tl_const:Nn \Title_EN {#1}}
-
-\NewDocumentCommand\setGrade{m}{\tl_const:Nn \Grade {#1}}
-\NewDocumentCommand\setStudentID{m}{\tl_const:Nn \StudentID {#1}}
-\NewDocumentCommand\setStudentName{m}{\tl_const:Nn \StudentName {#1}}
-\NewDocumentCommand\setStudentNameEN{m}{\tl_const:Nn \StudentName_EN {#1}}
-
-\NewDocumentCommand\setDepartment{m}{\tl_const:Nn \Department {#1}}
-\NewDocumentCommand\setDepartmentEN{m}{\tl_const:Nn \Department_EN {#1}}
-\NewDocumentCommand\setMajor{m}{\tl_const:Nn \Major {#1}}
-\NewDocumentCommand\setMajorEN{m}{\tl_const:Nn \Major_EN {#1}}
-
-\NewDocumentCommand\setMentorA{m}{\tl_const:Nn \MentorA {#1}}
-\NewDocumentCommand\setMentorAEN{m}{\tl_const:Nn \MentorA_EN {#1}}
-\NewDocumentCommand\setMentorATitle{m}{\tl_const:Nn \MentorATitle {#1}}
-\NewDocumentCommand\setMentorATitleEN{m}{\tl_const:Nn \MentorATitle_EN {#1}}
-
-\NewDocumentCommand\setMentorB{m}{\tl_const:Nn \MentorB {#1}}
-\NewDocumentCommand\setMentorBEN{m}{\tl_const:Nn \MentorB_EN {#1}}
-\NewDocumentCommand\setMentorBTitle{m}{\tl_const:Nn \MentorBTitle {#1}}
-\NewDocumentCommand\setMentorBTitleEN{m}{\tl_const:Nn \MentorBTitle_EN {#1}}
-
-\NewDocumentCommand\setSubmitDate{m}{\tl_const:Nn \SubmitDate {#1}}
-
 % 鎷煎悎鏍囬
-\tl_const:Nn \Title {\TitleA\TitleB\TitleC}
+\tl_const:Nn \nju_title {\nju_title_a \nju_title_b \nju_title_c}
 
 % 灏侀潰涓嬪垝绾�
-\cs_new:Npn \cover_underline:nn #1 #2 {
+\cs_new:Npn \nju_cover_underline:nn #1 #2 {
   \uline{\makebox[#1]{#2}}
 }
 
 % 灏侀潰琛ㄦ牸杈规
-\cs_new:Npn \coverbox:n #1 {
+\cs_new:Npn \nju_coverbox:n #1 {
   \makebox[4.2em][s]{#1}
 }
 
 % 灏侀潰淇℃伅鏍�
-\tl_new:N \cover_personalinfo
-\tl_set:Nn \cover_personalinfo {
+\tl_new:N \nju_cover_personalinfo
+\tl_set:Nn \nju_cover_personalinfo {
   \begin{tabular}{p{4.2em}c}
-    \coverbox:n {闄hfill 绯粆
-    & \cover_underline:nn {250pt}{\songti\Department}\\
-    \coverbox:n {涓揬hfill 涓殅
-    & \cover_underline:nn {250pt}{\songti\Major}\\
+    \nju_coverbox:n {闄hfill 绯粆
+    & \nju_cover_underline:nn {250pt}{\songti\nju_department}\\
+    \nju_coverbox:n {涓揬hfill 涓殅
+    & \nju_cover_underline:nn {250pt}{\songti\nju_major}\\
 
     % 鏍囬鎹㈣
-    \int_case:nn {\nju@titlelength}
+    \int_case:nn {\nju_titlelength}
       {
         { 1 } { 
-          \coverbox:n {棰榎hfill 鐩畗
-          & \cover_underline:nn {250pt}{\textbf{\songti\TitleA}} \\ }
+          \nju_coverbox:n {棰榎hfill 鐩畗
+          & \nju_cover_underline:nn {250pt}{\textbf{\songti\nju_title_a}} \\ }
         { 2 } {
-          \coverbox:n {棰榎hfill 鐩畗
-          & \cover_underline:nn {250pt}{\textbf{\songti\TitleA}} \\
-          & \cover_underline:nn {250pt}{\textbf{\songti\TitleB}} \\ }
+          \nju_coverbox:n {棰榎hfill 鐩畗
+          & \nju_cover_underline:nn {250pt}{\textbf{\songti\nju_title_a}} \\
+          & \nju_cover_underline:nn {250pt}{\textbf{\songti\nju_title_b}} \\ }
         { 3 } { 
-          \coverbox:n {棰榎hfill 鐩畗
-          & \cover_underline:nn {250pt}{\textbf{\songti\TitleA}} \\
-          & \cover_underline:nn {250pt}{\textbf{\songti\TitleB}} \\
-          & \cover_underline:nn {250pt}{\textbf{\songti\TitleC}} \\}
+          \nju_coverbox:n {棰榎hfill 鐩畗
+          & \nju_cover_underline:nn {250pt}{\textbf{\songti\nju_title_a}} \\
+          & \nju_cover_underline:nn {250pt}{\textbf{\songti\nju_title_b}} \\
+          & \nju_cover_underline:nn {250pt}{\textbf{\songti\nju_title_c}} \\}
       }
   \end{tabular}\\
 
   \begin{tabular}{p{4.2em}cp{4.2em}c}
-    \coverbox:n {骞碶hfill 绾
-    & \cover_underline:nn {90pt}{\Grade}
-    & \coverbox:n {瀛hfill 鍙穧
-    & \cover_underline:nn {90pt}{\songti\StudentID}\\
+    \nju_coverbox:n {骞碶hfill 绾
+    & \nju_cover_underline:nn {90pt}{\nju_grade}
+    & \nju_coverbox:n {瀛hfill 鍙穧
+    & \nju_cover_underline:nn {90pt}{\songti\nju_student_id}\\
   \end{tabular}\\
   
   \begin{tabular}{p{4.2em}c}
-    \coverbox:n {瀛hfill 鐢焅hfill 濮揬hfill 鍚峿
-    & \cover_underline:nn {250pt}{\StudentName}
+    \nju_coverbox:n {瀛hfill 鐢焅hfill 濮揬hfill 鍚峿
+    & \nju_cover_underline:nn {250pt}{\nju_student_name}
   \end{tabular}\\
   \begin{tabular}{p{4.2em}cp{4.2em}c}
-    \coverbox:n {瀵糪hfill 甯坿
-    & \cover_underline:nn {90pt}{\MentorA}
-    & \coverbox:n {鑱孿hfill 绉皚
-    & \cover_underline:nn {90pt}{\MentorATitle}\\
+    \nju_coverbox:n {瀵糪hfill 甯坿
+    & \nju_cover_underline:nn {90pt}{\nju_mentor_a}
+    & \nju_coverbox:n {鑱孿hfill 绉皚
+    & \nju_cover_underline:nn {90pt}{\nju_mentor_a_title}\\
 
     % 绗簩瀵煎笀
-    \ifnju@secondsupervisor
-    \coverbox:n {绗琝hfill 浜孿hfill 瀵糪hfill 甯坿
-    & \cover_underline:nn {90pt}{\MentorB}
-    & \coverbox:n {鑱孿hfill 绉皚
-    & \cover_underline:nn {90pt}{\MentorBTitle}\\
-    \fi
+    \bool_if:NTF \nju_second_mentor
+    {
+    \nju_coverbox:n {绗琝hfill 浜孿hfill 瀵糪hfill 甯坿
+    & \nju_cover_underline:nn {90pt}{\nju_mentor_b}
+    & \nju_coverbox:n {鑱孿hfill 绉皚
+    & \nju_cover_underline:nn {90pt}{\nju_mentor_b_title}\\
+    }
+    {}
   \end{tabular}\\
 
   \begin{tabular}{p{4.2em}c}
-    \coverbox:n {鎻怽hfill 浜hfill 鏃hfill 鏈焳
-    & \cover_underline:nn {250pt}{\SubmitDate}\\
+    \nju_coverbox:n {鎻怽hfill 浜hfill 鏃hfill 鏈焳
+    & \nju_cover_underline:nn {250pt}{\nju_submit_date}\\
   \end{tabular}
 }
 
 % 鍒ゆ柇绫诲瀷
-\str_if_eq:eeTF {\nju@degree} {UG}
-{\tl_const:Nn \Degreename {鏈琝hfill 绉慭hfill }}{}
+\str_if_eq:eeTF {\nju_degree} {UG}
+{\tl_const:Nn \nju_degree_name {鏈琝hfill 绉慭hfill }}{}
 
-\str_if_eq:eeTF {\nju@type} {thesis} 
-{\tl_const:Nn \typename {\Degreename 姣昞hfill 涓歕hfill 璁篭hfill 鏂噠}
-{\tl_const:Nn \typename {\Degreename 姣昞hfill 涓歕hfill 璁綷hfill 璁}
+\str_if_eq:eeTF {\nju_type} {thesis} 
+{\tl_const:Nn \nju_type_name {\nju_degree_name 姣昞hfill 涓歕hfill 璁篭hfill 鏂噠}
+{\tl_const:Nn \nju_type_name {\nju_degree_name 姣昞hfill 涓歕hfill 璁綷hfill 璁}
 
 % 閲嶅畾涔塵aketitle鐢熸垚灏侀潰
 \RenewDocumentCommand \maketitle {} {%
@@ -121,14 +95,14 @@
   \begin{center}
     \includegraphics[height=3.35cm]{njuname}
     \vskip 10mm 
-    {\zihao{1}\makebox[9em][s]{\textbf{\songti\typename}}}
+    {\zihao{1}\makebox[9em][s]{\textbf{\songti\nju_type_name}}}
     \vfill
     \vskip\stretch{0}
     {\bgroup
     \kaishu\zihao{3}
     \def\tabcolsep{1pt}
     \def\arraystretch{1.5}
-    \cover_personalinfo % 缁樺埗淇℃伅妗�
+    \nju_cover_personalinfo % 缁樺埗淇℃伅妗�
     \egroup}
     \vfill
   \end{center}
diff --git a/profile/font.sty b/profile/font.sty
index 13dcd304ec504bcca3d7af9bf618faea32bfb413..8542f664fd199a4f0c7ab77755452bb75ef4f9bf 100644
--- a/profile/font.sty
+++ b/profile/font.sty
@@ -161,46 +161,49 @@
 }
 
 % 瀛椾綋鍒ゆ柇
-\ifnju@systemfont
+\bool_if:NTF \nju_systemfont
 % 鏍规嵁鎿嶄綔绯荤粺鑷姩閫夋嫨鐩稿簲瀛椾綋
-% 妫€娴嬫槸鍚︽槸 Windows
-\sys_if_platform_windows:TF
 {
-  \set_latin_fontset_windows
-  \set_chinese_fontset_windows
-}
-{
-  % 妫€娴嬫槸鍚︽槸 macOS
-  \ctex_if_platform_macos:TF
+  % 妫€娴嬫槸鍚︽槸 Windows
+  \sys_if_platform_windows:TF
   {
-    \set_latin_fontset_macos
-    \set_chinese_fontset_macos
+    \set_latin_fontset_windows
+    \set_chinese_fontset_windows
   }
-  % 鍏朵綑绯荤粺涓€寰嬩娇鐢ㄨ嚜鐢卞瓧浣�
   {
-    \set_latin_fontset_gyre
-    \set_chinese_fontset_fandol
+    % 妫€娴嬫槸鍚︽槸 macOS
+    \ctex_if_platform_macos:TF
+    {
+      \set_latin_fontset_macos
+      \set_chinese_fontset_macos
+    }
+    % 鍏朵綑绯荤粺涓€寰嬩娇鐢ㄨ嚜鐢卞瓧浣�
+    {
+      \set_latin_fontset_gyre
+      \set_chinese_fontset_fandol
+    }
   }
 }
-\else% 濡傛灉鐢ㄦ埛闇€瑕佽嚜瀹氫箟瀛椾綋
-% 姝ゅ闇€瑕佷娇鐢╘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 } {}
+  % 濡傛灉鐢ㄦ埛闇€瑕佽嚜瀹氫箟瀛椾綋
+  % 姝ゅ闇€瑕佷娇鐢╘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 } {}
+  }
 }
-\fi
 % 閫夋嫨鍏朵粬瀛椾綋锛岃纭繚鐩稿簲瀛椾綋宸插畨瑁�
 
 % 璁剧疆鏁板瀛椾綋 (XITS, 鎴栬€� STIX, 涓� Times New Roman 鏈€涓虹浉杩�)