texlive[62810] branches/branch2021.final/Master/texmf-dist: thuthesis

commits+karl at tug.org commits+karl at tug.org
Sat Mar 19 21:02:56 CET 2022


Revision: 62810
          http://tug.org/svn/texlive?view=revision&revision=62810
Author:   karl
Date:     2022-03-19 21:02:56 +0100 (Sat, 19 Mar 2022)
Log Message:
-----------
thuthesis (18mar22) (branch)

Modified Paths:
--------------
    branches/branch2021.final/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-author-year.bst
    branches/branch2021.final/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-bachelor.bst
    branches/branch2021.final/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-numeric.bst
    branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/CHANGELOG.md
    branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/README.md
    branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/data/appendix-translation.tex
    branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/data/chap04.tex
    branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/ref/appendix.bib
    branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/ref/refs.bib
    branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/spine.pdf
    branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/thusetup.tex
    branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/thuthesis-example.pdf
    branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/thuthesis-example.tex
    branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/thuthesis.pdf
    branches/branch2021.final/Master/texmf-dist/source/latex/thuthesis/thuthesis.dtx
    branches/branch2021.final/Master/texmf-dist/tex/latex/thuthesis/thuthesis-author-year.bbx
    branches/branch2021.final/Master/texmf-dist/tex/latex/thuthesis/thuthesis-numeric.bbx
    branches/branch2021.final/Master/texmf-dist/tex/latex/thuthesis/thuthesis.cls

Modified: branches/branch2021.final/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-author-year.bst
===================================================================
--- branches/branch2021.final/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-author-year.bst	2022-03-19 20:02:45 UTC (rev 62809)
+++ branches/branch2021.final/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-author-year.bst	2022-03-19 20:02:56 UTC (rev 62810)
@@ -4,11 +4,11 @@
 %%
 %% The original source files were:
 %%
-%% gbt7714.dtx  (with options: `2015,thu,authoryear')
+%% gbt7714.dtx  (with options: `2015,thu,author-year')
 %% -------------------------------------------------------------------
 %% GB/T 7714—2015 BibTeX Style
-%% https://github.com/CTeX-org/gbt7714-bibtex-style
-%% Version: 2021/04/03 v2.1.1
+%% https://github.com/zepinglee/gbt7714-bibtex-style
+%% Version: 2021/12/08 v2.1.3
 %% -------------------------------------------------------------------
 %% Copyright (C) 2016—2021 by Zeping Lee <zepinglee AT gmail.com>
 %% -------------------------------------------------------------------
@@ -29,9 +29,11 @@
   terms.in.macro
   year.after.author
   period.after.author
+  italic.book.title
   sentence.case.title
   link.title
   title.in.journal
+  show.patent.country
   show.mark
   space.before.mark
   show.medium.type
@@ -43,6 +45,7 @@
   show.missing.address.publisher
   space.before.pages
   only.start.page
+  wave.dash.in.pages
   show.urldate
   show.url
   show.doi
@@ -49,6 +52,7 @@
   show.preprint
   show.note
   show.english.translation
+  end.with.period
   lang.zh.order
   lang.ja.order
   lang.en.order
@@ -66,9 +70,11 @@
   #0 'terms.in.macro :=
   #1 'year.after.author :=
   #0 'period.after.author :=
+  #0 'italic.book.title :=
   #1 'sentence.case.title :=
   #0 'link.title :=
   #1 'title.in.journal :=
+  #1 'show.patent.country :=
   #1 'show.mark :=
   #0 'space.before.mark :=
   #1 'show.medium.type :=
@@ -80,12 +86,14 @@
   #0 'show.missing.address.publisher :=
   #1 'space.before.pages :=
   #0 'only.start.page :=
+  #0 'wave.dash.in.pages :=
   #1 'show.urldate :=
   #1 'show.url :=
   #1 'show.doi :=
-  #0 'show.preprint :=
+  #1 'show.preprint :=
   #0 'show.note :=
   #0 'show.english.translation :=
+  #1 'end.with.period :=
   #1 'lang.zh.order :=
   #2 'lang.ja.order :=
   #3 'lang.en.order :=
@@ -341,7 +349,10 @@
 }
 
 FUNCTION {fin.entry}
