texlive[46093] Master/texmf-dist: thuthesis (18dec17)

commits+karl at tug.org commits+karl at tug.org
Tue Dec 19 01:05:45 CET 2017


Revision: 46093
          http://tug.org/svn/texlive?view=revision&revision=46093
Author:   karl
Date:     2017-12-19 01:05:45 +0100 (Tue, 19 Dec 2017)
Log Message:
-----------
thuthesis (18dec17)

Modified Paths:
--------------
    trunk/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-author-year.bst
    trunk/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-numeric.bst
    trunk/Master/texmf-dist/doc/latex/thuthesis/dtx-style.sty
    trunk/Master/texmf-dist/doc/latex/thuthesis/latexmkrc
    trunk/Master/texmf-dist/doc/latex/thuthesis/main.pdf
    trunk/Master/texmf-dist/doc/latex/thuthesis/main.tex
    trunk/Master/texmf-dist/doc/latex/thuthesis/shuji.pdf
    trunk/Master/texmf-dist/doc/latex/thuthesis/shuji.tex
    trunk/Master/texmf-dist/doc/latex/thuthesis/thuthesis.pdf
    trunk/Master/texmf-dist/source/latex/thuthesis/thuthesis.dtx
    trunk/Master/texmf-dist/source/latex/thuthesis/thuthesis.ins
    trunk/Master/texmf-dist/tex/latex/thuthesis/thuthesis.cfg
    trunk/Master/texmf-dist/tex/latex/thuthesis/thuthesis.cls

Modified: trunk/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-author-year.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-author-year.bst	2017-12-19 00:04:26 UTC (rev 46092)
+++ trunk/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-author-year.bst	2017-12-19 00:05:45 UTC (rev 46093)
@@ -1,23 +1,32 @@
+%%
+%% This is file `gbt-7714-2015-author-year.bst',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% gbt-7714-2015.dtx  (with options: `authoryear')
+%% 
 %% Copyright (C) 2016-2017 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.2 of this license or (at your option) any later
 %% version. The latest version of this license is in:
-%%
+%% 
 %%     http://www.latex-project.org/lppl.txt
-%%
+%% 
 %% and version 1.2 or later is part of all distributions of
 %% LaTeX version 1999/12/01 or later.
-%%
+%% 
 %% This BibTeX style file is derived from `plainnat.bst' by Patrick W Daly,
 %% which was designed for use with the `natbib.sty' package.
-%%
+%% 
 ENTRY
   { address
     author
     booktitle
     chapter
+    date
     doi
     eid
     edition
@@ -48,12 +57,12 @@
     volume
     year
   }
-  { lang }
-  { mark_ label extra.label sort.label short.list }
+  { entry.lang }
+  { label extra.label sort.label short.list entry.mark }
 
 INTEGERS { output.state before.all mid.sentence after.sentence after.block after.slash }
 
-INTEGERS { lang.zh lang.ja lang.en lang.ru lang.default }
+INTEGERS { lang.zh lang.ja lang.en lang.ru }
 
 INTEGERS { charptr stringlength }
 
@@ -63,11 +72,10 @@
   #2 'after.sentence :=
   #3 'after.block :=
   #4 'after.slash :=
-  #4 'lang.zh :=
-  #5 'lang.ja :=
-  #1 'lang.en :=
-  #3 'lang.ru :=
-  #0 'lang.default :=
+  #2 'lang.zh :=
+  #3 'lang.ja :=
+  #0 'lang.en :=
+  #1 'lang.ru :=
 }
 
 STRINGS { s t }
@@ -279,8 +287,59 @@
   if$
 }
 
