texlive[55792] Master/texmf-dist: thuthesis (10jul20)

commits+karl at tug.org commits+karl at tug.org
Fri Jul 10 00:32:27 CEST 2020


Revision: 55792
          http://tug.org/svn/texlive?view=revision&revision=55792
Author:   karl
Date:     2020-07-10 00:32:27 +0200 (Fri, 10 Jul 2020)
Log Message:
-----------
thuthesis (10jul20)

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/data/appendix-survey.tex
    trunk/Master/texmf-dist/doc/latex/thuthesis/data/chap01.tex
    trunk/Master/texmf-dist/doc/latex/thuthesis/spine.pdf
    trunk/Master/texmf-dist/doc/latex/thuthesis/thusetup.tex
    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

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/latex/thuthesis/math_commands.tex

Modified: trunk/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-author-year.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-author-year.bst	2020-07-09 22:31:58 UTC (rev 55791)
+++ trunk/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-author-year.bst	2020-07-09 22:32:27 UTC (rev 55792)
@@ -1,5 +1,5 @@
 %%
-%% This is file `versions/thu/thuthesis-author-year.bst',
+%% This is file `variants/thu/thuthesis-author-year.bst',
 %% generated with the docstrip utility.
 %%
 %% The original source files were:
@@ -8,9 +8,9 @@
 %% -------------------------------------------------------------------
 %% GB/T 7714-2015 BibTeX Style
 %% https://github.com/CTeX-org/gbt7714-bibtex-style
-%% Version: 2019/03/21 v1.1.1
+%% Version: 2020/06/08 v2.0.2
 %% -------------------------------------------------------------------
-%% Copyright (C) 2016-2019 by Zeping Lee <zepinglee AT gmail.com>
+%% Copyright (C) 2016-2020 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
@@ -26,15 +26,23 @@
   period.between.author.year
   sentence.case.title
   link.title
+  title.in.journal
   show.mark
+  space.before.mark
+  show.medium.type
   slash.for.extraction
   in.booktitle
-  italic.jounal
+  abbreviate.journal
+  italic.journal
   bold.journal.volume
   show.missing.address.publisher
+  only.start.page
+  show.urldate
   show.url
   show.doi
+  show.preprint
   show.note
+  show.english.translation
   lang.zh.order
   lang.ja.order
   lang.en.order
@@ -49,15 +57,23 @@
   #1 'period.between.author.year :=
   #1 'sentence.case.title :=
   #0 'link.title :=
+  #1 'title.in.journal :=
   #1 'show.mark :=
+  #1 'space.before.mark :=
+  #1 'show.medium.type :=
   #1 'slash.for.extraction :=
   #0 'in.booktitle :=
-  #0 'italic.jounal :=
+  #0 'abbreviate.journal :=
+  #0 'italic.journal :=
   #0 'bold.journal.volume :=
   #0 'show.missing.address.publisher :=
+  #0 'only.start.page :=
+  #1 'show.urldate :=
   #1 'show.url :=
   #0 'show.doi :=
+  #0 'show.preprint :=
   #0 'show.note :=
+  #0 'show.english.translation :=
   #1 'lang.zh.order :=
   #2 'lang.ja.order :=
   #3 'lang.en.order :=
@@ -67,6 +83,7 @@
 
 ENTRY
   { address
+    archivePrefix
     author
     booktitle
     date
@@ -73,6 +90,7 @@
     doi
     edition
     editor
+    eprint
     howpublished
     institution
     journal
@@ -88,6 +106,7 @@
     school
     series
     title
+    translation
     translator
     url
     urldate
@@ -94,7 +113,7 @@
     volume
     year
   }
-  { entry.lang entry.is.electronic entry.numbered }
+  { entry.lang entry.is.electronic is.pure.electronic entry.numbered }
   { label extra.label sort.label short.list entry.mark entry.url }
 
 INTEGERS { output.state before.all mid.sentence after.sentence after.block after.slash }
@@ -270,6 +289,12 @@
 FUNCTION {fin.entry}
 { add.period$
   write$
+  show.english.translation entry.lang lang.zh = and
+    { ")"
+      write$
+    }
+    'skip$
+  if$
   newline$
 }
 
