texlive[63324] Master/texmf-dist: thuthesis (17may22)

commits+karl at tug.org commits+karl at tug.org
Tue May 17 22:11:18 CEST 2022


Revision: 63324
          http://tug.org/svn/texlive?view=revision&revision=63324
Author:   karl
Date:     2022-05-17 22:11:18 +0200 (Tue, 17 May 2022)
Log Message:
-----------
thuthesis (17may22)

Modified Paths:
--------------
    trunk/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-author-year.bst
    trunk/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-bachelor.bst
    trunk/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-numeric.bst
    trunk/Master/texmf-dist/doc/latex/thuthesis/CHANGELOG.md
    trunk/Master/texmf-dist/doc/latex/thuthesis/README.md
    trunk/Master/texmf-dist/doc/latex/thuthesis/data/chap02.tex
    trunk/Master/texmf-dist/doc/latex/thuthesis/data/chap03.tex
    trunk/Master/texmf-dist/doc/latex/thuthesis/latexmkrc
    trunk/Master/texmf-dist/doc/latex/thuthesis/spine.pdf
    trunk/Master/texmf-dist/doc/latex/thuthesis/thuthesis-example.pdf
    trunk/Master/texmf-dist/doc/latex/thuthesis/thuthesis.pdf
    trunk/Master/texmf-dist/source/latex/thuthesis/thuthesis.dtx
    trunk/Master/texmf-dist/tex/latex/thuthesis/thuthesis.cls

Modified: trunk/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-author-year.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-author-year.bst	2022-05-17 20:11:02 UTC (rev 63323)
+++ trunk/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-author-year.bst	2022-05-17 20:11:18 UTC (rev 63324)
@@ -6,11 +6,11 @@
 %%
 %% gbt7714.dtx  (with options: `2015,thu,author-year')
 %% -------------------------------------------------------------------
-%% GB/T 7714—2015 BibTeX Style
+%% GB/T 7714 BibTeX Style
 %% https://github.com/zepinglee/gbt7714-bibtex-style
-%% Version: 2021/12/08 v2.1.3
+%% Version: 2022/03/21 v2.1.4
 %% -------------------------------------------------------------------
-%% Copyright (C) 2016—2021 by Zeping Lee <zepinglee AT gmail.com>
+%% Copyright (C) 2016--2022 by Zeping Lee <zepinglee AT gmail.com>
 %% -------------------------------------------------------------------
 %% This file may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c
@@ -37,8 +37,6 @@
   show.mark
   space.before.mark
   show.medium.type
-  slash.for.extraction
-  in.booktitle
   short.journal
   italic.journal
   bold.journal.volume
@@ -60,6 +58,10 @@
   lang.other.order
 }
 
+STRINGS {
+  component.part.label
+}
+
 FUNCTION {load.config}
 {
   #2 'citation.et.al.min :=
@@ -78,8 +80,7 @@
   #1 'show.mark :=
   #0 'space.before.mark :=
   #1 'show.medium.type :=
-  #1 'slash.for.extraction :=
-  #0 'in.booktitle :=
+  "slash" 'component.part.label :=
   #0 'short.journal :=
   #0 'italic.journal :=
   #0 'bold.journal.volume :=
@@ -112,6 +113,7 @@
     editor
     eprint
     eprinttype
+    entrysubtype
     howpublished
     institution
     journal
@@ -392,9 +394,22 @@
 FUNCTION {new.slash}
 { output.state before.all =
     'skip$
-    { slash.for.extraction
+    { component.part.label "slash" =
         { after.slash 'output.state := }
-        { after.block 'output.state := }
+        { new.block
+          component.part.label "in" =
+            { entry.lang lang.en =
+                { "In: " output
+                  write$
+                  ""
+                  before.all 'output.state :=
+                }
+                'skip$
+              if$
+            }
+            'skip$
+          if$
+        }
       if$
     }
   if$
@@ -987,14 +1002,6 @@
     { format.booktitle.vol.num }
   if$
   format.btitle
-  in.booktitle
-    { duplicate$ empty$ not entry.lang lang.en = and
-        { "In: " swap$ * }
-        'skip$
-      if$
-    }
-    'skip$
-  if$
 }
 
 FUNCTION {remove.period}
@@ -1136,9 +1143,13 @@
 { edition empty$
     { "" }
     { edition is.number
-        { entry.lang lang.zh =
-            { edition " 版" * }
-            { edition num.to.ordinal " ed." * }
+        { edition "1" = not
+            { entry.lang lang.zh =
+                { edition " 版" * }
+                { edition num.to.ordinal " ed." * }
+              if$
+            }
+            'skip$
           if$
         }
         { entry.lang lang.en =
@@ -1300,7 +1311,10 @@
     { year extract.before.slash extra.label * }
     { date empty$ not
         { date extract.before.dash extra.label * }
-        { "empty year in " cite$ * warning$
+        { entry.is.electronic not
+            { "empty year in " cite$ * warning$ }
+            'skip$
+          if$
           urldate empty$ not
             { "[" urldate extract.before.dash * extra.label * "]" * }
             { "" }
@@ -1338,7 +1352,15 @@
 { date empty$ not
     { type$ "patent" = type$ "newspaper" = or
         { date }
-        { format.year }
+        { entrysubtype empty$ not
+            { type$ "article" = entrysubtype "newspaper" = and
+                { date }
+                { format.year }
+              if$
+            }
+            { format.year }
+          if$
+        }
       if$
     }
     { year empty$ not
@@ -1806,7 +1828,15 @@
   new.block
   title.in.journal
     { format.title "title" output.check
-      "J" set.entry.mark
+      entrysubtype empty$ not
+        {
+          entrysubtype "newspaper" =
+            { "N" set.entry.mark }
+            { "J" set.entry.mark }
+          if$
+        }
+        { "J" set.entry.mark }
+      if$
       format.mark "" output.after
       new.block
     }

Modified: trunk/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-bachelor.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-bachelor.bst	2022-05-17 20:11:02 UTC (rev 63323)
+++ trunk/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-bachelor.bst	2022-05-17 20:11:18 UTC (rev 63324)
@@ -6,11 +6,11 @@
 %%
 %% gbt7714.dtx  (with options: `2015,numerical')
 %% -------------------------------------------------------------------
-%% GB/T 7714—2015 BibTeX Style
+%% GB/T 7714 BibTeX Style
 %% https://github.com/zepinglee/gbt7714-bibtex-style
-%% Version: 2021/12/08 v2.1.3
+%% Version: 2022/03/21 v2.1.4
 %% -------------------------------------------------------------------
-%% Copyright (C) 2016—2021 by Zeping Lee <zepinglee AT gmail.com>
+%% Copyright (C) 2016--2022 by Zeping Lee <zepinglee AT gmail.com>
 %% -------------------------------------------------------------------
 %% This file may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c
@@ -37,8 +37,6 @@
   show.mark
   space.before.mark
   show.medium.type
-  slash.for.extraction
-  in.booktitle
   short.journal
   italic.journal
   bold.journal.volume
@@ -55,6 +53,10 @@
   end.with.period
 }
 