+INTEGERS { ascii }
+
+FUNCTION {get.char.lang}
+{ chr.to.int$ 'ascii :=
+  ascii #227 > ascii #234 < and
+    { lang.zh }
+    { ascii #227 =
+        { lang.ja }
+        { ascii #207 > ascii #212 < and
+            { lang.ru }
+            { lang.en }
+          if$
+        }
+      if$
+    }
+  if$
+}
+
+INTEGERS { char.lang lang }
+
+STRINGS { tmp.str }
+
+FUNCTION {get.str.lang}
+{ 'tmp.str :=
+  lang.en 'lang :=
+  tmp.str empty$
+    { "Empty string!" warning$ }
+    { #1 'charptr :=
+      tmp.str text.length$ #1 + 'stringlength :=
+        { charptr stringlength < }
+        { tmp.str charptr #1 substring$ get.char.lang 'char.lang :=
+          char.lang lang >
+            { char.lang 'lang := }
+            'skip$
+          if$
+
+          char.lang lang.zh = char.lang lang.ja = or
+            { charptr #3 + 'charptr := }
+            { char.lang lang.ru =
+                { charptr #2 + 'charptr := }
+                { charptr #1 + 'charptr := }
+              if$
+            }
+          if$
+        }
+      while$
+    }
+  if$
+  lang
+}
+
 FUNCTION {is.in.chinese}
-{ lang lang.zh =
+{ entry.lang lang.zh =
 }
 
 FUNCTION {format.et.al}
@@ -297,7 +356,7 @@
   if$
 }
 
-INTEGERS { nameptr namesleft numnames }
+INTEGERS { nameptr namesleft numnames name.lang}
 
 FUNCTION {format.names}
 { 's :=
@@ -305,9 +364,12 @@
   s num.names$ 'numnames :=
   numnames 'namesleft :=
     { namesleft #0 > nameptr #4 < and }
-    { s nameptr "{vv~}{ll}{ f{ }}" format.name$
-      s nameptr "{, jj}" format.name$ *
-      't :=
+    { s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't :=
+      t get.str.lang 'name.lang :=
+      name.lang lang.en =
+        { t #1 "{vv~}{ll}{ f{~}}{, jj}" format.name$ 't := }
+        { t #1 "{ll}{ff}" format.name$ 't := }
+      if$
       nameptr #1 >
         { namesleft #1 >
             { ", " * t * }
@@ -374,8 +436,31 @@
   if$
 }
 
+FUNCTION {is.doi.in.url}
+{ url empty$
+    { #0 }
+    { doi text.length$ 'stringlength :=
+      url text.length$ 'charptr :=
+        { url charptr stringlength substring$ doi = not
+          charptr #0 >
+          and
+        }
+        { charptr #1 - 'charptr := }
+      while$
+      charptr
+    }
+  if$
+}
+
 FUNCTION {format.doi}
-{ ""
+{ doi empty$
+    { "" }
+    { is.doi.in.url
+        { "" }
+        { new.block "\doi{" doi * "}" * }
+      if$
+    }
+  if$
 }
 
 FUNCTION {format.title}
@@ -386,16 +471,16 @@
 }
 
 FUNCTION {set.mark}
-{ mark_ empty$ not
+{ entry.mark empty$ not
     'pop$
     { mark empty$ not
-        { pop$ mark 'mark_ := }
-        { 'mark_ := }
+        { pop$ mark 'entry.mark := }
+        { 'entry.mark := }
       if$
       media empty$ not
-        { mark_ "/" * media * 'mark_ := }
+        { entry.mark "/" * media * 'entry.mark := }
         { url empty$ not
-            { mark_ "/OL" * 'mark_ := }
+            { entry.mark "/OL" * 'entry.mark := }
             'skip$
           if$
         }
@@ -405,7 +490,7 @@
 }
 
 FUNCTION {format.mark}
-{ "\allowbreak[" mark_ * "]" * }
+{ "\allowbreak[" entry.mark * "]" * }
 
 FUNCTION {format.full.names}
 {'s :=
@@ -413,8 +498,12 @@
   s num.names$ 'numnames :=
   numnames 'namesleft :=
     { namesleft #0 > }
-    { s nameptr
-      "{vv~}{ll}" format.name$ 't :=
+    { s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't :=
+      t get.str.lang 'name.lang :=
+      name.lang lang.en =
+        { t #1 "{vv~}{ll}" format.name$ 't := }
+        { t #1 "{ll}{ff}" format.name$ 't := }
+      if$
       nameptr #1 >
         {
           namesleft #1 >
@@ -519,15 +608,6 @@
   while$
 }
 
-FUNCTION {format.date}
-{ year duplicate$ empty$
-    { "empty year in " cite$ * warning$
-       pop$ "" }
-    'skip$
-  if$
-  extra.label *
-}
-
 FUNCTION {extract.before.dash}
 { duplicate$ empty$
     { pop$ "" }
@@ -585,28 +665,40 @@
 
 FUNCTION {format.year}
 { year empty$ not
-    { year }
-    { urldate empty$ not
-        { "[" urldate extract.before.dash * "]" * }
-        { "empty year in " cite$ * warning$ "" }
+    { year extract.before.dash }
+    { date empty$ not
+        { date extract.before.dash }
+        { "empty year in " cite$ * warning$
+          ""
+        }
       if$
     }
   if$
-  extract.before.dash
   extra.label *
 }
 
+FUNCTION {format.date}
+{ type$ "patent" = type$ "newspaper" = or
+  date empty$ not and
+    { date }
+    { year }
+  if$
+}
+
 FUNCTION {format.editdate}
-{ year contains.dash
-    { "\allowbreak(" year * ")" * }
+{ date empty$ not
+  type$ "newspaper" = not and
+  url empty$ not doi empty$ not or
+  and
+    { "\allowbreak(" date * ")" * }
     { "" }
   if$
 }
 
 FUNCTION {format.urldate}
-{ urldate empty$
+{ urldate empty$ not
+    { "\allowbreak[" urldate * "]" * }
     { "" }
-    { "\allowbreak[" urldate * "]" * }
   if$
 }
 
@@ -681,7 +773,7 @@
     { "" }
     { number is.number
         { is.in.chinese
-            { "第" volume * "册" * }
+            { "第" number * "册" * }
             { "number" number tie.or.space.connect }
           if$
         }
@@ -699,40 +791,27 @@
 }
 
 FUNCTION {format.series.vol.num.title}
-{ type$ "report" = type$ "standard" = or
-    { format.title
-      number empty$ not
-        { ": " * number }
+{ format.volume.number 's :=
+  series empty$ not
+    { series ": " *
+      s empty$ not
+        { s * "\quad " * }
         'skip$
       if$
+      title *
     }
-    { format.volume.number 's :=
-      series empty$ not
-        { series ": " *
-          s empty$ not
-            { s * "\quad " * }
-            'skip$
-          if$
-          title field.or.null *
-        }
-        { title field.or.null
-          s empty$ not
-            { ": " * s * }
-            'skip$
-          if$
-        }
+    { title
+      s empty$ not
+        { ": " * s * }
+        'skip$
       if$
-      "t" change.case$
     }
   if$
+  "t" change.case$
 }
 
 FUNCTION {format.series.vol.num.booktitle}
-{ type$ "report" = type$ "standard" = or
-    { format.volume.number }
-    { format.volume }
-  if$
-  's :=
+{ format.volume.number 's :=
   series empty$ not
     { series ": " *
       s empty$ not
@@ -739,9 +818,9 @@
         { s * "\quad " * }
         'skip$
       if$
-      booktitle field.or.null *
+      booktitle *
     }
-    { booktitle field.or.null
+    { booktitle
       s empty$ not
         { ": " * s * }
         'skip$
@@ -776,12 +855,16 @@
             { edition num.to.ordinal " ed." * }
           if$
         }
-        { edition "t" change.case$ 's :=
-          s "Revised" = s "Revised edition" = or
-            { "Rev. ed." }
-            { s " ed." * }
+        { entry.lang lang.en =
+            { edition "t" change.case$ 's :=
+              s "Revised" = s "Revised edition" = or
+                { "Rev. ed." }
+                { s " ed." *}
+              if$
+            }
+            { edition }
           if$
-         }
+        }
       if$
     }
   if$
@@ -1091,6 +1174,7 @@
   volume output
   format.journal.number "" output.after
   format.pages punct.colon output.after
+  format.editdate "" output.after
   format.urldate "" output.after
   format.url output
   format.doi output
@@ -1306,61 +1390,18 @@
 
 EXECUTE {init.state.consts}
 
-INTEGERS { ascii }
-
-FUNCTION {char.lang}
-{ chr.to.int$ 'ascii :=
-  ascii #31 > ascii #128 < and
-    { lang.en }
-    { ascii #227 > ascii #234 < and
-        { lang.zh }
-        { ascii #227 =
-            { lang.ja }
-            { ascii #207 > ascii #212 < and
-                { lang.ru }
-                { lang.default }
-              if$
-            }
-          if$
-        }
-      if$
-    }
-  if$
-}
-
-FUNCTION {set.language}
+FUNCTION {set.entry.lang}
 { language empty$
-    { lang.default 'lang :=
-      author field.or.null title field.or.null * 's :=
-      s empty$
-        'skip$
-        { #1 'charptr :=
-          s text.length$ #1 + 'stringlength :=
-            { charptr stringlength < }
-            { s charptr #1 substring$ char.lang
-              duplicate$ #3 >
-                { charptr #2 + 'charptr := }
-                'skip$
-              if$
-              duplicate$ lang >
-                { 'lang := }
-                'pop$
-              if$
-              charptr #1 + 'charptr :=
-            }
-          while$
-        }
-      if$
-    }
-    { language "en" =
+    { author field.or.null title field.or.null * get.str.lang }
+    { language "english" =
         { lang.en }
-        { language "zh" =
+        { language "chinese" =
             { lang.zh }
-            { language "ja" =
+            { language "japanese" =
                 { lang.ja }
-                { language "ru" =
+                { language "russian" =
                     { lang.ru }
-                    { lang.default }
+                    { lang.en }
                   if$
                 }
               if$
@@ -1368,9 +1409,9 @@
           if$
         }
       if$
-      'lang :=
     }
   if$
+  'entry.lang :=
 }
 
 FUNCTION {sortify}
@@ -1391,7 +1432,12 @@
 
 FUNCTION {format.lab.names}
 { 's :=
-  s #1 "{vv~}{ll}" format.name$
+  s #1 "{vv~}{ll}{, jj}{, ff}" format.name$ 't :=
+  t get.str.lang 'name.lang :=
+  name.lang lang.en =
+    { t #1 "{vv~}{ll}" format.name$}
+    { t #1 "{ll}{ff}" format.name$}
+  if$
   s num.names$ #1 >
     { "\ " * format.et.al * }
     'skip$
@@ -1479,15 +1525,10 @@
   short.list
   "("
   *
-  year duplicate$ empty$
+  format.year extract.before.dash duplicate$ empty$
   short.list key field.or.null = or
-     { pop$
-       urldate empty$ not
-         { "[" urldate extract.before.dash * "]" * }
-         { "" }
-       if$
-     }
-     'extract.before.dash
+     { pop$ "" }
+     'skip$
   if$
   *
   'label :=
@@ -1621,7 +1662,7 @@
 }
 
 FUNCTION {presort}
-{ set.language
+{ set.entry.lang
   calc.label
   label sortify
   "    "
@@ -1721,19 +1762,17 @@
   if$
   "\begin{thebibliography}{" number.label int.to.str$ * "}" *
   write$ newline$
-  "\bibpunct{(}{)}{;}{a}{,}{,}"
-  write$ newline$
   "\providecommand{\natexlab}[1]{#1}"
   write$ newline$
-  "\providecommand{\url}[1]{\texttt{#1}}"
+  "\providecommand{\url}[1]{#1}"
   write$ newline$
-  "\expandafter\ifx\csname thumasterbib\endcsname\relax"
+  "\providecommand{\href}[2]{\url{#2}}"
   write$ newline$
-  "  \providecommand\thumasterbib{D}\fi"
+  "\providecommand{\doi}[1]{DOI: \href{http://dx.doi.org/#1}{#1}}"
   write$ newline$
-  "\expandafter\ifx\csname thuphdbib\endcsname\relax"
+  "\expandafter\ifx\csname urlstyle\endcsname\relax\relax\else"
   write$ newline$
-  "  \providecommand\thuphdbib{D}\fi"
+  "  \urlstyle{same}\fi"
   write$ newline$
 }
 

Modified: trunk/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-numeric.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-numeric.bst	2017-12-19 00:04:26 UTC (rev 46092)
+++ trunk/Master/texmf-dist/bibtex/bst/thuthesis/thuthesis-numeric.bst	2017-12-19 00:05:45 UTC (rev 46093)
@@ -1,23 +1,32 @@
+%%
+%% This is file `gbt-7714-2015-numerical.bst',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% gbt-7714-2015.dtx  (with options: `numerical')
+%% 
 %% Copyright (C) 2016-2017 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.2 of this license or (at your option) any later
 %% version. The latest version of this license is in:
-%%
+%% 
 %%     http://www.latex-project.org/lppl.txt
-%%
+%% 
 %% and version 1.2 or later is part of all distributions of
 %% LaTeX version 1999/12/01 or later.
-%%
+%% 
 %% This BibTeX style file is derived from `plainnat.bst' by Patrick W Daly,
 %% which was designed for use with the `natbib.sty' package.
-%%
+%% 
 ENTRY
   { address
     author
     booktitle
     chapter
+    date
     doi
     eid
     edition
@@ -47,12 +56,12 @@
     volume
     year
   }
-  { lang }
-  { mark_ label extra.label sort.label short.list }
+  { entry.lang }
+  { label extra.label sort.label short.list entry.mark }
 
 INTEGERS { output.state before.all mid.sentence after.sentence after.block after.slash }
 
-INTEGERS { lang.zh lang.ja lang.en lang.ru lang.default }
+INTEGERS { lang.zh lang.ja lang.en lang.ru }
 
 INTEGERS { charptr stringlength }
 
@@ -62,11 +71,10 @@
   #2 'after.sentence :=
   #3 'after.block :=
   #4 'after.slash :=
-  #4 'lang.zh :=
-  #5 'lang.ja :=
-  #1 'lang.en :=
-  #3 'lang.ru :=
-  #0 'lang.default :=
+  #2 'lang.zh :=
+  #3 'lang.ja :=
+  #0 'lang.en :=
+  #1 'lang.ru :=
 }
 
 STRINGS { s t }
@@ -278,8 +286,59 @@
   if$
 }
 
+INTEGERS { ascii }
+
+FUNCTION {get.char.lang}
+{ chr.to.int$ 'ascii :=
+  ascii #227 > ascii #234 < and
+    { lang.zh }
+    { ascii #227 =
+        { lang.ja }
+        { ascii #207 > ascii #212 < and
+            { lang.ru }
+            { lang.en }
+          if$
+        }
+      if$
+    }
+  if$
+}
+
+INTEGERS { char.lang lang }
+
+STRINGS { tmp.str }
+
+FUNCTION {get.str.lang}
+{ 'tmp.str :=
+  lang.en 'lang :=
+  tmp.str empty$
+    { "Empty string!" warning$ }
+    { #1 'charptr :=
+      tmp.str text.length$ #1 + 'stringlength :=
+        { charptr stringlength < }
+        { tmp.str charptr #1 substring$ get.char.lang 'char.lang :=
+          char.lang lang >
+            { char.lang 'lang := }
+            'skip$
+          if$
+
+          char.lang lang.zh = char.lang lang.ja = or
+            { charptr #3 + 'charptr := }
+            { char.lang lang.ru =
+                { charptr #2 + 'charptr := }
+                { charptr #1 + 'charptr := }
+              if$
+            }
+          if$
+        }
+      while$
+    }
+  if$
+  lang
+}
+
 FUNCTION {is.in.chinese}
-{ lang lang.zh =
+{ entry.lang lang.zh =
 }
 
 FUNCTION {format.et.al}
@@ -296,7 +355,7 @@
   if$
 }
 
-INTEGERS { nameptr namesleft numnames }
+INTEGERS { nameptr namesleft numnames name.lang}
 
 FUNCTION {format.names}
 { 's :=
@@ -304,9 +363,12 @@
   s num.names$ 'numnames :=
   numnames 'namesleft :=
     { namesleft #0 > nameptr #4 < and }
-    { s nameptr "{vv~}{ll}{ f{ }}" format.name$
-      s nameptr "{, jj}" format.name$ *
-      't :=
+    { s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't :=
+      t get.str.lang 'name.lang :=
+      name.lang lang.en =
+        { t #1 "{vv~}{ll}{ f{~}}{, jj}" format.name$ 't := }
+        { t #1 "{ll}{ff}" format.name$ 't := }
+      if$
       nameptr #1 >
         { namesleft #1 >
             { ", " * t * }
@@ -373,8 +435,31 @@
   if$
 }
 
+FUNCTION {is.doi.in.url}
+{ url empty$
+    { #0 }
+    { doi text.length$ 'stringlength :=
+      url text.length$ 'charptr :=
+        { url charptr stringlength substring$ doi = not
+          charptr #0 >
+          and
+        }
+        { charptr #1 - 'charptr := }
+      while$
+      charptr
+    }
+  if$
+}
+
 FUNCTION {format.doi}
-{ ""
+{ doi empty$
+    { "" }
+    { is.doi.in.url
+        { "" }
+        { new.block "\doi{" doi * "}" * }
+      if$
+    }
+  if$
 }
 
 FUNCTION {format.title}
@@ -385,16 +470,16 @@
 }
 
 FUNCTION {set.mark}
-{ mark_ empty$ not
+{ entry.mark empty$ not
     'pop$
     { mark empty$ not
-        { pop$ mark 'mark_ := }
-        { 'mark_ := }
+        { pop$ mark 'entry.mark := }
+        { 'entry.mark := }
       if$
       media empty$ not
-        { mark_ "/" * media * 'mark_ := }
+        { entry.mark "/" * media * 'entry.mark := }
         { url empty$ not
-            { mark_ "/OL" * 'mark_ := }
+            { entry.mark "/OL" * 'entry.mark := }
             'skip$
           if$
         }
@@ -404,7 +489,7 @@
 }
 
 FUNCTION {format.mark}
-{ "\allowbreak[" mark_ * "]" * }
+{ "\allowbreak[" entry.mark * "]" * }
 
 FUNCTION {format.full.names}
 {'s :=
@@ -412,8 +497,12 @@
   s num.names$ 'numnames :=
   numnames 'namesleft :=
     { namesleft #0 > }
-    { s nameptr
-      "{vv~}{ll}" format.name$ 't :=
+    { s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't :=
+      t get.str.lang 'name.lang :=
+      name.lang lang.en =
+        { t #1 "{vv~}{ll}" format.name$ 't := }
+        { t #1 "{ll}{ff}" format.name$ 't := }
+      if$
       nameptr #1 >
         {
           namesleft #1 >
@@ -518,15 +607,6 @@
   while$
 }
 
-FUNCTION {format.date}
-{ year duplicate$ empty$
-    { "empty year in " cite$ * warning$
-       pop$ "" }
-    'skip$
-  if$
-  extra.label *
-}
-
 FUNCTION {extract.before.dash}
 { duplicate$ empty$
     { pop$ "" }
@@ -584,28 +664,40 @@
 
 FUNCTION {format.year}
 { year empty$ not
-    { year }
-    { urldate empty$ not
-        { "[" urldate extract.before.dash * "]" * }
-        { "empty year in " cite$ * warning$ "" }
+    { year extract.before.dash }
+    { date empty$ not
+        { date extract.before.dash }
+        { "empty year in " cite$ * warning$
+          ""
+        }
       if$
     }
   if$
-  extract.before.dash
   extra.label *
 }
 
+FUNCTION {format.date}
+{ type$ "patent" = type$ "newspaper" = or
+  date empty$ not and
+    { date }
+    { year }
+  if$
+}
+
 FUNCTION {format.editdate}
-{ year contains.dash
-    { "\allowbreak(" year * ")" * }
+{ date empty$ not
+  type$ "newspaper" = not and
+  url empty$ not doi empty$ not or
+  and
+    { "\allowbreak(" date * ")" * }
     { "" }
   if$
 }
 
 FUNCTION {format.urldate}
-{ urldate empty$
+{ urldate empty$ not
+    { "\allowbreak[" urldate * "]" * }
     { "" }
-    { "\allowbreak[" urldate * "]" * }
   if$
 }
 
@@ -680,7 +772,7 @@
     { "" }
     { number is.number
         { is.in.chinese
-            { "第" volume * "册" * }
+            { "第" number * "册" * }
             { "number" number tie.or.space.connect }
           if$
         }
@@ -698,40 +790,27 @@
 }
 
 FUNCTION {format.series.vol.num.title}
-{ type$ "report" = type$ "standard" = or
-    { format.title
-      number empty$ not
-        { ": " * number }
+{ format.volume.number 's :=
+  series empty$ not
+    { series ": " *
+      s empty$ not
+        { s * "\quad " * }
         'skip$
       if$
+      title *
     }
-    { format.volume.number 's :=
-      series empty$ not
-        { series ": " *
-          s empty$ not
-            { s * "\quad " * }
-            'skip$
-          if$
-          title field.or.null *
-        }
-        { title field.or.null
-          s empty$ not
-            { ": " * s * }
-            'skip$
-          if$
-        }
+    { title
+      s empty$ not
+        { ": " * s * }
+        'skip$
       if$
-      "t" change.case$
     }
   if$
+  "t" change.case$
 }
 
 FUNCTION {format.series.vol.num.booktitle}
-{ type$ "report" = type$ "standard" = or
-    { format.volume.number }
-    { format.volume }
-  if$
-  's :=
+{ format.volume.number 's :=
   series empty$ not
     { series ": " *
       s empty$ not
@@ -738,9 +817,9 @@
         { s * "\quad " * }
         'skip$
       if$
-      booktitle field.or.null *
+      booktitle *
     }
-    { booktitle field.or.null
+    { booktitle
       s empty$ not
         { ": " * s * }
         'skip$
@@ -775,12 +854,16 @@
             { edition num.to.ordinal " ed." * }
           if$
         }
-        { edition "t" change.case$ 's :=
-          s "Revised" = s "Revised edition" = or
-            { "Rev. ed." }
-            { s " ed." * }
+        { entry.lang lang.en =
+            { edition "t" change.case$ 's :=
+              s "Revised" = s "Revised edition" = or
+                { "Rev. ed." }
+                { s " ed." *}
+              if$
+            }
+            { edition }
           if$
-         }
+        }
       if$
     }
   if$
@@ -1082,10 +1165,11 @@
   format.mark "" output.after
   new.block
   journal "journal" output.check
-  format.year "year" output.check
+  format.date "year" output.check
   volume output
   format.journal.number "" output.after
   format.pages punct.colon output.after
+  format.editdate "" output.after
   format.urldate "" output.after
   format.url output
   format.doi output
@@ -1123,9 +1207,9 @@
   format.mark "" output.after
   new.block
   format.address.publisher output
-  year empty$ year contains.dash or
+  date empty$
+    { format.date output }
     'skip$
-    { format.year output }
   if$
   format.pages punct.colon output.after
   format.editdate "" output.after
@@ -1301,61 +1385,18 @@
 
 EXECUTE {init.state.consts}
 
-INTEGERS { ascii }
-
-FUNCTION {char.lang}
-{ chr.to.int$ 'ascii :=
-  ascii #31 > ascii #128 < and
-    { lang.en }
-    { ascii #227 > ascii #234 < and
-        { lang.zh }
-        { ascii #227 =
-            { lang.ja }
-            { ascii #207 > ascii #212 < and
-                { lang.ru }
-                { lang.default }
-              if$
-            }
-          if$
-        }
-      if$
-    }
-  if$
-}
-
-FUNCTION {set.language}
+FUNCTION {set.entry.lang}
 { language empty$
-    { lang.default 'lang :=
-      author field.or.null title field.or.null * 's :=
-      s empty$
-        'skip$
-        { #1 'charptr :=
-          s text.length$ #1 + 'stringlength :=
-            { charptr stringlength < }
-            { s charptr #1 substring$ char.lang
-              duplicate$ #3 >
-                { charptr #2 + 'charptr := }
-                'skip$
-              if$
-              duplicate$ lang >
-                { 'lang := }
-                'pop$
-              if$
-              charptr #1 + 'charptr :=
-            }
-          while$
-        }
-      if$
-    }
-    { language "en" =
+    { author field.or.null title field.or.null * get.str.lang }
+    { language "english" =
         { lang.en }
-        { language "zh" =
+        { language "chinese" =
             { lang.zh }
-            { language "ja" =
+            { language "japanese" =
                 { lang.ja }
-                { language "ru" =
+                { language "russian" =
                     { lang.ru }
-                    { lang.default }
+                    { lang.en }
                   if$
                 }
               if$
@@ -1363,9 +1404,9 @@
           if$
         }
       if$
-      'lang :=
     }
   if$
+  'entry.lang :=
 }
 
 FUNCTION {sortify}
@@ -1386,7 +1427,12 @@
 
 FUNCTION {format.lab.names}
 { 's :=
-  s #1 "{vv~}{ll}" format.name$
+  s #1 "{vv~}{ll}{, jj}{, ff}" format.name$ 't :=
+  t get.str.lang 'name.lang :=
+  name.lang lang.en =
+    { t #1 "{vv~}{ll}" format.name$}
+    { t #1 "{ll}{ff}" format.name$}
+  if$
   s num.names$ #1 >
     { "\ " * format.et.al * }
     'skip$
@@ -1474,15 +1520,10 @@
   short.list
   "("
   *
-  year duplicate$ empty$
+  format.year extract.before.dash duplicate$ empty$
   short.list key field.or.null = or
-     { pop$
-       urldate empty$ not
-         { "[" urldate extract.before.dash * "]" * }
-         { "" }
-       if$
-     }
-     'extract.before.dash
+     { pop$ "" }
+     'skip$
   if$
   *
   'label :=
@@ -1501,7 +1542,7 @@
 }
 
 FUNCTION {presort}
-{ set.language
+{ set.entry.lang
   calc.label
   label sortify
   "    "
@@ -1580,19 +1621,17 @@
   if$
   "\begin{thebibliography}{" number.label int.to.str$ * "}" *
   write$ newline$
-  "\bibpunct{[}{]}{,}{s}{,}{,}"
-  write$ newline$
   "\providecommand{\natexlab}[1]{#1}"
   write$ newline$
-  "\providecommand{\url}[1]{\texttt{#1}}"
+  "\providecommand{\url}[1]{#1}"
   write$ newline$
-  "\expandafter\ifx\csname thumasterbib\endcsname\relax"
+  "\providecommand{\href}[2]{\url{#2}}"
   write$ newline$
-  "  \providecommand\thumasterbib{D}\fi"
+  "\providecommand{\doi}[1]{DOI: \href{http://dx.doi.org/#1}{#1}}"
   write$ newline$
-  "\expandafter\ifx\csname thuphdbib\endcsname\relax"
+  "\expandafter\ifx\csname urlstyle\endcsname\relax\relax\else"
   write$ newline$
-  "  \providecommand\thuphdbib{D}\fi"
+  "  \urlstyle{same}\fi"
   write$ newline$
 }
 

Modified: trunk/Master/texmf-dist/doc/latex/thuthesis/dtx-style.sty
===================================================================
--- trunk/Master/texmf-dist/doc/latex/thuthesis/dtx-style.sty	2017-12-19 00:04:26 UTC (rev 46092)
+++ trunk/Master/texmf-dist/doc/latex/thuthesis/dtx-style.sty	2017-12-19 00:05:45 UTC (rev 46093)
@@ -10,16 +10,14 @@
 %% 
 %% Copyright (C) 2005-2017 by Ruini Xue <xueruini at gmail.com>
 %% 
-%% This file may be distributed and/or modified under the
-%% conditions of the LaTeX Project Public License, either version 1.3a
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
 %% of this license or (at your option) any later version.
-%% The latest version of this license is in:
+%% The latest version of this license is in
+%%   http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
 %% 
-%% http://www.latex-project.org/lppl.txt
-%% 
-%% and version 1.3a or later is part of all distributions of LaTeX
-%% version 2004/10/01 or later.
-%% 
 %% To produce the documentation run the original source files ending with `.dtx'
 %% through LaTeX.
 %% 

Modified: trunk/Master/texmf-dist/doc/latex/thuthesis/latexmkrc
===================================================================
--- trunk/Master/texmf-dist/doc/latex/thuthesis/latexmkrc	2017-12-19 00:04:26 UTC (rev 46092)
+++ trunk/Master/texmf-dist/doc/latex/thuthesis/latexmkrc	2017-12-19 00:05:45 UTC (rev 46093)
@@ -1,5 +1,5 @@
 # vim: set ft=perl:
-$clean_ext = 'thm glo gls bbl hd loe';
+$clean_ext = 'thm glo gls bbl hd loe xdv';
 $makeindex = 'makeindex -s gind.ist %O -o %D %S';
 add_cus_dep('glo', 'gls', 0, 'makeglo2gls');
 sub makeglo2gls {

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

Modified: trunk/Master/texmf-dist/doc/latex/thuthesis/main.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/thuthesis/main.tex	2017-12-19 00:04:26 UTC (rev 46092)
+++ trunk/Master/texmf-dist/doc/latex/thuthesis/main.tex	2017-12-19 00:05:45 UTC (rev 46093)
@@ -1,12 +1,12 @@
-\documentclass[type=master]{thuthesis}
+\documentclass[degree=master]{thuthesis}
 % 选项:
-%   type=[bachelor|master|doctor|postdoctor], % 必选
-%   secret,                                   % 可选
-%   pifootnote,                               % 可选(建议打开)
-%   openany|openright,                        % 可选,基本不用
-%   arial,                                    % 可选,基本不用
-%   arialtoc,                                 % 可选,基本不用
-%   arialtitle                                % 可选,基本不用
+%   degree=[bachelor|master|doctor|postdoctor], % 必选
+%   secret,                                     % 可选
+%   pifootnote,                                 % 可选(建议打开)
+%   openany|openright,                          % 可选,基本不用
+%   arial,                                      % 可选,基本不用
+%   arialtoc,                                   % 可选,基本不用
+%   arialtitle                                  % 可选,基本不用
 
 % 所有其它可能用到的包都统一放到这里了,可以根据自己的实际添加或者删除。
 \usepackage{thuthesis}

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

Modified: trunk/Master/texmf-dist/doc/latex/thuthesis/shuji.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/thuthesis/shuji.tex	2017-12-19 00:04:26 UTC (rev 46092)
+++ trunk/Master/texmf-dist/doc/latex/thuthesis/shuji.tex	2017-12-19 00:05:45 UTC (rev 46093)
@@ -1,4 +1,4 @@
-\documentclass[type=master]{thuthesis}
+\documentclass[degree=master]{thuthesis}
 
 \ifxetex\relax\else % for latex/pdflatex
   \usepackage{CJKvert}

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	2017-12-19 00:04:26 UTC (rev 46092)
+++ trunk/Master/texmf-dist/source/latex/thuthesis/thuthesis.dtx	2017-12-19 00:05:45 UTC (rev 46093)
@@ -16,7 +16,7 @@
 %
 % \iffalse
 %<*driver>
-\ProvidesFile{thuthesis.dtx}[2017/12/4 5.4.1 Tsinghua University Thesis Template]
+\ProvidesFile{thuthesis.dtx}[2017/12/18 5.4.2 Tsinghua University Thesis Template]
 \documentclass{ltxdoc}
 \usepackage{dtx-style}
 
@@ -84,7 +84,7 @@
 % subfig to be compatible with subfigure. add \pkg{courier} package for tt font.}
 % \changes{v1.4}{2005/12/05}{Fix the problem of \textbf{chinese}, which is
 % because both CJK and everysel redefine the \cs{selectfont}. So, a not so good
-% workaround is merge them up. Add \file{shuji.tex} example. Add \cs{pozhehao} command.}
+% workaround is to merge them up. Add \file{shuji.tex} example. Add \cs{pozhehao} command.}
 % \changes{v2.1}{2006/02/27}{Add support to bachelor thesis.}
 % \changes{v2.1}{2006/03/01}{Remove \pkg{fancyhdr} and \pkg{geometry}.}
 % \changes{v2.1}{2006/03/01}{Redefine footnote marks.}
@@ -148,6 +148,7 @@
 % \changes{v4.8}{2013/03/04}{dvips method is deprecated. We ask their users to load it manually.}
 % \changes{v4.8}{2013/03/09}{reset baselinestretch after ctex's change.}
 % \changes{v4.8}{2014/11/25}{好几年累积的一些更新,最重要的是切换到 \CTeX。}
+% \changes{v5.4.2}{2017/12/16}{删除 \cs{pozhehao}。}
 %
 % \def\indexname{索引}
 % \def\glossaryname{修改记录}
@@ -391,16 +392,16 @@
 % \subsection{论文选项}
 % \label{sec:option}
 %
-% \DescribeOption{type}
+% \DescribeOption{degree}
 %   选择论文类型,当前支
 %   持:\option{bachelor},\option{master},\option{doctor},\option{postdoctor}。
 %   为必选项。
 % \begin{latex}
 % % 博士论文
-% \documentclass[type=doctor]{thuthesis}
+% \documentclass[degree=doctor]{thuthesis}
 %
 % % 硕士论文
-% \documentclass[type=master]{thuthesis}
+% \documentclass[degree=master]{thuthesis}
 % \end{latex}
 %
 % \DescribeOption{secret}
@@ -1016,8 +1017,7 @@
 % 否则,就要像例子里面那样做一些微调(参看模板自带的 \file{shuji.tex})。下面是一
 % 个例子:
 % \begin{latex}
-% \documentclass[type=master]{thuthesis}
-% % 此处 type 无所谓
+% \documentclass[degree=master]{thuthesis}
 %
 % \begin{document}
 % \thuset{
@@ -1107,7 +1107,7 @@
 %<cls>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
 %<cls>\ProvidesClass{thuthesis}
 %<cfg>\ProvidesFile{thuthesis.cfg}
-%<cls|cfg>[2017/12/4 5.4.1 Tsinghua University Thesis Template]
+%<cls|cfg>[2017/12/18 5.4.2 Tsinghua University Thesis Template]
 %    \end{macrocode}
 %
 % \subsection{定义选项}
@@ -1126,7 +1126,7 @@
 %<*cls>
 \hyphenation{Thu-Thesis}
 \def\thuthesis{\textsc{ThuThesis}}
-\def\version{5.4.1}
+\def\version{5.4.2}
 
 \RequirePackage{kvoptions}
 \SetupKeyvalOptions{
@@ -1137,36 +1137,28 @@
 %
 % 用 \pkg{kvoptions} 的 \texttt{key=value} 方式来设置论文类型。
 % \changes{v5.0.0}{2015/12/13}{使用 \pkg{kvoptions} 简化选项 type。}
+% \changes{v5.4.2}{2017/12/18}{使用 degree 取代 type 选项。}
 %    \begin{macrocode}
 \newif\ifthu at bachelor
 \newif\ifthu at master
 \newif\ifthu at doctor
 \newif\ifthu at postdoctor
-\define at key{thu}{type}{%
+\define at key{thu}{degree}{%
   \thu at bachelorfalse
   \thu at masterfalse
   \thu at doctorfalse
   \thu at postdoctorfalse
-  \expandafter\csname thu@#1true\endcsname
-  \ifthu at bachelor\relax\else
-    \ifthu at master\relax\else
-      \ifthu at doctor\relax\else
-        \ifthu at postdoctor\relax\else
-          \ClassError{thuthesis}%
-                     {Please specify thesis type in option: \MessageBreak
-                      type=[bachelor | master | doctor | postdoctor]}{}
-        \fi
-      \fi
-    \fi
-  \fi}
-\def\thu at deprecated@type at option{%
-  \kvsetkeys{thu}{type=\CurrentOption} % for compatability.
+  \expandafter\csname thu@#1true\endcsname}
+\define at key{thu}{type}{%
+  \ClassError{thuthesis}{'type' is deprecated, \MessageBreak
+                         please use 'degree=#1' instead}{}}
+\def\thu at deprecated@degree at option{%
   \ClassError{thuthesis}{Option '\CurrentOption' is deprecated, \MessageBreak
-                         please use 'type=\CurrentOption' instead}{}}
-\DeclareVoidOption{bachelor}{\thu at deprecated@type at option}
-\DeclareVoidOption{master}{\thu at deprecated@type at option}
-\DeclareVoidOption{doctor}{\thu at deprecated@type at option}
-\DeclareVoidOption{postdoctor}{\thu at deprecated@type at option}
+                         please use 'degree=\CurrentOption' instead}{}}
+\DeclareVoidOption{bachelor}{\thu at deprecated@degree at option}
+\DeclareVoidOption{master}{\thu at deprecated@degree at option}
+\DeclareVoidOption{doctor}{\thu at deprecated@degree at option}
+\DeclareVoidOption{postdoctor}{\thu at deprecated@degree at option}
 %    \end{macrocode}
 %
 % 论文是否保密。
@@ -1221,6 +1213,17 @@
 % 解析用户传递过来的选项,并加载 \pkg{ctexbook}。
 %    \begin{macrocode}
 \ProcessKeyvalOptions*
+\ifthu at bachelor\relax\else
+  \ifthu at master\relax\else
+    \ifthu at doctor\relax\else
+      \ifthu at postdoctor\relax\else
+        \ClassError{thuthesis}%
+                   {Please specify thesis degree in option: \MessageBreak
+                    degree=[bachelor | master | doctor | postdoctor]}{}
+      \fi
+    \fi
+  \fi
+\fi
 %    \end{macrocode}
 %
 % 使用 \XeTeX\ 引擎时,\pkg{fontspec} 宏包会被 \pkg{xeCJK} 自动调用。传递
@@ -3304,20 +3307,7 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \subsection{自定义命令和环境}
-% \label{sec:userdefine}
 %
-% \begin{macro}{\pozhehao}
-% 为了兼容性保留之,推荐直接输入“——”。
-% \changes{v2.1}{2006/01/12}{稍微加宽一点。同时把名字改为\textbf{破折号}:\cs{pozhehao}}
-%    \begin{macrocode}
-%<*cfg>
-\newcommand{\pozhehao}{——}
-%</cfg>
-%    \end{macrocode}
-% \end{macro}
-%
-%
 % \subsection{其它}
 % \label{sec:other}
 %

Modified: trunk/Master/texmf-dist/source/latex/thuthesis/thuthesis.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/thuthesis/thuthesis.ins	2017-12-19 00:04:26 UTC (rev 46092)
+++ trunk/Master/texmf-dist/source/latex/thuthesis/thuthesis.ins	2017-12-19 00:05:45 UTC (rev 46093)
@@ -1,19 +1,18 @@
 %%
-%% Copyright (C) 2005-2016 by Ruini Xue <xueruini at gmail.com>
+%% Copyright (C) 2005-2017 by Ruini Xue <xueruini at gmail.com>
 %%
 %% This file is part of the ThuThesis package project.
 %% ---------------------------------------------------
 %%
-%% This file may be distributed and/or modified under the
-%% conditions of the LaTeX Project Public License, either version 1.3a
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
 %% of this license or (at your option) any later version.
-%% The latest version of this license is in:
+%% The latest version of this license is in
+%%   http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
 %%
-%% http://www.latex-project.org/lppl.txt
-%%
-%% and version 1.3a or later is part of all distributions of LaTeX
-%% version 2004/10/01 or later.
-%%
+%% This work has the LPPL maintenance status `maintained'.
 
 \input docstrip
 
@@ -30,16 +29,14 @@
 
 Copyright (C) 2005-\the\year by Ruini Xue <xueruini at gmail.com>
 
-This file may be distributed and/or modified under the
-conditions of the LaTeX Project Public License, either version 1.3a
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
 of this license or (at your option) any later version.
-The latest version of this license is in:
+The latest version of this license is in
+  http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
 
-http://www.latex-project.org/lppl.txt
-
-and version 1.3a or later is part of all distributions of LaTeX
-version 2004/10/01 or later.
-
 To produce the documentation run the original source files ending with `.dtx'
 through LaTeX.
 
@@ -51,18 +48,16 @@
 
 Copyright (C) 2005-\the\year by Xue Ruini <xueruini at gmail.com>
 
-This file may be distributed and/or modified under the
-conditions of the LaTeX Project Public License, either version 1.3a
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
 of this license or (at your option) any later version.
-The latest version of this license is in:
+The latest version of this license is in
+  http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
 
-http://www.latex-project.org/lppl.txt
+This is the configuration file of the ThuThesis package with LaTeX2e.
 
-and version 1.3a or later is part of all distributions of LaTeX
-version 2004/10/01 or later.
-
-This is the configuration file of the thuthesis package with LaTeX2e.
-
 \endpreamble
 
 \generate{\file{\jobname.cls}{\from{\jobname.dtx}{cls}}
@@ -81,6 +76,8 @@
   \Msg{*}
   \Msg{* \space\space thuthesis.cls}
   \Msg{* \space\space thuthesis.cfg}
+  \Msg{* \space\space thuthesis-author-year.bst}
+  \Msg{* \space\space thuthesis-numeric.bst}
   \Msg{*}
   \Msg{* To produce the documentation run the files ending with}
   \Msg{* `.dtx' through LaTeX.}

Modified: trunk/Master/texmf-dist/tex/latex/thuthesis/thuthesis.cfg
===================================================================
--- trunk/Master/texmf-dist/tex/latex/thuthesis/thuthesis.cfg	2017-12-19 00:04:26 UTC (rev 46092)
+++ trunk/Master/texmf-dist/tex/latex/thuthesis/thuthesis.cfg	2017-12-19 00:05:45 UTC (rev 46093)
@@ -10,20 +10,18 @@
 %% 
 %% Copyright (C) 2005-2017 by Xue Ruini <xueruini at gmail.com>
 %% 
-%% This file may be distributed and/or modified under the
-%% conditions of the LaTeX Project Public License, either version 1.3a
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
 %% of this license or (at your option) any later version.
-%% The latest version of this license is in:
+%% The latest version of this license is in
+%%   http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
 %% 
-%% http://www.latex-project.org/lppl.txt
+%% This is the configuration file of the ThuThesis package with LaTeX2e.
 %% 
-%% and version 1.3a or later is part of all distributions of LaTeX
-%% version 2004/10/01 or later.
-%% 
-%% This is the configuration file of the thuthesis package with LaTeX2e.
-%% 
 \ProvidesFile{thuthesis.cfg}
-[2017/12/4 5.4.1 Tsinghua University Thesis Template]
+[2017/12/18 5.4.2 Tsinghua University Thesis Template]
 \theorembodyfont{\normalfont}
 \theoremheaderfont{\normalfont\heiti}
 \theoremsymbol{\ensuremath{\square}}
@@ -178,7 +176,6 @@
     \newcommand{\thu at resume@title}{个人简历、在学期间发表的学术论文与研究成果}
   \fi
 \fi
-\newcommand{\pozhehao}{——}
 \endinput
 %%
 %% End of file `thuthesis.cfg'.

Modified: trunk/Master/texmf-dist/tex/latex/thuthesis/thuthesis.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/thuthesis/thuthesis.cls	2017-12-19 00:04:26 UTC (rev 46092)
+++ trunk/Master/texmf-dist/tex/latex/thuthesis/thuthesis.cls	2017-12-19 00:05:45 UTC (rev 46093)
@@ -10,25 +10,23 @@
 %% 
 %% Copyright (C) 2005-2017 by Ruini Xue <xueruini at gmail.com>
 %% 
-%% This file may be distributed and/or modified under the
-%% conditions of the LaTeX Project Public License, either version 1.3a
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
 %% of this license or (at your option) any later version.
-%% The latest version of this license is in:
+%% The latest version of this license is in
+%%   http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
 %% 
-%% http://www.latex-project.org/lppl.txt
-%% 
-%% and version 1.3a or later is part of all distributions of LaTeX
-%% version 2004/10/01 or later.
-%% 
 %% To produce the documentation run the original source files ending with `.dtx'
 %% through LaTeX.
 %% 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
 \ProvidesClass{thuthesis}
-[2017/12/4 5.4.1 Tsinghua University Thesis Template]
+[2017/12/18 5.4.2 Tsinghua University Thesis Template]
 \hyphenation{Thu-Thesis}
 \def\thuthesis{\textsc{ThuThesis}}
-\def\version{5.4.1}
+\def\version{5.4.2}
 
 \RequirePackage{kvoptions}
 \SetupKeyvalOptions{
@@ -39,31 +37,22 @@
 \newif\ifthu at master
 \newif\ifthu at doctor
 \newif\ifthu at postdoctor
-\define at key{thu}{type}{%
+\define at key{thu}{degree}{%
   \thu at bachelorfalse
   \thu at masterfalse
   \thu at doctorfalse
   \thu at postdoctorfalse
-  \expandafter\csname thu@#1true\endcsname
-  \ifthu at bachelor\relax\else
-    \ifthu at master\relax\else
-      \ifthu at doctor\relax\else
-        \ifthu at postdoctor\relax\else
-          \ClassError{thuthesis}%
-                     {Please specify thesis type in option: \MessageBreak
-                      type=[bachelor | master | doctor | postdoctor]}{}
-        \fi
-      \fi
-    \fi
-  \fi}
-\def\thu at deprecated@type at option{%
-  \kvsetkeys{thu}{type=\CurrentOption} % for compatability.
+  \expandafter\csname thu@#1true\endcsname}
+\define at key{thu}{type}{%
+  \ClassError{thuthesis}{'type' is deprecated, \MessageBreak
+                         please use 'degree=#1' instead}{}}
+\def\thu at deprecated@degree at option{%
   \ClassError{thuthesis}{Option '\CurrentOption' is deprecated, \MessageBreak
-                         please use 'type=\CurrentOption' instead}{}}
-\DeclareVoidOption{bachelor}{\thu at deprecated@type at option}
-\DeclareVoidOption{master}{\thu at deprecated@type at option}
-\DeclareVoidOption{doctor}{\thu at deprecated@type at option}
-\DeclareVoidOption{postdoctor}{\thu at deprecated@type at option}
+                         please use 'degree=\CurrentOption' instead}{}}
+\DeclareVoidOption{bachelor}{\thu at deprecated@degree at option}
+\DeclareVoidOption{master}{\thu at deprecated@degree at option}
+\DeclareVoidOption{doctor}{\thu at deprecated@degree at option}
+\DeclareVoidOption{postdoctor}{\thu at deprecated@degree at option}
 \DeclareBoolOption{secret}
 \DeclareBoolOption{arialtoc}
 \DeclareBoolOption{arialtitle}
@@ -75,6 +64,17 @@
   raggedbottom,
   arialtitle}
 \ProcessKeyvalOptions*
+\ifthu at bachelor\relax\else
+  \ifthu at master\relax\else
+    \ifthu at doctor\relax\else
+      \ifthu at postdoctor\relax\else
+        \ClassError{thuthesis}%
+                   {Please specify thesis degree in option: \MessageBreak
+                    degree=[bachelor | master | doctor | postdoctor]}{}
+      \fi
+    \fi
+  \fi
+\fi
 \PassOptionsToPackage{no-math}{fontspec}
 \LoadClass[a4paper,openany,UTF8,zihao=-4,scheme=plain]{ctexbook}
 \RequirePackage{etoolbox}



More information about the tex-live-commits mailing list