-{ add.period$
+{ end.with.period
+    'add.period$
+    'skip$
+  if$
   write$
   show.english.translation entry.lang lang.zh = and
     { ")"
@@ -428,13 +439,21 @@
   if$
 }
 
-FUNCTION {italicize}
+FUNCTION {emphasize}
 { duplicate$ empty$
     { pop$ "" }
-    { "\textit{" swap$ * "}" * }
+    { "\emph{" swap$ * "}" * }
   if$
 }
 
+FUNCTION {format.btitle}
+{ italic.book.title
+  entry.lang lang.en = and
+    'emphasize
+    'skip$
+  if$
+}
+
 INTEGERS { byte second.byte }
 
 INTEGERS { char.lang tmp.lang }
@@ -566,7 +585,7 @@
     { bbl.et.al }
     { t get.str.lang 'name.lang :=
       name.lang lang.en =
-        { t #1 "{vv~}{ll}{~f{~}}" format.name$
+        { t #1 "{vv~}{ll}{ f{~}}" format.name$
           uppercase.name
             { "u" change.case$ }
             'skip$
@@ -756,7 +775,7 @@
 { url empty$ not
     { "\href{" url * "}{" * swap$ * "}" * }
     { doi empty$ not
-        { "\href{http://dx.doi.org/" doi * "}{" * swap$ * "}" * }
+        { "\href{https://doi.org/" doi * "}{" * swap$ * "}" * }
         'skip$
       if$
     }
@@ -772,7 +791,25 @@
         'skip$
       if$
       entry.numbered number empty$ not and
-        { bbl.colon * number * }
+        { bbl.colon *
+          type$ "patent" = show.patent.country and
+            { address empty$ not
+                { address * ", " * }
+                { location empty$ not
+                    { location * ", " * }
+                    { entry.lang lang.zh =
+                        { "中国" * ", " * }
+                        'skip$
+                      if$
+                    }
+                  if$
+                }
+              if$
+            }
+            'skip$
+          if$
+          number *
+        }
         'skip$
       if$
       link.title
@@ -917,6 +954,7 @@
     }
     { format.title.vol.num }
   if$
+  format.btitle
   link.title
     'add.link
     'skip$
@@ -948,6 +986,7 @@
     }
     { format.booktitle.vol.num }
   if$
+  format.btitle
   in.booktitle
     { duplicate$ empty$ not entry.lang lang.en = and
         { "In: " swap$ * }
@@ -989,16 +1028,15 @@
   if$
 }
 
-FUNCTION {format.journal}
-{ ""
-  short.journal
+FUNCTION {get.journal.title}
+{ short.journal
     { shortjournal empty$ not
-        { shortjournal * }
+        { shortjournal }
         { journal empty$ not
-            { journal * abbreviate }
+            { journal abbreviate }
             { journaltitle empty$ not
-                { journaltitle * abbreviate }
-                'skip$
+                { journaltitle abbreviate }
+                { "" }
               if$
             }
           if$
@@ -1006,18 +1044,33 @@
       if$
     }
     { journal empty$ not
-        { journal * }
+        { journal }
         { journaltitle empty$ not
-            { journaltitle * }
-            'skip$
+            { journaltitle }
+            { shortjournal empty$ not
+                { shortjournal }
+                { "" }
+              if$
+            }
           if$
         }
       if$
     }
   if$
+}
+
+FUNCTION {check.arxiv.preprint}
+{ #1 #5 substring$ "l" change.case$ "arxiv" =
+    { #1 }
+    { #0 }
+  if$
+}
+
+FUNCTION {format.journal}
+{ get.journal.title
   duplicate$ empty$ not
     { italic.journal entry.lang lang.en = and
-        'italicize
+        'emphasize
         'skip$
       if$
     }
@@ -1092,7 +1145,7 @@
             { edition change.sentence.case 's :=
               s "Revised" = s "Revised edition" = or
                 { "Rev. ed." }
-                { s " ed." *}
+                { s " ed." * }
               if$
             }
             { edition }
@@ -1282,12 +1335,17 @@
 }
 
 FUNCTION {format.date}
-{ type$ "patent" = type$ "newspaper" = or
-  date empty$ not and
-    { date }
-    { year field.or.null
-      extra.label *
+{ date empty$ not
+    { type$ "patent" = type$ "newspaper" = or
+        { date }
+        { format.year }
+      if$
     }
+    { year empty$ not
+        { format.year }
+        { "" }
+      if$
+    }
   if$
 }
 
@@ -1299,9 +1357,9 @@
 }
 
 FUNCTION {format.urldate}
-{ urldate empty$ not
-  show.urldate show.url and is.pure.electronic or and
-  url empty$ not and
+{ show.urldate show.url and entry.url empty$ not and
+  is.pure.electronic or
+  urldate empty$ not and
     { "\allowbreak[" urldate * "]" * }
     { "" }
   if$
@@ -1312,7 +1370,10 @@
   ""
     { t empty$ not }
     { t #1 #1 substring$ "-" =
-        { "-" *
+        { wave.dash.in.pages
+            { "~" * }
+            { "-" * }
+          if$
             { t #1 #1 substring$ "-" = }
             { t #2 global.max$ substring$ 't := }
           while$
@@ -1432,12 +1493,9 @@
   if$
 }
 
-FUNCTION {format.url}
-{ entry.url
-}
-
 FUNCTION {output.url}
-{ entry.url empty$ not
+{ show.url is.pure.electronic or
+  entry.url empty$ not and
     { new.block
       entry.url output
     }
@@ -1538,9 +1596,9 @@
 }
 
 FUNCTION {format.eprint}
-{ eprinttype empty$ not
-    { eprinttype }
-    { archivePrefix empty$ not
+{ archivePrefix empty$ not
+    { archivePrefix }
+    { eprinttype empty$ not
         { archivePrefix }
         { "" }
       if$
@@ -1731,7 +1789,7 @@
   fin.entry
 }
 
-FUNCTION {article}
+FUNCTION {journal.article}
 { output.bibitem
   output.translation
   format.authors output
@@ -1865,7 +1923,7 @@
   new.block
   title.in.journal
     { format.series.vol.num.title "title" output.check
-      "Z" set.entry.mark
+      "A" set.entry.mark
       format.mark "" output.after
       new.block
     }
@@ -1875,13 +1933,18 @@
   new.sentence
   format.edition output
   new.block
-  output.eprint
   year.after.author not
-    { format.year "year" output.check }
+    { date empty$
+        { format.date output }
+        'skip$
+      if$
+    }
     'skip$
   if$
   format.pages bbl.pages.colon output.after
+  format.editdate "" output.after
   format.urldate "" output.after
+  output.eprint
   output.url
   new.block
   format.note output
@@ -1889,13 +1952,19 @@
 }
 
 FUNCTION {misc}
-{ journal empty$ not
-    'article
-    { booktitle empty$ not
+{ get.journal.title
+  duplicate$ empty$ not
+    { check.arxiv.preprint
+        'preprint
+        'journal.article
+      if$
+    }
+    { pop$
+      booktitle empty$ not
         'incollection
         { publisher empty$ not
             'monograph
-            { eprint empty$ not show.preprint and
+            { eprint empty$ not archivePrefix empty$ not or
                 'preprint
                 { entry.is.electronic
                     'electronic
@@ -1920,6 +1989,8 @@
   misc
 }
 
+FUNCTION {article} { misc }
+
 FUNCTION {book} { monograph }
 
 FUNCTION {booklet} { book }
@@ -1948,6 +2019,8 @@
 
 FUNCTION {conference} { inproceedings }
 
+FUNCTION {legislation} { archive }
+
 FUNCTION {map}
 { "CM" set.entry.mark
   misc
@@ -2407,9 +2480,9 @@
   'sort.key$ :=
 }
 
-STRINGS { longest.label last.label next.extra }
+STRINGS { longest.label last.label next.extra last.extra.label }
 
-INTEGERS { longest.label.width last.extra.num number.label }
+INTEGERS { longest.label.width number.label }
 
 FUNCTION {initialize.longest.label}
 { "" 'longest.label :=
@@ -2416,16 +2489,33 @@
   #0 int.to.chr$ 'last.label :=
   "" 'next.extra :=
   #0 'longest.label.width :=
-  #0 'last.extra.num :=
   #0 'number.label :=
+  "" 'last.extra.label :=
 }
 
 FUNCTION {forward.pass}
-{ last.label short.label =
-    { last.extra.num #1 + 'last.extra.num :=
-      last.extra.num int.to.chr$ 'extra.label :=
+{
+  last.label short.label =
+    { "" 'extra.label :=
+      last.extra.label text.length$ 'charptr :=
+        { last.extra.label charptr #1 substring$ "z" =
+          charptr #0 > and
+        }
+        { "a" extra.label * 'extra.label :=
+          charptr #1 - 'charptr :=
+        }
+      while$
+      charptr #0 >
+        { last.extra.label charptr #1 substring$ chr.to.int$ #1 + int.to.chr$
+          extra.label * 'extra.label :=
+          last.extra.label #1 charptr #1 - substring$
+          extra.label * 'extra.label :=
+        }
+        { "a" extra.label * 'extra.label := }
+      if$
+      extra.label 'last.extra.label :=
     }
-    { "a" chr.to.int$ 'last.extra.num :=
+    { "a" 'last.extra.label :=
       "" 'extra.label :=
       short.label 'last.label :=
     }
@@ -2434,7 +2524,8 @@
 }
 
 FUNCTION {reverse.pass}
-{ next.extra "b" =
+{
+  next.extra "b" =
     { "a" 'extra.label := }
     'skip$
   if$

Modified: branches/branch2021.final/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-bachelor.bst
===================================================================
--- branches/branch2021.final/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-bachelor.bst	2022-03-19 20:02:45 UTC (rev 62809)
+++ branches/branch2021.final/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-bachelor.bst	2022-03-19 20:02:56 UTC (rev 62810)
@@ -4,11 +4,11 @@
 %%
 %% The original source files were:
 %%
-%% gbt7714.dtx  (with options: `2015,numerical,noslsn')
+%% gbt7714.dtx  (with options: `2015,numerical')
 %% -------------------------------------------------------------------
 %% GB/T 7714—2015 BibTeX Style
-%% https://github.com/CTeX-org/gbt7714-bibtex-style
-%% Version: 2021/04/03 v2.1.1
+%% https://github.com/zepinglee/gbt7714-bibtex-style
+%% Version: 2021/12/08 v2.1.3
 %% -------------------------------------------------------------------
 %% Copyright (C) 2016—2021 by Zeping Lee <zepinglee AT gmail.com>
 %% -------------------------------------------------------------------
@@ -29,9 +29,11 @@
   terms.in.macro
   year.after.author
   period.after.author
+  italic.book.title
   sentence.case.title
   link.title
   title.in.journal
+  show.patent.country
   show.mark
   space.before.mark
   show.medium.type
@@ -43,6 +45,7 @@
   show.missing.address.publisher
   space.before.pages
   only.start.page
+  wave.dash.in.pages
   show.urldate
   show.url
   show.doi
@@ -49,6 +52,7 @@
   show.preprint
   show.note
   show.english.translation
+  end.with.period
 }
 
 FUNCTION {load.config}
@@ -61,9 +65,11 @@
   #0 'terms.in.macro :=
   #0 'year.after.author :=
   #1 'period.after.author :=
+  #0 'italic.book.title :=
   #1 'sentence.case.title :=
   #0 'link.title :=
   #1 'title.in.journal :=
+  #0 'show.patent.country :=
   #1 'show.mark :=
   #0 'space.before.mark :=
   #1 'show.medium.type :=
@@ -75,12 +81,14 @@
   #0 'show.missing.address.publisher :=
   #1 'space.before.pages :=
   #0 'only.start.page :=
+  #0 'wave.dash.in.pages :=
   #1 'show.urldate :=
   #1 'show.url :=
   #1 'show.doi :=
-  #0 'show.preprint :=
+  #1 'show.preprint :=
   #0 'show.note :=
   #0 'show.english.translation :=
+  #1 'end.with.period :=
 }
 
 ENTRY
@@ -331,7 +339,10 @@
 }
 
 FUNCTION {fin.entry}
-{ add.period$
+{ end.with.period
+    'add.period$
+    'skip$
+  if$
   write$
   show.english.translation entry.lang lang.zh = and
     { ")"
@@ -418,13 +429,21 @@
   if$
 }
 
-FUNCTION {italicize}
+FUNCTION {emphasize}
 { duplicate$ empty$
     { pop$ "" }
-    { "\textit{" swap$ * "}" * }
+    { "\emph{" swap$ * "}" * }
   if$
 }
 
+FUNCTION {format.btitle}
+{ italic.book.title
+  entry.lang lang.en = and
+    'emphasize
+    'skip$
+  if$
+}
+
 INTEGERS { byte second.byte }
 
 INTEGERS { char.lang tmp.lang }
@@ -556,7 +575,7 @@
     { bbl.et.al }
     { t get.str.lang 'name.lang :=
       name.lang lang.en =
-        { t #1 "{vv~}{ll}{~f{~}}" format.name$
+        { t #1 "{vv~}{ll}{ f{~}}" format.name$
           uppercase.name
             { "u" change.case$ }
             'skip$
@@ -746,7 +765,7 @@
 { url empty$ not
     { "\href{" url * "}{" * swap$ * "}" * }
     { doi empty$ not
-        { "\href{http://dx.doi.org/" doi * "}{" * swap$ * "}" * }
+        { "\href{https://doi.org/" doi * "}{" * swap$ * "}" * }
         'skip$
       if$
     }
@@ -762,7 +781,25 @@
         'skip$
       if$
       entry.numbered number empty$ not and
-        { bbl.colon * number * }
+        { bbl.colon *
+          type$ "patent" = show.patent.country and
+            { address empty$ not
+                { address * ", " * }
+                { location empty$ not
+                    { location * ", " * }
+                    { entry.lang lang.zh =
+                        { "中国" * ", " * }
+                        'skip$
+                      if$
+                    }
+                  if$
+                }
+              if$
+            }
+            'skip$
+          if$
+          number *
+        }
         'skip$
       if$
       link.title
@@ -907,6 +944,7 @@
     }
     { format.title.vol.num }
   if$
+  format.btitle
   link.title
     'add.link
     'skip$
@@ -938,6 +976,7 @@
     }
     { format.booktitle.vol.num }
   if$
+  format.btitle
   in.booktitle
     { duplicate$ empty$ not entry.lang lang.en = and
         { "In: " swap$ * }
@@ -979,16 +1018,15 @@
   if$
 }
 
-FUNCTION {format.journal}
-{ ""
-  short.journal
+FUNCTION {get.journal.title}
+{ short.journal
     { shortjournal empty$ not
-        { shortjournal * }
+        { shortjournal }
         { journal empty$ not
-            { journal * abbreviate }
+            { journal abbreviate }
             { journaltitle empty$ not
-                { journaltitle * abbreviate }
-                'skip$
+                { journaltitle abbreviate }
+                { "" }
               if$
             }
           if$
@@ -996,18 +1034,33 @@
       if$
     }
     { journal empty$ not
-        { journal * }
+        { journal }
         { journaltitle empty$ not
-            { journaltitle * }
-            'skip$
+            { journaltitle }
+            { shortjournal empty$ not
+                { shortjournal }
+                { "" }
+              if$
+            }
           if$
         }
       if$
     }
   if$
+}
+
+FUNCTION {check.arxiv.preprint}
+{ #1 #5 substring$ "l" change.case$ "arxiv" =
+    { #1 }
+    { #0 }
+  if$
+}
+
+FUNCTION {format.journal}
+{ get.journal.title
   duplicate$ empty$ not
     { italic.journal entry.lang lang.en = and
-        'italicize
+        'emphasize
         'skip$
       if$
     }
@@ -1082,7 +1135,7 @@
             { edition change.sentence.case 's :=
               s "Revised" = s "Revised edition" = or
                 { "Rev. ed." }
-                { s " ed." *}
+                { s " ed." * }
               if$
             }
             { edition }
@@ -1272,12 +1325,17 @@
 }
 
 FUNCTION {format.date}
-{ type$ "patent" = type$ "newspaper" = or
-  date empty$ not and
-    { date }
-    { year field.or.null
-      extra.label *
+{ date empty$ not
+    { type$ "patent" = type$ "newspaper" = or
+        { date }
+        { format.year }
+      if$
     }
+    { year empty$ not
+        { format.year }
+        { "" }
+      if$
+    }
   if$
 }
 
@@ -1289,9 +1347,9 @@
 }
 
 FUNCTION {format.urldate}
-{ urldate empty$ not
-  show.urldate show.url and is.pure.electronic or and
-  url empty$ not and
+{ show.urldate show.url and entry.url empty$ not and
+  is.pure.electronic or
+  urldate empty$ not and
     { "\allowbreak[" urldate * "]" * }
     { "" }
   if$
@@ -1302,7 +1360,10 @@
   ""
     { t empty$ not }
     { t #1 #1 substring$ "-" =
-        { "-" *
+        { wave.dash.in.pages
+            { "~" * }
+            { "-" * }
+          if$
             { t #1 #1 substring$ "-" = }
             { t #2 global.max$ substring$ 't := }
           while$
@@ -1422,12 +1483,9 @@
   if$
 }
 
-FUNCTION {format.url}
-{ entry.url
-}
-
 FUNCTION {output.url}
-{ entry.url empty$ not
+{ show.url is.pure.electronic or
+  entry.url empty$ not and
     { new.block
       entry.url output
     }
@@ -1528,9 +1586,9 @@
 }
 
 FUNCTION {format.eprint}
-{ eprinttype empty$ not
-    { eprinttype }
-    { archivePrefix empty$ not
+{ archivePrefix empty$ not
+    { archivePrefix }
+    { eprinttype empty$ not
         { archivePrefix }
         { "" }
       if$
@@ -1721,7 +1779,7 @@
   fin.entry
 }
 
-FUNCTION {article}
+FUNCTION {journal.article}
 { output.bibitem
   output.translation
   format.authors output
@@ -1855,7 +1913,7 @@
   new.block
   title.in.journal
     { format.series.vol.num.title "title" output.check
-      "Z" set.entry.mark
+      "A" set.entry.mark
       format.mark "" output.after
       new.block
     }
@@ -1865,13 +1923,18 @@
   new.sentence
   format.edition output
   new.block
-  output.eprint
   year.after.author not
-    { format.year "year" output.check }
+    { date empty$
+        { format.date output }
+        'skip$
+      if$
+    }
     'skip$
   if$
   format.pages bbl.pages.colon output.after
+  format.editdate "" output.after
   format.urldate "" output.after
+  output.eprint
   output.url
   new.block
   format.note output
@@ -1879,13 +1942,19 @@
 }
 
 FUNCTION {misc}
-{ journal empty$ not
-    'article
-    { booktitle empty$ not
+{ get.journal.title
+  duplicate$ empty$ not
+    { check.arxiv.preprint
+        'preprint
+        'journal.article
+      if$
+    }
+    { pop$
+      booktitle empty$ not
         'incollection
         { publisher empty$ not
             'monograph
-            { eprint empty$ not show.preprint and
+            { eprint empty$ not archivePrefix empty$ not or
                 'preprint
                 { entry.is.electronic
                     'electronic
@@ -1910,6 +1979,8 @@
   misc
 }
 
+FUNCTION {article} { misc }
+
 FUNCTION {book} { monograph }
 
 FUNCTION {booklet} { book }
@@ -1938,6 +2009,8 @@
 
 FUNCTION {conference} { inproceedings }
 
+FUNCTION {legislation} { archive }
+
 FUNCTION {map}
 { "CM" set.entry.mark
   misc
@@ -2248,9 +2321,9 @@
   'sort.key$ :=
 }
 
-STRINGS { longest.label last.label next.extra }
+STRINGS { longest.label last.label next.extra last.extra.label }
 
-INTEGERS { longest.label.width last.extra.num number.label }
+INTEGERS { longest.label.width number.label }
 
 FUNCTION {initialize.longest.label}
 { "" 'longest.label :=
@@ -2257,35 +2330,17 @@
   #0 int.to.chr$ 'last.label :=
   "" 'next.extra :=
   #0 'longest.label.width :=
-  #0 'last.extra.num :=
   #0 'number.label :=
+  "" 'last.extra.label :=
 }
 
 FUNCTION {forward.pass}
-{ last.label short.label =
-    { last.extra.num #1 + 'last.extra.num :=
-      last.extra.num int.to.chr$ 'extra.label :=
-    }
-    { "a" chr.to.int$ 'last.extra.num :=
-      "" 'extra.label :=
-      short.label 'last.label :=
-    }
-  if$
+{
   number.label #1 + 'number.label :=
 }
 
 FUNCTION {reverse.pass}
-{ next.extra "b" =
-    { "a" 'extra.label := }
-    'skip$
-  if$
-  extra.label 'next.extra :=
-  extra.label
-  duplicate$ empty$
-    'skip$
-    { "{\natexlab{" swap$ * "}}" * }
-  if$
-  'extra.label :=
+{
   label extra.label * 'label :=
 }
 

Modified: branches/branch2021.final/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-numeric.bst
===================================================================
--- branches/branch2021.final/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-numeric.bst	2022-03-19 20:02:45 UTC (rev 62809)
+++ branches/branch2021.final/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-numeric.bst	2022-03-19 20:02:56 UTC (rev 62810)
@@ -7,8 +7,8 @@
 %% gbt7714.dtx  (with options: `2015,thu,numerical')
 %% -------------------------------------------------------------------
 %% GB/T 7714—2015 BibTeX Style
-%% https://github.com/CTeX-org/gbt7714-bibtex-style
-%% Version: 2021/04/03 v2.1.1
+%% https://github.com/zepinglee/gbt7714-bibtex-style
+%% Version: 2021/12/08 v2.1.3
 %% -------------------------------------------------------------------
 %% Copyright (C) 2016—2021 by Zeping Lee <zepinglee AT gmail.com>
 %% -------------------------------------------------------------------
@@ -29,9 +29,11 @@
   terms.in.macro
   year.after.author
   period.after.author
+  italic.book.title
   sentence.case.title
   link.title
   title.in.journal
+  show.patent.country
   show.mark
   space.before.mark
   show.medium.type
@@ -43,6 +45,7 @@
   show.missing.address.publisher
   space.before.pages
   only.start.page
+  wave.dash.in.pages
   show.urldate
   show.url
   show.doi
@@ -49,6 +52,7 @@
   show.preprint
   show.note
   show.english.translation
+  end.with.period
 }
 
 FUNCTION {load.config}
@@ -61,9 +65,11 @@
   #0 'terms.in.macro :=
   #0 'year.after.author :=
   #1 'period.after.author :=
+  #0 'italic.book.title :=
   #1 'sentence.case.title :=
   #0 'link.title :=
   #1 'title.in.journal :=
+  #1 'show.patent.country :=
   #1 'show.mark :=
   #0 'space.before.mark :=
   #1 'show.medium.type :=
@@ -75,12 +81,14 @@
   #0 'show.missing.address.publisher :=
   #1 'space.before.pages :=
   #0 'only.start.page :=
+  #0 'wave.dash.in.pages :=
   #1 'show.urldate :=
   #1 'show.url :=
   #1 'show.doi :=
-  #0 'show.preprint :=
+  #1 'show.preprint :=
   #0 'show.note :=
   #0 'show.english.translation :=
+  #1 'end.with.period :=
 }
 
 ENTRY
@@ -331,7 +339,10 @@
 }
 
 FUNCTION {fin.entry}
-{ add.period$
+{ end.with.period
+    'add.period$
+    'skip$
+  if$
   write$
   show.english.translation entry.lang lang.zh = and
     { ")"
@@ -418,13 +429,21 @@
   if$
 }
 
-FUNCTION {italicize}
+FUNCTION {emphasize}
 { duplicate$ empty$
     { pop$ "" }
-    { "\textit{" swap$ * "}" * }
+    { "\emph{" swap$ * "}" * }
   if$
 }
 
+FUNCTION {format.btitle}
+{ italic.book.title
+  entry.lang lang.en = and
+    'emphasize
+    'skip$
+  if$
+}
+
 INTEGERS { byte second.byte }
 
 INTEGERS { char.lang tmp.lang }
@@ -556,7 +575,7 @@
     { bbl.et.al }
     { t get.str.lang 'name.lang :=
       name.lang lang.en =
-        { t #1 "{vv~}{ll}{~f{~}}" format.name$
+        { t #1 "{vv~}{ll}{ f{~}}" format.name$
           uppercase.name
             { "u" change.case$ }
             'skip$
@@ -746,7 +765,7 @@
 { url empty$ not
     { "\href{" url * "}{" * swap$ * "}" * }
     { doi empty$ not
-        { "\href{http://dx.doi.org/" doi * "}{" * swap$ * "}" * }
+        { "\href{https://doi.org/" doi * "}{" * swap$ * "}" * }
         'skip$
       if$
     }
@@ -762,7 +781,25 @@
         'skip$
       if$
       entry.numbered number empty$ not and
-        { bbl.colon * number * }
+        { bbl.colon *
+          type$ "patent" = show.patent.country and
+            { address empty$ not
+                { address * ", " * }
+                { location empty$ not
+                    { location * ", " * }
+                    { entry.lang lang.zh =
+                        { "中国" * ", " * }
+                        'skip$
+                      if$
+                    }
+                  if$
+                }
+              if$
+            }
+            'skip$
+          if$
+          number *
+        }
         'skip$
       if$
       link.title
@@ -907,6 +944,7 @@
     }
     { format.title.vol.num }
   if$
+  format.btitle
   link.title
     'add.link
     'skip$
@@ -938,6 +976,7 @@
     }
     { format.booktitle.vol.num }
   if$
+  format.btitle
   in.booktitle
     { duplicate$ empty$ not entry.lang lang.en = and
         { "In: " swap$ * }
@@ -979,16 +1018,15 @@
   if$
 }
 
-FUNCTION {format.journal}
-{ ""
-  short.journal
+FUNCTION {get.journal.title}
+{ short.journal
     { shortjournal empty$ not
-        { shortjournal * }
+        { shortjournal }
         { journal empty$ not
-            { journal * abbreviate }
+            { journal abbreviate }
             { journaltitle empty$ not
-                { journaltitle * abbreviate }
-                'skip$
+                { journaltitle abbreviate }
+                { "" }
               if$
             }
           if$
@@ -996,18 +1034,33 @@
       if$
     }
     { journal empty$ not
-        { journal * }
+        { journal }
         { journaltitle empty$ not
-            { journaltitle * }
-            'skip$
+            { journaltitle }
+            { shortjournal empty$ not
+                { shortjournal }
+                { "" }
+              if$
+            }
           if$
         }
       if$
     }
   if$
+}
+
+FUNCTION {check.arxiv.preprint}
+{ #1 #5 substring$ "l" change.case$ "arxiv" =
+    { #1 }
+    { #0 }
+  if$
+}
+
+FUNCTION {format.journal}
+{ get.journal.title
   duplicate$ empty$ not
     { italic.journal entry.lang lang.en = and
-        'italicize
+        'emphasize
         'skip$
       if$
     }
@@ -1082,7 +1135,7 @@
             { edition change.sentence.case 's :=
               s "Revised" = s "Revised edition" = or
                 { "Rev. ed." }
-                { s " ed." *}
+                { s " ed." * }
               if$
             }
             { edition }
@@ -1272,12 +1325,17 @@
 }
 
 FUNCTION {format.date}
-{ type$ "patent" = type$ "newspaper" = or
-  date empty$ not and
-    { date }
-    { year field.or.null
-      extra.label *
+{ date empty$ not
+    { type$ "patent" = type$ "newspaper" = or
+        { date }
+        { format.year }
+      if$
     }
+    { year empty$ not
+        { format.year }
+        { "" }
+      if$
+    }
   if$
 }
 
@@ -1289,9 +1347,9 @@
 }
 
 FUNCTION {format.urldate}
-{ urldate empty$ not
-  show.urldate show.url and is.pure.electronic or and
-  url empty$ not and
+{ show.urldate show.url and entry.url empty$ not and
+  is.pure.electronic or
+  urldate empty$ not and
     { "\allowbreak[" urldate * "]" * }
     { "" }
   if$
@@ -1302,7 +1360,10 @@
   ""
     { t empty$ not }
     { t #1 #1 substring$ "-" =
-        { "-" *
+        { wave.dash.in.pages
+            { "~" * }
+            { "-" * }
+          if$
             { t #1 #1 substring$ "-" = }
             { t #2 global.max$ substring$ 't := }
           while$
@@ -1422,12 +1483,9 @@
   if$
 }
 
-FUNCTION {format.url}
-{ entry.url
-}
-
 FUNCTION {output.url}
-{ entry.url empty$ not
+{ show.url is.pure.electronic or
+  entry.url empty$ not and
     { new.block
       entry.url output
     }
@@ -1528,9 +1586,9 @@
 }
 
 FUNCTION {format.eprint}
-{ eprinttype empty$ not
-    { eprinttype }
-    { archivePrefix empty$ not
+{ archivePrefix empty$ not
+    { archivePrefix }
+    { eprinttype empty$ not
         { archivePrefix }
         { "" }
       if$
@@ -1721,7 +1779,7 @@
   fin.entry
 }
 
-FUNCTION {article}
+FUNCTION {journal.article}
 { output.bibitem
   output.translation
   format.authors output
@@ -1855,7 +1913,7 @@
   new.block
   title.in.journal
     { format.series.vol.num.title "title" output.check
-      "Z" set.entry.mark
+      "A" set.entry.mark
       format.mark "" output.after
       new.block
     }
@@ -1865,13 +1923,18 @@
   new.sentence
   format.edition output
   new.block
-  output.eprint
   year.after.author not
-    { format.year "year" output.check }
+    { date empty$
+        { format.date output }
+        'skip$
+      if$
+    }
     'skip$
   if$
   format.pages bbl.pages.colon output.after
+  format.editdate "" output.after
   format.urldate "" output.after
+  output.eprint
   output.url
   new.block
   format.note output
@@ -1879,13 +1942,19 @@
 }
 
 FUNCTION {misc}
-{ journal empty$ not
-    'article
-    { booktitle empty$ not
+{ get.journal.title
+  duplicate$ empty$ not
+    { check.arxiv.preprint
+        'preprint
+        'journal.article
+      if$
+    }
+    { pop$
+      booktitle empty$ not
         'incollection
         { publisher empty$ not
             'monograph
-            { eprint empty$ not show.preprint and
+            { eprint empty$ not archivePrefix empty$ not or
                 'preprint
                 { entry.is.electronic
                     'electronic
@@ -1910,6 +1979,8 @@
   misc
 }
 
+FUNCTION {article} { misc }
+
 FUNCTION {book} { monograph }
 
 FUNCTION {booklet} { book }
@@ -1938,6 +2009,8 @@
 
 FUNCTION {conference} { inproceedings }
 
+FUNCTION {legislation} { archive }
+
 FUNCTION {map}
 { "CM" set.entry.mark
   misc
@@ -2248,9 +2321,9 @@
   'sort.key$ :=
 }
 
-STRINGS { longest.label last.label next.extra }
+STRINGS { longest.label last.label next.extra last.extra.label }
 
-INTEGERS { longest.label.width last.extra.num number.label }
+INTEGERS { longest.label.width number.label }
 
 FUNCTION {initialize.longest.label}
 { "" 'longest.label :=
@@ -2257,35 +2330,17 @@
   #0 int.to.chr$ 'last.label :=
   "" 'next.extra :=
   #0 'longest.label.width :=
-  #0 'last.extra.num :=
   #0 'number.label :=
+  "" 'last.extra.label :=
 }
 
 FUNCTION {forward.pass}
-{ last.label short.label =
-    { last.extra.num #1 + 'last.extra.num :=
-      last.extra.num int.to.chr$ 'extra.label :=
-    }
-    { "a" chr.to.int$ 'last.extra.num :=
-      "" 'extra.label :=
-      short.label 'last.label :=
-    }
-  if$
+{
   number.label #1 + 'number.label :=
 }
 
 FUNCTION {reverse.pass}
-{ next.extra "b" =
-    { "a" 'extra.label := }
-    'skip$
-  if$
-  extra.label 'next.extra :=
-  extra.label
-  duplicate$ empty$
-    'skip$
-    { "{\natexlab{" swap$ * "}}" * }
-  if$
-  'extra.label :=
+{
   label extra.label * 'label :=
 }
 

Modified: branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/CHANGELOG.md
===================================================================
--- branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/CHANGELOG.md	2022-03-19 20:02:45 UTC (rev 62809)
+++ branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/CHANGELOG.md	2022-03-19 20:02:56 UTC (rev 62810)
@@ -6,42 +6,80 @@
 
 ## [Unreleased]
 
+## [v7.2.4] - 2022-03-19
+
+### Added
+
+- 增加警告提醒本科生将附录置于声明后([#682](https://github.com/tuna/thuthesis/issues/682))。
+- 增加警告提醒本科生将插图索引和表格索引置于正文后。
+- 本科生的 `\listoffiguresandtables` 改为分开的插图索引和表格索引。
+
+### Changed
+
+- 本科生的“答辩委员会名单”、“指导教师/小组学术评语”和“答辩委员会决议书”改为不输出内容([#688](https://github.com/tuna/thuthesis/issues/688))。
+- 研究生和博后不再默认载入 `bibunits`([#710](https://github.com/tuna/thuthesis/issues/710))。
+- 参考文献表中预印本的文献类型标识改为“A”。
+- 允许多行页眉([#735](https://github.com/tuna/thuthesis/issues/735))。
+
+### Fixed
+
+- 修复本科生“使用授权说明”中“日期”后缺失的冒号([#679](https://github.com/tuna/thuthesis/issues/679))。
+- 修复 `TikZ` 的 `external` 库与 `pdfpages` 的兼容性问题([#693](https://github.com/tuna/thuthesis/issues/693))。
+- 参考文献表中专利文献使用 `address`/`lcoation` 输出专利国别。
+- 修正一章内脚注数量超过 10 个时的报错问题,改为警告([#742](https://github.com/tuna/thuthesis/issues/742))。
+
+### Removed
+
+- 去掉了 `siunitx` 的 `inter-unit-product` 设置。
+
 ## [v7.2.3] - 2021-05-31
+
 ### Changed
-- 中文模板的公式编号改为中文括号(#297)。
 
+- 中文模板的公式编号改为中文括号([#287](https://github.com/tuna/thuthesis/issues/287))。
+
 ### Fixed
-- 修正硕士论文书脊的字号(#647)。
-- 修正本科生附录(调研和翻译)的目录在 TeX Live 2019 前无法生成的问题(#659)。
-- 修正本科生主要符号表的标题(#661)。
 
+- 修正硕士论文书脊的字号([#647](https://github.com/tuna/thuthesis/issues/647))。
+- 修正本科生附录(调研和翻译)的目录在 TeX Live 2019 前无法生成的问题([#659](https://github.com/tuna/thuthesis/issues/659))。
+- 修正本科生主要符号表的标题([#661](https://github.com/tuna/thuthesis/issues/661))。
+
 ## [v7.2.2] - 2021-04-03
+
 ### Changed
-- 修改授权说明的内容和格式,同 2020 年 12 月版 Word 模板一致(#625)。
-- 参考文献的页码前与冒号之间加上空格,同步 2021 年 3 月版《指南》的格式修改(#629)。
+
+- 修改授权说明的内容和格式,同 2020 年 12 月版 Word 模板一致([#625](https://github.com/tuna/thuthesis/issues/625))。
+- 参考文献的页码前与冒号之间加上空格,同步 2021 年 3 月版《指南》的格式修改([#629](https://github.com/tuna/thuthesis/issues/629))。
 - 著者-出版年制参考文献表的著者姓名与年份之间改为逗号。
 
 ### Fixed
-- 修正图表等浮动体与文字之间的距离(#614、#617)。
-- 修正表格、算法等浮动体的行距(#619)。
-- 修正了上标式引用后与中文之间多余的空格(#624)。
-- 修正了参考文献的姓名或年份中含有中括号时的引用错误(#630)。
 
+- 修正图表等浮动体与文字之间的距离([#614](https://github.com/tuna/thuthesis/issues/614)、[#617](https://github.com/tuna/thuthesis/issues/617))。
+- 修正表格、算法等浮动体的行距([#619](https://github.com/tuna/thuthesis/issues/619))。
+- 修正了上标式引用后与中文之间多余的空格([#624](https://github.com/tuna/thuthesis/issues/624))。
+- 修正了参考文献的姓名或年份中含有中括号时的引用错误([#630](https://github.com/tuna/thuthesis/issues/630))。
+
 ## [v7.2.1] - 2021-03-21
+
 ### Added
+
 - 在文档中添加更多关于数学公式样式的说明。
 
 ### Changed
+
 - 允许控制研究生的声明页是否添加页眉页脚。
 
 ### Fixed
-- 调整文字与图表等浮动体之间的距离(#614)。
+
+- 调整文字与图表等浮动体之间的距离([#614](https://github.com/tuna/thuthesis/issues/614))。
 - 修复一些字体选择相关的问题。
 
 ## [v7.2.0] - 2021-03-12
+
 ### Added
+
 - 新增英文版写作指南要求的格式。
-- 新增选题报告的格式(#579)。
+- 新增选题报告的格式([#579](https://github.com/tuna/thuthesis/issues/579))。
 - 新增 `figure-number-sepatator` 等选项设置图表编号的连接符。
 - 新增数学符号字体风格选项 `math-style`。
 - 新增选项控制数学字体风格的细节:`uppercase-greek`、`less-than-or-equal`、`integral`、`integral-limits`、`partial` 和 `math-ellipsis`。
@@ -48,19 +86,23 @@
 - 新增数学字体试验性选项 `math-font = newtx`。
 
 ### Changed
-- 研究生的声明页默认加上页眉和页码,不受 `page-style` 的控制(#574)。
-- 取消图表标题的悬挂缩进(#589)。
+
+- 研究生的声明页默认加上页眉和页码,不受 `page-style` 的控制([#574](https://github.com/tuna/thuthesis/issues/574))。
+- 取消图表标题的悬挂缩进([#589](https://github.com/tuna/thuthesis/issues/589))。
 - 英文封面的联合导师改为“Co-supervisor”。
 - 联合导师的 key 改为 `co-supervisor`,同英文版模板一致。
 
 ### Fixed
-- 修正 `longtable` 宏包的配置(#584)。
-- 修正本科生的“目录”、“声明”和“致谢”等标题中的空白(#591)。
+
+- 修正 `longtable` 宏包的配置([#584](https://github.com/tuna/thuthesis/issues/584))。
+- 修正本科生的“目录”、“声明”和“致谢”等标题中的空白([#591](https://github.com/tuna/thuthesis/issues/591))。
 - 修正参考文献的格式,取消页码与前面冒号之间的空格。
 - 修正中文封面的字距。
 
 ## [v7.1.0] - 2020-10-14
+
 ### Changed
+
 - 更新摘要的标题格式(研究生 2020-09-18 版)。
 - 更新目录的格式(研究生 2020-09-18 版)。
 - 图表浮动体的位置参数默认为 `h`。
@@ -67,6 +109,7 @@
 - 更新示例文档。
 
 ### Fixed
+
 - 修正 “keywords” 的拼写。
 - 修正授权使用说明的内容。
 - 修正授伪粗字体的粗度。
@@ -78,17 +121,21 @@
 - 修正脚注的行距和缩进距离。
 
 ## [v7.0.0] - 2020-09-09
+
 ### Changed
+
 - 更新 2020 年版目录、插图和附表清单的格式。
 - 更新 2020 年版使用授权说明的内容。
 - 更新 2020 年版参考文献表的格式。
 
 ### Added
+
 - 新增 2020 年版“答辩委员会名单”页。
 - 新增 biblatex 支持。
 - 新增本科生外文系格式的支持。
 
 ### Fixed
+
 - 修正本科生密级的字体。
 - 修正表格的默认字号。
 - 修正参考文献表的行距和段前段后间距。
@@ -97,19 +144,25 @@
 - 修正封面的语言切换。
 
 ## [v6.1.3] - 2020-07-09
+
 ### Added
+
 - 新增选项 `statement-page-style = empty / plain` 同时控制声明的页眉和页脚。
 
 ### Fixed
+
 - `\record` 命令中,如果 `output` 配置为 `print`,则强制进行 `\cleardoublepage`,保证记录表独立成页。
-- 修正了在导言区设置论文主要语言无效的问题(#560)。
+- 修正了在导言区设置论文主要语言无效的问题([#560](https://github.com/tuna/thuthesis/issues/560))。
 - 修正了研究生插入扫描版声明页时的页眉。
 
 ### Deprecated
+
 - 选项 `statement-page-number` 已过时。
 
 ## [v6.1.2] - 2020-06-14
+
 ### Changed
+
 - `\statement` 和 `\copyrightpage` 命令都会在 PDF 中生成相应位置的书签。
 - `\statement` 命令编译生成声明页默认不含页码。
 - `\statement[xxx.pdf]` 插入扫描页时在页脚生成页码,以解决打印版与电子版页码不一致的情况。
@@ -116,53 +169,63 @@
 - 使用 `l3build` 编译的版本,在提交到 CTAN 时提供 TDS 结构,以解决编译时 `tsinghua-name-bachelor.pdf` 找不到的问题。
 
 ### Added
+
 - 添加 `\record` 命令用于本科生插入综合论文训练记录表,同时在 PDF 中生成对应书签。
 - 添加选项 `statement-page-number` 控制编译声明页时是否含页码。
 
 ### Fixed
+
 - 修正示例代码中关于 `\statement` 的 typo。
 
 ## [v6.1.1] - 2020-06-12
+
 ### Changed
+
 - 书脊中的西文不再需要调整高度。
 - 修改预生成的隶书版本本科生封面学校名称的文件名为 `tsinghua-name-bachelor.pdf`,不再尝试使用系统字体生成。
 - 将论文示例的文件名更改为 `thuthesis-example.tex / pdf`,以符合 CTAN 的要求。
 
 ### Added
-- 添加选项 `include-spine`,允许在正文中插入书脊页(#551)。
+
+- 添加选项 `include-spine`,允许在正文中插入书脊页([#551](https://github.com/tuna/thuthesis/issues/551))。
 - 添加选项 `spine-title`、`spine-author` 控制书脊的内容。
 - 添加选项 `spine-font` 控制书脊的字号。
-- 添加选项 `output` 选择输出格式为打印版或用于提交的电子版(#553)。
+- 添加选项 `output` 选择输出格式为打印版或用于提交的电子版([#553](https://github.com/tuna/thuthesis/issues/553))。
 
 ### Fixed
+
 - 修正书脊的格式。
 - 修复文档中 Changelog 的格式问题。
 
 ## [v6.1.0] - 2020-06-08
+
 ### Changed
+
 - 在 `translation` 环境中使用 `\bibliography` 改为生成参考文献,
-  对应的原文索引改为 `translation-index` 环境(#529)。
+  对应的原文索引改为 `translation-index` 环境([#529](https://github.com/tuna/thuthesis/issues/529))。
 - 附录的图、表不再加入索引。
 - 使用 `threeparttable` 示例表内脚注。
-- 本科生的目录章标题的西文字母和数字默认使用 Arial(#542)。
+- 本科生的目录章标题的西文字母和数字默认使用 Arial([#542](https://github.com/tuna/thuthesis/issues/542))。
 - GitHub repo 所有者更改为清华大学 TUNA 协会。
-- 接管 `ctex` 的 `fontset` 选项,允许更灵活的字体配置(#498)。
+- 接管 `ctex` 的 `fontset` 选项,允许更灵活的字体配置([#498](https://github.com/tuna/thuthesis/issues/498))。
 
 ### Fixed
-- 本科生附录的调研报告使用英文(#479)。
+
+- 本科生附录的调研报告使用英文([#479](https://github.com/tuna/thuthesis/issues/479))。
 - 修正本科生附录的 `algorithm` 和 `listings` 环境的编号格式。
-- 研究生的“使用授权说明”增加一空白页(#504)。
-- 修正 publication 列表行距问题(#507)。
+- 研究生的“使用授权说明”增加一空白页([#504](https://github.com/tuna/thuthesis/issues/504))。
+- 修正 publication 列表行距问题([#507](https://github.com/tuna/thuthesis/issues/507))。
 - 修正研究生目录的行距。
-- 调整本科生封面有辅导教师、联合指导教师时的格式(#522, #537)。
-- 修正本科生封面日期的字体(#532)。
+- 调整本科生封面有辅导教师、联合指导教师时的格式([#522](https://github.com/tuna/thuthesis/issues/522), [#537](https://github.com/tuna/thuthesis/issues/537))。
+- 修正本科生封面日期的字体([#532](https://github.com/tuna/thuthesis/issues/532))。
 - 设置三线表横线的默认粗度。
 - 修正文档中关于本科生学科(专业)名称的说明。
 - 允许用户使用文档类选项 `openright`。
-- 修正本科生的“单设一页”格式(#545)。
+- 修正本科生的“单设一页”格式([#545](https://github.com/tuna/thuthesis/issues/545))。
 - 研究生的正文(main matter)起始于奇数页。
 
 ### Added
+
 - 允许使用边注。
 - 新增 `amsthm` 支持。
 - 支持单个关键词设置样式。
@@ -170,37 +233,47 @@
 - 添加选项 `toc-chapter-style` 控制本科生的目录章标题的西文字体。
 
 ## [v6.0.2] - 2020-02-23
+
 ### Fixed
-- 修复图表公式目录内容缺失(#467)。
+
+- 修复图表公式目录内容缺失([#467](https://github.com/tuna/thuthesis/issues/467))。
 - 修复 Github Actions 执行 l3build check 问题。
 - 文本模式使用 `\checkmark`。
 
 ### Added
+
 - 补充 PDF 元信息:文档标题,语言。
 
 ### Changed
+
 - 补充“著者-出版年”引用命令使用方法。
 - 使用 `xeCJKfntef` 替换 `CJKfntef`。
 
 ## [v6.0.1] - 2020-02-03
+
 ### Changed
+
 - 更新文档。
 - 更新 bib 测试用例。
 
 ### Fixed
-- 修复 PDF 目录层级问题(#457)。
-- 修复 PDF 中章节连接问题(#453)。
 
+- 修复 PDF 目录层级问题([#457](https://github.com/tuna/thuthesis/issues/457))。
+- 修复 PDF 中章节连接问题([#453](https://github.com/tuna/thuthesis/issues/453))。
+
 ## [v6.0.0] - 2020-01-06
+
 ### Added
+
 - 新增 `survey`(调研阅读报告)和 `translation`(书面翻译)环境用于本科生的附录,
-  其中的参考文献引用独立于论文正文(#343)。
+  其中的参考文献引用独立于论文正文([#343](https://github.com/tuna/thuthesis/issues/343))。
 - 新增论文语言选项。
 - 增加 `l3build` 测试。
 
 ### Changed
+
 - 重新设计 `\thusetup` 的接口。
-- 指导教师的姓名和职称用英文逗号分开(#424)。
+- 指导教师的姓名和职称用英文逗号分开([#424](https://github.com/tuna/thuthesis/issues/424))。
 - 重新设计封面(题名页)。
 - `\makecover` 拆分为 `\maketitle`、`\copyrightpage`。
 - 中英文摘分别用 `abstract`、`abstract*` 环境生成。
@@ -212,6 +285,7 @@
 - 整理 Makefile,便于日常使用。
 
 ## Removed
+
 - 移除 `secret` 选项。
 - 移除 `translationbib` 环境。
 - 移除 `tocarialchapter`、`tocarialchapterentry` 和 `tocarialchapterpage` 选项。
@@ -218,20 +292,27 @@
 - 只保留 xelatex 编译方式。
 
 ### Fixed
+
 - 修正本科生的文献引用样式。
 - 修正本科生目录章标题的字体。
 - 处理 `hyperref` 与 `unicode-math` 的兼容性问题。
 
 ## [v5.5.2] - 2019-04-21
+
 ### Changed
+
 - 使用 XITS 数学字体。
 
 ## [v5.5.1] - 2019-04-16
+
 ### Changed
+
 - `\thu at textcircled`: 修复 minipage 中 footnote 编号问题。
 
 ## [v5.5.0] - 2019-03-15
+
 ### Changed
+
 - 增加选项使用英文模板。
 - 使用 `unicode-math` 处理数学字体。
 - Windows 的中文字体开启伪粗。
@@ -242,11 +323,15 @@
 - 增加 `nomencl` 宏包的支持。
 
 ## [v5.4.5] - 2018-05-17
+
 ### Changed
+
 - `\normalsize`: 调整公式和正文间距。
 
 ## [v5.4.4] - 2018-04-22
+
 ### Changed
+
 - 删除 `arialtitle`,所有论文格式都一样。
 - 让目录中的引用不影响正文中引用序号。
 - 参考文献列表的页码使用 hyphen 取代 en dash。
@@ -254,40 +339,56 @@
 - 允许连续两个文献引用使用连接号。
 
 ## [v5.4.2] - 2017-12-18
+
 ### Changed
+
 - 删除 `\pozhehao`。
 - 使用 degree 取代 type 选项。
 
 ## [v5.4.1] - 2017-12-04
+
 ### Changed
+
 - bst 在 ctan 上不分路径,故加前缀。
 
 ## [v5.4.0] - 2017-12-3
+
 ### Changed
+
 - 基于 `natbib` 的环境调整距离兼容性更好。
 - `\bibliographystyle{<newbib>}` will cause `\bibstyle at newbib` to be called on THE NEXT LATEX RUN (via the aux file).
 
 ## [v5.3.2] - 2017-05-01
+
 ### Changed
+
 - 定理环境格式设置(环境标题和环境正文字体设置)统一放置到 .cfg 文件中。
 
 ## [v5.3.1] - 2016-03-20
+
 ### Changed
+
 - 使用 CTeX 默认中文字体配置,支持不同引擎。
 - `ctex` 默认加载 `CJKspace`。
 - 几乎没人主动安装 Arial 字体。
 
 ## [v5.3.0] - 2016-03-11
+
 ### Changed
+
 - 更新到研究生院 2016.3 指南。
 
 ## [v5.2.3] - 2016-02-13
+
 ### Changed
+
 - `\thu at def@fontsize`: 改写字体定义命令。
 - 安全注释本科公式部分。
 
 ## [v5.2.2] - 2016-02-01
+
 ### Changed
+
 - 不希望 `newtx` 修改 `\@makefnmark`。
 - 利用 `environ` 的 `\Collect at Body`。
 - 目录中标题和页码都是链接。
@@ -297,7 +398,9 @@
 - 用 `environ` 封装的 `\Collect at Body`。
 
 ## [v5.2.1] - 2016-01-14
+
 ### Changed
+
 - 使用 `newtx` 替换 `txfonts`。
 - 使用 `newtx` 字体。
 - `denotation`: 利用 `enumitem` 改造环境定义,更直观。
@@ -304,19 +407,25 @@
 - `acknowledgement`: 用 `acknowledgement` 替换 `ack`。
 
 ## [v5.2.0] - 2016-01-11
+
 ### Changed
+
 - `\title`: 增加 `\title` 排版翻译标题。
 - `translationbib`: 增加翻译文献环境 `translationbib`。
 - `\publicationskip`: 增加 `\publicationskip`。
 
 ## [v5.1.0] - 2015-12-27
+
 ### Changed
+
 - `\thusetup`: 通过 `\thusetup` 统一设置封面信息。
 - `\thu at first@titlepage`: 利用 `CJKfilltwosides` 优化封面排版。
 - `\thu at first@titlepage`: 修改联合指导教师显示问题。
 
 ## [v5.0.0] - 2015-12-21
+
 ### Changed
+
 - 使用 `kvoptions` 简化选项 type。
 - norggedbottom 选项修改为 raggedbottom。
 - 删除 `paralist` 选项。
@@ -324,25 +433,29 @@
 - 不再将页面尺寸写入 dvi,因为已不支持 dvips, 而该方案会使得在使用 tikzexternalize 时外部 PDF 图片 BBox 不对。
 - 用 `geometry` 简化设置。
 - `\ps at thu@headings`: 利用 `fancyhdr` 设置页眉页脚。
-- 修正定理字样为黑体(#104)。
+- 修正定理字样为黑体([#104](https://github.com/tuna/thuthesis/issues/104))。
 - 本科附录图表编号用-不用.(如图A-1,表A-2)。
 - 用 `\ctexset` 来设置,替换复杂的 `\@startsection`。
-- 修正章节间距问题(#57)。
+- 修正章节间距问题([#57](https://github.com/tuna/thuthesis/issues/57))。
 - 硕士博士论文目录只出现到第 3 级标题即可。其他未明确要求。
-- `\tableofcontents`: 修正学位论文中目录里节前缩进(#103)。
-- `\makecover`: 使用 `pdfpages` 宏包支持本硕博论文授权说明扫描版(#36)。
-- `acknowledgement`: 使用 pdfpages 宏包支持本硕博论文声明扫描版(#36)。
+- `\tableofcontents`: 修正学位论文中目录里节前缩进([#103](https://github.com/tuna/thuthesis/issues/103))。
+- `\makecover`: 使用 `pdfpages` 宏包支持本硕博论文授权说明扫描版([#36](https://github.com/tuna/thuthesis/issues/36))。
+- `acknowledgement`: 使用 pdfpages 宏包支持本硕博论文声明扫描版([#36](https://github.com/tuna/thuthesis/issues/36))。
 - `\inlinecite`: 用 `\inlinecite` 替换 `\onlinecite`。为保证兼 容性,`\onlinecite` 会保留。
-- `achievements`: 博士后就不提在学期间了,不合适(#100)。
-- `achievements`: 让简历部分更符合格式指南和示例文件(#122)。
+- `achievements`: 博士后就不提在学期间了,不合适([#100](https://github.com/tuna/thuthesis/issues/100))。
+- `achievements`: 让简历部分更符合格式指南和示例文件([#122](https://github.com/tuna/thuthesis/issues/122))。
 - `\shuji`: 扩展 `\shuji[<标题>][<作者>]`。
 
 ## [v4.8.1] - 2014-12-09
+
 ### Changed
+
 - 按照 CTAN 的要求整理一下文件。
 
 ## [v4.8] - 2014-11-25
+
 ### Changed
+
 - no need to load `indentfirst` directly since we use `ctex`.
 - 内部调用 `ctex` 宏包,自动检测编译引擎。
 - dvips method is deprecated. We ask their users to load it manually.
@@ -355,7 +468,9 @@
 - 在 CJK 模式下用 `CJKspace` 保留中英文间空格。
 
 ## [v4.7] - 2012-06-12
+
 ### Changed
+
 - 去掉 `hypernat` 依赖,`hyperref` 和 `natbib` 可以很好配合了。
 - 修改本科生页脚间距与样例基本一致。
 - `\ps at thu@headings`: 本科页码用小五号字。
@@ -368,7 +483,9 @@
 - `\thu at makeabstract`: Bachelor sample uses Keywords w/o space `-_-`
 
 ## [v4.6] - 2011-10-22
+
 ### Changed
+
 - 增加博士后文档部分。
 - 使用手册更新。
 - 增加 postdoctor 选项。
@@ -379,7 +496,9 @@
 - `resume`: 支持可选参数,自己定义简历章节标题。
 
 ## [v4.5.2] - 2010-09-19
+
 ### Changed
+
 - 研究生页面边距由 3.2cm 改为 3cm。
 - 本科论文日期具体到日。
 - `\makecover`: 本科封面和授权说明之间不要空白页。
@@ -387,12 +506,16 @@
 - `acknowledgement`: 研究生论文的致谢和声明终于分开了。
 
 ## [v4.5.1] - 2009-01-06
+
 ### Changed
+
 - 太好了,不用处理 `longtable` 的 `\caption` 了。
 - `\listoftables*`: 更优雅的插图/表格索引,避免跟 `caption` 包冲 突。`\thu at listof` 相应修改。
 
 ## [v4.5] - 2009-01-04
+
 ### Changed
+
 - 加入 XeTeX 支持,需要 `xeCJK`。
 - 彻底转向 UTF-8,并支持 XeLaTeX。
 - 增加 xetex, pdftex 选项。
@@ -399,16 +522,22 @@
 - `\shuji`: 简化代码,同时支持 XeLaTeX。
 
 ## [v4.4.4] - 2008-06-12
+
 ### Changed
+
 - 修复了一个从 v4.3 升级到 v4.4 过程中的丢失公式索引的 bug,原修改代码保留备忘。
 
 ## [v4.4.3] - 2008-06-09
+
 ### Changed
+
 - `\thu at first@titlepage`: 修改本科生论文封面格式以符合新样例。
 - `\thu at first@titlepage`: 修改本科生论文封面日期格式以符合新样例。
 
 ## [v4.4.2] - 2008-06-07
+
 ### Changed
+
 - 本科生格式终于也开始用空格作为关键字分隔符了。
 - 本科生签名之间距离改为 `\hskip1em`。
 - `\thu at authorization@mk`: 修改本科生的授权部分,按照 2008 年的新样例。
@@ -416,7 +545,9 @@
 - `\thu at makeabstract`: Bachelor English abstract format requires indent and no hang-indent.
 
 ## [v4.4] - 2008-06-18
+
 ### Changed
+
 - 修复网址断字。
 - `\backmatter`: 本科正文后的页码延续前面的阿拉伯数字,不再用罗马数 字。
 - `\backmatter`: 本科取消了所有页眉。
@@ -430,23 +561,31 @@
 - `\tableofcontents`: 本科章目录项一直用黑体(Arial)。
 
 ## [v4.3] - 2008-03-11
+
 ### Changed
+
 - 子图引用时加括号。
 
 ## [v4.2] - 2008-03-07
+
 ### Changed
+
 - `\eqref` 加括号。
 - 调整证明环境的编号和结尾的方块。
 - `\thu at doctor@engcover`: 博士英文封面补充联合导师。
 
 ## [v4.0] - 2007-11-08
+
 ### Changed
+
 - `\tableofcontents`: 本科研究生目录字号行距都不同。
 - **内部**密级前面终究还是不要五角星了。
 - `\thu at authorization@mk`: 研究生的授权部分调整了一下,不知道老师为什么总爱修改 那些无关紧要的格式,郁闷。感谢 PMHT at newsmth 的认真比对。
 
 ## [v3.1] - 2007-10-09
+
 ### Changed
+
 - 本科的目录又不要 arial 字体了。
 - replace `mathptmx` with `txfonts`.
 - 英文摘要标题要搞特殊化。
@@ -460,7 +599,9 @@
 - `\thu at makeabstract`: 研究生关键词不再沉底。
 
 ## [v3.0] - 2007-05-13
+
 ### Changed
+
 - 不用专门为本科论文生成“**提交**”版本了。
 - 没有了综合论文训练页面,很多本科论文专用命令就消失了。
 - 删除 submit 选项。
@@ -473,7 +614,9 @@
 - `acknowledgement`: 本科论文声明部分图片扫描取消。
 
 ## [v2.6.4] - 2006-10-23
+
 ### Changed
+
 - 增加 `neverdecrease` 选项。
 - `\thu at makeabstract`: **Keywords** but not **Key words**.
 - `\listoftables*`: 增加 `\listoffigures*`,`\listoftables*`。
@@ -481,12 +624,16 @@
 - 调整参考文献标签宽度,使得条目增多时仍能对齐。
 
 ## [v2.6.3] - 2006-07-01
+
 ### Changed
+
 - `\thu at makeabstract`: 为本科正确设置目录及以后的页码。
 - `acknowledgement`: 重画双虚线,自适应页面宽度。
 
 ## [v2.6.2] - 2006-06-20
+
 ### Changed
+
 - 改正 groupmembers 的拼写错误。
 - 去掉 `paralist` 的 `newitem` 和 `newenum` 选项,因为默认是打开的。
 - `\thu at def@fontsize`: 引入此命令重新定义字号。
@@ -500,11 +647,15 @@
 - `\equcaption`: 此命令配合 `amsmath` 命令基本可以满足所有 公式需要。
 
 ## [v2.6.1] - 2006-06-16
+
 ### Changed
+
 - 取消 `thubib.bst` 中 inbook 类 volume 后的页 码。
 
 ## [v2.6] - 2006-06-09
+
 ### Changed
+
 - 增加 dvipdfm 选项。
 - 增加 `longtable`。
 - 去除 hyperref 选项,等待全局传递。
@@ -513,7 +664,9 @@
 - `\thu at first@titlepage`: 本科生题目加长,最多 24 个字。
 
 ## [v2.5.3] - 2006-06-08
+
 ### Changed
+
 - submit 选项的一个笔误。
 - `\backmatter`: 第一章永远右开。
 - 不管 caption 出现在什么位置,`\aboveskip` 总是出现在标题和浮动体之间的距离。
@@ -522,7 +675,9 @@
 - `\equcaption`: 取消 `\equcaption` 的参数
 
 ## [v2.5.2] - 2006-06-01
+
 ### Changed
+
 - 更改默认列表距离。
 - 上一个版本忘了把研究生的公式编号排除。
 - `\thu at chapter*`: 定义自己的 `\thu at chapter*`。
@@ -534,7 +689,9 @@
 - `resume`: 研究生的个人介绍要右开。
 
 ## [v2.5.1] - 2006-05-28
+
 ### Changed
+
 - 如果选项设置了 dvips,但是用 PDFLaTeX 编译,报错。
 - 根据教务处的新要求调整附录部分。
 - 参考文献中杂志文章如果没有卷号,那么页码直接跟在 年份后面,并用句点分割。在 `thubib.bst` 中增加 output.year 函数。
@@ -560,7 +717,9 @@
 - `resume`: 教务处和研究生院非要搞的不一样!
 
 ## [v2.5] - 2006-05-20
+
 ### Changed
+
 - 对本科论文进行大幅度的重写,因为教务处修改了格式要求。
 - 重新整理代码,使其布局更易读。
 - 增加本科论文的提交选项 submit。
@@ -583,16 +742,22 @@
 - 不用 `\CJKcaption`,在导言区直接引入配置文件。
 
 ## [v2.4.2] - 2006-04-18
+
 ### Changed
+
 - 去掉参考文献第二个作者后面烦人的逗号。
 
 ## [v2.4.1] - 2006-04-17
+
 ### Changed
+
 - 2.4 忘了把关键词的 tabular 改成 thu at tabular。
 - 参考文献最后一个作者前是逗号而不是 and。
 
 ## [v2.4] - 2006-04-15
+
 ### Changed
+
 - Fill more pdf info. with `\hypersetup`.
 - 自动隐藏密级为内部时后面的五角星。
 - 增加“注释(Remark)”环境。
@@ -616,7 +781,9 @@
 - 参考文献间距调小一点,label 长度增加一点,以便让超过 100 的参考文献更好地对齐。
 
 ## [v2.3] - 2006-04-09
+
 ### Changed
+
 - Fix a great bug: `\PassOptionsToClass` and `\LoadClass` rather than `\PassOptionToPackage` and `\LoadPackage`.
 - Reorganize the codes in cover, make the pagestyle more readable.
 - Add gbk2uni into the document.
@@ -629,7 +796,9 @@
 - Change the brace in the cover.
 
 ## [v2.2] - 2006-03-26
+
 ### Changed
+
 - Adjust margins. How bad it is to simulate MS WORD!.
 - Add bachelor training overview details supporting.
 - CJK support in preamble.
@@ -636,7 +805,9 @@
 - Adjust hyperref to avoid boxes around links.
 
 ## [v2.1] - 2006-03-03
+
 ### Changed
+
 - Add support to bachelor thesis.
 - Remove `fancyhdr` and `geometry`.
 - Redefine footnote marks.
@@ -651,11 +822,15 @@
 - `\makecover`: 分成几个小模块来搞,不然这个 macro 太大了,看不过来。
 
 ## [v2.0e] - 2005-12-18
+
 ### Changed
+
 - `denotation`: 主要符号表定义为一个 list,用起来方便。
 
 ## [v2.0] - 2005-12-20
+
 ### Changed
+
 - `\ps at thu@headings`: 以前的太乱了,重新整理过清晰多了。
 - `\tableofcontents`: 附录的目录项需要调整一下。以及公式编号方式等等。
 - 增加了封面密级,增加博士封面支持
@@ -664,38 +839,53 @@
 - `resume`: 最后决定将 resume 定义为环境。这样与前面的主要符号 表、致谢等对应。
 
 ## [v1.5] - 2005-12-16
+
 ### Changed
+
 - `acknowledgement`: 在那些不显示编号的章节前面先执行一次 `\cleardoublepage`,使新开章节的页码到达正确的状态。否则会因为 `\addcontentsline` 在 chapter 之前而导致目录页码错误。
 - `resume`: 增加个人简历章节的命令,去掉主文件中需要重新 定义 `\cleardoublepage` 和自己写 `\markboth`,`\addcontentsline` 的部分。
 
 ## [v1.4rc1] - 2005-12-14
+
 ### Changed
+
 - I do not know why `\thu at authorizationaddon` does not work now for v1.3, while it's fine in v1.2. Temporarily, I remove the directive :(. There might be better solution. Other changes: add `config` option to subfig to be compatible with subfigure. add `courier` package for tt font.
 - I have to put all chinese chars into cfg, otherwise they would not appear.
 
 ## [v1.4] - 2005-12-05
+
 ### Changed
+
 - Fix the problem of **chinese**, which is because both CJK and everysel redefine the `\selectfont`. So, a not so good workaround is to merge them up. Add `shuji.tex` example. Add `\pozhehao` command.
 
 ## [v1.3] - 2005-11-14
+
 ### Changed
+
 - Replace `subfigure` with `subfig`, replace `caption2` with `caption`, add details about using figure are in the example.
 
 ## [v1.2] - 2005-11-04
+
 ### Changed
+
 - Remove `fancyref`; Remove `ucite` and implement `\onlinecite`; use package `arial` or `helvet` selectively.
 
 ## [v1.1] - 2005-11-03
+
 ### Changed
+
 - Initial version, migrate from the old ``Bao--Pan'' version. Make the template a class instead of package.
 
 ## [v1.0] - 2005-07-06
+
 ### Changed
+
 - Please refer to ``Bao--Pan'' version.
 
 
 
-[Unreleased]: https://github.com/tuna/thuthesis/compare/v7.2.3...HEAD
+[Unreleased]: https://github.com/tuna/thuthesis/compare/v7.2.4...HEAD
+[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
 [v7.2.1]:     https://github.com/tuna/thuthesis/compare/v7.2.0...v7.2.1

Modified: branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/README.md
===================================================================
--- branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/README.md	2022-03-19 20:02:45 UTC (rev 62809)
+++ branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/README.md	2022-03-19 20:02:56 UTC (rev 62810)
@@ -15,10 +15,6 @@
 
 **由于模板升级频繁,在开始使用和提问前,请确保您已经认真完整地阅读了使用说明文档和示例代码。**
 
-**由于模板升级频繁,在开始使用和提问前,请确保您已经认真完整地阅读了使用说明文档和示例代码。**
-
-**由于模板升级频繁,在开始使用和提问前,请确保您已经认真完整地阅读了使用说明文档和示例代码。**
-
 ## 下载
 
 推荐下载**发布版**模板,里面包括具体使用说明以及示例文档:
@@ -37,6 +33,8 @@
   * [Overleaf](https://www.overleaf.com/latex/templates/thuthesis-tsinghua-university-thesis-latex-template/wddqnwbyhtnk):Overleaf 的模板。
 * 开发版:[GitHub](https://github.com/tuna/thuthesis)
 
+**任何在其他途径分发的 ThuThesis(包含其变体或衍生物)均不是官方版本,请谨慎使用。**
+
 ## 更新日志
 
 每个版本的详细更新日志,请见 [CHANGELOG.md](CHANGELOG.md)。使用文档中也包含了这一内容。
@@ -107,6 +105,8 @@
   * [Overleaf Template](https://www.overleaf.com/latex/templates/thuthesis-tsinghua-university-thesis-latex-template/wddqnwbyhtnk)
 * Developer versions: [GitHub](https://github.com/tuna/thuthesis)
 
+**ThuThesis (including its variants / derivatives) distributed in any other way is NOT an official version. Use at your own risk.**
+
 ## Changelog
 
 See [CHANGELOG.md](CHANGELOG.md) for detailed changes in each release. They are also included in the usage documentation.

Modified: branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/data/appendix-translation.tex
===================================================================
--- branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/data/appendix-translation.tex	2022-03-19 20:02:45 UTC (rev 62809)
+++ branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/data/appendix-translation.tex	2022-03-19 20:02:56 UTC (rev 62810)
@@ -62,6 +62,13 @@
 文献引用示例\cite{abrahams99tex}。
 
 
+\appendix
+
+\section{附录}
+
+附录的内容。
+
+
 % 书面翻译的参考文献
 \bibliographystyle{unsrtnat}
 \bibliography{ref/appendix}

Modified: branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/data/chap04.tex
===================================================================
--- branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/data/chap04.tex	2022-03-19 20:02:45 UTC (rev 62809)
+++ branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/data/chap04.tex	2022-03-19 20:02:56 UTC (rev 62810)
@@ -47,7 +47,7 @@
 \thusetup{
   cite-style = author-year,
 }
-\begin{tabular}{l@{\quad$\Rightarrow$\quad}l}
+\begin{tabular}{l@{\space$\Rightarrow$\space}l}
   \verb|\cite{zhangkun1994}|                & \cite{zhangkun1994}                \\
   \verb|\citet{zhangkun1994}|               & \citet{zhangkun1994}               \\
   \verb|\citep{zhangkun1994}|               & \citep{zhangkun1994}               \\

Modified: branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/ref/appendix.bib
===================================================================
--- branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/ref/appendix.bib	2022-03-19 20:02:45 UTC (rev 62809)
+++ branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/ref/appendix.bib	2022-03-19 20:02:56 UTC (rev 62810)
@@ -5,7 +5,7 @@
   year            = 1990,
 }
 
- at incollection{salomon1995advanced,
+ at book{salomon1995advanced,
   author          = {David Salomon},
   title           = {The advanced {\TeX}book},
   address         = {New York},

Modified: branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/ref/refs.bib
===================================================================
--- branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/ref/refs.bib	2022-03-19 20:02:45 UTC (rev 62809)
+++ branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/ref/refs.bib	2022-03-19 20:02:56 UTC (rev 62810)
@@ -41,7 +41,9 @@
 
 @patent{jiangxizhou1980,
   author     = {姜锡洲},
-  title      = {一种温热外敷药制备方案: 中国, 88105607.3},
+  title      = {一种温热外敷药制备方案},
+  address    = {中国},
+  number     = {88105607.3},
   date       = {1980-07-26},
   key        = {jiang1 xi1 zhou1},
 }

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

Modified: branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/thusetup.tex
===================================================================
--- branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/thusetup.tex	2022-03-19 20:02:45 UTC (rev 62809)
+++ branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/thusetup.tex	2022-03-19 20:02:56 UTC (rev 62810)
@@ -156,10 +156,10 @@
 % \bibliographystyle{thuthesis-bachelor}
 
 % 参考文献使用 BibLaTeX 宏包
-% \usepackage[backend=biber,style=thuthesis-numeric]{biblatex}
-% \usepackage[backend=biber,style=thuthesis-author-year]{biblatex}
-% \usepackage[backend=biber,style=apa]{biblatex}
-% \usepackage[backend=biber,style=mla-new]{biblatex}
+% \usepackage[style=thuthesis-numeric]{biblatex}
+% \usepackage[style=thuthesis-author-year]{biblatex}
+% \usepackage[style=apa]{biblatex}
+% \usepackage[style=mla-new]{biblatex}
 % 声明 BibLaTeX 的数据库
 % \addbibresource{ref/refs.bib}
 

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

Modified: branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/thuthesis-example.tex
===================================================================
--- branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/thuthesis-example.tex	2022-03-19 20:02:45 UTC (rev 62809)
+++ branches/branch2021.final/Master/texmf-dist/doc/latex/thuthesis/thuthesis-example.tex	2022-03-19 20:02:56 UTC (rev 62810)
@@ -24,6 +24,7 @@
 \maketitle
 
 % 学位论文指导小组、公开评阅人和答辩委员会名单
+% 本科生不需要
 \input{data/committee}
 
 % 使用授权的说明
@@ -39,9 +40,9 @@
 
 % 插图和附表清单
 % 本科生的插图索引和表格索引需要移至正文之后、参考文献前
-\listoffiguresandtables  % 插图和附表清单
-% \listoffigures           % 插图清单
-% \listoftables            % 附表清单
+% \listoffiguresandtables  % 插图和附表清单(仅限研究生)
+\listoffigures           % 插图清单
+\listoftables            % 附表清单
 
 % 符号对照表
 \input{data/denotation}
@@ -63,6 +64,7 @@
 % \printbibliography       % 参考文献使用 BibLaTeX 编译
 
 % 附录
+% 本科生需要将附录放到声明之后,个人简历之前
 \appendix
 % \input{data/appendix-survey}       % 本科生:外文资料的调研阅读报告
 % \input{data/appendix-translation}  % 本科生:外文资料的书面翻译
@@ -82,12 +84,15 @@
 % \statement[file=scan-statement.pdf, page-style=plain]
 
 % 个人简历、在学期间完成的相关学术成果
+% 本科生可以附个人简历,也可以不附个人简历
 \input{data/resume}
 
 % 指导教师/指导小组学术评语
+% 本科生不需要
 \input{data/comments}
 
 % 答辩委员会决议书
+% 本科生不需要
 \input{data/resolution}
 
 % 本科生的综合论文训练记录表(扫描版)

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

Modified: branches/branch2021.final/Master/texmf-dist/source/latex/thuthesis/thuthesis.dtx
===================================================================
--- branches/branch2021.final/Master/texmf-dist/source/latex/thuthesis/thuthesis.dtx	2022-03-19 20:02:45 UTC (rev 62809)
+++ branches/branch2021.final/Master/texmf-dist/source/latex/thuthesis/thuthesis.dtx	2022-03-19 20:02:56 UTC (rev 62810)
@@ -14,7 +14,7 @@
 %
 % \iffalse
 %<*driver>
-\ProvidesFile{thuthesis.dtx}[2021/05/31 7.2.3 Tsinghua University Thesis Template]
+\ProvidesFile{thuthesis.dtx}[2022/03/19 7.2.4 Tsinghua University Thesis Template]
 \documentclass{ltxdoc}
 \usepackage{dtx-style}
 
@@ -74,10 +74,10 @@
 % \item 本模板为作者根据
 %   清华大学研究生院颁发的《
 %    \href{http://yjsy.cic.tsinghua.edu.cn/docinfo/board/boarddetail.jsp?columnId=001050603&parentColumnId=0010506&itemSeq=5365}{%
-%   研究生学位论文写作指南}》(限校内网络访问)、
+%   研究生学位论文写作指南}》(2021年6月版本,限校内网络访问)、
 %   英文版《Guide to Thesis Writing for Graduate Students》、
 %   清华大学教务处颁发的《
-%   \href{https://lib.tsinghua.edu.cn/dra/news/annoucement/7963}{%
+%   \href{https://lib.tsinghua.edu.cn/info/1073/1978.htm}{%
 %   综合论文训练写作指南}》、
 %   外文系的《英语专业本科生综合论文训练》和
 %   清华大学《
@@ -260,7 +260,7 @@
 % \end{shell}
 %
 % 在调用 \XeLaTeX 时,如果设置了 \option{include-spine} 选项,
-% 则需要在文件名前加上 \texttt{-shell-scape} 的命令行选项。
+% 则需要在文件名前加上 \texttt{-shell-escape} 的命令行选项。
 %
 % 下面的命令用来生成用户手册:
 % \begin{shell}
@@ -852,10 +852,10 @@
 % 可能会造成正文和公式中的数字字体不一致,需要谨慎使用。
 %
 % 以上字体都是 OpenType 格式的字体,需要配合
-% \href{http://mirrors.ctan.org/macros/latex/contrib/unicode-math/unicode-math.pdf}{\pkg{unicode-math}}
+% \href{http://mirrors.ctan.org/macros/unicodetex/latex/unicode-math/unicode-math.pdf}{\pkg{unicode-math}}
 % 宏包使用。
 % 全部数学符号的命令参考
-% \href{http://mirrors.ctan.org/macros/latex/contrib/unicode-math/unimath-symbols.pdf}{\pkg{unimath-symbols}}。
+% \href{http://mirrors.ctan.org/macros/unicodetex/latex/unicode-math/unimath-symbols.pdf}{\pkg{unimath-symbols}}。
 % 注意,\pkg{unicode-math} 宏包与 \pkg{amsfonts}、\pkg{amssymb}、\pkg{bm}、
 % \pkg{mathrsfs}、\pkg{upgreek} 等宏包\emph{不}兼容。
 % 模板作了处理,用户可以直接使用这些宏包的命令,如 \cs{bm}、\cs{mathscr}、
@@ -1009,7 +1009,7 @@
 % \end{latex}
 % 另一种方式是使用 biblatex,应在导言区设置
 % \begin{latex}
-%   \usepackage[backend=biber,style=thuthesis-author-year]{biblatex}
+%   \usepackage[style=thuthesis-author-year]{biblatex}
 %   \addbibresource{ref/refs.bib}
 % \end{latex}
 % 这里的样式由 \href{https://ctan.org/pkg/biblatex-gb7714-2015}{biblatex-gb7714-2015} 进行了少量改编,
@@ -1082,12 +1082,12 @@
 % 研究生不存在空白页的问题,在编译生成声明时默认加页眉页脚(\option{plain}),
 % 而插入扫描版时不再重复(\option{empty})。
 %
-% 声明的页眉页脚也可以通过 \option{pagestyle} 参数手动控制,
+% 声明的页眉页脚也可以通过 \option{page-style} 参数手动控制,
 % 比如编译生成时固定不加页眉页脚:
 % \begin{latex}
-%   \statement[page-style=plain]
+%   \statement[page-style=empty]
 % \end{latex}
-% 插入扫面版声明补上页眉页脚:
+% 插入扫描版声明补上页眉页脚:
 % \begin{latex}
 %   \statement[file=scan-statement.pdf, page-style=plain]
 % \end{latex}
@@ -1250,7 +1250,7 @@
 %    \begin{macrocode}
 %<cls>\NeedsTeXFormat{LaTeX2e}[2017/04/15]
 %<cls>\ProvidesClass{thuthesis}
-%<cls>[2021/05/31 7.2.3 Tsinghua University Thesis Template]
+%<cls>[2022/03/19 7.2.4 Tsinghua University Thesis Template]
 %    \end{macrocode}
 %
 % 报错
@@ -1306,7 +1306,7 @@
 %<*cls>
 \hyphenation{Thu-Thesis}
 \def\thuthesis{ThuThesis}
-\def\version{7.2.3}
+\def\version{7.2.4}
 \RequirePackage{kvdefinekeys}
 \RequirePackage{kvsetkeys}
 \RequirePackage{kvoptions}
@@ -1731,9 +1731,20 @@
 %    \end{macrocode}
 %
 % \pkg{pdfpages} 宏包便于我们插入扫描后的授权说明和声明页 PDF 文档。
+%
+% 由于 \pkg{pdfpages} 跟 \pkg{TikZ} 的 \pkg{external} 库冲突,
+% 需要在导言区的结尾进行处理,见
+% \href{https://github.com/tuna/thuthesis/issues/693}{\#693}。
 %    \begin{macrocode}
 \RequirePackage{pdfpages}
 \includepdfset{fitpaper=true}
+\AtEndPreamble{
+  \ifx\tikzifexternalizing\@undefined\else
+    \tikzifexternalizing{
+      \renewcommand*\includepdf[2][]{}
+    }{}
+  \fi
+}
 %    \end{macrocode}
 %
 % 更好的列表环境。
@@ -1784,9 +1795,11 @@
   }
 }
 \AtEndOfPackageFile*{natbib}{
-  \@ifpackageloaded{apacite}{}{
-    \RequirePackage{bibunits}
-  }
+  \ifthu at degree@bachelor
+    \@ifpackageloaded{apacite}{}{
+      \RequirePackage{bibunits}
+    }
+  \fi
 }
 %    \end{macrocode}
 %
@@ -1829,16 +1842,6 @@
 \thu at package@conflict{newtxmath}{upgreek}
 %    \end{macrocode}
 %
-% \pkg{mathtools} 需要在 \pkg{unicode-math} 前载入,
-% 参考 \url{https://tex.stackexchange.com/q/521394/82731}。
-%    \begin{macrocode}
-\AtBeginOfPackageFile*{mathtools}{
-  \@ifpackageloaded{unicode-math}{
-    \thu at error{The "mathtools" package should be loaded before setting "math-font"}
-  }{}
-}%
-%    \end{macrocode}
-%
 % \pkg{amsthm} 需要在 \pkg{newtx} 前载入,参考 \pkg{newtx} 的文档。
 %    \begin{macrocode}
 \AtBeginOfPackageFile*{amsthm}{
@@ -1858,8 +1861,13 @@
 % 本科生《写作指南》:
 % 页边距:上:3.8 厘米,下:3.2 厘米,左右:3 厘米,装订线:左 0.2 厘米。
 % 本科生 Word 模板:
-% 页眉距边界:1.5 厘米,页脚距边界:1.75 厘米。
+% 无页眉,页脚距边界:1.75 厘米。
 %
+% \pkg{fancyhdr} 的页眉是沿底部对齐的,所以只需设置 \cs{headsep},
+% \cs{headheight} 可以适当增加高度允许多行页眉。
+% 研究生:\cs{headsep} = $\SI{3}{cm} - \SI{2.2}{cm} - \SI{10.5}{bp} \times 1.3
+% \approx \SI{0.3}{cm}$。
+%
 %    \begin{macrocode}
 \geometry{
   paper          = a4paper,  % 210 * 297mm
@@ -1873,8 +1881,8 @@
       bottom     = 3.2cm,
       left       = 3.2cm,
       right      = 3cm,
-      headheight = 0.5cm,
-      headsep    = 1.8cm,
+      headheight = 1.9cm,
+      headsep    = 1.9cm,
       footskip   = 1.45cm,
     }%
     \ifthu at output@print
@@ -1890,7 +1898,7 @@
   \else
     \geometry{
       margin     = 3cm,
-      headheight = 0.5cm,
+      headheight = 2.7cm,
       headsep    = 0.3cm,
       footskip   = 0.8cm,
     }%
@@ -2837,10 +2845,12 @@
   \thu at set@stix at names
   \setmathfont{\thu at font@name at stix@math}[
     Extension    = .otf,
+    Scale        = MatchLowercase,
     StylisticSet = \thu at xits@integral at stylistic@set,
   ]%
   \setmathfont{\thu at font@name at stix@math}[
     Extension    = .otf,
+    Scale        = MatchLowercase,
     StylisticSet = 1,
     range        = {scr,bfscr},
   ]%
@@ -3079,6 +3089,7 @@
   \@mainmattertrue
   \pagenumbering{arabic}%
 }
+\newif\ifthu at backmatter
 \renewcommand\backmatter{%
   \if at openright
     \cleardoublepage
@@ -3086,6 +3097,7 @@
     \clearpage
   \fi
   \@mainmatterfalse
+  \thu at backmattertrue
   \thusetup{toc-depth = 0}%
 }
 %    \end{macrocode}
@@ -3256,7 +3268,7 @@
 %    \begin{macrocode}
 \newcommand\thu at circled[1]{%
   \ifnum#1 >10\relax
-    \thu at error{%
+    \thu at warning{%
       Too many footnotes in this page.
       Keep footnote less than 10%
     }%
@@ -3366,8 +3378,8 @@
 %
 % 图表浮动体的默认位置设为 |h|。
 %    \begin{macrocode}
-\def\fps at figure{h}
-\def\fps at table{h}
+\def\fps at figure{htbp}
+\def\fps at table{htbp}
 %    \end{macrocode}
 %
 % 设置浮动对象和文字之间的距离
@@ -4826,41 +4838,43 @@
 % 学位论文指导小组、公开评阅人和答辩委员会名单。
 %    \begin{macrocode}
 \def\thu at committee@name{学位论文指导小组、公开评阅人和答辩委员会名单}
-\newenvironment{committee}[1][]{%
-  \cleardoublepage
-  \let\thu at committee@file\@empty
-  \kv at define@key{thu at committee}{name}{\let\thu at committee@name\kv at value}%
-  \kv at define@key{thu at committee}{file}{\let\thu at committee@file\kv at value}%
-  \kv at set@family at handler{thu at committee}{%
-    \ifx\kv at value\relax
-      \let\thu at committee@file\kv at key
+\NewEnviron{committee}[1][]{%
+  \ifthu at degree@graduate
+    \cleardoublepage
+    \let\thu at committee@file\@empty
+    \kv at define@key{thu at committee}{name}{\let\thu at committee@name\kv at value}%
+    \kv at define@key{thu at committee}{file}{\let\thu at committee@file\kv at value}%
+    \kv at set@family at handler{thu at committee}{%
+      \ifx\kv at value\relax
+        \let\thu at committee@file\kv at key
+      \else
+        \kv at handled@false
+      \fi
+    }%
+    \kvsetkeys{thu at committee}{#1}%
+    \ifx\thu at committee@file\@empty
+      \begingroup
+        \ifthu at main@language at english
+          \ctexset{chapter/format=\centering\sffamily\fontsize{16bp}{20bp}\selectfont}
+        \fi
+        \thu at chapter*[]{\thu at committee@name}%
+      \endgroup
     \else
-      \kv at handled@false
+      \thu at pdfbookmark{0}{\thu at committee@name}%
+      \includepdf{\thu at committee@file}%
     \fi
-  }%
-  \kvsetkeys{thu at committee}{#1}%
-  \ifx\thu at committee@file\@empty
-    \begingroup
-      \ifthu at main@language at english
-        \ctexset{chapter/format=\centering\sffamily\fontsize{16bp}{20bp}\selectfont}
-      \fi
-      \thu at chapter*[]{\thu at committee@name}%
-    \endgroup
-  \else
-    \thu at pdfbookmark{0}{\thu at committee@name}%
-    \includepdf{\thu at committee@file}%
+    \thispagestyle{empty}%
+    \ctexset{
+      section = {
+        format    += {\centering},
+        numbering = false,
+        afterindent = false,
+      },
+    }%
+    \thusetup{language=chinese}
+    \BODY\clearpage
+    \thu at reset@main at language
   \fi
-  \thispagestyle{empty}%
-  \ctexset{
-    section = {
-      format    += {\centering},
-      numbering = false,
-      afterindent = false,
-    },
-  }%
-  \thusetup{language=chinese}
-}{%
-  \thu at reset@main at language
 }
 %    \end{macrocode}
 % \end{environment}
@@ -4966,7 +4980,7 @@
     \centering
     签\quad 名:\thu at underline[6em]{}%
     导师签名:\thu at underline[6em]{}%
-    日\quad 期\thu at underline[6em]{}%
+    日\quad 期:\thu at underline[6em]{}%
     \par
   \endgroup
 }
@@ -5175,8 +5189,10 @@
     Use "page-style" option of \protect\statement command instead%
   }%
 }
+\newif\ifthu at statement@exists
 \newcommand\statement[1][]{%
   \@mainmatterfalse
+  \thu at statement@existstrue
   \ifthu at degree@bachelor
     \cleardoublepage
     \def\thu at statement@name{声\hspace{2em}明}%
@@ -5269,6 +5285,11 @@
 % 插图清单。
 %    \begin{macrocode}
 \renewcommand\listoffigures{%
+  \ifthu at degree@bachelor
+    \ifthu at backmatter\else
+      \thu at warning{The list of figures should be placed in back matter}%
+    \fi
+  \fi
   \thu at listof{figure}%
 }
 \titlecontents{figure}
@@ -5284,6 +5305,11 @@
 % 附表清单。
 %    \begin{macrocode}
 \renewcommand\listoftables{%
+  \ifthu at degree@bachelor
+    \ifthu at backmatter\else
+      \thu at warning{The list of tables should be placed in back matter}%
+    \fi
+  \fi
   \thu at listof{table}%
 }
 \titlecontents{table}
@@ -5298,11 +5324,17 @@
 % 将插图和附表合在一起列出“插图和附表清单”。
 %    \begin{macrocode}
 \newcommand\listoffiguresandtables{%
-  \thu at chapter*{\thu at list@figure at table@name}%
-  \@starttoc{lof}%
-  \par
-  \null\par
-  \@starttoc{lot}%
+  \ifthu at degree@bachelor
+    \thu at warning{The list of figures and tables are for graduates only}%
+    \listoffigures
+    \listoftables
+  \else
+    \thu at chapter*{\thu at list@figure at table@name}%
+    \@starttoc{lof}%
+    \par
+    \null\par
+    \@starttoc{lot}%
+  \fi
 }
 %    \end{macrocode}
 % \end{macro}
@@ -5794,6 +5826,11 @@
 %    \begin{macrocode}
 \g at addto@macro\appendix{%
   \@mainmattertrue
+  \ifthu at degree@bachelor
+    \ifthu at statement@exists\else
+      \thu at warning{The appendices should be placed after statement}%
+    \fi
+  \fi
 }
 %    \end{macrocode}
 %
@@ -5865,6 +5902,7 @@
     \thu at print@contents{survey}{l}{1}{2}{}%
     \vskip 20bp%
   }%
+  \let\appendix\thu at appendix@appendix
   \renewcommand\bibname{参考文献}%
   \let\bibsection\thu at appendix@bibsection
   \renewcommand\@bibunitname{\jobname-survey}%
@@ -5907,6 +5945,7 @@
     \thu at print@contents{translation}{l}{1}{2}{}%
     \vskip 20bp%
   }%
+  \let\appendix\thu at appendix@appendix
   \def\bibsection{%
     \begingroup
       \ctexset{section/numbering=false}%
@@ -5969,6 +6008,16 @@
 }
 %    \end{macrocode}
 %
+% 书面翻译的附录。
+%    \begin{macrocode}
+\newcommand\thu at appendix@appendix{%
+  \def\theHsection{\Hy at AlphNoErr{section}}%
+  \setcounter{section}{0}%
+  \setcounter{subsection}{0}%
+  \renewcommand\thesection{\thechapter.\@Alph\c at section}%
+}%
+%    \end{macrocode}
+%
 % 调研阅读报告的参考文献(或书面翻译对应的外文资料的原文索引)标题用宋体小四号字,段前 20pt,段后 6pt,行距 20pt。
 %    \begin{macrocode}
 \newcommand\thu at appendix@bibsection{%
@@ -6061,19 +6110,21 @@
 % \subsection{指导教师/小组学术评语}
 % \begin{environment}{comments}
 %    \begin{macrocode}
-\newenvironment{comments}[1][]{%
-  \@mainmatterfalse
-  \kv at define@key{thu at comments}{name}{\let\thu at comments@name\kv at value}%
-  \kv at set@family at handler{thu at comments}{%
-    \ifx\kv at value\relax
-      \let\thu at comments@name\kv at key
-    \else
-      \kv at handled@false
-    \fi
-  }%
-  \kvsetkeys{thu at comments}{#1}%
-  \chapter{\thu at comments@name}%
-}{%
+\NewEnviron{comments}[1][]{%
+  \ifthu at degree@graduate
+    \@mainmatterfalse
+    \kv at define@key{thu at comments}{name}{\let\thu at comments@name\kv at value}%
+    \kv at set@family at handler{thu at comments}{%
+      \ifx\kv at value\relax
+        \let\thu at comments@name\kv at key
+      \else
+        \kv at handled@false
+      \fi
+    }%
+    \kvsetkeys{thu at comments}{#1}%
+    \chapter{\thu at comments@name}%
+    \BODY\clearpage
+  \fi
 }
 %    \end{macrocode}
 % \end{environment}
@@ -6081,10 +6132,13 @@
 % \subsection{答辩委员会决议书}
 % \begin{environment}{resolution}
 %    \begin{macrocode}
-\newenvironment{resolution}{%
-  \@mainmatterfalse
-  \chapter{\thu at resolution@name}%
-}{}
+\NewEnviron{resolution}{%
+  \ifthu at degree@graduate
+    \@mainmatterfalse
+    \chapter{\thu at resolution@name}%
+    \BODY\clearpage
+  \fi
+}
 %    \end{macrocode}
 % \end{environment}
 %
@@ -6150,6 +6204,7 @@
   \pdfstringdefDisableCommands{
     \let\\\relax
     \let\quad\relax
+    \let\qquad\relax
     \let\hspace\@gobble
   }%
 %    \end{macrocode}
@@ -6195,6 +6250,20 @@
 }
 %    \end{macrocode}
 %
+% \subsubsection{\pkg{mathtools} 宏包}
+%
+% \pkg{mathtools} 会修改 \pkg{unicode-math} 的 \cs{underbrace} 和 \cs{overbrace},
+% 需要还原为 \cs{LaTeXunderbrace} 和 \cs{LaTeXoverbrace},
+% 参考 \url{https://tex.stackexchange.com/q/521394/82731}。
+%    \begin{macrocode}
+\AtEndOfPackageFile*{mathtools}{
+  \@ifpackageloaded{unicode-math}{
+    \let\underbrace\LaTeXunderbrace
+    \let\overbrace\LaTeXoverbrace
+  }{}
+}
+%    \end{macrocode}
+%
 % \subsubsection{\pkg{nomencl} 宏包}
 %
 %    \begin{macrocode}
@@ -6209,11 +6278,6 @@
 %
 %    \begin{macrocode}
 \AtEndOfPackageFile*{siunitx}{%
-  \sisetup{
-    group-minimum-digits = 4,
-    separate-uncertainty = true,
-    inter-unit-product   = \ensuremath{{}\cdot{}},
-  }
   \newcommand\thu at set@siunitx at language{%
     \ifthu at language@chinese
       \sisetup{
@@ -6526,7 +6590,12 @@
 \RequirePackage{enumitem}
 \RequirePackage{etoolbox}
 \RequirePackage{metalogo}
+
+% Pretending the `amssymb` has been loaded.
+% This should be removed after `markdown` v2.13.0.
+\expandafter\def\csname ver at amssymb.sty\endcsname{0000/00/00}
 \RequirePackage[tightLists=false]{markdown}
+\expandafter\let\csname ver at amssymb.sty\endcsname\relax
 
 \markdownSetup{
   renderers = {

Modified: branches/branch2021.final/Master/texmf-dist/tex/latex/thuthesis/thuthesis-author-year.bbx
===================================================================
--- branches/branch2021.final/Master/texmf-dist/tex/latex/thuthesis/thuthesis-author-year.bbx	2022-03-19 20:02:45 UTC (rev 62809)
+++ branches/branch2021.final/Master/texmf-dist/tex/latex/thuthesis/thuthesis-author-year.bbx	2022-03-19 20:02:56 UTC (rev 62810)
@@ -6,7 +6,6 @@
 \ExecuteBibliographyOptions{
   gbnamefmt = lowercase,
   gbpub     = false,
-  gbalign   = left,
 }
 
 \defbibenvironment{bibliography}
@@ -18,3 +17,33 @@
       \setlength{\parsep}{\bibparsep}}}
   {\endlist}
   {\item}
+
+%
+%   重设专利title的输出,将文献类型标识符输出出去
+%
+\renewbibmacro*{patenttitle}{%原输出来自biblatex.def文件
+  \ifboolexpr{%
+    test{\iffieldundef{title}}%
+    and%
+    test{\iffieldundef{subtitle}}%
+  }%
+    {}%
+    {\printtext[title]{\bibtitlefont%
+       \printfield[titlecase]{title}%
+       \ifboolexpr{test {\iffieldundef{subtitle}}}
+       {}{\setunit{\subtitlepunct}%
+       \printfield[titlecase]{subtitle}}%
+       \iffieldundef{titleaddon}{}
+        {\setunit{\subtitlepunct}\printfield{titleaddon}}%
+       % \setunit{\subtitlepunct}\printfield{number}%写专利号
+       \setunit{\subtitlepunct}%
+       \iflistundef{location}{}
+        {\printlist{location}\setunit{\addcomma\space}}% 专利国别
+       \printfield{number}%写专利号
+       \iftoggle{bbx:gbtype}{\printfield[gbtypeflag]{usera}}{}%
+     %\iffieldundef{booktitle}{\newunit}{}%当title是析出时,不要标点
+     %\newunit
+     }%
+}%
+\clearlist{location}\clearlist{address}%
+}

Modified: branches/branch2021.final/Master/texmf-dist/tex/latex/thuthesis/thuthesis-numeric.bbx
===================================================================
--- branches/branch2021.final/Master/texmf-dist/tex/latex/thuthesis/thuthesis-numeric.bbx	2022-03-19 20:02:45 UTC (rev 62809)
+++ branches/branch2021.final/Master/texmf-dist/tex/latex/thuthesis/thuthesis-numeric.bbx	2022-03-19 20:02:56 UTC (rev 62810)
@@ -25,3 +25,33 @@
       \renewcommand*{\makelabel}[1]{\hss##1}}
   {\endlist}
   {\item}
+
+%
+%   重设专利title的输出,将文献类型标识符输出出去
+%
+\renewbibmacro*{patenttitle}{%原输出来自biblatex.def文件
+  \ifboolexpr{%
+    test{\iffieldundef{title}}%
+    and%
+    test{\iffieldundef{subtitle}}%
+  }%
+    {}%
+    {\printtext[title]{\bibtitlefont%
+       \printfield[titlecase]{title}%
+       \ifboolexpr{test {\iffieldundef{subtitle}}}
+       {}{\setunit{\subtitlepunct}%
+       \printfield[titlecase]{subtitle}}%
+       \iffieldundef{titleaddon}{}
+        {\setunit{\subtitlepunct}\printfield{titleaddon}}%
+       % \setunit{\subtitlepunct}\printfield{number}%写专利号
+       \setunit{\subtitlepunct}%
+       \iflistundef{location}{}
+        {\printlist{location}\setunit{\addcomma\space}}% 专利国别
+       \printfield{number}%写专利号
+       \iftoggle{bbx:gbtype}{\printfield[gbtypeflag]{usera}}{}%
+     %\iffieldundef{booktitle}{\newunit}{}%当title是析出时,不要标点
+     %\newunit
+     }%
+}%
+\clearlist{location}\clearlist{address}%
+}

Modified: branches/branch2021.final/Master/texmf-dist/tex/latex/thuthesis/thuthesis.cls
===================================================================
--- branches/branch2021.final/Master/texmf-dist/tex/latex/thuthesis/thuthesis.cls	2022-03-19 20:02:45 UTC (rev 62809)
+++ branches/branch2021.final/Master/texmf-dist/tex/latex/thuthesis/thuthesis.cls	2022-03-19 20:02:56 UTC (rev 62810)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright (C) 2005-2021 by Tsinghua University TUNA Association <tuna at tsinghua.edu.cn>
+%% Copyright (C) 2005-2022 by Tsinghua University TUNA Association <tuna at tsinghua.edu.cn>
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c
@@ -23,7 +23,7 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[2017/04/15]
 \ProvidesClass{thuthesis}
-[2021/05/31 7.2.3 Tsinghua University Thesis Template]
+[2022/03/19 7.2.4 Tsinghua University Thesis Template]
 \newcommand\thu at error[1]{%
   \ClassError{thuthesis}{#1}{}%
 }
@@ -56,7 +56,7 @@
 }
 \hyphenation{Thu-Thesis}
 \def\thuthesis{ThuThesis}
-\def\version{7.2.3}
+\def\version{7.2.4}
 \RequirePackage{kvdefinekeys}
 \RequirePackage{kvsetkeys}
 \RequirePackage{kvoptions}
@@ -324,6 +324,13 @@
 \RequirePackage[labelformat=simple]{subcaption}
 \RequirePackage{pdfpages}
 \includepdfset{fitpaper=true}
+\AtEndPreamble{
+  \ifx\tikzifexternalizing\@undefined\else
+    \tikzifexternalizing{
+      \renewcommand*\includepdf[2][]{}
+    }{}
+  \fi
+}
 \RequirePackage[shortlabels]{enumitem}
 \RequirePackage{environ}
 \ifthu at raggedbottom
@@ -345,9 +352,11 @@
   }
 }
 \AtEndOfPackageFile*{natbib}{
-  \@ifpackageloaded{apacite}{}{
-    \RequirePackage{bibunits}
-  }
+  \ifthu at degree@bachelor
+    \@ifpackageloaded{apacite}{}{
+      \RequirePackage{bibunits}
+    }
+  \fi
 }
 \newcommand\thu at package@conflict[2]{%
   \AtEndOfPackageFile*{#1}{%
@@ -384,11 +393,6 @@
 \thu at package@conflict{newtxmath}{amssymb}
 \thu at package@conflict{newtxmath}{unicode-math}
 \thu at package@conflict{newtxmath}{upgreek}
-\AtBeginOfPackageFile*{mathtools}{
-  \@ifpackageloaded{unicode-math}{
-    \thu at error{The "mathtools" package should be loaded before setting "math-font"}
-  }{}
-}%
 \AtBeginOfPackageFile*{amsthm}{
   \@ifpackageloaded{newtxmath}{
     \thu at error{The "amsthm" package should be loaded before setting "newtxmath"}
@@ -406,8 +410,8 @@
       bottom     = 3.2cm,
       left       = 3.2cm,
       right      = 3cm,
-      headheight = 0.5cm,
-      headsep    = 1.8cm,
+      headheight = 1.9cm,
+      headsep    = 1.9cm,
       footskip   = 1.45cm,
     }%
     \ifthu at output@print
@@ -423,7 +427,7 @@
   \else
     \geometry{
       margin     = 3cm,
-      headheight = 0.5cm,
+      headheight = 2.7cm,
       headsep    = 0.3cm,
       footskip   = 0.8cm,
     }%
@@ -1162,10 +1166,12 @@
   \thu at set@stix at names
   \setmathfont{\thu at font@name at stix@math}[
     Extension    = .otf,
+    Scale        = MatchLowercase,
     StylisticSet = \thu at xits@integral at stylistic@set,
   ]%
   \setmathfont{\thu at font@name at stix@math}[
     Extension    = .otf,
+    Scale        = MatchLowercase,
     StylisticSet = 1,
     range        = {scr,bfscr},
   ]%
@@ -1362,6 +1368,7 @@
   \@mainmattertrue
   \pagenumbering{arabic}%
 }
+\newif\ifthu at backmatter
 \renewcommand\backmatter{%
   \if at openright
     \cleardoublepage
@@ -1369,6 +1376,7 @@
     \clearpage
   \fi
   \@mainmatterfalse
+  \thu at backmattertrue
   \thusetup{toc-depth = 0}%
 }
 \pagestyle{fancy}
@@ -1467,7 +1475,7 @@
 \setlist{nosep}
 \newcommand\thu at circled[1]{%
   \ifnum#1 >10\relax
-    \thu at error{%
+    \thu at warning{%
       Too many footnotes in this page.
       Keep footnote less than 10%
     }%
@@ -1540,8 +1548,8 @@
     }%
   }%
 }
-\def\fps at figure{h}
-\def\fps at table{h}
+\def\fps at figure{htbp}
+\def\fps at table{htbp}
 \setlength{\floatsep}{12\p@ \@plus 2\p@ \@minus 2\p@}
 \setlength{\textfloatsep}{12\p@ \@plus 2\p@ \@minus 2\p@}
 \setlength{\intextsep}{12\p@ \@plus 2\p@ \@minus 2\p@}
@@ -2674,41 +2682,43 @@
   \end{center}%
 }
 \def\thu at committee@name{学位论文指导小组、公开评阅人和答辩委员会名单}
-\newenvironment{committee}[1][]{%
-  \cleardoublepage
-  \let\thu at committee@file\@empty
-  \kv at define@key{thu at committee}{name}{\let\thu at committee@name\kv at value}%
-  \kv at define@key{thu at committee}{file}{\let\thu at committee@file\kv at value}%
-  \kv at set@family at handler{thu at committee}{%
-    \ifx\kv at value\relax
-      \let\thu at committee@file\kv at key
+\NewEnviron{committee}[1][]{%
+  \ifthu at degree@graduate
+    \cleardoublepage
+    \let\thu at committee@file\@empty
+    \kv at define@key{thu at committee}{name}{\let\thu at committee@name\kv at value}%
+    \kv at define@key{thu at committee}{file}{\let\thu at committee@file\kv at value}%
+    \kv at set@family at handler{thu at committee}{%
+      \ifx\kv at value\relax
+        \let\thu at committee@file\kv at key
+      \else
+        \kv at handled@false
+      \fi
+    }%
+    \kvsetkeys{thu at committee}{#1}%
+    \ifx\thu at committee@file\@empty
+      \begingroup
+        \ifthu at main@language at english
+          \ctexset{chapter/format=\centering\sffamily\fontsize{16bp}{20bp}\selectfont}
+        \fi
+        \thu at chapter*[]{\thu at committee@name}%
+      \endgroup
     \else
-      \kv at handled@false
+      \thu at pdfbookmark{0}{\thu at committee@name}%
+      \includepdf{\thu at committee@file}%
     \fi
-  }%
-  \kvsetkeys{thu at committee}{#1}%
-  \ifx\thu at committee@file\@empty
-    \begingroup
-      \ifthu at main@language at english
-        \ctexset{chapter/format=\centering\sffamily\fontsize{16bp}{20bp}\selectfont}
-      \fi
-      \thu at chapter*[]{\thu at committee@name}%
-    \endgroup
-  \else
-    \thu at pdfbookmark{0}{\thu at committee@name}%
-    \includepdf{\thu at committee@file}%
+    \thispagestyle{empty}%
+    \ctexset{
+      section = {
+        format    += {\centering},
+        numbering = false,
+        afterindent = false,
+      },
+    }%
+    \thusetup{language=chinese}
+    \BODY\clearpage
+    \thu at reset@main at language
   \fi
-  \thispagestyle{empty}%
-  \ctexset{
-    section = {
-      format    += {\centering},
-      numbering = false,
-      afterindent = false,
-    },
-  }%
-  \thusetup{language=chinese}
-}{%
-  \thu at reset@main at language
 }
 \newcommand\copyrightpage[1][]{%
   \cleardoublepage
@@ -2803,7 +2813,7 @@
     \centering
     签\quad 名:\thu at underline[6em]{}%
     导师签名:\thu at underline[6em]{}%
-    日\quad 期\thu at underline[6em]{}%
+    日\quad 期:\thu at underline[6em]{}%
     \par
   \endgroup
 }
@@ -2954,8 +2964,10 @@
     Use "page-style" option of \protect\statement command instead%
   }%
 }
+\newif\ifthu at statement@exists
 \newcommand\statement[1][]{%
   \@mainmatterfalse
+  \thu at statement@existstrue
   \ifthu at degree@bachelor
     \cleardoublepage
     \def\thu at statement@name{声\hspace{2em}明}%
@@ -3031,6 +3043,11 @@
     {\thu at chapter*{\csname list#1name\endcsname}\@starttoc{\csname ext@#1\endcsname}}%
 }
 \renewcommand\listoffigures{%
+  \ifthu at degree@bachelor
+    \ifthu at backmatter\else
+      \thu at warning{The list of figures should be placed in back matter}%
+    \fi
+  \fi
   \thu at listof{figure}%
 }
 \titlecontents{figure}
@@ -3038,6 +3055,11 @@
   {\contentspush{\figurename~\thecontentslabel\quad}}{}
   {\nobreak\thu at leaders\nobreak\hfil\thecontentspage}
 \renewcommand\listoftables{%
+  \ifthu at degree@bachelor
+    \ifthu at backmatter\else
+      \thu at warning{The list of tables should be placed in back matter}%
+    \fi
+  \fi
   \thu at listof{table}%
 }
 \titlecontents{table}
@@ -3045,11 +3067,17 @@
   {\contentspush{\tablename~\thecontentslabel\quad}}{}
   {\thu at leaders\thecontentspage}
 \newcommand\listoffiguresandtables{%
-  \thu at chapter*{\thu at list@figure at table@name}%
-  \@starttoc{lof}%
-  \par
-  \null\par
-  \@starttoc{lot}%
+  \ifthu at degree@bachelor
+    \thu at warning{The list of figures and tables are for graduates only}%
+    \listoffigures
+    \listoftables
+  \else
+    \thu at chapter*{\thu at list@figure at table@name}%
+    \@starttoc{lof}%
+    \par
+    \null\par
+    \@starttoc{lot}%
+  \fi
 }
 \def\ext at equation{loe}
 \def\equcaption#1{%
@@ -3405,6 +3433,11 @@
 }
 \g at addto@macro\appendix{%
   \@mainmattertrue
+  \ifthu at degree@bachelor
+    \ifthu at statement@exists\else
+      \thu at warning{The appendices should be placed after statement}%
+    \fi
+  \fi
 }
 \thu at define@key{
   toc-depth = {
@@ -3447,6 +3480,7 @@
     \thu at print@contents{survey}{l}{1}{2}{}%
     \vskip 20bp%
   }%
+  \let\appendix\thu at appendix@appendix
   \renewcommand\bibname{参考文献}%
   \let\bibsection\thu at appendix@bibsection
   \renewcommand\@bibunitname{\jobname-survey}%
@@ -3483,6 +3517,7 @@
     \thu at print@contents{translation}{l}{1}{2}{}%
     \vskip 20bp%
   }%
+  \let\appendix\thu at appendix@appendix
   \def\bibsection{%
     \begingroup
       \ctexset{section/numbering=false}%
@@ -3529,6 +3564,12 @@
     {\contentspush{\thecontentslabel\quad}}{}
     {\thu at leaders\thecontentspage}%
 }
+\newcommand\thu at appendix@appendix{%
+  \def\theHsection{\Hy at AlphNoErr{section}}%
+  \setcounter{section}{0}%
+  \setcounter{subsection}{0}%
+  \renewcommand\thesection{\thechapter.\@Alph\c at section}%
+}%
 \newcommand\thu at appendix@bibsection{%
   \par
   \vskip 20bp%
@@ -3592,24 +3633,29 @@
 \newcommand\publicationskip{%
   \thu at error{The "\protect\publicationskip" is obsolete. Do not use it}%
 }
-\newenvironment{comments}[1][]{%
-  \@mainmatterfalse
-  \kv at define@key{thu at comments}{name}{\let\thu at comments@name\kv at value}%
-  \kv at set@family at handler{thu at comments}{%
-    \ifx\kv at value\relax
-      \let\thu at comments@name\kv at key
-    \else
-      \kv at handled@false
-    \fi
-  }%
-  \kvsetkeys{thu at comments}{#1}%
-  \chapter{\thu at comments@name}%
-}{%
+\NewEnviron{comments}[1][]{%
+  \ifthu at degree@graduate
+    \@mainmatterfalse
+    \kv at define@key{thu at comments}{name}{\let\thu at comments@name\kv at value}%
+    \kv at set@family at handler{thu at comments}{%
+      \ifx\kv at value\relax
+        \let\thu at comments@name\kv at key
+      \else
+        \kv at handled@false
+      \fi
+    }%
+    \kvsetkeys{thu at comments}{#1}%
+    \chapter{\thu at comments@name}%
+    \BODY\clearpage
+  \fi
 }
-\newenvironment{resolution}{%
-  \@mainmatterfalse
-  \chapter{\thu at resolution@name}%
-}{}
+\NewEnviron{resolution}{%
+  \ifthu at degree@graduate
+    \@mainmatterfalse
+    \chapter{\thu at resolution@name}%
+    \BODY\clearpage
+  \fi
+}
 \newcommand{\record}[1]{%
   \let\thu at record@file\@empty
   \kv at define@key{thu at record}{file}{\let\thu at record@file\kv at value}%
@@ -3655,6 +3701,7 @@
   \pdfstringdefDisableCommands{
     \let\\\relax
     \let\quad\relax
+    \let\qquad\relax
     \let\hspace\@gobble
   }%
   \@ifpackagelater{hyperref}{2019/04/27}{}{%
@@ -3689,6 +3736,12 @@
       pdfcreator={\thuthesis-v\version}}
   }%
 }
+\AtEndOfPackageFile*{mathtools}{
+  \@ifpackageloaded{unicode-math}{
+    \let\underbrace\LaTeXunderbrace
+    \let\overbrace\LaTeXoverbrace
+  }{}
+}
 \AtEndOfPackageFile*{nomencl}{
   \let\nomname\thu at denotation@name
   \def\thenomenclature{\begin{denotation}[\nom at tempdim]}
@@ -3695,11 +3748,6 @@
   \def\endthenomenclature{\end{denotation}}
 }
 \AtEndOfPackageFile*{siunitx}{%
-  \sisetup{
-    group-minimum-digits = 4,
-    separate-uncertainty = true,
-    inter-unit-product   = \ensuremath{{}\cdot{}},
-  }
   \newcommand\thu at set@siunitx at language{%
     \ifthu at language@chinese
       \sisetup{



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