+STRINGS {
+  component.part.label
+}
+
 FUNCTION {load.config}
 {
   #2 'citation.et.al.min :=
@@ -73,8 +75,7 @@
   #1 'show.mark :=
   #0 'space.before.mark :=
   #1 'show.medium.type :=
-  #1 'slash.for.extraction :=
-  #0 'in.booktitle :=
+  "slash" 'component.part.label :=
   #0 'short.journal :=
   #0 'italic.journal :=
   #0 'bold.journal.volume :=
@@ -102,6 +103,7 @@
     editor
     eprint
     eprinttype
+    entrysubtype
     howpublished
     institution
     journal
@@ -382,9 +384,22 @@
 FUNCTION {new.slash}
 { output.state before.all =
     'skip$
-    { slash.for.extraction
+    { component.part.label "slash" =
         { after.slash 'output.state := }
-        { after.block 'output.state := }
+        { new.block
+          component.part.label "in" =
+            { entry.lang lang.en =
+                { "In: " output
+                  write$
+                  ""
+                  before.all 'output.state :=
+                }
+                'skip$
+              if$
+            }
+            'skip$
+          if$
+        }
       if$
     }
   if$
@@ -977,14 +992,6 @@
     { format.booktitle.vol.num }
   if$
   format.btitle
-  in.booktitle
-    { duplicate$ empty$ not entry.lang lang.en = and
-        { "In: " swap$ * }
-        'skip$
-      if$
-    }
-    'skip$
-  if$
 }
 
 FUNCTION {remove.period}
@@ -1126,9 +1133,13 @@
 { edition empty$
     { "" }
     { edition is.number
-        { entry.lang lang.zh =
-            { edition " 版" * }
-            { edition num.to.ordinal " ed." * }
+        { edition "1" = not
+            { entry.lang lang.zh =
+                { edition " 版" * }
+                { edition num.to.ordinal " ed." * }
+              if$
+            }
+            'skip$
           if$
         }
         { entry.lang lang.en =
@@ -1290,7 +1301,10 @@
     { year extract.before.slash extra.label * }
     { date empty$ not
         { date extract.before.dash extra.label * }
-        { "empty year in " cite$ * warning$
+        { entry.is.electronic not
+            { "empty year in " cite$ * warning$ }
+            'skip$
+          if$
           urldate empty$ not
             { "[" urldate extract.before.dash * extra.label * "]" * }
             { "" }
@@ -1328,7 +1342,15 @@
 { date empty$ not
     { type$ "patent" = type$ "newspaper" = or
         { date }
-        { format.year }
+        { entrysubtype empty$ not
+            { type$ "article" = entrysubtype "newspaper" = and
+                { date }
+                { format.year }
+              if$
+            }
+            { format.year }
+          if$
+        }
       if$
     }
     { year empty$ not
@@ -1796,7 +1818,15 @@
   new.block
   title.in.journal
     { format.title "title" output.check
-      "J" set.entry.mark
+      entrysubtype empty$ not
+        {
+          entrysubtype "newspaper" =
+            { "N" set.entry.mark }
+            { "J" set.entry.mark }
+          if$
+        }
+        { "J" set.entry.mark }
+      if$
       format.mark "" output.after
       new.block
     }

Modified: trunk/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-numeric.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-numeric.bst	2022-05-17 20:11:02 UTC (rev 63323)
+++ trunk/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-numeric.bst	2022-05-17 20:11:18 UTC (rev 63324)
@@ -6,11 +6,11 @@
 %%
 %% gbt7714.dtx  (with options: `2015,thu,numerical')
 %% -------------------------------------------------------------------
-%% GB/T 7714—2015 BibTeX Style
+%% GB/T 7714 BibTeX Style
 %% https://github.com/zepinglee/gbt7714-bibtex-style
-%% Version: 2021/12/08 v2.1.3
+%% Version: 2022/03/21 v2.1.4
 %% -------------------------------------------------------------------
-%% Copyright (C) 2016—2021 by Zeping Lee <zepinglee AT gmail.com>
+%% Copyright (C) 2016--2022 by Zeping Lee <zepinglee AT gmail.com>
 %% -------------------------------------------------------------------
 %% This file may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c
@@ -37,8 +37,6 @@
   show.mark
   space.before.mark
   show.medium.type
-  slash.for.extraction
-  in.booktitle
   short.journal
   italic.journal
   bold.journal.volume
@@ -55,6 +53,10 @@
   end.with.period
 }
 
+STRINGS {
+  component.part.label
+}
+
 FUNCTION {load.config}
 {
   #2 'citation.et.al.min :=
@@ -73,8 +75,7 @@
   #1 'show.mark :=
   #0 'space.before.mark :=
   #1 'show.medium.type :=
-  #1 'slash.for.extraction :=
-  #0 'in.booktitle :=
+  "slash" 'component.part.label :=
   #0 'short.journal :=
   #0 'italic.journal :=
   #0 'bold.journal.volume :=
@@ -102,6 +103,7 @@
     editor
     eprint
     eprinttype
+    entrysubtype
     howpublished
     institution
     journal
@@ -382,9 +384,22 @@
 FUNCTION {new.slash}
 { output.state before.all =
     'skip$
-    { slash.for.extraction
+    { component.part.label "slash" =
         { after.slash 'output.state := }
-        { after.block 'output.state := }
+        { new.block
+          component.part.label "in" =
+            { entry.lang lang.en =
+                { "In: " output
+                  write$
+                  ""
+                  before.all 'output.state :=
+                }
+                'skip$
+              if$
+            }
+            'skip$
+          if$
+        }
       if$
     }
   if$
@@ -977,14 +992,6 @@
     { format.booktitle.vol.num }
   if$
   format.btitle
-  in.booktitle
-    { duplicate$ empty$ not entry.lang lang.en = and
-        { "In: " swap$ * }
-        'skip$
-      if$
-    }
-    'skip$
-  if$
 }
 
 FUNCTION {remove.period}
@@ -1126,9 +1133,13 @@
 { edition empty$
     { "" }
     { edition is.number
-        { entry.lang lang.zh =
-            { edition " 版" * }
-            { edition num.to.ordinal " ed." * }
+        { edition "1" = not
+            { entry.lang lang.zh =
+                { edition " 版" * }
+                { edition num.to.ordinal " ed." * }
+              if$
+            }
+            'skip$
           if$
         }
         { entry.lang lang.en =
@@ -1290,7 +1301,10 @@
     { year extract.before.slash extra.label * }
     { date empty$ not
         { date extract.before.dash extra.label * }
-        { "empty year in " cite$ * warning$
+        { entry.is.electronic not
+            { "empty year in " cite$ * warning$ }
+            'skip$
+          if$
           urldate empty$ not
             { "[" urldate extract.before.dash * extra.label * "]" * }
             { "" }
@@ -1328,7 +1342,15 @@
 { date empty$ not
     { type$ "patent" = type$ "newspaper" = or
         { date }
-        { format.year }
+        { entrysubtype empty$ not
+            { type$ "article" = entrysubtype "newspaper" = and
+                { date }
+                { format.year }
+              if$
+            }
+            { format.year }
+          if$
+        }
       if$
     }
     { year empty$ not
@@ -1796,7 +1818,15 @@
   new.block
   title.in.journal
     { format.title "title" output.check
-      "J" set.entry.mark
+      entrysubtype empty$ not
+        {
+          entrysubtype "newspaper" =
+            { "N" set.entry.mark }
+            { "J" set.entry.mark }
+          if$
+        }
+        { "J" set.entry.mark }
+      if$
       format.mark "" output.after
       new.block
     }

Modified: trunk/Master/texmf-dist/doc/latex/thuthesis/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/thuthesis/CHANGELOG.md	2022-05-17 20:11:02 UTC (rev 63323)
+++ trunk/Master/texmf-dist/doc/latex/thuthesis/CHANGELOG.md	2022-05-17 20:11:18 UTC (rev 63324)
@@ -6,6 +6,24 @@
 
 ## [Unreleased]
 
+## [v7.3.0] - 2022-05-17
+
+### Added
+
+- 新增 LuaTeX 支持(试验性)([#771](https://github.com/tuna/thuthesis/issues/771))。
+
+### Changed
+
+- 研究生英文版目录中的标签分隔符由 `\quad` 改为空格([#759](https://github.com/tuna/thuthesis/discussions/759))。
+- 研究生英文版章节标题的标签分隔符由 `\quad` 改为空格([#759](https://github.com/tuna/thuthesis/discussions/759))。
+- 研究生英文封面的“Submitted”改为小写,同步《指南》2022 年 5 月版的修改。
+- 更改示例文档中 `longtable` 的“续表”标题格式,同步《指南》2021 年 6 月版的修改([#766](https://github.com/tuna/thuthesis/issues/766))。
+
+### Fixed
+
+- 修正英文版研究成果的格式([#755](https://github.com/tuna/thuthesis/issues/755))。
+- 修复脚注内容可能跨页的问题([#778](https://github.com/tuna/thuthesis/issues/778))。
+
 ## [v7.2.4] - 2022-03-19
 
 ### Added
@@ -884,7 +902,8 @@
 
 
 
-[Unreleased]: https://github.com/tuna/thuthesis/compare/v7.2.4...HEAD
+[Unreleased]: https://github.com/tuna/thuthesis/compare/v7.3.0...HEAD
+[v7.3.0]:     https://github.com/tuna/thuthesis/compare/v7.2.4...v7.3.0
 [v7.2.4]:     https://github.com/tuna/thuthesis/compare/v7.2.3...v7.2.4
 [v7.2.3]:     https://github.com/tuna/thuthesis/compare/v7.2.2...v7.2.3
 [v7.2.2]:     https://github.com/tuna/thuthesis/compare/v7.2.1...v7.2.2

Modified: trunk/Master/texmf-dist/doc/latex/thuthesis/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/thuthesis/README.md	2022-05-17 20:11:02 UTC (rev 63323)
+++ trunk/Master/texmf-dist/doc/latex/thuthesis/README.md	2022-05-17 20:11:18 UTC (rev 63324)
@@ -15,6 +15,8 @@
 
 **由于模板升级频繁,在开始使用和提问前,请确保您已经认真完整地阅读了使用说明文档和示例代码。**
 
+任何违反 [LaTeX项目公共许可证 v1.3c](https://www.latex-project.org/lppl/lppl-1-3c/) 使用 ThuThesis 的行为将被记录在 [耻辱柱](https://github.com/tuna/thuthesis/issues/754) 页面中,以示警告。
+
 ## 下载
 
 推荐下载**发布版**模板,里面包括具体使用说明以及示例文档:
@@ -90,6 +92,8 @@
 
 **This template is subject to frequent changes. Please make sure you have read the usage documentation and example code completely and carefully before using and asking questions.**
 
+Any use of ThuThesis in violation of [The LaTeX project public license v1.3c](https://www.latex-project.org/lppl/lppl-1-3c/) will be recorded in the [Hall of Shame](https://github.com/tuna/thuthesis/issues/754).
+
 ## Downloads
 
 **Published versions** are recommended. Specific usage documentation and examples can be found in the archive. At present, these documents are <b>only available in Chinese</b>:

Modified: trunk/Master/texmf-dist/doc/latex/thuthesis/data/chap02.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/thuthesis/data/chap02.tex	2022-05-17 20:11:02 UTC (rev 63323)
+++ trunk/Master/texmf-dist/doc/latex/thuthesis/data/chap02.tex	2022-05-17 20:11:18 UTC (rev 63324)
@@ -85,12 +85,13 @@
 编号后跟表题(可省略)和“(续)”,置于表上方。续表均应重复表头。
 
 \begin{longtable}{cccc}
-    \caption{跨页长表格的表题} \\
+    \caption{跨页长表格的表题}
+    \label{tab:longtable} \\
     \toprule
     表头 1 & 表头 2 & 表头 3 & 表头 4 \\
     \midrule
   \endfirsthead
-    \caption[]{跨页长表格的表题(续)} \\
+    \caption*{续表~\thetable\quad 跨页长表格的表题} \\
     \toprule
     表头 1 & 表头 2 & 表头 3 & 表头 4 \\
     \midrule

Modified: trunk/Master/texmf-dist/doc/latex/thuthesis/data/chap03.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/thuthesis/data/chap03.tex	2022-05-17 20:11:02 UTC (rev 63323)
+++ trunk/Master/texmf-dist/doc/latex/thuthesis/data/chap03.tex	2022-05-17 20:11:18 UTC (rev 63324)
@@ -17,11 +17,6 @@
     注意有限增量符号 $\increment$ 固定使用正体,模板提供了 \cs{increment} 命令。
   \item 小于等于号和大于等于号使用倾斜的字形 $\le$、$\ge$。
   \item 积分号使用正体,比如 $\int$、$\oint$。
-  \item 行间公式积分号的上下限位于积分号的上下两端,比如
-    \begin{equation*}
-      \int_a^b f(x) \dif x.
-    \end{equation*}
-    行内公式为了版面的美观,统一居右侧,如 $\int_a^b f(x) \dif x$ 。
   \item
     偏微分符号 $\partial$ 使用正体。
   \item
@@ -66,12 +61,11 @@
 \section{数学公式}
 
 数学公式可以使用 \env{equation} 和 \env{equation*} 环境。
-注意数学公式的引用应前后带括号,建议使用 \cs{eqref} 命令,比如式\eqref{eq:example}。
+注意数学公式的引用应前后带括号,通常使用 \cs{eqref} 命令,比如式\eqref{eq:example}。
 \begin{equation}
-  \frac{1}{2 \uppi \symup{i}} \int_\gamma f = \sum_{k=1}^m n(\gamma; a_k) \mathscr{R}(f; a_k)
+  \frac{1}{2 \uppi \symup{i}} \int_\gamma f = \sum_{k=1}^m n(\gamma; a_k) \mathscr{R}(f; a_k).
   \label{eq:example}
 \end{equation}
-注意公式编号的引用应含有圆括号,可以使用 \cs{eqref} 命令。
 
 多行公式尽可能在“=”处对齐,推荐使用 \env{align} 环境。
 \begin{align}

Modified: trunk/Master/texmf-dist/doc/latex/thuthesis/latexmkrc
===================================================================
--- trunk/Master/texmf-dist/doc/latex/thuthesis/latexmkrc	2022-05-17 20:11:02 UTC (rev 63323)
+++ trunk/Master/texmf-dist/doc/latex/thuthesis/latexmkrc	2022-05-17 20:11:18 UTC (rev 63324)
@@ -3,6 +3,7 @@
 $pdf_mode = 5;
 
 $xelatex = "xelatex -shell-escape -file-line-error -halt-on-error -interaction=nonstopmode -no-pdf -synctex=1 %O %S";
+$lualatex = "lualatex -shell-escape -file-line-error -halt-on-error -interaction=nonstopmode -synctex=1 %O %S";
 $xdvipdfmx = "xdvipdfmx -q -E -o %D %O %S";
 
 $bibtex_use = 1.5;

Modified: trunk/Master/texmf-dist/doc/latex/thuthesis/spine.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/thuthesis/thuthesis-example.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/thuthesis/thuthesis.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/latex/thuthesis/thuthesis.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/thuthesis/thuthesis.dtx	2022-05-17 20:11:02 UTC (rev 63323)
+++ trunk/Master/texmf-dist/source/latex/thuthesis/thuthesis.dtx	2022-05-17 20:11:18 UTC (rev 63324)
@@ -14,7 +14,7 @@
 %
 % \iffalse
 %<*driver>
-\ProvidesFile{thuthesis.dtx}[2022/03/19 7.2.4 Tsinghua University Thesis Template]
+\ProvidesFile{thuthesis.dtx}[2022/05/17 7.3.0 Tsinghua University Thesis Template]
 \documentclass{ltxdoc}
 \usepackage{dtx-style}
 
@@ -74,7 +74,7 @@
 % \item 本模板为作者根据
 %   清华大学研究生院颁发的《
 %    \href{http://yjsy.cic.tsinghua.edu.cn/docinfo/board/boarddetail.jsp?columnId=001050603&parentColumnId=0010506&itemSeq=5365}{%
-%   研究生学位论文写作指南}》(2021年6月版本,限校内网络访问)、
+%   研究生学位论文写作指南}》(更新到2022年5月版本,限校内网络访问)、
 %   英文版《Guide to Thesis Writing for Graduate Students》、
 %   清华大学教务处颁发的《
 %   \href{https://lib.tsinghua.edu.cn/info/1073/1978.htm}{%
@@ -379,8 +379,8 @@
 % \subsubsection{输出格式}
 % \DescribeOption{output}
 % 选择输出的格式是打印版还是电子版(用于提交),可选:\option{print}(默认)、\option{electronic}。
-% 一些院系要求提交的电子版不含空白页,但是这对打印并不友好,
-% 比如正文第一页可能会在左侧;以及一些部分需要单面打印,需要插入空白页。
+% 打印版 \option{print} 自动在单面打印的部分插入空白页(比如封面),并且保证正文第 1 页在右侧。
+% 电子版 \option{electronic} 选项会去掉空白页,这是因为一些院系要求提交的电子版不含空白页。
 % 注意在不同选项下,生成的声明页码很可能不同。为了避免页码错误,
 % \thuthesis{}将会在插入扫描的 PDF 文件时自动生成页码,因此\textbf{扫描声明页时请移除底部的页码},以防重叠。
 %
@@ -670,9 +670,7 @@
 % \DescribeOption{toc-chapter-style}
 % 本科生《写作指南》关于目录章标题要求“目录从第 1 章开始,每章标题用黑体小四号字”,
 % 所以其中的西文和数字默认使用 Arial 字体,跟正文的章标题一致。
-% 但是论文样例\footnote{
-%   \url{http://www.law.tsinghua.edu.cn/publish/law/7024/2012/20120216153516317135347/20120216153516317135347_.html}
-% }的目录章标题的西文和数字却使用了 Times。
+% 但是论文样例\footnote{此前发布在法学院网站,目前已经无公开可获得的链接。}的目录章标题的西文和数字却使用了 Times。
 % 如果审查老师这样要求,需要在生成目录前设置
 % \begin{latex}
 %   \thusetup{
@@ -822,7 +820,7 @@
 %     uppercase-greek    = italic,
 %     less-than-or-equal = slanted,
 %     integral           = upright,
-%     integral-limits    = true,
+%     integral-limits    = false,
 %     partial            = upright,
 %     math-ellipsis      = centered,
 %     real-part          = roman,
@@ -1250,7 +1248,7 @@
 %    \begin{macrocode}
 %<cls>\NeedsTeXFormat{LaTeX2e}[2017/04/15]
 %<cls>\ProvidesClass{thuthesis}
-%<cls>[2022/03/19 7.2.4 Tsinghua University Thesis Template]
+%<cls>[2022/05/17 7.3.0 Tsinghua University Thesis Template]
 %    \end{macrocode}
 %
 % 报错
@@ -1288,7 +1286,9 @@
 %    \begin{macrocode}
 \RequirePackage{iftex}
 \ifXeTeX\else
-  \thu at error{XeLaTeX is required to compile this document}
+  \ifLuaTeX\else
+    \thu at error{XeLaTeX or LuaLaTeX is required to compile this document}
+  \fi
 \fi
 %    \end{macrocode}
 %
@@ -1306,7 +1306,7 @@
 %<*cls>
 \hyphenation{Thu-Thesis}
 \def\thuthesis{ThuThesis}
-\def\version{7.2.4}
+\def\version{7.3.0}
 \RequirePackage{kvdefinekeys}
 \RequirePackage{kvsetkeys}
 \RequirePackage{kvoptions}
@@ -1541,6 +1541,7 @@
       auto,
       windows,
       mac,
+      mac-word,
       noto,
       fandol,
       none,
@@ -1767,8 +1768,11 @@
 % 利用 \pkg{xeCJKfntef} 实现汉字的下划线和盒子内两段对齐,并可以避免
 % \cs{makebox}\oarg{width}\oarg{s} 可能产生的 underful boxes。
 %    \begin{macrocode}
-\RequirePackage{xeCJKfntef}
-\RequirePackage{soul}
+\ifXeTeX
+  \RequirePackage{xeCJKfntef}
+\else
+  \RequirePackage{ulem}
+\fi
 %    \end{macrocode}
 %
 % 表格控制
@@ -2061,8 +2065,20 @@
 %
 % 带圈数字和星号使用中文字体。
 %    \begin{macrocode}
-\xeCJKDeclareCharClass{CJK}{"2460 -> "2473}
-\xeCJKDeclareCharClass{CJK}{"2605}
+\ifLuaTeX
+  % ctex 将带圈数字 U+2460–U+24FF 归入字符范围 3(ALchar),这里改回范围 6(JAchar)
+  \ltjdefcharrange{3}{%
+    "2000-"243F, "2500-"27BF, "2900-"29FF, "2B00-"2BFF}
+  \ltjdefcharrange{6}{%
+    "2460-"24FF, "2E80-"2EFF, "3000-"30FF, "3190-"319F, "31F0-"4DBF,
+    "4E00-"9FFF, "F900-"FAFF, "FE10-"FE1F, "FE30-"FE6F, "FF00-"FFEF,
+    "1B000-"1B16F, "1F100-"1F2FF, "20000-"3FFFF, "E0100-"E01EF}
+\else
+  \ifXeTeX
+    \xeCJKDeclareCharClass{CJK}{"2460 -> "2473}
+    \xeCJKDeclareCharClass{CJK}{"2605}
+  \fi
+\fi
 %    \end{macrocode}
 %
 % \newcommand\unicodechar[1]{U+#1(\symbol{"#1})}
@@ -2083,16 +2099,28 @@
 %    \begin{macrocode}
 \newcommand\thu at set@punctuations{%
   \ifthu at language@chinese
-    \xeCJKDeclareCharClass{FullLeft}{"2018, "201C}%
-    \xeCJKDeclareCharClass{FullRight}{
-      "00B7, "2019, "201D, "2013, "2014, "2025, "2026, "2E3A,
-    }%
+    \ifLuaTeX
+      \ltjsetparameter{jacharrange={+9}}
+    \else
+      \ifXeTeX
+        \xeCJKDeclareCharClass{FullLeft}{"2018, "201C}%
+        \xeCJKDeclareCharClass{FullRight}{
+          "00B7, "2019, "201D, "2013, "2014, "2025, "2026, "2E3A,
+        }%
+      \fi
+    \fi
   \else
     \ifthu at language@english
-      \xeCJKDeclareCharClass{HalfLeft}{"2018, "201C}%
-      \xeCJKDeclareCharClass{HalfRight}{
-        "00B7, "2019, "201D, "2013, "2014, "2025, "2026, "2E3A,
-      }%
+      \ifLuaTeX
+        \ltjsetparameter{jacharrange={-9}}
+      \else
+        \ifXeTeX
+          \xeCJKDeclareCharClass{HalfLeft}{"2018, "201C}%
+          \xeCJKDeclareCharClass{HalfRight}{
+            "00B7, "2019, "201D, "2013, "2014, "2025, "2026, "2E3A,
+          }%
+        \fi
+      \fi
     \fi
   \fi
 }
@@ -2208,6 +2236,9 @@
 %
 % 使用 \pkg{fontspec} 配置字体。
 %    \begin{macrocode}
+\newcommand\thu at mac@word at font@path{%
+  /Applications/Microsoft Word.app/Contents/Resources/DFonts/%
+}
 \ifthu at fontset@auto
   \ifthu at system@windows
     \thusetup{fontset = windows}
@@ -2215,15 +2246,19 @@
     \IfFontExistsTF{SimSun}{
       \thusetup{fontset = windows}
     }{
-      \ifthu at system@mac
-        \thusetup{fontset = mac}
-      \else
-        \IfFontExistsTF{Noto Serif CJK SC}{
-          \thusetup{fontset = ubuntu}
-        }{
-          \thusetup{fontset = fandol}
-        }
-      \fi
+      \IfFileExists{\thu at mac@word at font@path/SimSun.ttf}{
+        \thusetup{fontset = windows}
+      }{
+        \ifthu at system@mac
+          \thusetup{fontset = mac}
+        \else
+          \IfFontExistsTF{Noto Serif CJK SC}{
+            \thusetup{fontset = ubuntu}
+          }{
+            \thusetup{fontset = fandol}
+          }
+        \fi
+      }
     }
   \fi
 \fi
@@ -2487,13 +2522,30 @@
 %
 % \subsubsection{中文字体}
 %
+% 去掉“no requested script”警告。
 %    \begin{macrocode}
+\ExplSyntaxOn
+\@ifpackageloaded { xeCJK }
+  { \msg_redirect_name:nnn { fontspec } { no-script } { info } }
+  { }
+\ExplSyntaxOff
+%    \end{macrocode}
+%
+%    \begin{macrocode}
 \ifthu at cjk@font at auto
   \ifthu at fontset@mac
     \thusetup{cjk-font = mac}
   \else
     \ifthu at fontset@windows
-      \thusetup{cjk-font = windows}
+      \IfFontExistsTF{SimSun}{
+        \thusetup{cjk-font = windows}
+      }{
+        \IfFileExists{\thu at mac@word at font@path/SimSun.ttf}{
+          \thusetup{cjk-font = mac-word}
+        }{
+          \thu at error{Cannot find "SimSun" font}
+        }
+      }
     \else
       \ifthu at fontset@ubuntu
         \thusetup{cjk-font = noto}
@@ -2508,24 +2560,48 @@
 % Windows 的中易字体。
 %    \begin{macrocode}
 \newcommand\thu at set@cjk at font@windows{%
-  \xeCJKsetup{EmboldenFactor=3}%
   \setCJKmainfont{SimSun}[
-    AutoFakeBold = true,
+    AutoFakeBold = 3,
     ItalicFont   = KaiTi,
   ]%
-  \setCJKsansfont{SimHei}[AutoFakeBold]%
+  \setCJKsansfont{SimHei}[AutoFakeBold = 3]%
   \setCJKmonofont{FangSong}%
-  \setCJKfamilyfont{zhsong}{SimSun}[AutoFakeBold]%
-  \setCJKfamilyfont{zhhei}{SimHei}[AutoFakeBold]%
+  \setCJKfamilyfont{zhsong}{SimSun}[AutoFakeBold = 3]%
+  \setCJKfamilyfont{zhhei}{SimHei}[AutoFakeBold = 3]%
   \setCJKfamilyfont{zhkai}{KaiTi}%
   \setCJKfamilyfont{zhfs}{FangSong}%
 }
 %    \end{macrocode}
 %
+% macOS 的 Microsoft Word 字体。
+%    \begin{macrocode}
+\@namedef{thu at set@cjk at font@mac-word}{%
+  \setCJKmainfont{SimSun}[%
+    Path         = \thu at mac@word at font@path,
+    AutoFakeBold = 3,
+    ItalicFont   = KaiTi,
+  ]%
+  \setCJKsansfont{SimHei}[%
+    Path         = \thu at mac@word at font@path,
+    AutoFakeBold = 3,
+  ]%
+  \setCJKmonofont{FangSong}[Path=\thu at mac@word at font@path]%
+  \setCJKfamilyfont{zhsong}{SimSun}[%
+    Path         = \thu at mac@word at font@path,
+    AutoFakeBold = 3,
+  ]%
+  \setCJKfamilyfont{zhhei}{SimHei}[%
+    Path         = \thu at mac@word at font@path,
+    AutoFakeBold = 3,
+  ]%
+  \setCJKfamilyfont{zhkai}{KaiTi}[Path = \thu at mac@word at font@path]%
+  \setCJKfamilyfont{zhfs}{FangSong}[Path = \thu at mac@word at font@path]%
+}
+%    \end{macrocode}
+%
 % macOS 的华文字体。
 %    \begin{macrocode}
 \newcommand\thu at set@cjk at font@mac{%
-  \defaultCJKfontfeatures{}%
   \setCJKmainfont{Songti SC}[
     UprightFont    = * Light,
     BoldFont       = * Bold,
@@ -2562,30 +2638,19 @@
 % 注意 Noto CJK 的 regular 字重名字不带“Regular”。
 %    \begin{macrocode}
 \newcommand\thu at set@cjk at font@noto{%
-  \defaultCJKfontfeatures{}%
   \setCJKmainfont{Noto Serif CJK SC}[
     UprightFont    = * Light,
     BoldFont       = * Bold,
     ItalicFont     = FandolKai-Regular,
     ItalicFeatures = {Extension = .otf},
-    Script         = CJK,
   ]%
-  \setCJKsansfont{Noto Sans CJK SC}[
-    BoldFont       = * Medium,
-    Script         = CJK,
-  ]%
-  \setCJKmonofont{Noto Sans Mono CJK SC}[
-    Script         = CJK,
-  ]%
+  \setCJKsansfont{Noto Sans CJK SC}[BoldFont = * Medium]%
+  \setCJKmonofont{Noto Sans Mono CJK SC}%
   \setCJKfamilyfont{zhsong}{Noto Serif CJK SC}[
     UprightFont    = * Light,
     UprightFont    = * Bold,
-    Script         = CJK,
   ]%
-  \setCJKfamilyfont{zhhei}{Noto Sans CJK SC}[
-    BoldFont       = * Medium,
-    Script         = CJK,
-  ]%
+  \setCJKfamilyfont{zhhei}{Noto Sans CJK SC}[BoldFont * Medium]%
   \setCJKfamilyfont{zhfs}{FandolFang}[
     Extension      = .otf,
     UprightFont    = *-Regular,
@@ -2600,7 +2665,6 @@
 % Fandol 字体。
 %    \begin{macrocode}
 \newcommand\thu at set@cjk at font@fandol{%
-  \defaultCJKfontfeatures{}%
   \setCJKmainfont{FandolSong}[
     Extension   = .otf,
     UprightFont = *-Regular,
@@ -2668,7 +2732,6 @@
     \thusetup{
       uppercase-greek = italic,
       integral        = upright,
-      integral-limits = true,
       partial         = upright,
       real-part       = roman,
     }%
@@ -2675,6 +2738,7 @@
     \ifthu at math@style at ISO
       \thusetup{
         less-than-or-equal = horizontal,
+        integral-limits    = true,
         math-ellipsis      = lower,
       }%
     \else
@@ -2681,6 +2745,7 @@
       \ifthu at math@style at GB
         \thusetup{
           less-than-or-equal = slanted,
+          integral-limits    = false,
           math-ellipsis      = centered,
         }%
       \fi
@@ -3187,7 +3252,6 @@
 %    \begin{macrocode}
 \ctexset{%
   punct=quanjiao,
-  space=auto,
 }
 \newcommand\thu at set@indent{%
   \ifthu at main@language at chinese
@@ -3254,6 +3318,13 @@
 %
 % \subsubsection{脚注}
 % \label{sec:footnote}
+%
+% 严格禁止脚注跨页,参考 \href{https://github.com/tuna/thuthesis/issues/778}{\#778}
+% 和 \url{https://texfaq.org/FAQ-splitfoot}。
+%    \begin{macrocode}
+\interfootnotelinepenalty=10000
+%    \end{macrocode}
+%
 % 脚注内容采用小五号字,中文用宋体,英文和数字用 Times New Roman 体按两端对齐格式书写,
 % 单倍行距,段前段后均空 0 磅。
 % 脚注的序号按页编排,不同页的脚注序号不需要连续。
@@ -3593,21 +3664,17 @@
     numberformat = {},
     titleformat  = {},
     fixskip      = true,
-    aftername    = \quad,
     afterindent  = true,
     lofskip      = 0pt,
     lotskip      = 0pt,
   },
   section = {
-    aftername    = \quad,
     afterindent  = true,
   },
   subsection = {
-    aftername    = \quad,
     afterindent  = true,
   },
   subsubsection = {
-    aftername    = \quad,
     afterindent  = true,
   },
   paragraph/afterindent = true,
@@ -3636,21 +3703,25 @@
     \ctexset{%
       chapter = {
         format     = \centering\sffamily\fontsize{15bp}{20bp}\selectfont,
+        aftername  = \quad,
         beforeskip = 30bp,
         afterskip  = 20bp,
       },
       section = {
         format     = \sffamily\fontsize{14bp}{18bp}\selectfont,
+        aftername  = \quad,
         beforeskip = 25bp,
         afterskip  = 12bp,
       },
       subsection = {
         format     = \sffamily\fontsize{13bp}{15bp}\selectfont,
+        aftername  = \quad,
         beforeskip = 12bp,
         afterskip  = 6bp,
       },
       subsubsection = {
         format     = \sffamily\fontsize{12bp}{14bp}\selectfont,
+        aftername  = \quad,
         beforeskip = 12bp,
         afterskip  = 6bp,
       },
@@ -3700,6 +3771,25 @@
 % 由于 Word 的行距算法不同,这里进行了一些调整使得视觉上更接近。
 %    \begin{macrocode}
   \else
+    \ctexset{%
+      chapter = {
+        beforeskip = 27bp,
+        afterskip  = 27bp,
+        number     = \thechapter,
+      },
+      section = {
+        beforeskip = 24bp,
+        afterskip  = 6bp,
+      },
+      subsection = {
+        beforeskip = 12bp,
+        afterskip  = 6bp,
+      },
+      subsubsection = {
+        beforeskip = 12bp,
+        afterskip  = 6bp,
+      },
+    }%
     \ifthu at main@language at chinese
       \ctexset{%
         chapter = {
@@ -3707,15 +3797,19 @@
           nameformat  = {},
           titleformat = {},
           name        = {第,章},
+          aftername   = \quad,
         },
         section = {
           format     = \sffamily\fontsize{14bp}{20bp}\selectfont,
+          aftername  = \quad,
         },
         subsection = {
           format     = \sffamily\fontsize{13bp}{20bp}\selectfont,
+          aftername  = \quad,
         },
         subsubsection = {
           format     = \sffamily\fontsize{12bp}{20bp}\selectfont,
+          aftername  = \quad,
         },
       }%
     \else
@@ -3725,37 +3819,22 @@
           nameformat  = \MakeUppercase,
           titleformat = \MakeUppercase,
           name        = \chaptername\space,
+          aftername   = \space,
         },
         section = {
           format     = \sffamily\bfseries\fontsize{14bp}{20bp}\selectfont,
+          aftername  = \space,
         },
         subsection = {
           format     = \sffamily\bfseries\fontsize{13bp}{20bp}\selectfont,
+          aftername  = \space,
         },
         subsubsection = {
           format     = \sffamily\bfseries\fontsize{12bp}{20bp}\selectfont,
+          aftername  = \space,
         },
       }%
     \fi
-    \ctexset{%
-      chapter = {
-        beforeskip = 27bp,
-        afterskip  = 27bp,
-        number     = \thechapter,
-      },
-      section = {
-        beforeskip = 24bp,
-        afterskip  = 6bp,
-      },
-      subsection = {
-        beforeskip = 12bp,
-        afterskip  = 6bp,
-      },
-      subsubsection = {
-        beforeskip = 12bp,
-        afterskip  = 6bp,
-      },
-    }%
   \fi
 }
 \thu at set@section at format
@@ -3953,7 +4032,7 @@
     \else
       \titlecontents{chapter}
         [\z@]{\addvspace{6bp}\heiti}
-        {\contentspush{\MakeUppercase{\thecontentslabel}\quad}\MakeUppercase}{\MakeUppercase}
+        {\contentspush{\MakeUppercase{\thecontentslabel}\space}\MakeUppercase}{\MakeUppercase}
         {\rmfamily\thu at leaders\thecontentspage}%
       \titlecontents{section}
         [1em]{}
@@ -4133,10 +4212,11 @@
 \newcommand\thu at date@en at short[3]{\thu at date@month{#2}, #1}
 %    \end{macrocode}
 %
-% 下划线命令
+% 下划线命令。
+% \pkg{ulem} 的下划线 \cs{uline} 可以控制粗细和深度。
 %    \begin{macrocode}
 \newcommand\thu at underline[2][6em]{\hskip1pt\underline{\hb at xt@ #1{\hss#2\hss}}\hskip3pt}
-\newcommand\thu at CJKunderline[2][6em]{\CJKunderline*{\hb at xt@ #1{\hss#2\hss}}}
+\newcommand\thu at uline[2][6em]{\uline{\hb at xt@ #1{\hss#2\hss}}}
 %    \end{macrocode}
 %
 % 将内容拉伸或压缩到固定宽度。
@@ -4143,7 +4223,11 @@
 %    \begin{macrocode}
 \newcommand\thu at fixed@box[2]{%
   \begingroup
-    \def\CJKglue{\hskip 0pt plus 2filll minus 1filll}%
+    \ifLuaTeX
+      \ltjsetparameter{kanjiskip = {0pt plus 2filll minus 1filll}}%
+    \else
+      \renewcommand\CJKglue{\hspace{0pt plus 2filll minus 1filll}}%
+    \fi
     \makebox[#1][l]{#2}%
   \endgroup
 }
@@ -4156,7 +4240,11 @@
   \sbox\thu at stretch@box{#2}%
   \ifdim \wd\thu at stretch@box < #1\relax
     \begingroup
-      \def\CJKglue{\hskip 0pt plus 2filll}%
+      \ifLuaTeX
+        \ltjsetparameter{kanjiskip = {0pt plus 2filll}}%
+      \else
+        \renewcommand\CJKglue{\hspace{0pt plus 2filll}}%
+      \fi
       \makebox[#1][l]{#2}%
     \endgroup
   \else
@@ -4379,8 +4467,14 @@
     \thu at titlepage@degree
     \vfill
     \parbox[t][8.5cm][t]{\textwidth}{%
-      \centering\CJKfamily+{}%
-      \centering\fangsong\sanhao[1.95]%
+      \centering
+      \fangsong
+      \ifLuaTeX
+        \fontspec{\CJK at family}%
+      \else
+        \CJKfamily+{}%
+      \fi
+      \sanhao[1.95]%
       \thu at titlepage@info
     }\par
     \parbox[t][2.5cm][t]{\textwidth}{\centering\thu at titlepage@date}\par
@@ -4415,8 +4509,14 @@
 %    \begin{macrocode}
 \newcommand\thu at titlepage@degree{%
   \begingroup
-    \CJKfamily+{}\xiaoer
-    \def\CJKglue{\hskip 1bp}%
+    \xiaoer
+    \ifLuaTeX
+      \fontspec{\CJK at family}%
+      \ltjsetparameter{kanjiskip = {1bp}}%
+    \else
+      \CJKfamily+{}%
+      \renewcommand\CJKglue{\hspace{1bp}}%
+    \fi
     \ifthu at thesis@type at thesis
       (申请清华大学\thu at degree@name
       \ifthu at degree@type at professional
@@ -4540,7 +4640,11 @@
 \newcommand\thu at titlepage@date{%
   \begingroup
     \sanhao
-    \def\CJKglue{\hskip 1bp}%
+    \ifLuaTeX
+      \ltjsetparameter{kanjiskip = {1bp}}%
+    \else
+      \renewcommand\CJKglue{\hspace{1bp}}%
+    \fi
     \thu at format@date{\thu at date@zh at short}{\thu at date}\par
   \endgroup
 }
@@ -4632,7 +4736,7 @@
   \fi
 }
 \newcommand\thu at titlepage@en at degree{%
-  \thu at thesis@name at en{} Submitted to\par
+  \thu at thesis@name at en{} submitted to\par
   {\bfseries Tsinghua University\par}%
   in partial fulfillment of the requirement\par
   for the
@@ -4700,22 +4804,23 @@
   \vskip 1.8cm%
   \begingroup
     \heiti
-    \ifthu at main@language at chinese
-      \yihao[1.56]%
-    \else
-      \fontsize{26bp}{32bp}\selectfont
-    \fi
-    \parindent=18bp%
-    \hangindent=72bp%
-    \makebox[54bp]{\xiaoer[1.2]题目:}%
-    \CJKunderline*[skip=false, thickness=0.05em, depth=0.12em]{\thu at title}%
-    \ifthu at main@language at english
-      \\
-      \thusetup{language=english}%
-      \ul\thu at title@en
-      \thusetup{language=chinese}%
-    \fi
-    \par
+    % 21.0cm - 0.2cm - 3cm * 2 - 18bp * 4 = 347bp
+    \noindent\hspace{1em}\makebox[54bp]{\xiaoer[1.2]题目:}%
+    \parbox[t]{347bp}{%
+      \ifthu at main@language at chinese
+        \yihao[1.56]%
+      \else
+        \fontsize{26bp}{32bp}\selectfont
+      \fi
+      \renewcommand\ULthickness{0.05em}%
+      \renewcommand\ULdepth{0.17em}%
+      \expandafter\uline\expandafter{\thu at title}\par
+      \ifthu at main@language at english
+        \thusetup{language=english}%
+        \expandafter\uline\expandafter{\thu at title@en}\par
+        \thusetup{language=chinese}%
+      \fi
+    }\par
   \endgroup
   \vskip 1.9cm%
   \begingroup
@@ -4746,7 +4851,12 @@
   \vskip 1.4cm%
   \begingroup
     \centering
-    {\CJKfamily+{}\xiaosi\thu at format@date{\thu at date@zh at digit}{\thu at date}\par}%
+    \ifLuaTeX
+      \fontspec{\CJK at family}%
+    \else
+      \CJKfamily+{}%
+    \fi
+    \xiaosi\thu at format@date{\thu at date@zh at digit}{\thu at date}\par
   \endgroup
   \vfill
   \clearpage
@@ -4774,20 +4884,23 @@
     }%
     \vskip 0.2cm%
     \parbox[t][4.0cm][c]{\textwidth}{%
-      \centering\sihao[3.46]\CJKunderline*[depth=1em]{\thu at title}\par
+      \centering\sihao[3.46]%
+      \renewcommand\ULdepth{1em}%
+      \expandafter\uline\expandafter{\thu at title}\par
     }\par
     \vskip 0.4cm%
     {\xiaosi\thu at author\par}%
     \vskip 1.4cm%
-    {\xiaosi[1.58]\xeCJKsetup{underline/depth=0.9em}%
+    {\xiaosi[1.58]%
+      \renewcommand\ULdepth{0.9em}%
       工作完成日期\quad
-      \thu at CJKunderline[5.9cm]{%
+      \thu at uline[5.9cm]{%
         \thu at format@date{\thu at date@zh at digit@short}{\thu at start@date}—%
         \thu at format@date{\thu at date@zh at digit@short}{\thu at end@date}
       }\par
       \vskip 0.55cm%
       报告提交日期\quad
-      \thu at CJKunderline[5.9cm]{\thu at format@date{\thu at date@zh at digit@short}{\thu at date}}\par
+      \thu at uline[5.9cm]{\thu at format@date{\thu at date@zh at digit@short}{\thu at date}}\par
     }%
     \vskip 0.45cm%
     {\xiaosi[2]{\ziju{1}清华大学}\quad (北京)\par}%
@@ -6047,16 +6160,49 @@
       format    += \centering,
       numbering = false,
     },
-    subsection = {
-      format     = \sffamily\fontsize{14bp}{20bp}\selectfont,
-      numbering  = false,
-      aftertitle = \ifthu at language@chinese :\else :\fi,
-    },
   }%
-  \ifthu at degree@bachelor
-    \ifthu at language@english
-      \sffamily\fontsize{15bp}{20bp}\selectfont,
+  \ifthu at language@chinese
+    \ctexset{
+      subsection = {
+        format     = \sffamily\fontsize{14bp}{20bp}\selectfont,
+        numbering  = false,
+        aftertitle = :,
+      },
+    }%
+    \ifthu at degree@graduate
+      \fontsize{12bp}{16bp}\selectfont
     \fi
+    \setlist[achievements]{
+      topsep      = 6bp,
+      itemsep     = 6bp,
+      leftmargin  = 1cm,
+      labelwidth  = 1cm,
+      labelsep    = 0pt,
+      align       = left,
+      label       = [\arabic*],
+    }%
+  \else
+    \ctexset{
+      subsection = {
+        beforeskip = 0pt,
+        afterskip  = 0pt,
+        format     = \bfseries\normalsize,
+        indent     = \parindent,
+        numbering  = false,
+      },
+    }%
+    \ifthu at degree@bachelor
+      % 内容部分用Arial字体,字号15pt,行距采用固定值20pt, 段前后 0pt。
+      \sffamily\fontsize{15bp}{20bp}\selectfont
+    \fi
+    \setlist[achievements]{
+      topsep      = 0bp,
+      itemsep     = 0bp,
+      leftmargin  = 1.75cm,
+      labelsep    = 0.5cm,
+      align       = right,
+      label       = [\arabic*],
+    }%
   \fi
 }{}
 %    \end{macrocode}
@@ -6077,19 +6223,14 @@
 %    \begin{macrocode}
 \newlist{achievements}{enumerate}{1}
 \setlist[achievements]{
-  label      = [\arabic*],
-  align      = left,
-  leftmargin = 10mm,
   topsep     = 6bp,
-  parsep     = 0bp,
   partopsep  = 0bp,
   itemsep    = 6bp,
-  labelsep   = !,
-  before     = {
-    \ifthu at degree@graduate
-      \fontsize{12bp}{16bp}\selectfont
-    \fi
-  },
+  parsep     = 0bp,
+  leftmargin = 10mm,
+  itemindent = 0pt,
+  align      = left,
+  label      = [\arabic*],
   resume     = achievements,
 }
 %    \end{macrocode}
@@ -6332,7 +6473,7 @@
       %     \itshape
       % #1\@addpunct{.}]\ignorespaces
       \sffamily
-      #1\@addpunct{\thu at theorem@separator}]\ignorespaces
+      #1]\ignorespaces
   }{%
     \popQED\endtrivlist\@endpefalse
   }

Modified: trunk/Master/texmf-dist/tex/latex/thuthesis/thuthesis.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/thuthesis/thuthesis.cls	2022-05-17 20:11:02 UTC (rev 63323)
+++ trunk/Master/texmf-dist/tex/latex/thuthesis/thuthesis.cls	2022-05-17 20:11:18 UTC (rev 63324)
@@ -23,7 +23,7 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[2017/04/15]
 \ProvidesClass{thuthesis}
-[2022/03/19 7.2.4 Tsinghua University Thesis Template]
+[2022/05/17 7.3.0 Tsinghua University Thesis Template]
 \newcommand\thu at error[1]{%
   \ClassError{thuthesis}{#1}{}%
 }
@@ -49,7 +49,9 @@
 }
 \RequirePackage{iftex}
 \ifXeTeX\else
-  \thu at error{XeLaTeX is required to compile this document}
+  \ifLuaTeX\else
+    \thu at error{XeLaTeX or LuaLaTeX is required to compile this document}
+  \fi
 \fi
 \InputIfFileExists{thuthesis-pdf-test-config.tex}{}{
   \InputIfFileExists{thuthesis-log-test-config.tex}{}{}
@@ -56,7 +58,7 @@
 }
 \hyphenation{Thu-Thesis}
 \def\thuthesis{ThuThesis}
-\def\version{7.2.4}
+\def\version{7.3.0}
 \RequirePackage{kvdefinekeys}
 \RequirePackage{kvsetkeys}
 \RequirePackage{kvoptions}
@@ -202,6 +204,7 @@
       auto,
       windows,
       mac,
+      mac-word,
       noto,
       fandol,
       none,
@@ -339,8 +342,11 @@
 \else
   \RequirePackage[perpage,hang]{footmisc}
 \fi
-\RequirePackage{xeCJKfntef}
-\RequirePackage{soul}
+\ifXeTeX
+  \RequirePackage{xeCJKfntef}
+\else
+  \RequirePackage{ulem}
+\fi
 \RequirePackage{array}
 \RequirePackage{booktabs}
 \RequirePackage{url}
@@ -567,20 +573,44 @@
 }
 \thu at set@names
 \thu at option@hook{language}{\thu at set@names}
-\xeCJKDeclareCharClass{CJK}{"2460 -> "2473}
-\xeCJKDeclareCharClass{CJK}{"2605}
+\ifLuaTeX
+  % ctex 将带圈数字 U+2460–U+24FF 归入字符范围 3(ALchar),这里改回范围 6(JAchar)
+  \ltjdefcharrange{3}{%
+    "2000-"243F, "2500-"27BF, "2900-"29FF, "2B00-"2BFF}
+  \ltjdefcharrange{6}{%
+    "2460-"24FF, "2E80-"2EFF, "3000-"30FF, "3190-"319F, "31F0-"4DBF,
+    "4E00-"9FFF, "F900-"FAFF, "FE10-"FE1F, "FE30-"FE6F, "FF00-"FFEF,
+    "1B000-"1B16F, "1F100-"1F2FF, "20000-"3FFFF, "E0100-"E01EF}
+\else
+  \ifXeTeX
+    \xeCJKDeclareCharClass{CJK}{"2460 -> "2473}
+    \xeCJKDeclareCharClass{CJK}{"2605}
+  \fi
+\fi
 \newcommand\thu at set@punctuations{%
   \ifthu at language@chinese
-    \xeCJKDeclareCharClass{FullLeft}{"2018, "201C}%
-    \xeCJKDeclareCharClass{FullRight}{
-      "00B7, "2019, "201D, "2013, "2014, "2025, "2026, "2E3A,
-    }%
+    \ifLuaTeX
+      \ltjsetparameter{jacharrange={+9}}
+    \else
+      \ifXeTeX
+        \xeCJKDeclareCharClass{FullLeft}{"2018, "201C}%
+        \xeCJKDeclareCharClass{FullRight}{
+          "00B7, "2019, "201D, "2013, "2014, "2025, "2026, "2E3A,
+        }%
+      \fi
+    \fi
   \else
     \ifthu at language@english
-      \xeCJKDeclareCharClass{HalfLeft}{"2018, "201C}%
-      \xeCJKDeclareCharClass{HalfRight}{
-        "00B7, "2019, "201D, "2013, "2014, "2025, "2026, "2E3A,
-      }%
+      \ifLuaTeX
+        \ltjsetparameter{jacharrange={-9}}
+      \else
+        \ifXeTeX
+          \xeCJKDeclareCharClass{HalfLeft}{"2018, "201C}%
+          \xeCJKDeclareCharClass{HalfRight}{
+            "00B7, "2019, "201D, "2013, "2014, "2025, "2026, "2E3A,
+          }%
+        \fi
+      \fi
     \fi
   \fi
 }
@@ -631,6 +661,9 @@
     }
   }
 \fi
+\newcommand\thu at mac@word at font@path{%
+  /Applications/Microsoft Word.app/Contents/Resources/DFonts/%
+}
 \ifthu at fontset@auto
   \ifthu at system@windows
     \thusetup{fontset = windows}
@@ -638,15 +671,19 @@
     \IfFontExistsTF{SimSun}{
       \thusetup{fontset = windows}
     }{
-      \ifthu at system@mac
-        \thusetup{fontset = mac}
-      \else
-        \IfFontExistsTF{Noto Serif CJK SC}{
-          \thusetup{fontset = ubuntu}
-        }{
-          \thusetup{fontset = fandol}
-        }
-      \fi
+      \IfFileExists{\thu at mac@word at font@path/SimSun.ttf}{
+        \thusetup{fontset = windows}
+      }{
+        \ifthu at system@mac
+          \thusetup{fontset = mac}
+        \else
+          \IfFontExistsTF{Noto Serif CJK SC}{
+            \thusetup{fontset = ubuntu}
+          }{
+            \thusetup{fontset = fandol}
+          }
+        \fi
+      }
     }
   \fi
 \fi
@@ -855,12 +892,25 @@
 \newcommand\thu at set@font at newtx{%
   \RequirePackage{newtxtext}%
 }
+\ExplSyntaxOn
+\@ifpackageloaded { xeCJK }
+  { \msg_redirect_name:nnn { fontspec } { no-script } { info } }
+  { }
+\ExplSyntaxOff
 \ifthu at cjk@font at auto
   \ifthu at fontset@mac
     \thusetup{cjk-font = mac}
   \else
     \ifthu at fontset@windows
-      \thusetup{cjk-font = windows}
+      \IfFontExistsTF{SimSun}{
+        \thusetup{cjk-font = windows}
+      }{
+        \IfFileExists{\thu at mac@word at font@path/SimSun.ttf}{
+          \thusetup{cjk-font = mac-word}
+        }{
+          \thu at error{Cannot find "SimSun" font}
+        }
+      }
     \else
       \ifthu at fontset@ubuntu
         \thusetup{cjk-font = noto}
@@ -871,20 +921,40 @@
   \fi
 \fi
 \newcommand\thu at set@cjk at font@windows{%
-  \xeCJKsetup{EmboldenFactor=3}%
   \setCJKmainfont{SimSun}[
-    AutoFakeBold = true,
+    AutoFakeBold = 3,
     ItalicFont   = KaiTi,
   ]%
-  \setCJKsansfont{SimHei}[AutoFakeBold]%
+  \setCJKsansfont{SimHei}[AutoFakeBold = 3]%
   \setCJKmonofont{FangSong}%
-  \setCJKfamilyfont{zhsong}{SimSun}[AutoFakeBold]%
-  \setCJKfamilyfont{zhhei}{SimHei}[AutoFakeBold]%
+  \setCJKfamilyfont{zhsong}{SimSun}[AutoFakeBold = 3]%
+  \setCJKfamilyfont{zhhei}{SimHei}[AutoFakeBold = 3]%
   \setCJKfamilyfont{zhkai}{KaiTi}%
   \setCJKfamilyfont{zhfs}{FangSong}%
 }
+\@namedef{thu at set@cjk at font@mac-word}{%
+  \setCJKmainfont{SimSun}[%
+    Path         = \thu at mac@word at font@path,
+    AutoFakeBold = 3,
+    ItalicFont   = KaiTi,
+  ]%
+  \setCJKsansfont{SimHei}[%
+    Path         = \thu at mac@word at font@path,
+    AutoFakeBold = 3,
+  ]%
+  \setCJKmonofont{FangSong}[Path=\thu at mac@word at font@path]%
+  \setCJKfamilyfont{zhsong}{SimSun}[%
+    Path         = \thu at mac@word at font@path,
+    AutoFakeBold = 3,
+  ]%
+  \setCJKfamilyfont{zhhei}{SimHei}[%
+    Path         = \thu at mac@word at font@path,
+    AutoFakeBold = 3,
+  ]%
+  \setCJKfamilyfont{zhkai}{KaiTi}[Path = \thu at mac@word at font@path]%
+  \setCJKfamilyfont{zhfs}{FangSong}[Path = \thu at mac@word at font@path]%
+}
 \newcommand\thu at set@cjk at font@mac{%
-  \defaultCJKfontfeatures{}%
   \setCJKmainfont{Songti SC}[
     UprightFont    = * Light,
     BoldFont       = * Bold,
@@ -916,30 +986,19 @@
   ]%
 }
 \newcommand\thu at set@cjk at font@noto{%
-  \defaultCJKfontfeatures{}%
   \setCJKmainfont{Noto Serif CJK SC}[
     UprightFont    = * Light,
     BoldFont       = * Bold,
     ItalicFont     = FandolKai-Regular,
     ItalicFeatures = {Extension = .otf},
-    Script         = CJK,
   ]%
-  \setCJKsansfont{Noto Sans CJK SC}[
-    BoldFont       = * Medium,
-    Script         = CJK,
-  ]%
-  \setCJKmonofont{Noto Sans Mono CJK SC}[
-    Script         = CJK,
-  ]%
+  \setCJKsansfont{Noto Sans CJK SC}[BoldFont = * Medium]%
+  \setCJKmonofont{Noto Sans Mono CJK SC}%
   \setCJKfamilyfont{zhsong}{Noto Serif CJK SC}[
     UprightFont    = * Light,
     UprightFont    = * Bold,
-    Script         = CJK,
   ]%
-  \setCJKfamilyfont{zhhei}{Noto Sans CJK SC}[
-    BoldFont       = * Medium,
-    Script         = CJK,
-  ]%
+  \setCJKfamilyfont{zhhei}{Noto Sans CJK SC}[BoldFont * Medium]%
   \setCJKfamilyfont{zhfs}{FandolFang}[
     Extension      = .otf,
     UprightFont    = *-Regular,
@@ -950,7 +1009,6 @@
   ]%
 }
 \newcommand\thu at set@cjk at font@fandol{%
-  \defaultCJKfontfeatures{}%
   \setCJKmainfont{FandolSong}[
     Extension   = .otf,
     UprightFont = *-Regular,
@@ -1012,7 +1070,6 @@
     \thusetup{
       uppercase-greek = italic,
       integral        = upright,
-      integral-limits = true,
       partial         = upright,
       real-part       = roman,
     }%
@@ -1019,6 +1076,7 @@
     \ifthu at math@style at ISO
       \thusetup{
         less-than-or-equal = horizontal,
+        integral-limits    = true,
         math-ellipsis      = lower,
       }%
     \else
@@ -1025,6 +1083,7 @@
       \ifthu at math@style at GB
         \thusetup{
           less-than-or-equal = slanted,
+          integral-limits    = false,
           math-ellipsis      = centered,
         }%
       \fi
@@ -1427,7 +1486,6 @@
 \ctexset{chapter/pagestyle = chapter}
 \ctexset{%
   punct=quanjiao,
-  space=auto,
 }
 \newcommand\thu at set@indent{%
   \ifthu at main@language at chinese
@@ -1473,6 +1531,7 @@
               \partopsep \z at skip
               \itemsep   \z at skip}
 \setlist{nosep}
+\interfootnotelinepenalty=10000
 \newcommand\thu at circled[1]{%
   \ifnum#1 >10\relax
     \thu at warning{%
@@ -1695,21 +1754,17 @@
     numberformat = {},
     titleformat  = {},
     fixskip      = true,
-    aftername    = \quad,
     afterindent  = true,
     lofskip      = 0pt,
     lotskip      = 0pt,
   },
   section = {
-    aftername    = \quad,
     afterindent  = true,
   },
   subsection = {
-    aftername    = \quad,
     afterindent  = true,
   },
   subsubsection = {
-    aftername    = \quad,
     afterindent  = true,
   },
   paragraph/afterindent = true,
@@ -1720,21 +1775,25 @@
     \ctexset{%
       chapter = {
         format     = \centering\sffamily\fontsize{15bp}{20bp}\selectfont,
+        aftername  = \quad,
         beforeskip = 30bp,
         afterskip  = 20bp,
       },
       section = {
         format     = \sffamily\fontsize{14bp}{18bp}\selectfont,
+        aftername  = \quad,
         beforeskip = 25bp,
         afterskip  = 12bp,
       },
       subsection = {
         format     = \sffamily\fontsize{13bp}{15bp}\selectfont,
+        aftername  = \quad,
         beforeskip = 12bp,
         afterskip  = 6bp,
       },
       subsubsection = {
         format     = \sffamily\fontsize{12bp}{14bp}\selectfont,
+        aftername  = \quad,
         beforeskip = 12bp,
         afterskip  = 6bp,
       },
@@ -1755,6 +1814,25 @@
       }%
     \fi
   \else
+    \ctexset{%
+      chapter = {
+        beforeskip = 27bp,
+        afterskip  = 27bp,
+        number     = \thechapter,
+      },
+      section = {
+        beforeskip = 24bp,
+        afterskip  = 6bp,
+      },
+      subsection = {
+        beforeskip = 12bp,
+        afterskip  = 6bp,
+      },
+      subsubsection = {
+        beforeskip = 12bp,
+        afterskip  = 6bp,
+      },
+    }%
     \ifthu at main@language at chinese
       \ctexset{%
         chapter = {
@@ -1762,15 +1840,19 @@
           nameformat  = {},
           titleformat = {},
           name        = {第,章},
+          aftername   = \quad,
         },
         section = {
           format     = \sffamily\fontsize{14bp}{20bp}\selectfont,
+          aftername  = \quad,
         },
         subsection = {
           format     = \sffamily\fontsize{13bp}{20bp}\selectfont,
+          aftername  = \quad,
         },
         subsubsection = {
           format     = \sffamily\fontsize{12bp}{20bp}\selectfont,
+          aftername  = \quad,
         },
       }%
     \else
@@ -1780,37 +1862,22 @@
           nameformat  = \MakeUppercase,
           titleformat = \MakeUppercase,
           name        = \chaptername\space,
+          aftername   = \space,
         },
         section = {
           format     = \sffamily\bfseries\fontsize{14bp}{20bp}\selectfont,
+          aftername  = \space,
         },
         subsection = {
           format     = \sffamily\bfseries\fontsize{13bp}{20bp}\selectfont,
+          aftername  = \space,
         },
         subsubsection = {
           format     = \sffamily\bfseries\fontsize{12bp}{20bp}\selectfont,
+          aftername  = \space,
         },
       }%
     \fi
-    \ctexset{%
-      chapter = {
-        beforeskip = 27bp,
-        afterskip  = 27bp,
-        number     = \thechapter,
-      },
-      section = {
-        beforeskip = 24bp,
-        afterskip  = 6bp,
-      },
-      subsection = {
-        beforeskip = 12bp,
-        afterskip  = 6bp,
-      },
-      subsubsection = {
-        beforeskip = 12bp,
-        afterskip  = 6bp,
-      },
-    }%
   \fi
 }
 \thu at set@section at format
@@ -1949,7 +2016,7 @@
     \else
       \titlecontents{chapter}
         [\z@]{\addvspace{6bp}\heiti}
-        {\contentspush{\MakeUppercase{\thecontentslabel}\quad}\MakeUppercase}{\MakeUppercase}
+        {\contentspush{\MakeUppercase{\thecontentslabel}\space}\MakeUppercase}{\MakeUppercase}
         {\rmfamily\thu at leaders\thecontentspage}%
       \titlecontents{section}
         [1em]{}
@@ -2082,10 +2149,14 @@
 }
 \newcommand\thu at date@en at short[3]{\thu at date@month{#2}, #1}
 \newcommand\thu at underline[2][6em]{\hskip1pt\underline{\hb at xt@ #1{\hss#2\hss}}\hskip3pt}
-\newcommand\thu at CJKunderline[2][6em]{\CJKunderline*{\hb at xt@ #1{\hss#2\hss}}}
+\newcommand\thu at uline[2][6em]{\uline{\hb at xt@ #1{\hss#2\hss}}}
 \newcommand\thu at fixed@box[2]{%
   \begingroup
-    \def\CJKglue{\hskip 0pt plus 2filll minus 1filll}%
+    \ifLuaTeX
+      \ltjsetparameter{kanjiskip = {0pt plus 2filll minus 1filll}}%
+    \else
+      \renewcommand\CJKglue{\hspace{0pt plus 2filll minus 1filll}}%
+    \fi
     \makebox[#1][l]{#2}%
   \endgroup
 }
@@ -2094,7 +2165,11 @@
   \sbox\thu at stretch@box{#2}%
   \ifdim \wd\thu at stretch@box < #1\relax
     \begingroup
-      \def\CJKglue{\hskip 0pt plus 2filll}%
+      \ifLuaTeX
+        \ltjsetparameter{kanjiskip = {0pt plus 2filll}}%
+      \else
+        \renewcommand\CJKglue{\hspace{0pt plus 2filll}}%
+      \fi
       \makebox[#1][l]{#2}%
     \endgroup
   \else
@@ -2277,8 +2352,14 @@
     \thu at titlepage@degree
     \vfill
     \parbox[t][8.5cm][t]{\textwidth}{%
-      \centering\CJKfamily+{}%
-      \centering\fangsong\sanhao[1.95]%
+      \centering
+      \fangsong
+      \ifLuaTeX
+        \fontspec{\CJK at family}%
+      \else
+        \CJKfamily+{}%
+      \fi
+      \sanhao[1.95]%
       \thu at titlepage@info
     }\par
     \parbox[t][2.5cm][t]{\textwidth}{\centering\thu at titlepage@date}\par
@@ -2305,8 +2386,14 @@
 }
 \newcommand\thu at titlepage@degree{%
   \begingroup
-    \CJKfamily+{}\xiaoer
-    \def\CJKglue{\hskip 1bp}%
+    \xiaoer
+    \ifLuaTeX
+      \fontspec{\CJK at family}%
+      \ltjsetparameter{kanjiskip = {1bp}}%
+    \else
+      \CJKfamily+{}%
+      \renewcommand\CJKglue{\hspace{1bp}}%
+    \fi
     \ifthu at thesis@type at thesis
       (申请清华大学\thu at degree@name
       \ifthu at degree@type at professional
@@ -2417,7 +2504,11 @@
 \newcommand\thu at titlepage@date{%
   \begingroup
     \sanhao
-    \def\CJKglue{\hskip 1bp}%
+    \ifLuaTeX
+      \ltjsetparameter{kanjiskip = {1bp}}%
+    \else
+      \renewcommand\CJKglue{\hspace{1bp}}%
+    \fi
     \thu at format@date{\thu at date@zh at short}{\thu at date}\par
   \endgroup
 }
@@ -2504,7 +2595,7 @@
   \fi
 }
 \newcommand\thu at titlepage@en at degree{%
-  \thu at thesis@name at en{} Submitted to\par
+  \thu at thesis@name at en{} submitted to\par
   {\bfseries Tsinghua University\par}%
   in partial fulfillment of the requirement\par
   for the
@@ -2558,22 +2649,23 @@
   \vskip 1.8cm%
   \begingroup
     \heiti
-    \ifthu at main@language at chinese
-      \yihao[1.56]%
-    \else
-      \fontsize{26bp}{32bp}\selectfont
-    \fi
-    \parindent=18bp%
-    \hangindent=72bp%
-    \makebox[54bp]{\xiaoer[1.2]题目:}%
-    \CJKunderline*[skip=false, thickness=0.05em, depth=0.12em]{\thu at title}%
-    \ifthu at main@language at english
-      \\
-      \thusetup{language=english}%
-      \ul\thu at title@en
-      \thusetup{language=chinese}%
-    \fi
-    \par
+    % 21.0cm - 0.2cm - 3cm * 2 - 18bp * 4 = 347bp
+    \noindent\hspace{1em}\makebox[54bp]{\xiaoer[1.2]题目:}%
+    \parbox[t]{347bp}{%
+      \ifthu at main@language at chinese
+        \yihao[1.56]%
+      \else
+        \fontsize{26bp}{32bp}\selectfont
+      \fi
+      \renewcommand\ULthickness{0.05em}%
+      \renewcommand\ULdepth{0.17em}%
+      \expandafter\uline\expandafter{\thu at title}\par
+      \ifthu at main@language at english
+        \thusetup{language=english}%
+        \expandafter\uline\expandafter{\thu at title@en}\par
+        \thusetup{language=chinese}%
+      \fi
+    }\par
   \endgroup
   \vskip 1.9cm%
   \begingroup
@@ -2604,7 +2696,12 @@
   \vskip 1.4cm%
   \begingroup
     \centering
-    {\CJKfamily+{}\xiaosi\thu at format@date{\thu at date@zh at digit}{\thu at date}\par}%
+    \ifLuaTeX
+      \fontspec{\CJK at family}%
+    \else
+      \CJKfamily+{}%
+    \fi
+    \xiaosi\thu at format@date{\thu at date@zh at digit}{\thu at date}\par
   \endgroup
   \vfill
   \clearpage
@@ -2628,20 +2725,23 @@
     }%
     \vskip 0.2cm%
     \parbox[t][4.0cm][c]{\textwidth}{%
-      \centering\sihao[3.46]\CJKunderline*[depth=1em]{\thu at title}\par
+      \centering\sihao[3.46]%
+      \renewcommand\ULdepth{1em}%
+      \expandafter\uline\expandafter{\thu at title}\par
     }\par
     \vskip 0.4cm%
     {\xiaosi\thu at author\par}%
     \vskip 1.4cm%
-    {\xiaosi[1.58]\xeCJKsetup{underline/depth=0.9em}%
+    {\xiaosi[1.58]%
+      \renewcommand\ULdepth{0.9em}%
       工作完成日期\quad
-      \thu at CJKunderline[5.9cm]{%
+      \thu at uline[5.9cm]{%
         \thu at format@date{\thu at date@zh at digit@short}{\thu at start@date}—%
         \thu at format@date{\thu at date@zh at digit@short}{\thu at end@date}
       }\par
       \vskip 0.55cm%
       报告提交日期\quad
-      \thu at CJKunderline[5.9cm]{\thu at format@date{\thu at date@zh at digit@short}{\thu at date}}\par
+      \thu at uline[5.9cm]{\thu at format@date{\thu at date@zh at digit@short}{\thu at date}}\par
     }%
     \vskip 0.45cm%
     {\xiaosi[2]{\ziju{1}清华大学}\quad (北京)\par}%
@@ -3589,16 +3689,49 @@
       format    += \centering,
       numbering = false,
     },
-    subsection = {
-      format     = \sffamily\fontsize{14bp}{20bp}\selectfont,
-      numbering  = false,
-      aftertitle = \ifthu at language@chinese :\else :\fi,
-    },
   }%
-  \ifthu at degree@bachelor
-    \ifthu at language@english
-      \sffamily\fontsize{15bp}{20bp}\selectfont,
+  \ifthu at language@chinese
+    \ctexset{
+      subsection = {
+        format     = \sffamily\fontsize{14bp}{20bp}\selectfont,
+        numbering  = false,
+        aftertitle = :,
+      },
+    }%
+    \ifthu at degree@graduate
+      \fontsize{12bp}{16bp}\selectfont
     \fi
+    \setlist[achievements]{
+      topsep      = 6bp,
+      itemsep     = 6bp,
+      leftmargin  = 1cm,
+      labelwidth  = 1cm,
+      labelsep    = 0pt,
+      align       = left,
+      label       = [\arabic*],
+    }%
+  \else
+    \ctexset{
+      subsection = {
+        beforeskip = 0pt,
+        afterskip  = 0pt,
+        format     = \bfseries\normalsize,
+        indent     = \parindent,
+        numbering  = false,
+      },
+    }%
+    \ifthu at degree@bachelor
+      % 内容部分用Arial字体,字号15pt,行距采用固定值20pt, 段前后 0pt。
+      \sffamily\fontsize{15bp}{20bp}\selectfont
+    \fi
+    \setlist[achievements]{
+      topsep      = 0bp,
+      itemsep     = 0bp,
+      leftmargin  = 1.75cm,
+      labelsep    = 0.5cm,
+      align       = right,
+      label       = [\arabic*],
+    }%
   \fi
 }{}
 \newcommand\resumeitem[1]{%
@@ -3609,19 +3742,14 @@
 }
 \newlist{achievements}{enumerate}{1}
 \setlist[achievements]{
-  label      = [\arabic*],
-  align      = left,
-  leftmargin = 10mm,
   topsep     = 6bp,
-  parsep     = 0bp,
   partopsep  = 0bp,
   itemsep    = 6bp,
-  labelsep   = !,
-  before     = {
-    \ifthu at degree@graduate
-      \fontsize{12bp}{16bp}\selectfont
-    \fi
-  },
+  parsep     = 0bp,
+  leftmargin = 10mm,
+  itemindent = 0pt,
+  align      = left,
+  label      = [\arabic*],
   resume     = achievements,
 }
 \newenvironment{publications}{%
@@ -3796,7 +3924,7 @@
       %     \itshape
       % #1\@addpunct{.}]\ignorespaces
       \sffamily
-      #1\@addpunct{\thu at theorem@separator}]\ignorespaces
+      #1]\ignorespaces
   }{%
     \popQED\endtrivlist\@endpefalse
   }



More information about the tex-live-commits mailing list.