@@ -474,15 +499,20 @@
 { 's :=
   #1 'nameptr :=
   s num.names$ 'numnames :=
+  ""
   numnames 'namesleft :=
     { namesleft #0 > }
     { s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't :=
+      nameptr #1 >
+        { ", " * }
+        'skip$
+      if$
       nameptr max.num.authors >
-        { bbl.et.al
+        { bbl.et.al *
           #1 'namesleft :=
         }
         { t "others" =
-            { bbl.et.al }
+            { bbl.et.al * }
             { t get.str.lang 'name.lang :=
               name.lang lang.en =
                 { t #1 "{vv~}{ll}{~f{~}}" format.name$
@@ -494,14 +524,11 @@
                 }
                 { t #1 "{ll}{ff}" format.name$ }
               if$
+              *
             }
           if$
         }
       if$
-      nameptr #1 >
-        { ", " swap$ * * }
-        'skip$
-      if$
       nameptr #1 + 'nameptr :=
       namesleft #1 - 'namesleft :=
     }
@@ -861,14 +888,53 @@
   if$
 }
 
-FUNCTION {format.journal}
-{ journal
-  italic.jounal entry.lang lang.en = and
-    'italicize
+FUNCTION {remove.period}
+{ 't :=
+  "" 's :=
+    { t empty$ not }
+    { t #1 #1 substring$ 'tmp.str :=
+      tmp.str "." = not
+        { s tmp.str * 's := }
+        'skip$
+      if$
+      t #2 global.max$ substring$ 't :=
+    }
+  while$
+  s
+}
+
+FUNCTION {abbreviate}
+{ remove.period
+  't :=
+  t "l" change.case$ 's :=
+  ""
+  s "physical review letters" =
+    { "Phys Rev Lett" }
     'skip$
   if$
+  's :=
+  s empty$
+    { t }
+    { pop$ s }
+  if$
 }
 
+FUNCTION {format.journal}
+{ journal empty$ not
+    { journal
+      abbreviate.journal
+        'abbreviate
+        'skip$
+      if$
+      italic.journal entry.lang lang.en = and
+        'italicize
+        'skip$
+      if$
+    }
+    { "" }
+  if$
+}
+
 FUNCTION {set.entry.mark}
 { entry.mark empty$ not
     'pop$
@@ -885,15 +951,24 @@
   type$ "phdthesis" = type$ "mastersthesis" = or type$ "patent" = or
   medium empty$ not or entry.is.electronic or
   and
-    { medium empty$ not
-        { entry.mark "/" * medium * 'entry.mark := }
-        { entry.is.electronic
-            { entry.mark "/OL" * 'entry.mark := }
-            'skip$
+    { entry.mark
+      show.medium.type
+        { medium empty$ not
+            { "/" * medium * }
+            { entry.is.electronic
+                { "/OL" * }
+                'skip$
+              if$
+            }
           if$
         }
+        'skip$
       if$
-      " [" entry.mark * "]" *
+      'entry.mark :=
+      space.before.mark
+        { " [" entry.mark * "]" * }
+        { "\allowbreak[" entry.mark * "]" * }
+      if$
     }
     { "" }
   if$
@@ -1075,7 +1150,9 @@
 }
 
 FUNCTION {format.urldate}
-{ urldate empty$ not entry.is.electronic and
+{ urldate empty$ not
+  show.urldate show.url and is.pure.electronic or and
+  url empty$ not and
     { "\allowbreak[" urldate * "]" * }
     { "" }
   if$
@@ -1106,6 +1183,18 @@
   if$
 }
 
+FUNCTION {format.extracted.pages}
+{ pages empty$
+    { "" }
+    { pages
+      only.start.page
+        'extract.before.dash
+        'hyphenate
+      if$
+    }
+  if$
+}
+
 FUNCTION {format.journal.volume}
 { volume empty$ not
     { bold.journal.volume
@@ -1127,7 +1216,9 @@
 FUNCTION {format.journal.pages}
 { pages empty$
     { "" }
-    { ":\penalty0 " pages hyphenate * }
+    { ": "
+      format.extracted.pages *
+    }
   if$
 }
 
@@ -1199,9 +1290,15 @@
 }
 
 FUNCTION {format.url}
+{ entry.url
+}
+
+FUNCTION {output.url}
 { entry.url empty$ not
-    { new.block entry.url }
-    { "" }
+    { new.block
+      entry.url output
+    }
+    'skip$
   if$
 }
 
@@ -1235,7 +1332,7 @@
 
 FUNCTION {format.doi}
 { ""
-  doi empty$ not show.doi and
+  doi empty$ not
     { "" 's :=
       doi 't :=
       #0 'numnames :=
@@ -1263,16 +1360,21 @@
           t #2 global.max$ substring$ 't :=
         }
       while$
-      's :=
-      s empty$ not
-        { new.block s }
-        { "" }
-      if$
     }
     'skip$
   if$
 }
 
+FUNCTION {output.doi}
+{ doi empty$ not show.doi and
+  show.english.translation entry.lang lang.zh = and not and
+    { new.block
+      format.doi output
+    }
+    'skip$
+  if$
+}
+
 FUNCTION {check.electronic}
 { "" 'entry.url :=
   #0 'entry.is.electronic :=
@@ -1292,6 +1394,27 @@
   if$
 }
 
+FUNCTION {format.eprint}
+{ ""
+  archivePrefix empty$ not
+    { archivePrefix * ": " *
+      "\eprint{https://" *
+      archivePrefix "l" change.case$ * ".org/abs/" * eprint * "}{" *
+      eprint * "}" *
+    }
+    { eprint }
+  if$
+}
+
+FUNCTION {output.eprint}
+{ show.preprint eprint empty$ not and
+    { new.block
+      format.eprint output
+    }
+    'skip$
+  if$
+}
+
 FUNCTION {format.note}
 { note empty$ not show.note and
     { note }
@@ -1299,6 +1422,30 @@
   if$
 }
 
+FUNCTION {output.translation}
+{ show.english.translation entry.lang lang.zh = and
+    { translation empty$ not
+        { translation }
+        { "[English translation missing!]" }
+      if$
+      " (in Chinese)" * output
+      write$
+      format.doi duplicate$ empty$ not
+        { newline$
+          write$
+        }
+        'pop$
+      if$
+      " \\" write$
+      newline$
+      "(" write$
+      ""
+      before.all 'output.state :=
+    }
+    'skip$
+  if$
+}
+
 FUNCTION {empty.misc.check}
 { author empty$ title empty$
   year empty$
@@ -1311,6 +1458,7 @@
 
 FUNCTION {monograph}
 { output.bibitem
+  output.translation
   author empty$ not
     { format.authors }
     { editor empty$ not
@@ -1339,8 +1487,8 @@
   format.address.publisher output
   format.pages bbl.colon output.after
   format.urldate "" output.after
-  format.url output
-  format.doi output
+  output.url
+  output.doi
   new.block
   format.note output
   fin.entry
@@ -1348,6 +1496,7 @@
 
 FUNCTION {incollection}
 { output.bibitem
+  output.translation
   format.authors output
   author format.key output
   period.between.author.year
@@ -1369,10 +1518,10 @@
   format.edition output
   new.block
   format.address.publisher output
-  format.pages bbl.colon output.after
+  format.extracted.pages bbl.colon output.after
   format.urldate "" output.after
-  format.url output
-  format.doi output
+  output.url
+  output.doi
   new.block
   format.note output
   fin.entry
@@ -1380,6 +1529,7 @@
 
 FUNCTION {periodical}
 { output.bibitem
+  output.translation
   format.authors output
   author format.key output
   period.between.author.year
@@ -1396,8 +1546,8 @@
   new.block
   format.address.publisher output
   format.urldate "" output.after
-  format.url output
-  format.doi output
+  output.url
+  output.doi
   new.block
   format.note output
   fin.entry
@@ -1405,6 +1555,7 @@
 
 FUNCTION {article}
 { output.bibitem
+  output.translation
   format.authors output
   author format.key output
   period.between.author.year
@@ -1413,17 +1564,21 @@
   if$
   format.year "year" output.check
   new.block
-  format.title "title" output.check
-  "J" set.entry.mark
-  format.mark "" output.after
-  new.block
+  title.in.journal
+    { format.title "title" output.check
+      "J" set.entry.mark
+      format.mark "" output.after
+      new.block
+    }
+    'skip$
+  if$
   format.journal "journal" output.check
   format.journal.volume output
   format.journal.number "" output.after
   format.journal.pages "" output.after
   format.urldate "" output.after
-  format.url output
-  format.doi output
+  output.url
+  output.doi
   new.block
   format.note output
   fin.entry
@@ -1431,6 +1586,7 @@
 
 FUNCTION {patent}
 { output.bibitem
+  output.translation
   format.authors output
   author format.key output
   period.between.author.year
@@ -1445,8 +1601,8 @@
   new.block
   format.date "year" output.check
   format.urldate "" output.after
-  format.url output
-  format.doi output
+  output.url
+  output.doi
   new.block
   format.note output
   fin.entry
@@ -1455,7 +1611,9 @@
 FUNCTION {electronic}
 { #1 #1 check.electronic
   #1 'entry.is.electronic :=
+  #1 'is.pure.electronic :=
   output.bibitem
+  output.translation
   format.authors output
   author format.key output
   period.between.author.year
@@ -1472,13 +1630,54 @@
   format.pages bbl.colon output.after
   format.editdate "" output.after
   format.urldate "" output.after
-  format.url output
-  format.doi output
+  output.url
+  output.doi
   new.block
   format.note output
   fin.entry
 }
 
+FUNCTION {preprint}
+{ output.bibitem
+  output.translation
+  author empty$ not
+    { format.authors }
+    { editor empty$ not
+        { format.editors }
+        { "empty author and editor in " cite$ * warning$
+          bbl.anonymous
+        }
+      if$
+    }
+  if$
+  output
+  period.between.author.year
+    'new.sentence
+    'skip$
+  if$
+  format.year "year" output.check
+  new.block
+  title.in.journal
+    { format.series.vol.num.title "title" output.check
+      "Z" set.entry.mark
+      format.mark "" output.after
+      new.block
+    }
+    'skip$
+  if$
+  format.translators output
+  new.sentence
+  format.edition output
+  new.block
+  output.eprint
+  format.pages bbl.colon output.after
+  format.urldate "" output.after
+  output.url
+  new.block
+  format.note output
+  fin.entry
+}
+
 FUNCTION {misc}
 { journal empty$ not
     'article
@@ -1486,10 +1685,14 @@
         'incollection
         { publisher empty$ not
             'monograph
-            { entry.is.electronic
-                'electronic
-                { "Z" set.entry.mark
-                  monograph
+            { eprint empty$ not show.preprint and
+                'preprint
+                { entry.is.electronic
+                    'electronic
+                    { "Z" set.entry.mark
+                      monograph
+                    }
+                  if$
                 }
               if$
             }
@@ -1589,10 +1792,7 @@
   misc
 }
 
-FUNCTION {unpublished}
-{ "Z" set.entry.mark
-  misc
-}
+FUNCTION {unpublished} { misc }
 
 FUNCTION {default.type} { misc }
 
@@ -1918,6 +2118,7 @@
 { set.entry.lang
   set.entry.numbered
   show.url show.doi check.electronic
+  #0 'is.pure.electronic :=
   calc.label
   label sortify
   "    "
@@ -2007,19 +2208,25 @@
   write$ newline$
   "\providecommand{\url}[1]{#1}"
   write$ newline$
-  "\expandafter\ifx\csname urlstyle\endcsname\relax\relax\else"
+  "\expandafter\ifx\csname urlstyle\endcsname\relax\else"
   write$ newline$
   "  \urlstyle{same}\fi"
   write$ newline$
-  show.doi
-    { "\providecommand{\href}[2]{\url{#2}}"
+  "\expandafter\ifx\csname href\endcsname\relax"
+  write$ newline$
+  "  \DeclareUrlCommand\doi{\urlstyle{rm}}"
+  write$ newline$
+  "  \def\eprint#1#2{#2}"
       write$ newline$
-      "\providecommand{\doi}[1]{\href{https://doi.org/#1}{#1}}"
+  "\else"
+  write$ newline$
+  "  \def\doi#1{\href{https://doi.org/#1}{\nolinkurl{#1}}}"
+  write$ newline$
+  "  \let\eprint\href"
       write$ newline$
+  "\fi"
+      write$ newline$
     }
-    'skip$
-  if$
-}
 
 FUNCTION {end.bib}
 { newline$

Modified: trunk/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-bachelor.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-bachelor.bst	2020-07-09 22:31:58 UTC (rev 55791)
+++ trunk/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-bachelor.bst	2020-07-09 22:32:27 UTC (rev 55792)
@@ -1,5 +1,5 @@
 %%
-%% This is file `versions/thu/thuthesis-bachelor.bst',
+%% This is file `variants/thu/thuthesis-bachelor.bst',
 %% generated with the docstrip utility.
 %%
 %% The original source files were:
@@ -8,9 +8,9 @@
 %% -------------------------------------------------------------------
 %% GB/T 7714-2015 BibTeX Style
 %% https://github.com/CTeX-org/gbt7714-bibtex-style
-%% Version: 2019/03/21 v1.1.1
+%% Version: 2020/06/08 v2.0.2
 %% -------------------------------------------------------------------
-%% Copyright (C) 2016-2019 by Zeping Lee <zepinglee AT gmail.com>
+%% Copyright (C) 2016-2020 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
@@ -26,15 +26,23 @@
   period.between.author.year
   sentence.case.title
   link.title
+  title.in.journal
   show.mark
+  space.before.mark
+  show.medium.type
   slash.for.extraction
   in.booktitle
-  italic.jounal
+  abbreviate.journal
+  italic.journal
   bold.journal.volume
   show.missing.address.publisher
+  only.start.page
+  show.urldate
   show.url
   show.doi
+  show.preprint
   show.note
+  show.english.translation
 }
 
 FUNCTION {load.config}
@@ -43,19 +51,28 @@
   #3 'max.num.authors :=
   #1 'sentence.case.title :=
   #0 'link.title :=
+  #1 'title.in.journal :=
   #1 'show.mark :=
+  #1 'space.before.mark :=
+  #1 'show.medium.type :=
   #1 'slash.for.extraction :=
   #0 'in.booktitle :=
-  #0 'italic.jounal :=
+  #0 'abbreviate.journal :=
+  #0 'italic.journal :=
   #0 'bold.journal.volume :=
   #0 'show.missing.address.publisher :=
+  #0 'only.start.page :=
+  #1 'show.urldate :=
   #1 'show.url :=
   #1 'show.doi :=
+  #0 'show.preprint :=
   #0 'show.note :=
+  #0 'show.english.translation :=
 }
 
 ENTRY
   { address
+    archivePrefix
     author
     booktitle
     date
@@ -62,6 +79,7 @@
     doi
     edition
     editor
+    eprint
     howpublished
     institution
     journal
@@ -77,6 +95,7 @@
     school
     series
     title
+    translation
     translator
     url
     urldate
@@ -83,7 +102,7 @@
     volume
     year
   }
-  { entry.lang entry.is.electronic entry.numbered }
+  { entry.lang entry.is.electronic is.pure.electronic entry.numbered }
   { label extra.label sort.label short.list entry.mark entry.url }
 
 INTEGERS { output.state before.all mid.sentence after.sentence after.block after.slash }
@@ -259,6 +278,12 @@
 FUNCTION {fin.entry}
 { add.period$
   write$
+  show.english.translation entry.lang lang.zh = and
+    { ")"
+      write$
+    }
+    'skip$
+  if$
   newline$
 }
 
@@ -463,15 +488,20 @@
 { 's :=
   #1 'nameptr :=
   s num.names$ 'numnames :=
+  ""
   numnames 'namesleft :=
     { namesleft #0 > }
     { s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't :=
+      nameptr #1 >
+        { ", " * }
+        'skip$
+      if$
       nameptr max.num.authors >
-        { bbl.et.al
+        { bbl.et.al *
           #1 'namesleft :=
         }
         { t "others" =
-            { bbl.et.al }
+            { bbl.et.al * }
             { t get.str.lang 'name.lang :=
               name.lang lang.en =
                 { t #1 "{vv~}{ll}{~f{~}}" format.name$
@@ -483,14 +513,11 @@
                 }
                 { t #1 "{ll}{ff}" format.name$ }
               if$
+              *
             }
           if$
         }
       if$
-      nameptr #1 >
-        { ", " swap$ * * }
-        'skip$
-      if$
       nameptr #1 + 'nameptr :=
       namesleft #1 - 'namesleft :=
     }
@@ -850,14 +877,53 @@
   if$
 }
 
-FUNCTION {format.journal}
-{ journal
-  italic.jounal entry.lang lang.en = and
-    'italicize
+FUNCTION {remove.period}
+{ 't :=
+  "" 's :=
+    { t empty$ not }
+    { t #1 #1 substring$ 'tmp.str :=
+      tmp.str "." = not
+        { s tmp.str * 's := }
+        'skip$
+      if$
+      t #2 global.max$ substring$ 't :=
+    }
+  while$
+  s
+}
+
+FUNCTION {abbreviate}
+{ remove.period
+  't :=
+  t "l" change.case$ 's :=
+  ""
+  s "physical review letters" =
+    { "Phys Rev Lett" }
     'skip$
   if$
+  's :=
+  s empty$
+    { t }
+    { pop$ s }
+  if$
 }
 
+FUNCTION {format.journal}
+{ journal empty$ not
+    { journal
+      abbreviate.journal
+        'abbreviate
+        'skip$
+      if$
+      italic.journal entry.lang lang.en = and
+        'italicize
+        'skip$
+      if$
+    }
+    { "" }
+  if$
+}
+
 FUNCTION {set.entry.mark}
 { entry.mark empty$ not
     'pop$
@@ -871,15 +937,24 @@
 
 FUNCTION {format.mark}
 { show.mark
-    { medium empty$ not
-        { entry.mark "/" * medium * 'entry.mark := }
-        { entry.is.electronic
-            { entry.mark "/OL" * 'entry.mark := }
-            'skip$
+    { entry.mark
+      show.medium.type
+        { medium empty$ not
+            { "/" * medium * }
+            { entry.is.electronic
+                { "/OL" * }
+                'skip$
+              if$
+            }
           if$
         }
+        'skip$
       if$
-      "\allowbreak[" entry.mark * "]" *
+      'entry.mark :=
+      space.before.mark
+        { " [" entry.mark * "]" * }
+        { "\allowbreak[" entry.mark * "]" * }
+      if$
     }
     { "" }
   if$
@@ -1061,7 +1136,9 @@
 }
 
 FUNCTION {format.urldate}
-{ urldate empty$ not entry.is.electronic and
+{ urldate empty$ not
+  show.urldate show.url and is.pure.electronic or and
+  url empty$ not and
     { "\allowbreak[" urldate * "]" * }
     { "" }
   if$
@@ -1092,6 +1169,18 @@
   if$
 }
 
+FUNCTION {format.extracted.pages}
+{ pages empty$
+    { "" }
+    { pages
+      only.start.page
+        'extract.before.dash
+        'hyphenate
+      if$
+    }
+  if$
+}
+
 FUNCTION {format.journal.volume}
 { volume empty$ not
     { bold.journal.volume
@@ -1113,7 +1202,9 @@
 FUNCTION {format.journal.pages}
 { pages empty$
     { "" }
-    { ":\penalty0 " pages hyphenate * }
+    { ": "
+      format.extracted.pages *
+    }
   if$
 }
 
@@ -1185,9 +1276,15 @@
 }
 
 FUNCTION {format.url}
+{ entry.url
+}
+
+FUNCTION {output.url}
 { entry.url empty$ not
-    { new.block entry.url }
-    { "" }
+    { new.block
+      entry.url output
+    }
+    'skip$
   if$
 }
 
@@ -1221,7 +1318,7 @@
 
 FUNCTION {format.doi}
 { ""
-  doi empty$ not show.doi and
+  doi empty$ not
     { "" 's :=
       doi 't :=
       #0 'numnames :=
@@ -1249,16 +1346,21 @@
           t #2 global.max$ substring$ 't :=
         }
       while$
-      's :=
-      s empty$ not
-        { new.block s }
-        { "" }
-      if$
     }
     'skip$
   if$
 }
 
+FUNCTION {output.doi}
+{ doi empty$ not show.doi and
+  show.english.translation entry.lang lang.zh = and not and
+    { new.block
+      format.doi output
+    }
+    'skip$
+  if$
+}
+
 FUNCTION {check.electronic}
 { "" 'entry.url :=
   #0 'entry.is.electronic :=
@@ -1278,6 +1380,27 @@
   if$
 }
 
+FUNCTION {format.eprint}
+{ ""
+  archivePrefix empty$ not
+    { archivePrefix * ": " *
+      "\eprint{https://" *
+      archivePrefix "l" change.case$ * ".org/abs/" * eprint * "}{" *
+      eprint * "}" *
+    }
+    { eprint }
+  if$
+}
+
+FUNCTION {output.eprint}
+{ show.preprint eprint empty$ not and
+    { new.block
+      format.eprint output
+    }
+    'skip$
+  if$
+}
+
 FUNCTION {format.note}
 { note empty$ not show.note and
     { note }
@@ -1285,6 +1408,30 @@
   if$
 }
 
+FUNCTION {output.translation}
+{ show.english.translation entry.lang lang.zh = and
+    { translation empty$ not
+        { translation }
+        { "[English translation missing!]" }
+      if$
+      " (in Chinese)" * output
+      write$
+      format.doi duplicate$ empty$ not
+        { newline$
+          write$
+        }
+        'pop$
+      if$
+      " \\" write$
+      newline$
+      "(" write$
+      ""
+      before.all 'output.state :=
+    }
+    'skip$
+  if$
+}
+
 FUNCTION {empty.misc.check}
 { author empty$ title empty$
   year empty$
@@ -1297,6 +1444,7 @@
 
 FUNCTION {monograph}
 { output.bibitem
+  output.translation
   author empty$ not
     { format.authors }
     { editor empty$ not
@@ -1321,8 +1469,8 @@
   format.year "year" output.check
   format.pages bbl.colon output.after
   format.urldate "" output.after
-  format.url output
-  format.doi output
+  output.url
+  output.doi
   new.block
   format.note output
   fin.entry
@@ -1330,6 +1478,7 @@
 
 FUNCTION {incollection}
 { output.bibitem
+  output.translation
   format.authors output
   author format.key output
   new.block
@@ -1347,10 +1496,10 @@
   new.block
   format.address.publisher output
   format.year "year" output.check
-  format.pages bbl.colon output.after
+  format.extracted.pages bbl.colon output.after
   format.urldate "" output.after
-  format.url output
-  format.doi output
+  output.url
+  output.doi
   new.block
   format.note output
   fin.entry
@@ -1358,6 +1507,7 @@
 
 FUNCTION {periodical}
 { output.bibitem
+  output.translation
   format.authors output
   author format.key output
   new.block
@@ -1370,8 +1520,8 @@
   format.address.publisher output
   format.date "year" output.check
   format.urldate "" output.after
-  format.url output
-  format.doi output
+  output.url
+  output.doi
   new.block
   format.note output
   fin.entry
@@ -1379,13 +1529,18 @@
 
 FUNCTION {article}
 { output.bibitem
+  output.translation
   format.authors output
   author format.key output
   new.block
-  format.title "title" output.check
-  "J" set.entry.mark
-  format.mark "" output.after
-  new.block
+  title.in.journal
+    { format.title "title" output.check
+      "J" set.entry.mark
+      format.mark "" output.after
+      new.block
+    }
+    'skip$
+  if$
   format.journal "journal" output.check
   format.date "year" output.check
   format.journal.volume output
@@ -1392,8 +1547,8 @@
   format.journal.number "" output.after
   format.journal.pages "" output.after
   format.urldate "" output.after
-  format.url output
-  format.doi output
+  output.url
+  output.doi
   new.block
   format.note output
   fin.entry
@@ -1401,6 +1556,7 @@
 
 FUNCTION {patent}
 { output.bibitem
+  output.translation
   format.authors output
   author format.key output
   new.block
@@ -1410,8 +1566,8 @@
   new.block
   format.date "year" output.check
   format.urldate "" output.after
-  format.url output
-  format.doi output
+  output.url
+  output.doi
   new.block
   format.note output
   fin.entry
@@ -1420,7 +1576,9 @@
 FUNCTION {electronic}
 { #1 #1 check.electronic
   #1 'entry.is.electronic :=
+  #1 'is.pure.electronic :=
   output.bibitem
+  output.translation
   format.authors output
   author format.key output
   new.block
@@ -1436,13 +1594,50 @@
   format.pages bbl.colon output.after
   format.editdate "" output.after
   format.urldate "" output.after
-  format.url output
-  format.doi output
+  output.url
+  output.doi
   new.block
   format.note output
   fin.entry
 }
 
+FUNCTION {preprint}
+{ output.bibitem
+  output.translation
+  author empty$ not
+    { format.authors }
+    { editor empty$ not
+        { format.editors }
+        { "empty author and editor in " cite$ * warning$
+          ""
+        }
+      if$
+    }
+  if$
+  output
+  new.block
+  title.in.journal
+    { format.series.vol.num.title "title" output.check
+      "Z" set.entry.mark
+      format.mark "" output.after
+      new.block
+    }
+    'skip$
+  if$
+  format.translators output
+  new.sentence
+  format.edition output
+  new.block
+  output.eprint
+  format.year "year" output.check
+  format.pages bbl.colon output.after
+  format.urldate "" output.after
+  output.url
+  new.block
+  format.note output
+  fin.entry
+}
+
 FUNCTION {misc}
 { journal empty$ not
     'article
@@ -1450,10 +1645,14 @@
         'incollection
         { publisher empty$ not
             'monograph
-            { entry.is.electronic
-                'electronic
-                { "Z" set.entry.mark
-                  monograph
+            { eprint empty$ not show.preprint and
+                'preprint
+                { entry.is.electronic
+                    'electronic
+                    { "Z" set.entry.mark
+                      monograph
+                    }
+                  if$
                 }
               if$
             }
@@ -1542,10 +1741,7 @@
   misc
 }
 
-FUNCTION {unpublished}
-{ "Z" set.entry.mark
-  misc
-}
+FUNCTION {unpublished} { misc }
 
 FUNCTION {default.type} { misc }
 
@@ -1746,6 +1942,7 @@
 { set.entry.lang
   set.entry.numbered
   show.url show.doi check.electronic
+  #0 'is.pure.electronic :=
   calc.label
   label sortify
   "    "
@@ -1814,19 +2011,25 @@
   write$ newline$
   "\providecommand{\url}[1]{#1}"
   write$ newline$
-  "\expandafter\ifx\csname urlstyle\endcsname\relax\relax\else"
+  "\expandafter\ifx\csname urlstyle\endcsname\relax\else"
   write$ newline$
   "  \urlstyle{same}\fi"
   write$ newline$
-  show.doi
-    { "\providecommand{\href}[2]{\url{#2}}"
+  "\expandafter\ifx\csname href\endcsname\relax"
+  write$ newline$
+  "  \DeclareUrlCommand\doi{\urlstyle{rm}}"
+  write$ newline$
+  "  \def\eprint#1#2{#2}"
       write$ newline$
-      "\providecommand{\doi}[1]{\href{https://doi.org/#1}{#1}}"
+  "\else"
+  write$ newline$
+  "  \def\doi#1{\href{https://doi.org/#1}{\nolinkurl{#1}}}"
+  write$ newline$
+  "  \let\eprint\href"
       write$ newline$
+  "\fi"
+      write$ newline$
     }
-    'skip$
-  if$
-}
 
 FUNCTION {end.bib}
 { newline$

Modified: trunk/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-numeric.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-numeric.bst	2020-07-09 22:31:58 UTC (rev 55791)
+++ trunk/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-numeric.bst	2020-07-09 22:32:27 UTC (rev 55792)
@@ -1,5 +1,5 @@
 %%
-%% This is file `versions/thu/thuthesis-numeric.bst',
+%% This is file `variants/thu/thuthesis-numeric.bst',
 %% generated with the docstrip utility.
 %%
 %% The original source files were:
@@ -8,9 +8,9 @@
 %% -------------------------------------------------------------------
 %% GB/T 7714-2015 BibTeX Style
 %% https://github.com/CTeX-org/gbt7714-bibtex-style
-%% Version: 2019/03/21 v1.1.1
+%% Version: 2020/06/08 v2.0.2
 %% -------------------------------------------------------------------
-%% Copyright (C) 2016-2019 by Zeping Lee <zepinglee AT gmail.com>
+%% Copyright (C) 2016-2020 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
@@ -26,15 +26,23 @@
   period.between.author.year
   sentence.case.title
   link.title
+  title.in.journal
   show.mark
+  space.before.mark
+  show.medium.type
   slash.for.extraction
   in.booktitle
-  italic.jounal
+  abbreviate.journal
+  italic.journal
   bold.journal.volume
   show.missing.address.publisher
+  only.start.page
+  show.urldate
   show.url
   show.doi
+  show.preprint
   show.note
+  show.english.translation
 }
 
 FUNCTION {load.config}
@@ -43,19 +51,28 @@
   #3 'max.num.authors :=
   #1 'sentence.case.title :=
   #0 'link.title :=
+  #1 'title.in.journal :=
   #1 'show.mark :=
+  #1 'space.before.mark :=
+  #1 'show.medium.type :=
   #1 'slash.for.extraction :=
   #0 'in.booktitle :=
-  #0 'italic.jounal :=
+  #0 'abbreviate.journal :=
+  #0 'italic.journal :=
   #0 'bold.journal.volume :=
   #0 'show.missing.address.publisher :=
+  #0 'only.start.page :=
+  #1 'show.urldate :=
   #1 'show.url :=
   #0 'show.doi :=
+  #0 'show.preprint :=
   #0 'show.note :=
+  #0 'show.english.translation :=
 }
 
 ENTRY
   { address
+    archivePrefix
     author
     booktitle
     date
@@ -62,6 +79,7 @@
     doi
     edition
     editor
+    eprint
     howpublished
     institution
     journal
@@ -77,6 +95,7 @@
     school
     series
     title
+    translation
     translator
     url
     urldate
@@ -83,7 +102,7 @@
     volume
     year
   }
-  { entry.lang entry.is.electronic entry.numbered }
+  { entry.lang entry.is.electronic is.pure.electronic entry.numbered }
   { label extra.label sort.label short.list entry.mark entry.url }
 
 INTEGERS { output.state before.all mid.sentence after.sentence after.block after.slash }
@@ -259,6 +278,12 @@
 FUNCTION {fin.entry}
 { add.period$
   write$
+  show.english.translation entry.lang lang.zh = and
+    { ")"
+      write$
+    }
+    'skip$
+  if$
   newline$
 }
 
@@ -463,15 +488,20 @@
 { 's :=
   #1 'nameptr :=
   s num.names$ 'numnames :=
+  ""
   numnames 'namesleft :=
     { namesleft #0 > }
     { s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't :=
+      nameptr #1 >
+        { ", " * }
+        'skip$
+      if$
       nameptr max.num.authors >
-        { bbl.et.al
+        { bbl.et.al *
           #1 'namesleft :=
         }
         { t "others" =
-            { bbl.et.al }
+            { bbl.et.al * }
             { t get.str.lang 'name.lang :=
               name.lang lang.en =
                 { t #1 "{vv~}{ll}{~f{~}}" format.name$
@@ -483,14 +513,11 @@
                 }
                 { t #1 "{ll}{ff}" format.name$ }
               if$
+              *
             }
           if$
         }
       if$
-      nameptr #1 >
-        { ", " swap$ * * }
-        'skip$
-      if$
       nameptr #1 + 'nameptr :=
       namesleft #1 - 'namesleft :=
     }
@@ -850,14 +877,53 @@
   if$
 }
 
-FUNCTION {format.journal}
-{ journal
-  italic.jounal entry.lang lang.en = and
-    'italicize
+FUNCTION {remove.period}
+{ 't :=
+  "" 's :=
+    { t empty$ not }
+    { t #1 #1 substring$ 'tmp.str :=
+      tmp.str "." = not
+        { s tmp.str * 's := }
+        'skip$
+      if$
+      t #2 global.max$ substring$ 't :=
+    }
+  while$
+  s
+}
+
+FUNCTION {abbreviate}
+{ remove.period
+  't :=
+  t "l" change.case$ 's :=
+  ""
+  s "physical review letters" =
+    { "Phys Rev Lett" }
     'skip$
   if$
+  's :=
+  s empty$
+    { t }
+    { pop$ s }
+  if$
 }
 
+FUNCTION {format.journal}
+{ journal empty$ not
+    { journal
+      abbreviate.journal
+        'abbreviate
+        'skip$
+      if$
+      italic.journal entry.lang lang.en = and
+        'italicize
+        'skip$
+      if$
+    }
+    { "" }
+  if$
+}
+
 FUNCTION {set.entry.mark}
 { entry.mark empty$ not
     'pop$
@@ -874,15 +940,24 @@
   type$ "phdthesis" = type$ "mastersthesis" = or type$ "patent" = or
   medium empty$ not or entry.is.electronic or
   and
-    { medium empty$ not
-        { entry.mark "/" * medium * 'entry.mark := }
-        { entry.is.electronic
-            { entry.mark "/OL" * 'entry.mark := }
-            'skip$
+    { entry.mark
+      show.medium.type
+        { medium empty$ not
+            { "/" * medium * }
+            { entry.is.electronic
+                { "/OL" * }
+                'skip$
+              if$
+            }
           if$
         }
+        'skip$
       if$
-      " [" entry.mark * "]" *
+      'entry.mark :=
+      space.before.mark
+        { " [" entry.mark * "]" * }
+        { "\allowbreak[" entry.mark * "]" * }
+      if$
     }
     { "" }
   if$
@@ -1064,7 +1139,9 @@
 }
 
 FUNCTION {format.urldate}
-{ urldate empty$ not entry.is.electronic and
+{ urldate empty$ not
+  show.urldate show.url and is.pure.electronic or and
+  url empty$ not and
     { "\allowbreak[" urldate * "]" * }
     { "" }
   if$
@@ -1095,6 +1172,18 @@
   if$
 }
 
+FUNCTION {format.extracted.pages}
+{ pages empty$
+    { "" }
+    { pages
+      only.start.page
+        'extract.before.dash
+        'hyphenate
+      if$
+    }
+  if$
+}
+
 FUNCTION {format.journal.volume}
 { volume empty$ not
     { bold.journal.volume
@@ -1116,7 +1205,9 @@
 FUNCTION {format.journal.pages}
 { pages empty$
     { "" }
-    { ":\penalty0 " pages hyphenate * }
+    { ": "
+      format.extracted.pages *
+    }
   if$
 }
 
@@ -1188,9 +1279,15 @@
 }
 
 FUNCTION {format.url}
+{ entry.url
+}
+
+FUNCTION {output.url}
 { entry.url empty$ not
-    { new.block entry.url }
-    { "" }
+    { new.block
+      entry.url output
+    }
+    'skip$
   if$
 }
 
@@ -1224,7 +1321,7 @@
 
 FUNCTION {format.doi}
 { ""
-  doi empty$ not show.doi and
+  doi empty$ not
     { "" 's :=
       doi 't :=
       #0 'numnames :=
@@ -1252,16 +1349,21 @@
           t #2 global.max$ substring$ 't :=
         }
       while$
-      's :=
-      s empty$ not
-        { new.block s }
-        { "" }
-      if$
     }
     'skip$
   if$
 }
 
+FUNCTION {output.doi}
+{ doi empty$ not show.doi and
+  show.english.translation entry.lang lang.zh = and not and
+    { new.block
+      format.doi output
+    }
+    'skip$
+  if$
+}
+
 FUNCTION {check.electronic}
 { "" 'entry.url :=
   #0 'entry.is.electronic :=
@@ -1281,6 +1383,27 @@
   if$
 }
 
+FUNCTION {format.eprint}
+{ ""
+  archivePrefix empty$ not
+    { archivePrefix * ": " *
+      "\eprint{https://" *
+      archivePrefix "l" change.case$ * ".org/abs/" * eprint * "}{" *
+      eprint * "}" *
+    }
+    { eprint }
+  if$
+}
+
+FUNCTION {output.eprint}
+{ show.preprint eprint empty$ not and
+    { new.block
+      format.eprint output
+    }
+    'skip$
+  if$
+}
+
 FUNCTION {format.note}
 { note empty$ not show.note and
     { note }
@@ -1288,6 +1411,30 @@
   if$
 }
 
+FUNCTION {output.translation}
+{ show.english.translation entry.lang lang.zh = and
+    { translation empty$ not
+        { translation }
+        { "[English translation missing!]" }
+      if$
+      " (in Chinese)" * output
+      write$
+      format.doi duplicate$ empty$ not
+        { newline$
+          write$
+        }
+        'pop$
+      if$
+      " \\" write$
+      newline$
+      "(" write$
+      ""
+      before.all 'output.state :=
+    }
+    'skip$
+  if$
+}
+
 FUNCTION {empty.misc.check}
 { author empty$ title empty$
   year empty$
@@ -1300,6 +1447,7 @@
 
 FUNCTION {monograph}
 { output.bibitem
+  output.translation
   author empty$ not
     { format.authors }
     { editor empty$ not
@@ -1324,8 +1472,8 @@
   format.year "year" output.check
   format.pages bbl.colon output.after
   format.urldate "" output.after
-  format.url output
-  format.doi output
+  output.url
+  output.doi
   new.block
   format.note output
   fin.entry
@@ -1333,6 +1481,7 @@
 
 FUNCTION {incollection}
 { output.bibitem
+  output.translation
   format.authors output
   author format.key output
   new.block
@@ -1350,10 +1499,10 @@
   new.block
   format.address.publisher output
   format.year "year" output.check
-  format.pages bbl.colon output.after
+  format.extracted.pages bbl.colon output.after
   format.urldate "" output.after
-  format.url output
-  format.doi output
+  output.url
+  output.doi
   new.block
   format.note output
   fin.entry
@@ -1361,6 +1510,7 @@
 
 FUNCTION {periodical}
 { output.bibitem
+  output.translation
   format.authors output
   author format.key output
   new.block
@@ -1373,8 +1523,8 @@
   format.address.publisher output
   format.date "year" output.check
   format.urldate "" output.after
-  format.url output
-  format.doi output
+  output.url
+  output.doi
   new.block
   format.note output
   fin.entry
@@ -1382,13 +1532,18 @@
 
 FUNCTION {article}
 { output.bibitem
+  output.translation
   format.authors output
   author format.key output
   new.block
-  format.title "title" output.check
-  "J" set.entry.mark
-  format.mark "" output.after
-  new.block
+  title.in.journal
+    { format.title "title" output.check
+      "J" set.entry.mark
+      format.mark "" output.after
+      new.block
+    }
+    'skip$
+  if$
   format.journal "journal" output.check
   format.date "year" output.check
   format.journal.volume output
@@ -1395,8 +1550,8 @@
   format.journal.number "" output.after
   format.journal.pages "" output.after
   format.urldate "" output.after
-  format.url output
-  format.doi output
+  output.url
+  output.doi
   new.block
   format.note output
   fin.entry
@@ -1404,6 +1559,7 @@
 
 FUNCTION {patent}
 { output.bibitem
+  output.translation
   format.authors output
   author format.key output
   new.block
@@ -1413,8 +1569,8 @@
   new.block
   format.date "year" output.check
   format.urldate "" output.after
-  format.url output
-  format.doi output
+  output.url
+  output.doi
   new.block
   format.note output
   fin.entry
@@ -1423,7 +1579,9 @@
 FUNCTION {electronic}
 { #1 #1 check.electronic
   #1 'entry.is.electronic :=
+  #1 'is.pure.electronic :=
   output.bibitem
+  output.translation
   format.authors output
   author format.key output
   new.block
@@ -1439,13 +1597,50 @@
   format.pages bbl.colon output.after
   format.editdate "" output.after
   format.urldate "" output.after
-  format.url output
-  format.doi output
+  output.url
+  output.doi
   new.block
   format.note output
   fin.entry
 }
 
+FUNCTION {preprint}
+{ output.bibitem
+  output.translation
+  author empty$ not
+    { format.authors }
+    { editor empty$ not
+        { format.editors }
+        { "empty author and editor in " cite$ * warning$
+          ""
+        }
+      if$
+    }
+  if$
+  output
+  new.block
+  title.in.journal
+    { format.series.vol.num.title "title" output.check
+      "Z" set.entry.mark
+      format.mark "" output.after
+      new.block
+    }
+    'skip$
+  if$
+  format.translators output
+  new.sentence
+  format.edition output
+  new.block
+  output.eprint
+  format.year "year" output.check
+  format.pages bbl.colon output.after
+  format.urldate "" output.after
+  output.url
+  new.block
+  format.note output
+  fin.entry
+}
+
 FUNCTION {misc}
 { journal empty$ not
     'article
@@ -1453,10 +1648,14 @@
         'incollection
         { publisher empty$ not
             'monograph
-            { entry.is.electronic
-                'electronic
-                { "Z" set.entry.mark
-                  monograph
+            { eprint empty$ not show.preprint and
+                'preprint
+                { entry.is.electronic
+                    'electronic
+                    { "Z" set.entry.mark
+                      monograph
+                    }
+                  if$
                 }
               if$
             }
@@ -1556,10 +1755,7 @@
   misc
 }
 
-FUNCTION {unpublished}
-{ "Z" set.entry.mark
-  misc
-}
+FUNCTION {unpublished} { misc }
 
 FUNCTION {default.type} { misc }
 
@@ -1760,6 +1956,7 @@
 { set.entry.lang
   set.entry.numbered
   show.url show.doi check.electronic
+  #0 'is.pure.electronic :=
   calc.label
   label sortify
   "    "
@@ -1828,19 +2025,25 @@
   write$ newline$
   "\providecommand{\url}[1]{#1}"
   write$ newline$
-  "\expandafter\ifx\csname urlstyle\endcsname\relax\relax\else"
+  "\expandafter\ifx\csname urlstyle\endcsname\relax\else"
   write$ newline$
   "  \urlstyle{same}\fi"
   write$ newline$
-  show.doi
-    { "\providecommand{\href}[2]{\url{#2}}"
+  "\expandafter\ifx\csname href\endcsname\relax"
+  write$ newline$
+  "  \DeclareUrlCommand\doi{\urlstyle{rm}}"
+  write$ newline$
+  "  \def\eprint#1#2{#2}"
       write$ newline$
-      "\providecommand{\doi}[1]{\href{https://doi.org/#1}{#1}}"
+  "\else"
+  write$ newline$
+  "  \def\doi#1{\href{https://doi.org/#1}{\nolinkurl{#1}}}"
+  write$ newline$
+  "  \let\eprint\href"
       write$ newline$
+  "\fi"
+      write$ newline$
     }
-    'skip$
-  if$
-}
 
 FUNCTION {end.bib}
 { newline$

Modified: trunk/Master/texmf-dist/doc/latex/thuthesis/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/thuthesis/CHANGELOG.md	2020-07-09 22:31:58 UTC (rev 55791)
+++ trunk/Master/texmf-dist/doc/latex/thuthesis/CHANGELOG.md	2020-07-09 22:32:27 UTC (rev 55792)
@@ -6,6 +6,18 @@
 
 ## [Unreleased]
 
+## [v6.1.3] - 2020-07-09
+### Added
+- 新增选项 `statement-page-style = empty / plain` 同时控制声明的页眉和页脚。
+
+### Fixed
+- `\record` 命令中,如果 `output` 配置为 `print`,则强制进行 `\cleardoublepage`,保证记录表独立成页。
+- 修正了在导言区设置论文主要语言无效的问题(#560)。
+- 修正了研究生插入扫描版声明页时的页眉。
+
+### Deprecated
+- 选项 `statement-page-number` 已过时。
+
 ## [v6.1.2] - 2020-06-14
 ### Changed
 - `\statement` 和 `\copyrightpage` 命令都会在 PDF 中生成相应位置的书签。
@@ -593,7 +605,8 @@
 
 
 
-[Unreleased]: https://github.com/tuna/thuthesis/compare/v6.1.2...HEAD
+[Unreleased]: https://github.com/tuna/thuthesis/compare/v6.1.3...HEAD
+[v6.1.3]:     https://github.com/tuna/thuthesis/compare/v6.1.2...v6.1.3
 [v6.1.2]:     https://github.com/tuna/thuthesis/compare/v6.1.1...v6.1.2
 [v6.1.1]:     https://github.com/tuna/thuthesis/compare/v6.1.0...v6.1.1
 [v6.1.0]:     https://github.com/tuna/thuthesis/compare/v6.0.2...v6.1.0

Modified: trunk/Master/texmf-dist/doc/latex/thuthesis/data/appendix-survey.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/thuthesis/data/appendix-survey.tex	2020-07-09 22:31:58 UTC (rev 55791)
+++ trunk/Master/texmf-dist/doc/latex/thuthesis/data/appendix-survey.tex	2020-07-09 22:32:27 UTC (rev 55792)
@@ -32,7 +32,6 @@
 which maximizes a real-valued function $f$ of
 $x=(x_1,x_2,\cdots,x_n)$ subject to a set of constraints.
 
-\newcommand\Real{\mathbf{R}}
 \newtheorem{mpdef}{Definition}[chapter]
 \begin{mpdef}
 In SOP, we call $x$ a decision vector, and
@@ -39,7 +38,7 @@
 $x_1,x_2,\cdots,x_n$ decision variables. The function
 $f$ is called the objective function. The set
 \begin{equation*}
-S=\left\{x\in\Real^n\bigm|g_j(x)\le 0,\,j=1,2,\cdots,p\right\}
+S=\left\{x\in\real^n\bigm|g_j(x)\le 0,\,j=1,2,\cdots,p\right\}
 \end{equation*}
 is called the feasible set. An element $x$ in $S$ is called a
 feasible solution.
@@ -134,8 +133,8 @@
 \end{figure}
 
 Now we consider a nonlinear programming which is confronted solely with
-maximizing a real-valued function with domain $\Real^n$.  Whether derivatives are
-available or not, the usual strategy is first to select a point in $\Real^n$ which
+maximizing a real-valued function with domain $\real^n$.  Whether derivatives are
+available or not, the usual strategy is first to select a point in $\real^n$ which
 is thought to be the most likely place where the maximum exists. If there is no
 information available on which to base such a selection, a point is chosen at
 random. From this first point an attempt is made to construct a sequence of

Modified: trunk/Master/texmf-dist/doc/latex/thuthesis/data/chap01.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/thuthesis/data/chap01.tex	2020-07-09 22:31:58 UTC (rev 55791)
+++ trunk/Master/texmf-dist/doc/latex/thuthesis/data/chap01.tex	2020-07-09 22:32:27 UTC (rev 55792)
@@ -58,10 +58,9 @@
 \subsection{基本表格}
 \label{sec:basictable}
 
-模板中关于表格的宏包有三个:\pkg{booktabs}、\pkg{array} 和 \pkg{longtable},命
-令有一个 \cs{hlinewd}。三线表可以用 \pkg{booktabs} 提供
-的 \cs{toprule}、\cs{midrule} 和 \cs{bottomrule}。它们与 \pkg{longtable} 能很好的
-配合使用。如果表格比较简单的话可以直接用命令 \cs{hlinewd}\marg{width} 控制。
+模板中关于表格的宏包有三个:\pkg{booktabs}、\pkg{array} 和 \pkg{longtable}。
+三线表可以用 \pkg{booktabs} 提供 的 \cs{toprule}、\cs{midrule} 和 \cs{bottomrule}。
+它们与 \pkg{longtable} 能很好的配合使用。
 \begin{table}[htb]
   \centering
   \begin{threeparttable}[b]
@@ -105,7 +104,7 @@
   \begin{minipage}[t]{0.8\textwidth}
     \begin{tabularx}{\linewidth}{|l|X|X|X|X|}
       \hline
-      \multirow{2}*{\diagbox[width=5em]{x}{y}} & \multicolumn{2}{c|}{First Half} & \multicolumn{2}{c|}{Second Half}\\\cline{2-5}
+      \multirow{2}*{} & \multicolumn{2}{c|}{First Half} & \multicolumn{2}{c|}{Second Half}\\\cline{2-5}
       & 1st Qtr &2nd Qtr&3rd Qtr&4th Qtr \\ \hline
       East$^{*}$ &   20.4&   27.4&   90&     20.4 \\
       West$^{**}$ &   30.6 &   38.6 &   34.6 &  31.6 \\ \hline
@@ -116,9 +115,8 @@
   \end{minipage}
 \end{table}
 
-此外,表~\ref{tab:tabexamp1} 同时还演示了另外两个功能:1)通过 \pkg{tabularx} 的
- \texttt{|X|} 扩展实现表格自动放大;2)通过命令 \cs{diagbox} 在表头部分
-插入反斜线。
+此外,表~\ref{tab:tabexamp1} 同时还演示了通过 \pkg{tabularx} 的
+ \texttt{|X|} 扩展实现表格自动放大功能。
 
 为了使我们的例子更接近实际情况,我会在必要的时候插入一些“无关”文字,以免太多图
 表同时出现,导致排版效果不太理想。第一个出场的当然是我的最爱:风流潇洒、骏马绝尘、
@@ -405,7 +403,6 @@
 乾,反复道也。或跃在渊,进无咎也。飞龙在天,大人造也。亢龙有悔,盈不可久也。用九,
 天德不可为首也。   
 
-\newcommand\dif{\mathop{}\!\mathrm{d}}
 \begin{lemma}
 《猫和老鼠》是我最爱看的动画片。
 \begin{multline*}%\tag*{[a]} % 这个不出现在索引中
@@ -540,9 +537,8 @@
 \end{equation}
 
 论文里面公式越多,\TeX{} 就越 happy。再看一个 \pkg{amsmath} 的例子:
-\newcommand{\envert}[1]{\left\lvert#1\right\rvert}
 \begin{equation}\label{detK2}
-\det\mK(t=1,t_1,\dots,t_n)=\sum_{I\in\vn}(-1)^{\envert{I}}
+\det\mK(t=1,t_1,\dots,t_n)=\sum_{I\in\vn}(-1)^{\abs{I}}
 \prod_{i\in I}t_i\prod_{j\in I}(D_j+\lambda_jt_j)\det\mA
 ^{(\lambda)}(\overline{I}|\overline{I})=0.
 \end{equation}

Deleted: trunk/Master/texmf-dist/doc/latex/thuthesis/math_commands.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/thuthesis/math_commands.tex	2020-07-09 22:31:58 UTC (rev 55791)
+++ trunk/Master/texmf-dist/doc/latex/thuthesis/math_commands.tex	2020-07-09 22:32:27 UTC (rev 55792)
@@ -1,292 +0,0 @@
-% !TeX root = ./thuthesis-example.tex
-
-% Adapted for use with thuthesis.
-% Original code is at https://github.com/goodfeli/dlbook_notation/blob/master/math_commands.tex
-
-%%%%% NEW MATH DEFINITIONS %%%%%
-
-\newcommand\ceil[1]{\lceil #1 \rceil}
-\newcommand\floor[1]{\lfloor #1 \rfloor}
-
-
-% Vectors
-\newcommand\Vector[1]{\symbf{#1}}
-
-\newcommand\0{{\Vector{0}}}
-\newcommand\vzero{{\Vector{0}}}
-\newcommand\1{{\Vector{1}}}
-\newcommand\vone{{\Vector{1}}}
-
-\newcommand\va{{\Vector{a}}}
-\newcommand\vb{{\Vector{b}}}
-\newcommand\vc{{\Vector{c}}}
-\newcommand\vd{{\Vector{d}}}
-\newcommand\ve{{\Vector{e}}}
-\newcommand\vf{{\Vector{f}}}
-\newcommand\vg{{\Vector{g}}}
-\newcommand\vh{{\Vector{h}}}
-\newcommand\vi{{\Vector{i}}}
-\newcommand\vj{{\Vector{j}}}
-\newcommand\vk{{\Vector{k}}}
-\newcommand\vl{{\Vector{l}}}
-\newcommand\vm{{\Vector{m}}}
-\newcommand\vn{{\Vector{n}}}
-\newcommand\vo{{\Vector{o}}}
-\newcommand\vp{{\Vector{p}}}
-\newcommand\vq{{\Vector{q}}}
-\newcommand\vr{{\Vector{r}}}
-\newcommand\vs{{\Vector{s}}}
-\newcommand\vt{{\Vector{t}}}
-\newcommand\vu{{\Vector{u}}}
-\newcommand\vv{{\Vector{v}}}
-\newcommand\vw{{\Vector{w}}}
-\newcommand\vx{{\Vector{x}}}
-\newcommand\vy{{\Vector{y}}}
-\newcommand\vz{{\Vector{z}}}
-
-\newcommand\valpha{{\Vector{\alpha}}}
-\newcommand\vbeta{{\Vector{\beta}}}
-\newcommand\vgamma{{\Vector{\gamma}}}
-\newcommand\vdelta{{\Vector{\delta}}}
-\newcommand\vepsilon{{\Vector{\epsilon}}}
-\newcommand\vtheta{{\Vector{\theta}}}
-\newcommand\viota{{\Vector{\iota}}}
-\newcommand\vkappa{{\Vector{\kappa}}}
-\newcommand\vlambda{{\Vector{\lambda}}}
-\newcommand\vmu{{\Vector{\mu}}}
-\newcommand\vnu{{\Vector{\nu}}}
-\newcommand\vxi{{\Vector{\xi}}}
-\newcommand\vpi{{\Vector{\pi}}}
-\newcommand\vrho{{\Vector{\rho}}}
-\newcommand\vsigma{{\Vector{\sigma}}}
-\newcommand\vtau{{\Vector{\tau}}}
-\newcommand\vupsilon{{\Vector{\upsilon}}}
-\newcommand\vphi{{\Vector{\phi}}}
-\newcommand\vchi{{\Vector{\chi}}}
-\newcommand\vpsi{{\Vector{\psi}}}
-\newcommand\vomega{{\Vector{\omega}}}
-
-
-% Matrix
-\newcommand\MATRIX[1]{\symbf{#1}}
-
-\newcommand\mA{{\MATRIX{A}}}
-\newcommand\mB{{\MATRIX{B}}}
-\newcommand\mC{{\MATRIX{C}}}
-\newcommand\mD{{\MATRIX{D}}}
-\newcommand\mE{{\MATRIX{E}}}
-\newcommand\mF{{\MATRIX{F}}}
-\newcommand\mG{{\MATRIX{G}}}
-\newcommand\mH{{\MATRIX{H}}}
-\newcommand\mI{{\MATRIX{I}}}
-\newcommand\mJ{{\MATRIX{J}}}
-\newcommand\mK{{\MATRIX{K}}}
-\newcommand\mL{{\MATRIX{L}}}
-\newcommand\mM{{\MATRIX{M}}}
-\newcommand\mN{{\MATRIX{N}}}
-\newcommand\mO{{\MATRIX{O}}}
-\newcommand\mP{{\MATRIX{P}}}
-\newcommand\mQ{{\MATRIX{Q}}}
-\newcommand\mR{{\MATRIX{R}}}
-\newcommand\mS{{\MATRIX{S}}}
-\newcommand\mT{{\MATRIX{T}}}
-\newcommand\mU{{\MATRIX{U}}}
-\newcommand\mV{{\MATRIX{V}}}
-\newcommand\mW{{\MATRIX{W}}}
-\newcommand\mX{{\MATRIX{X}}}
-\newcommand\mY{{\MATRIX{Y}}}
-\newcommand\mZ{{\MATRIX{Z}}}
-
-\newcommand\mGamma{{\MATRIX{\Gamma}}}
-\newcommand\mDelta{{\MATRIX{\Delta}}}
-\newcommand\mTheta{{\MATRIX{\Theta}}}
-\newcommand\mLambda{{\MATRIX{\Lambda}}}
-\newcommand\mXi{{\MATRIX{\Xi}}}
-\newcommand\mPi{{\MATRIX{\Pi}}}
-\newcommand\mSigma{{\MATRIX{\Sigma}}}
-\newcommand\mUpsilon{{\MATRIX{\Upsilon}}}
-\newcommand\mPhi{{\MATRIX{\Phi}}}
-\newcommand\mPsi{{\MATRIX{\Psi}}}
-\newcommand\mOmega{{\MATRIX{\Omega}}}
-
-
-% Tensor
-\newcommand\tens[1]{\symbfsf{#1}}
-\newcommand\tA{{\tens{A}}}
-\newcommand\tB{{\tens{B}}}
-\newcommand\tC{{\tens{C}}}
-\newcommand\tD{{\tens{D}}}
-\newcommand\tE{{\tens{E}}}
-\newcommand\tF{{\tens{F}}}
-\newcommand\tG{{\tens{G}}}
-\newcommand\tH{{\tens{H}}}
-\newcommand\tI{{\tens{I}}}
-\newcommand\tJ{{\tens{J}}}
-\newcommand\tK{{\tens{K}}}
-\newcommand\tL{{\tens{L}}}
-\newcommand\tM{{\tens{M}}}
-\newcommand\tN{{\tens{N}}}
-\newcommand\tO{{\tens{O}}}
-\newcommand\tP{{\tens{P}}}
-\newcommand\tQ{{\tens{Q}}}
-\newcommand\tR{{\tens{R}}}
-\newcommand\tS{{\tens{S}}}
-\newcommand\tT{{\tens{T}}}
-\newcommand\tU{{\tens{U}}}
-\newcommand\tV{{\tens{V}}}
-\newcommand\tW{{\tens{W}}}
-\newcommand\tX{{\tens{X}}}
-\newcommand\tY{{\tens{Y}}}
-\newcommand\tZ{{\tens{Z}}}
-
-
-% Graph
-\newcommand\gA{{\mathcal{A}}}
-\newcommand\gB{{\mathcal{B}}}
-\newcommand\gC{{\mathcal{C}}}
-\newcommand\gD{{\mathcal{D}}}
-\newcommand\gE{{\mathcal{E}}}
-\newcommand\gF{{\mathcal{F}}}
-\newcommand\gG{{\mathcal{G}}}
-\newcommand\gH{{\mathcal{H}}}
-\newcommand\gI{{\mathcal{I}}}
-\newcommand\gJ{{\mathcal{J}}}
-\newcommand\gK{{\mathcal{K}}}
-\newcommand\gL{{\mathcal{L}}}
-\newcommand\gM{{\mathcal{M}}}
-\newcommand\gN{{\mathcal{N}}}
-\newcommand\gO{{\mathcal{O}}}
-\newcommand\gP{{\mathcal{P}}}
-\newcommand\gQ{{\mathcal{Q}}}
-\newcommand\gR{{\mathcal{R}}}
-\newcommand\gS{{\mathcal{S}}}
-\newcommand\gT{{\mathcal{T}}}
-\newcommand\gU{{\mathcal{U}}}
-\newcommand\gV{{\mathcal{V}}}
-\newcommand\gW{{\mathcal{W}}}
-\newcommand\gX{{\mathcal{X}}}
-\newcommand\gY{{\mathcal{Y}}}
-\newcommand\gZ{{\mathcal{Z}}}
-
-
-% Sets
-\newcommand\sA{{\mathbb{A}}}
-\newcommand\sB{{\mathbb{B}}}
-\newcommand\sC{{\mathbb{C}}}
-\newcommand\sD{{\mathbb{D}}}
-% Don't use a set called E, because this would be the same as our symbol
-% for expectation.
-\newcommand\sF{{\mathbb{F}}}
-\newcommand\sG{{\mathbb{G}}}
-\newcommand\sH{{\mathbb{H}}}
-\newcommand\sI{{\mathbb{I}}}
-\newcommand\sJ{{\mathbb{J}}}
-\newcommand\sK{{\mathbb{K}}}
-\newcommand\sL{{\mathbb{L}}}
-\newcommand\sM{{\mathbb{M}}}
-\newcommand\sN{{\mathbb{N}}}
-\newcommand\sO{{\mathbb{O}}}
-\newcommand\sP{{\mathbb{P}}}
-\newcommand\sQ{{\mathbb{Q}}}
-\newcommand\sR{{\mathbb{R}}}
-\newcommand\sS{{\mathbb{S}}}
-\newcommand\sT{{\mathbb{T}}}
-\newcommand\sU{{\mathbb{U}}}
-\newcommand\sV{{\mathbb{V}}}
-\newcommand\sW{{\mathbb{W}}}
-\newcommand\sX{{\mathbb{X}}}
-\newcommand\sY{{\mathbb{Y}}}
-\newcommand\sZ{{\mathbb{Z}}}
-
-
-% Random variables
-\newcommand\RandomVariable[1]{\symit{#1}}
-
-\newcommand\rA{{\RandomVariable{A}}}
-\newcommand\rB{{\RandomVariable{B}}}
-\newcommand\rC{{\RandomVariable{C}}}
-\newcommand\rD{{\RandomVariable{D}}}
-\newcommand\rE{{\RandomVariable{E}}}
-\newcommand\rF{{\RandomVariable{F}}}
-\newcommand\rG{{\RandomVariable{G}}}
-\newcommand\rH{{\RandomVariable{H}}}
-\newcommand\rI{{\RandomVariable{I}}}
-\newcommand\rJ{{\RandomVariable{J}}}
-\newcommand\rK{{\RandomVariable{K}}}
-\newcommand\rL{{\RandomVariable{L}}}
-\newcommand\rM{{\RandomVariable{M}}}
-\newcommand\rN{{\RandomVariable{N}}}
-\newcommand\rO{{\RandomVariable{O}}}
-\newcommand\rP{{\RandomVariable{P}}}
-\newcommand\rQ{{\RandomVariable{Q}}}
-\newcommand\rR{{\RandomVariable{R}}}
-\newcommand\rS{{\RandomVariable{S}}}
-\newcommand\rT{{\RandomVariable{T}}}
-\newcommand\rU{{\RandomVariable{U}}}
-\newcommand\rV{{\RandomVariable{V}}}
-\newcommand\rW{{\RandomVariable{W}}}
-\newcommand\rX{{\RandomVariable{X}}}
-\newcommand\rY{{\RandomVariable{Y}}}
-\newcommand\rZ{{\RandomVariable{Z}}}
-
-% Random vectors
-\newcommand\RandomVector[1]{\symbf{#1}}
-
-\newcommand\rvA{{\RandomVector{A}}}
-\newcommand\rvB{{\RandomVector{B}}}
-\newcommand\rvC{{\RandomVector{C}}}
-\newcommand\rvD{{\RandomVector{D}}}
-\newcommand\rvE{{\RandomVector{E}}}
-\newcommand\rvF{{\RandomVector{F}}}
-\newcommand\rvG{{\RandomVector{G}}}
-\newcommand\rvH{{\RandomVector{H}}}
-\newcommand\rvI{{\RandomVector{I}}}
-\newcommand\rvJ{{\RandomVector{J}}}
-\newcommand\rvK{{\RandomVector{K}}}
-\newcommand\rvL{{\RandomVector{L}}}
-\newcommand\rvM{{\RandomVector{M}}}
-\newcommand\rvN{{\RandomVector{N}}}
-\newcommand\rvO{{\RandomVector{O}}}
-\newcommand\rvP{{\RandomVector{P}}}
-\newcommand\rvQ{{\RandomVector{Q}}}
-\newcommand\rvR{{\RandomVector{R}}}
-\newcommand\rvS{{\RandomVector{S}}}
-\newcommand\rvT{{\RandomVector{T}}}
-\newcommand\rvU{{\RandomVector{U}}}
-\newcommand\rvV{{\RandomVector{V}}}
-\newcommand\rvW{{\RandomVector{W}}}
-\newcommand\rvX{{\RandomVector{X}}}
-\newcommand\rvY{{\RandomVector{Y}}}
-\newcommand\rvZ{{\RandomVector{Z}}}
-
-\newcommand\laplace{\mathrm{Laplace}} % Laplace distribution
-
-\newcommand\E{\mathbb{E}}
-\newcommand\Ls{\mathcal{L}}
-\newcommand\R{\mathbb{R}}
-\newcommand\emp{\tilde{p}}
-\newcommand\lr{\alpha}
-\newcommand\reg{\lambda}
-\newcommand\rect{\mathrm{rectifier}}
-\newcommand\softmax{\mathrm{softmax}}
-\newcommand\sigmoid{\sigma}
-\newcommand\softplus{\zeta}
-\newcommand\KL{D_{\mathrm{KL}}}
-\newcommand\Var{\mathrm{Var}}
-\newcommand\standarderror{\mathrm{SE}}
-\newcommand\Cov{\mathrm{Cov}}
-% Wolfram Mathworld says $L^2$ is for function spaces and $\ell^2$ is for vectors
-% But then they seem to use $L^2$ for vectors throughout the site, and so does
-% wikipedia.
-\newcommand\normlzero{L^0}
-\newcommand\normlone{L^1}
-\newcommand\normltwo{L^2}
-\newcommand\normlp{L^p}
-\newcommand\normmax{L^\infty}
-
-\DeclareMathOperator*{\argmax}{arg\,max}
-\DeclareMathOperator*{\argmin}{arg\,min}
-
-\DeclareMathOperator{\sign}{sign}
-\DeclareMathOperator{\Tr}{Tr}
-\let\ab\allowbreak

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

Modified: trunk/Master/texmf-dist/doc/latex/thuthesis/thusetup.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/thuthesis/thusetup.tex	2020-07-09 22:31:58 UTC (rev 55791)
+++ trunk/Master/texmf-dist/doc/latex/thuthesis/thusetup.tex	2020-07-09 22:32:27 UTC (rev 55792)
@@ -89,11 +89,11 @@
   %
   include-spine = false,
   %
-  % 生成的声明页是否要插入页码(默认 false)
+  % 生成的声明页是否要插入页眉和页脚(默认 empty)
   % 仅在需要进行电子签名时,才需要打开这一选项
-  % 插入的扫描声明页总是会有页码,不受这一选项影响
+  % 插入的扫描声明页总是会生成页眉(研究生)和页脚,不受这一选项影响
   %
-  statement-page-number = false,
+  % statement-page-style = plain,
   %
   % 密级和年限
   %   秘密, 机密, 绝密
@@ -126,9 +126,6 @@
 \usepackage{threeparttable}
 \pretocmd{\TPTnoteSettings}{\footnotesize}{}{}
 
-% 表格中的反斜线
-\usepackage{diagbox}
-
 % 确定浮动对象的位置,可以使用 H,强制将浮动对象放到这里(可能效果很差)
 \usepackage{float}
 
@@ -148,29 +145,26 @@
 % 给自定义的宏后面自动加空白
 % \usepackage{xspace}
 
-% 借用 ltxdoc 里面的几个命令。
-\def\cmd#1{\cs{\expandafter\cmd at to@cs\string#1}}
-\def\cmd at to@cs#1#2{\char\number`#2\relax}
-\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}}
-
-\newcommand*{\meta}[1]{{%
-  \ensuremath{\langle}\rmfamily\itshape#1\/\ensuremath{\rangle}}}
-\providecommand\marg[1]{%
-  {\ttfamily\char`\{}\meta{#1}{\ttfamily\char`\}}}
-\providecommand\oarg[1]{%
-  {\ttfamily[}\meta{#1}{\ttfamily]}}
-\providecommand\parg[1]{%
-  {\ttfamily(}\meta{#1}{\ttfamily)}}
-\providecommand\pkg[1]{{\sffamily#1}}
-
 % 定义所有的图片文件在 figures 子目录下
 \graphicspath{{figures/}}
 
-% 数学命令
-\input{math_commands.tex}
-
 % 定义自己常用的东西
 % \def\myname{薛瑞尼}
 
+% 数学命令
+\newcommand\dif{\mathop{}\!\mathrm{d}}  % 微分符号
+\newcommand\real{{\mathbf{R}}}  % 实数集
+\newcommand\abs[1]{\lvert#1\rvert}
+\newcommand\VECTOR{\symbf}  % 向量
+\newcommand\MATRIX{\symbf}  % 矩阵
+\newcommand\vn{{\VECTOR{n}}}
+\newcommand\vx{{\VECTOR{x}}}
+\newcommand\mA{{\MATRIX{A}}}
+\newcommand\mK{{\MATRIX{K}}}
+
+% 借用 ltxdoc 里面的几个命令方便写文档。
+\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}}
+\providecommand\pkg[1]{{\sffamily#1}}
+
 % hyperref 宏包在最后调用
 \usepackage{hyperref}

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	2020-07-09 22:31:58 UTC (rev 55791)
+++ trunk/Master/texmf-dist/source/latex/thuthesis/thuthesis.dtx	2020-07-09 22:32:27 UTC (rev 55792)
@@ -17,7 +17,7 @@
 %
 % \iffalse
 %<*driver>
-\ProvidesFile{thuthesis.dtx}[2020/06/14 6.1.2 Tsinghua University Thesis Template]
+\ProvidesFile{thuthesis.dtx}[2020/07/09 6.1.3 Tsinghua University Thesis Template]
 \documentclass{ltxdoc}
 \usepackage{dtx-style}
 
@@ -798,15 +798,15 @@
 % 也可以使用 \cs{inlinecite}\marg{key} 临时使用正文模式的引用标注。
 %
 % \paragraph{著者-出版年制}
-% 著者-出版年制的参考文献引用有三种模式:
+% 著者-出版年制的参考文献引用有两种模式:
 % \begin{enumerate}
 %   \item \cs{citep}:著者与年份均在括号中,比如“(Zhang, 2008)”,
 %     同默认的 \cs{cite} 命令;
 %   \item \cs{citet}:著者姓名作为正文的一部分,比如“Zhang (2008)”;
-%   \item \cs{citeyear}:只插入年份,但不含括号,比如“2008”。
 % \end{enumerate}
 %
-% 关于参考文献引用的更多细节参考 \pkg{natbib} 的文档。
+% 另外还有 \cs{citeauthor}、\cs{citeyear} 等命令分别标注文献的著者姓名和年份,
+% 更多的引用文献标注法参考 \pkg{natbib} 的文档。
 %
 % \subsection{其他部分}
 %
@@ -877,14 +877,15 @@
 %   \statement[scan-statement.pdf]
 % \end{latex}
 %
-% 由于打印版和电子版有空白页的差别,声明的页码可能不同。所以编译声明页时默认不加页码,
-% 在签字后插入扫描页时再补上页码,防止页码冲突。
+% 由于打印版和电子版有空白页的差别,声明的页码可能不同。
+% 所以编译声明页时默认不加页眉和页脚,
+% 在签字后插入扫描页时再补上页眉和页脚,防止页码冲突。
 %
-% \DescribeOption{statement-page-number}
+% \DescribeOption{statement-page-style}
 % 如果需要编译时也加页码(如直接对电子版进行签名而不是插入扫描页),可以使用在 \cs{statement} 前设置
 % \begin{latex}
 %   \thusetup{
-%     statement-page-number = true,
+%     statement-page-style = plain,
 %   }
 % \end{latex}
 % 注意,插入扫描页总是会加页码,不受该选项控制。
@@ -1082,7 +1083,7 @@
 %    \begin{macrocode}
 %<cls>\NeedsTeXFormat{LaTeX2e}[2017/04/15]
 %<cls>\ProvidesClass{thuthesis}
-%<cls>[2020/06/14 6.1.2 Tsinghua University Thesis Template]
+%<cls>[2020/07/09 6.1.3 Tsinghua University Thesis Template]
 %    \end{macrocode}
 %
 % 报错
@@ -1090,6 +1091,9 @@
 \newcommand\thu at error[1]{%
   \ClassError{thuthesis}{#1}{}%
 }
+\newcommand\thu at warning[1]{%
+  \ClassWarning{thuthesis}{#1}%
+}
 %    \end{macrocode}
 %
 % 检查 \LaTeXe{} kernel 版本
@@ -1116,7 +1120,7 @@
 %<*cls>
 \hyphenation{Thu-Thesis}
 \def\thuthesis{ThuThesis}
-\def\version{6.1.2}
+\def\version{6.1.3}
 \RequirePackage{kvdefinekeys}
 \RequirePackage{kvsetkeys}
 \RequirePackage{kvoptions}
@@ -1779,6 +1783,7 @@
     BoldFont       = *-bold,
     ItalicFont     = *-italic,
     BoldItalicFont = *-bolditalic,
+    Ligatures      = CommonOff,
   ]%
 }
 \newcommand\thu at load@font at xits{%
@@ -2141,7 +2146,7 @@
 %    \begin{macrocode}
 \let\thu at main@language\thu at language
 \thu at option@hook{language}{%
-  \ifx\@begindocumenthook\@undefined
+  \ifx\@begindocumenthook\@undefined\else
     \let\thu at main@language\thu at language
   \fi
 }
@@ -2203,7 +2208,7 @@
 \thu at set@chapter at names
 \thu at option@hook{degree}{\thu at set@chapter at names}
 \thu at option@hook{language}{%
-  \ifx\@begindocumenthook\@undefined
+  \ifx\@begindocumenthook\@undefined\else
     \thu at set@chapter at names
   \fi
 }
@@ -2341,13 +2346,6 @@
 \pagestyle{plain}
 %    \end{macrocode}
 %
-% 用于声明页,不含页脚。
-%    \begin{macrocode}
-\fancypagestyle{nofooter}{%
-  \fancyfoot{}%
-}
-%    \end{macrocode}
-%
 % \cs{chapter} 会调用特殊的 page style。
 %    \begin{macrocode}
 \ctexset{chapter/pagestyle = plain}
@@ -3823,6 +3821,14 @@
 % 声明部分(支持扫描文件替换)
 %    \begin{macrocode}
 \thu at define@key{
+  statement-page-style = {
+    name = statement at page@style,
+    choices = {
+      empty,
+      plain,
+    },
+    default = empty,
+  },
   statement-page-number = {
     name = statement at page@number,
     choices = {
@@ -3832,6 +3838,12 @@
     default = false,
   },
 }
+\thu at option@hook{statement-page-number}{%
+  \thu at warning{%
+    The "statement-page-number" option is deprecated.
+    Use "statement-page-style" instead%
+  }%
+}
 \newcommand\statement[1][]{%
   \ifthu at degree@bachelor
     \cleardoublepage
@@ -3840,7 +3852,7 @@
   \ifx\thu@@tmp\@empty
     \thu at chapter*{\thu at statement@name}%
     \ifthu at statement@page at number@false
-      \thispagestyle{nofooter}%
+      \thispagestyle{\thu at statement@page at style}%
     \fi
     \thu at statement@text\par
     \ifthu at degree@graduate
@@ -3852,6 +3864,7 @@
       \thu at backdate\thu at underline[2.5cm]\relax}%
   \else
     \includepdf[pagecommand={%
+      \markboth{\thu at statement@name}{}%
       \thu at phantomsection
       \addcontentsline{toc}{chapter}{\thu at statement@name}%
     }]{#1}%
@@ -4273,7 +4286,7 @@
 %
 %    \begin{macrocode}
 \newcommand{\record}[1]{%
-  \clearpage
+  \cleardoublepage
   \thu at pdfbookmark{0}{综合论文训练记录表}%
   \includepdf[pages=-]{#1}%
 }
@@ -4675,7 +4688,7 @@
 \RequirePackage{fontspec}[2017/01/20]
 \RequirePackage{amsmath}
 \RequirePackage{unicode-math}
-\RequirePackage[UTF8,scheme=chinese]{ctex}
+\RequirePackage[UTF8,scheme=chinese,fontset=fandol]{ctex}
 \RequirePackage[
   top=2.5cm, bottom=2.5cm,
   left=4cm, right=2cm,
@@ -4732,6 +4745,7 @@
     ItalicFont     = *-italic,
     BoldItalicFont = *-bolditalic,
     Scale          = MatchLowercase,
+    Ligatures      = CommonOff,
   ]{texgyrecursor}
 }
 \unimathsetup{

Modified: trunk/Master/texmf-dist/tex/latex/thuthesis/thuthesis.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/thuthesis/thuthesis.cls	2020-07-09 22:31:58 UTC (rev 55791)
+++ trunk/Master/texmf-dist/tex/latex/thuthesis/thuthesis.cls	2020-07-09 22:32:27 UTC (rev 55792)
@@ -23,10 +23,13 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[2017/04/15]
 \ProvidesClass{thuthesis}
-[2020/06/14 6.1.2 Tsinghua University Thesis Template]
+[2020/07/09 6.1.3 Tsinghua University Thesis Template]
 \newcommand\thu at error[1]{%
   \ClassError{thuthesis}{#1}{}%
 }
+\newcommand\thu at warning[1]{%
+  \ClassWarning{thuthesis}{#1}%
+}
 \@ifl at t@r\fmtversion{2017/04/15}{}{
   \thu at error{%
     TeX Live 2017 or later version is required to compile this document%
@@ -38,7 +41,7 @@
 \fi
 \hyphenation{Thu-Thesis}
 \def\thuthesis{ThuThesis}
-\def\version{6.1.2}
+\def\version{6.1.3}
 \RequirePackage{kvdefinekeys}
 \RequirePackage{kvsetkeys}
 \RequirePackage{kvoptions}
@@ -451,6 +454,7 @@
     BoldFont       = *-bold,
     ItalicFont     = *-italic,
     BoldItalicFont = *-bolditalic,
+    Ligatures      = CommonOff,
   ]%
 }
 \newcommand\thu at load@font at xits{%
@@ -713,7 +717,7 @@
 \thu at def@fontsize{bahao}{5bp}
 \let\thu at main@language\thu at language
 \thu at option@hook{language}{%
-  \ifx\@begindocumenthook\@undefined
+  \ifx\@begindocumenthook\@undefined\else
     \let\thu at main@language\thu at language
   \fi
 }
@@ -770,7 +774,7 @@
 \thu at set@chapter at names
 \thu at option@hook{degree}{\thu at set@chapter at names}
 \thu at option@hook{language}{%
-  \ifx\@begindocumenthook\@undefined
+  \ifx\@begindocumenthook\@undefined\else
     \thu at set@chapter at names
   \fi
 }
@@ -859,9 +863,6 @@
   }%
 }
 \pagestyle{plain}
-\fancypagestyle{nofooter}{%
-  \fancyfoot{}%
-}
 \ctexset{chapter/pagestyle = plain}
 \ctexset{%
   punct=quanjiao,
@@ -1872,6 +1873,14 @@
   \fi
 }
 \thu at define@key{
+  statement-page-style = {
+    name = statement at page@style,
+    choices = {
+      empty,
+      plain,
+    },
+    default = empty,
+  },
   statement-page-number = {
     name = statement at page@number,
     choices = {
@@ -1881,6 +1890,12 @@
     default = false,
   },
 }
+\thu at option@hook{statement-page-number}{%
+  \thu at warning{%
+    The "statement-page-number" option is deprecated.
+    Use "statement-page-style" instead%
+  }%
+}
 \newcommand\statement[1][]{%
   \ifthu at degree@bachelor
     \cleardoublepage
@@ -1889,7 +1904,7 @@
   \ifx\thu@@tmp\@empty
     \thu at chapter*{\thu at statement@name}%
     \ifthu at statement@page at number@false
-      \thispagestyle{nofooter}%
+      \thispagestyle{\thu at statement@page at style}%
     \fi
     \thu at statement@text\par
     \ifthu at degree@graduate
@@ -1901,6 +1916,7 @@
       \thu at backdate\thu at underline[2.5cm]\relax}%
   \else
     \includepdf[pagecommand={%
+      \markboth{\thu at statement@name}{}%
       \thu at phantomsection
       \addcontentsline{toc}{chapter}{\thu at statement@name}%
     }]{#1}%
@@ -2129,7 +2145,7 @@
   leftmargin=10mm,labelsep=!,before=\xiaosi[1.26]}
 \def\publicationskip{\bigskip\bigskip}
 \newcommand{\record}[1]{%
-  \clearpage
+  \cleardoublepage
   \thu at pdfbookmark{0}{综合论文训练记录表}%
   \includepdf[pages=-]{#1}%
 }



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