texlive[47792] Master/texmf-dist: gbt7714 (22may18)

commits+karl at tug.org commits+karl at tug.org
Tue May 22 22:58:47 CEST 2018


Revision: 47792
          http://tug.org/svn/texlive?view=revision&revision=47792
Author:   karl
Date:     2018-05-22 22:58:47 +0200 (Tue, 22 May 2018)
Log Message:
-----------
gbt7714 (22may18)

Modified Paths:
--------------
    trunk/Master/texmf-dist/bibtex/bst/gbt7714/gbt7714-plain.bst
    trunk/Master/texmf-dist/bibtex/bst/gbt7714/gbt7714-unsrt.bst
    trunk/Master/texmf-dist/doc/bibtex/gbt7714/README.md
    trunk/Master/texmf-dist/doc/bibtex/gbt7714/gbt7714.pdf
    trunk/Master/texmf-dist/source/bibtex/gbt7714/gbt7714.dtx
    trunk/Master/texmf-dist/tex/latex/gbt7714/gbt7714.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/bibtex/gbt7714/LICENSE

Modified: trunk/Master/texmf-dist/bibtex/bst/gbt7714/gbt7714-plain.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/gbt7714/gbt7714-plain.bst	2018-05-22 00:23:33 UTC (rev 47791)
+++ trunk/Master/texmf-dist/bibtex/bst/gbt7714/gbt7714-plain.bst	2018-05-22 20:58:47 UTC (rev 47792)
@@ -9,18 +9,13 @@
 %% Copyright (C) 2016-2018 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:
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%    https://www.latex-project.org/lppl.txt
+%% and version 1.3c 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.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
@@ -55,7 +50,7 @@
 
 INTEGERS { lang.zh lang.ja lang.en lang.ru lang.other }
 
-INTEGERS { charptr stringlength }
+INTEGERS { charptr len }
 
 FUNCTION {init.state.consts}
 { #0 'before.all :=
@@ -273,28 +268,8 @@
   if$
 }
 
-INTEGERS { ascii }
+INTEGERS { byte second.byte }
 
-FUNCTION {get.char.lang}
-{ chr.to.int$ 'ascii :=
-  ascii #64 > ascii #91 < and ascii #96 > ascii #123 < and or
-    { lang.en }
-    { ascii #227 > ascii #234 < and
-        { lang.zh }
-        { ascii #227 =
-            { lang.ja }
-            { ascii #207 > ascii #212 < and
-                { lang.ru }
-                { lang.en }
-              if$
-            }
-          if$
-        }
-      if$
-    }
-  if$
-}
-
 INTEGERS { char.lang tmp.lang }
 
 STRINGS { tmp.str }
@@ -302,29 +277,67 @@
 FUNCTION {get.str.lang}
 { 'tmp.str :=
   lang.other 'tmp.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 tmp.lang >
-            { char.lang 'tmp.lang := }
-            'skip$
+  #1 'charptr :=
+  tmp.str text.length$ #1 + 'len :=
+    { charptr len < }
+    { tmp.str charptr #1 substring$ chr.to.int$ 'byte :=
+      byte #128 <
+        { charptr #1 + 'charptr :=
+          byte #64 > byte #91 < and byte #96 > byte #123 < and or
+            { lang.en 'char.lang := }
+            { lang.other 'char.lang := }
           if$
-
-          char.lang lang.zh = char.lang lang.ja = or
-            { charptr #3 + 'charptr := }
-            { char.lang lang.ru =
-                { charptr #2 + 'charptr := }
-                { charptr #1 + 'charptr := }
+        }
+        { tmp.str charptr #1 + #1 substring$ chr.to.int$ 'second.byte :=
+          byte #224 <
+            { charptr #2 + 'charptr :=
+              byte #207 > byte #212 < and
+              byte #212 = second.byte #176 < and or
+                { lang.ru 'char.lang := }
+                { lang.other 'char.lang := }
               if$
             }
+            { byte #240 <
+                { charptr #3 + 'charptr :=
+                  byte #227 > byte #234 < and
+                    { lang.zh 'char.lang := }
+                    { byte #227 =
+                        { second.byte #143 >
+                            { lang.zh 'char.lang := }
+                            { second.byte #128 > second.byte #132 < and
+                                { lang.ja 'char.lang := }
+                                { lang.other 'char.lang := }
+                              if$
+                            }
+                          if$
+                        }
+                        { byte #239 =
+                          second.byte #163 > second.byte #172 < and and
+                            { lang.zh 'char.lang := }
+                            { lang.other 'char.lang := }
+                          if$
+                        }
+                      if$
+                    }
+                  if$
+                }
+                { charptr #4 + 'charptr :=
+                  byte #240 = second.byte #159 > and
+                    { lang.zh 'char.lang := }
+                    { lang.other 'char.lang := }
+                  if$
+                }
+              if$
+            }
           if$
         }
-      while$
+      if$
+      char.lang tmp.lang >
+        { char.lang 'tmp.lang := }
+        'skip$
+      if$
     }
-  if$
+  while$
   tmp.lang
 }
 
@@ -427,27 +440,61 @@
 }
 
 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
+{ 's :=
+  s empty$
+    { #1 }
+    { url empty$
+        { #0 }
+        { s text.length$ 'len :=
+          url text.length$ 'charptr :=
+            { url charptr len substring$ s = not
+              charptr #0 >
+              and
+            }
+            { charptr #1 - 'charptr := }
+          while$
+          charptr
         }
-        { charptr #1 - 'charptr := }
-      while$
-      charptr
+      if$
     }
   if$
 }
 
 FUNCTION {format.doi}
-{ doi empty$
-    { "" }
-    { is.doi.in.url
+{ ""
+  doi empty$
+    'skip$
+    { "" 's :=
+      doi 't :=
+      #0 'numnames :=
+        { t empty$ not}
+        { t #1 #1 substring$ 'tmp.str :=
+          tmp.str "," = tmp.str " " = or t #2 #1 substring$ empty$ or
+            { t #2 #1 substring$ empty$
+                { s tmp.str * 's := }
+                'skip$
+              if$
+              s empty$ s is.doi.in.url or
+                'skip$
+                { numnames #1 + 'numnames :=
+                  numnames #1 >
+                    { ", " * }
+                    { "DOI: " * }
+                  if$
+                  "\doi{" s * "}" * *
+                }
+              if$
+              "" 's :=
+            }
+            { s tmp.str * 's := }
+          if$
+          t #2 global.max$ substring$ 't :=
+        }
+      while$
+      's :=
+      s empty$ not
+        { new.block s }
         { "" }
-        { new.block "\doi{" doi * "}" * }
       if$
     }
   if$
@@ -456,7 +503,12 @@
 FUNCTION {format.title}
 { title empty$
     { "" }
-    { title "t" change.case$ }
+    { title
+      entry.lang lang.en =
+        { "t" change.case$ }
+        'skip$
+      if$
+    }
   if$
 }
 
@@ -574,22 +626,15 @@
   before.all 'output.state :=
 }
 
-FUNCTION {n.dashify}
+FUNCTION {hyphenate}
 { 't :=
   ""
     { t empty$ not }
     { t #1 #1 substring$ "-" =
-        { t #1 #2 substring$ "--" = not
-            { "--" *
-              t #2 global.max$ substring$ 't :=
-            }
-            {   { t #1 #1 substring$ "-" = }
-                { "-" *
-                  t #2 global.max$ substring$ 't :=
-                }
-              while$
-            }
-          if$
+        { "-" *
+            { t #1 #1 substring$ "-" = }
+            { t #2 global.max$ substring$ 't := }
+          while$
         }
         { t #1 #1 substring$ *
           t #2 global.max$ substring$ 't :=
@@ -604,8 +649,8 @@
     { pop$ "" }
     { 's :=
       #1 'charptr :=
-      s text.length$ #1 + 'stringlength :=
-        { charptr stringlength <
+      s text.length$ #1 + 'len :=
+        { charptr len <
           s charptr #1 substring$ "-" = not
           and
         }
@@ -621,14 +666,14 @@
     { pop$ "" }
     { 's :=
       #1 'charptr :=
-      s text.length$ #1 + 'stringlength :=
-        { charptr stringlength <
+      s text.length$ #1 + 'len :=
+        { charptr len <
           s charptr #1 substring$ "-" = not
           and
         }
         { charptr #1 + 'charptr := }
       while$
-        { charptr stringlength <
+        { charptr len <
           s charptr #1 substring$ "-" =
           and
         }
@@ -749,7 +794,7 @@
     { "" }
     { volume is.number
         { is.in.chinese
-            { "第" volume * "卷" * }
+            { "第 " volume * " 卷" * }
             { "volume" volume tie.or.space.connect }
           if$
         }
@@ -764,7 +809,7 @@
     { "" }
     { number is.number
         { is.in.chinese
-            { "第" number * "册" * }
+            { "第 " number * " 册" * }
             { "number" number tie.or.space.connect }
           if$
         }
@@ -798,7 +843,10 @@
       if$
     }
   if$
-  "t" change.case$
+  entry.lang lang.en =
+    { "t" change.case$ }
+    'skip$
+  if$
 }
 
 FUNCTION {format.series.vol.num.booktitle}
@@ -842,7 +890,7 @@
     { "" }
     { edition is.number
         { is.in.chinese
-            { edition "版" * }
+            { edition " 版" * }
             { edition num.to.ordinal " ed." * }
           if$
         }
@@ -868,12 +916,9 @@
   if$
 }
 
-FUNCTION {format.address}
-{ address }
-
 FUNCTION {format.sine.nomine}
 { is.in.chinese
-    { "[出版地不详]" }
+    { "[出版者不详]" }
     { "[s.n.]" }
   if$
 }
@@ -935,7 +980,7 @@
 FUNCTION {format.pages}
 { pages empty$
     { "" }
-    { pages n.dashify }
+    { pages hyphenate }
   if$
 }
 
@@ -1397,8 +1442,6 @@
   "l" change.case$
 }
 
-INTEGERS { len }
-
 FUNCTION {chop.word}
 { 's :=
   'len :=
@@ -1742,7 +1785,7 @@
   write$ newline$
   "\providecommand{\href}[2]{\url{#2}}"
   write$ newline$
-  "\providecommand{\doi}[1]{DOI: \href{http://dx.doi.org/#1}{#1}}"
+  "\providecommand{\doi}[1]{\href{https://doi.org/#1}{#1}}"
   write$ newline$
   "\expandafter\ifx\csname urlstyle\endcsname\relax\relax\else"
   write$ newline$

Modified: trunk/Master/texmf-dist/bibtex/bst/gbt7714/gbt7714-unsrt.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/gbt7714/gbt7714-unsrt.bst	2018-05-22 00:23:33 UTC (rev 47791)
+++ trunk/Master/texmf-dist/bibtex/bst/gbt7714/gbt7714-unsrt.bst	2018-05-22 20:58:47 UTC (rev 47792)
@@ -9,18 +9,13 @@
 %% Copyright (C) 2016-2018 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:
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%    https://www.latex-project.org/lppl.txt
+%% and version 1.3c 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.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
@@ -55,7 +50,7 @@
 
 INTEGERS { lang.zh lang.ja lang.en lang.ru lang.other }
 
-INTEGERS { charptr stringlength }
+INTEGERS { charptr len }
 
 FUNCTION {init.state.consts}
 { #0 'before.all :=
@@ -273,28 +268,8 @@
   if$
 }
 
-INTEGERS { ascii }
+INTEGERS { byte second.byte }
 
-FUNCTION {get.char.lang}
-{ chr.to.int$ 'ascii :=
-  ascii #64 > ascii #91 < and ascii #96 > ascii #123 < and or
-    { lang.en }
-    { ascii #227 > ascii #234 < and
-        { lang.zh }
-        { ascii #227 =
-            { lang.ja }
-            { ascii #207 > ascii #212 < and
-                { lang.ru }
-                { lang.en }
-              if$
-            }
-          if$
-        }
-      if$
-    }
-  if$
-}
-
 INTEGERS { char.lang tmp.lang }
 
 STRINGS { tmp.str }
@@ -302,29 +277,67 @@
 FUNCTION {get.str.lang}
 { 'tmp.str :=
   lang.other 'tmp.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 tmp.lang >
-            { char.lang 'tmp.lang := }
-            'skip$
+  #1 'charptr :=
+  tmp.str text.length$ #1 + 'len :=
+    { charptr len < }
+    { tmp.str charptr #1 substring$ chr.to.int$ 'byte :=
+      byte #128 <
+        { charptr #1 + 'charptr :=
+          byte #64 > byte #91 < and byte #96 > byte #123 < and or
+            { lang.en 'char.lang := }
+            { lang.other 'char.lang := }
           if$
-
-          char.lang lang.zh = char.lang lang.ja = or
-            { charptr #3 + 'charptr := }
-            { char.lang lang.ru =
-                { charptr #2 + 'charptr := }
-                { charptr #1 + 'charptr := }
+        }
+        { tmp.str charptr #1 + #1 substring$ chr.to.int$ 'second.byte :=
+          byte #224 <
+            { charptr #2 + 'charptr :=
+              byte #207 > byte #212 < and
+              byte #212 = second.byte #176 < and or
+                { lang.ru 'char.lang := }
+                { lang.other 'char.lang := }
               if$
             }
+            { byte #240 <
+                { charptr #3 + 'charptr :=
+                  byte #227 > byte #234 < and
+                    { lang.zh 'char.lang := }
+                    { byte #227 =
+                        { second.byte #143 >
+                            { lang.zh 'char.lang := }
+                            { second.byte #128 > second.byte #132 < and
+                                { lang.ja 'char.lang := }
+                                { lang.other 'char.lang := }
+                              if$
+                            }
+                          if$
+                        }
+                        { byte #239 =
+                          second.byte #163 > second.byte #172 < and and
+                            { lang.zh 'char.lang := }
+                            { lang.other 'char.lang := }
+                          if$
+                        }
+                      if$
+                    }
+                  if$
+                }
+                { charptr #4 + 'charptr :=
+                  byte #240 = second.byte #159 > and
+                    { lang.zh 'char.lang := }
+                    { lang.other 'char.lang := }
+                  if$
+                }
+              if$
+            }
           if$
         }
-      while$
+      if$
+      char.lang tmp.lang >
+        { char.lang 'tmp.lang := }
+        'skip$
+      if$
     }
-  if$
+  while$
   tmp.lang
 }
 
@@ -427,27 +440,61 @@
 }
 
 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
+{ 's :=
+  s empty$
+    { #1 }
+    { url empty$
+        { #0 }
+        { s text.length$ 'len :=
+          url text.length$ 'charptr :=
+            { url charptr len substring$ s = not
+              charptr #0 >
+              and
+            }
+            { charptr #1 - 'charptr := }
+          while$
+          charptr
         }
-        { charptr #1 - 'charptr := }
-      while$
-      charptr
+      if$
     }
   if$
 }
 
 FUNCTION {format.doi}
-{ doi empty$
-    { "" }
-    { is.doi.in.url
+{ ""
+  doi empty$
+    'skip$
+    { "" 's :=
+      doi 't :=
+      #0 'numnames :=
+        { t empty$ not}
+        { t #1 #1 substring$ 'tmp.str :=
+          tmp.str "," = tmp.str " " = or t #2 #1 substring$ empty$ or
+            { t #2 #1 substring$ empty$
+                { s tmp.str * 's := }
+                'skip$
+              if$
+              s empty$ s is.doi.in.url or
+                'skip$
+                { numnames #1 + 'numnames :=
+                  numnames #1 >
+                    { ", " * }
+                    { "DOI: " * }
+                  if$
+                  "\doi{" s * "}" * *
+                }
+              if$
+              "" 's :=
+            }
+            { s tmp.str * 's := }
+          if$
+          t #2 global.max$ substring$ 't :=
+        }
+      while$
+      's :=
+      s empty$ not
+        { new.block s }
         { "" }
-        { new.block "\doi{" doi * "}" * }
       if$
     }
   if$
@@ -456,7 +503,12 @@
 FUNCTION {format.title}
 { title empty$
     { "" }
-    { title "t" change.case$ }
+    { title
+      entry.lang lang.en =
+        { "t" change.case$ }
+        'skip$
+      if$
+    }
   if$
 }
 
@@ -574,22 +626,15 @@
   before.all 'output.state :=
 }
 
-FUNCTION {n.dashify}
+FUNCTION {hyphenate}
 { 't :=
   ""
     { t empty$ not }
     { t #1 #1 substring$ "-" =
-        { t #1 #2 substring$ "--" = not
-            { "--" *
-              t #2 global.max$ substring$ 't :=
-            }
-            {   { t #1 #1 substring$ "-" = }
-                { "-" *
-                  t #2 global.max$ substring$ 't :=
-                }
-              while$
-            }
-          if$
+        { "-" *
+            { t #1 #1 substring$ "-" = }
+            { t #2 global.max$ substring$ 't := }
+          while$
         }
         { t #1 #1 substring$ *
           t #2 global.max$ substring$ 't :=
@@ -604,8 +649,8 @@
     { pop$ "" }
     { 's :=
       #1 'charptr :=
-      s text.length$ #1 + 'stringlength :=
-        { charptr stringlength <
+      s text.length$ #1 + 'len :=
+        { charptr len <
           s charptr #1 substring$ "-" = not
           and
         }
@@ -621,14 +666,14 @@
     { pop$ "" }
     { 's :=
       #1 'charptr :=
-      s text.length$ #1 + 'stringlength :=
-        { charptr stringlength <
+      s text.length$ #1 + 'len :=
+        { charptr len <
           s charptr #1 substring$ "-" = not
           and
         }
         { charptr #1 + 'charptr := }
       while$
-        { charptr stringlength <
+        { charptr len <
           s charptr #1 substring$ "-" =
           and
         }
@@ -749,7 +794,7 @@
     { "" }
     { volume is.number
         { is.in.chinese
-            { "第" volume * "卷" * }
+            { "第 " volume * " 卷" * }
             { "volume" volume tie.or.space.connect }
           if$
         }
@@ -764,7 +809,7 @@
     { "" }
     { number is.number
         { is.in.chinese
-            { "第" number * "册" * }
+            { "第 " number * " 册" * }
             { "number" number tie.or.space.connect }
           if$
         }
@@ -798,7 +843,10 @@
       if$
     }
   if$
-  "t" change.case$
+  entry.lang lang.en =
+    { "t" change.case$ }
+    'skip$
+  if$
 }
 
 FUNCTION {format.series.vol.num.booktitle}
@@ -842,7 +890,7 @@
     { "" }
     { edition is.number
         { is.in.chinese
-            { edition "版" * }
+            { edition " 版" * }
             { edition num.to.ordinal " ed." * }
           if$
         }
@@ -868,12 +916,9 @@
   if$
 }
 
-FUNCTION {format.address}
-{ address }
-
 FUNCTION {format.sine.nomine}
 { is.in.chinese
-    { "[出版地不详]" }
+    { "[出版者不详]" }
     { "[s.n.]" }
   if$
 }
@@ -935,7 +980,7 @@
 FUNCTION {format.pages}
 { pages empty$
     { "" }
-    { pages n.dashify }
+    { pages hyphenate }
   if$
 }
 
@@ -1399,8 +1444,6 @@
   "l" change.case$
 }
 
-INTEGERS { len }
-
 FUNCTION {chop.word}
 { 's :=
   'len :=
@@ -1612,7 +1655,7 @@
   write$ newline$
   "\providecommand{\href}[2]{\url{#2}}"
   write$ newline$
-  "\providecommand{\doi}[1]{DOI: \href{http://dx.doi.org/#1}{#1}}"
+  "\providecommand{\doi}[1]{\href{https://doi.org/#1}{#1}}"
   write$ newline$
   "\expandafter\ifx\csname urlstyle\endcsname\relax\relax\else"
   write$ newline$

Added: trunk/Master/texmf-dist/doc/bibtex/gbt7714/LICENSE
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/gbt7714/LICENSE	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/bibtex/gbt7714/LICENSE	2018-05-22 20:58:47 UTC (rev 47792)
@@ -0,0 +1,416 @@
+The LaTeX Project Public License
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+LPPL Version 1.3c  2008-05-04
+
+Copyright 1999 2002-2008 LaTeX3 Project
+    Everyone is allowed to distribute verbatim copies of this
+    license document, but modification of it is not allowed.
+
+
+PREAMBLE
+========
+
+The LaTeX Project Public License (LPPL) is the primary license under
+which the LaTeX kernel and the base LaTeX packages are distributed.
+
+You may use this license for any work of which you hold the copyright
+and which you wish to distribute.  This license may be particularly
+suitable if your work is TeX-related (such as a LaTeX package), but 
+it is written in such a way that you can use it even if your work is 
+unrelated to TeX.
+
+The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
+below, gives instructions, examples, and recommendations for authors
+who are considering distributing their works under this license.
+
+This license gives conditions under which a work may be distributed
+and modified, as well as conditions under which modified versions of
+that work may be distributed.
+
+We, the LaTeX3 Project, believe that the conditions below give you
+the freedom to make and distribute modified versions of your work
+that conform with whatever technical specifications you wish while
+maintaining the availability, integrity, and reliability of
+that work.  If you do not see how to achieve your goal while
+meeting these conditions, then read the document `cfgguide.tex'
+and `modguide.tex' in the base LaTeX distribution for suggestions.
+
+
+DEFINITIONS
+===========
+
+In this license document the following terms are used:
+
+   `Work'
+    Any work being distributed under this License.
+    
+   `Derived Work'
+    Any work that under any applicable law is derived from the Work.
+
+   `Modification' 
+    Any procedure that produces a Derived Work under any applicable
+    law -- for example, the production of a file containing an
+    original file associated with the Work or a significant portion of
+    such a file, either verbatim or with modifications and/or
+    translated into another language.
+
+   `Modify'
+    To apply any procedure that produces a Derived Work under any
+    applicable law.
+    
+   `Distribution'
+    Making copies of the Work available from one person to another, in
+    whole or in part.  Distribution includes (but is not limited to)
+    making any electronic components of the Work accessible by
+    file transfer protocols such as FTP or HTTP or by shared file
+    systems such as Sun's Network File System (NFS).
+
+   `Compiled Work'
+    A version of the Work that has been processed into a form where it
+    is directly usable on a computer system.  This processing may
+    include using installation facilities provided by the Work,
+    transformations of the Work, copying of components of the Work, or
+    other activities.  Note that modification of any installation
+    facilities provided by the Work constitutes modification of the Work.
+
+   `Current Maintainer'
+    A person or persons nominated as such within the Work.  If there is
+    no such explicit nomination then it is the `Copyright Holder' under
+    any applicable law.
+
+   `Base Interpreter' 
+    A program or process that is normally needed for running or
+    interpreting a part or the whole of the Work.    
+
+    A Base Interpreter may depend on external components but these
+    are not considered part of the Base Interpreter provided that each
+    external component clearly identifies itself whenever it is used
+    interactively.  Unless explicitly specified when applying the
+    license to the Work, the only applicable Base Interpreter is a
+    `LaTeX-Format' or in the case of files belonging to the 
+    `LaTeX-format' a program implementing the `TeX language'.
+
+
+
+CONDITIONS ON DISTRIBUTION AND MODIFICATION
+===========================================
+
+1.  Activities other than distribution and/or modification of the Work
+are not covered by this license; they are outside its scope.  In
+particular, the act of running the Work is not restricted and no
+requirements are made concerning any offers of support for the Work.
+
+2.  You may distribute a complete, unmodified copy of the Work as you
+received it.  Distribution of only part of the Work is considered
+modification of the Work, and no right to distribute such a Derived
+Work may be assumed under the terms of this clause.
+
+3.  You may distribute a Compiled Work that has been generated from a
+complete, unmodified copy of the Work as distributed under Clause 2
+above, as long as that Compiled Work is distributed in such a way that
+the recipients may install the Compiled Work on their system exactly
+as it would have been installed if they generated a Compiled Work
+directly from the Work.
+
+4.  If you are the Current Maintainer of the Work, you may, without
+restriction, modify the Work, thus creating a Derived Work.  You may
+also distribute the Derived Work without restriction, including
+Compiled Works generated from the Derived Work.  Derived Works
+distributed in this manner by the Current Maintainer are considered to
+be updated versions of the Work.
+
+5.  If you are not the Current Maintainer of the Work, you may modify
+your copy of the Work, thus creating a Derived Work based on the Work,
+and compile this Derived Work, thus creating a Compiled Work based on
+the Derived Work.
+
+6.  If you are not the Current Maintainer of the Work, you may
+distribute a Derived Work provided the following conditions are met
+for every component of the Work unless that component clearly states
+in the copyright notice that it is exempt from that condition.  Only
+the Current Maintainer is allowed to add such statements of exemption 
+to a component of the Work. 
+
+  a. If a component of this Derived Work can be a direct replacement
+     for a component of the Work when that component is used with the
+     Base Interpreter, then, wherever this component of the Work
+     identifies itself to the user when used interactively with that
+     Base Interpreter, the replacement component of this Derived Work
+     clearly and unambiguously identifies itself as a modified version
+     of this component to the user when used interactively with that
+     Base Interpreter.
+     
+  b. Every component of the Derived Work contains prominent notices
+     detailing the nature of the changes to that component, or a
+     prominent reference to another file that is distributed as part
+     of the Derived Work and that contains a complete and accurate log
+     of the changes.
+  
+  c. No information in the Derived Work implies that any persons,
+     including (but not limited to) the authors of the original version
+     of the Work, provide any support, including (but not limited to)
+     the reporting and handling of errors, to recipients of the
+     Derived Work unless those persons have stated explicitly that
+     they do provide such support for the Derived Work.
+
+  d. You distribute at least one of the following with the Derived Work:
+
+       1. A complete, unmodified copy of the Work; 
+          if your distribution of a modified component is made by
+          offering access to copy the modified component from a
+          designated place, then offering equivalent access to copy
+          the Work from the same or some similar place meets this
+          condition, even though third parties are not compelled to
+          copy the Work along with the modified component;
+
+       2. Information that is sufficient to obtain a complete,
+          unmodified copy of the Work.
+
+7.  If you are not the Current Maintainer of the Work, you may
+distribute a Compiled Work generated from a Derived Work, as long as
+the Derived Work is distributed to all recipients of the Compiled
+Work, and as long as the conditions of Clause 6, above, are met with
+regard to the Derived Work.
+
+8.  The conditions above are not intended to prohibit, and hence do not
+apply to, the modification, by any method, of any component so that it
+becomes identical to an updated version of that component of the Work as
+it is distributed by the Current Maintainer under Clause 4, above.
+
+9.  Distribution of the Work or any Derived Work in an alternative
+format, where the Work or that Derived Work (in whole or in part) is
+then produced by applying some process to that format, does not relax or
+nullify any sections of this license as they pertain to the results of
+applying that process.
+     
+10. a. A Derived Work may be distributed under a different license
+       provided that license itself honors the conditions listed in
+       Clause 6 above, in regard to the Work, though it does not have
+       to honor the rest of the conditions in this license.
+      
+    b. If a Derived Work is distributed under a different license, that
+       Derived Work must provide sufficient documentation as part of
+       itself to allow each recipient of that Derived Work to honor the 
+       restrictions in Clause 6 above, concerning changes from the Work.
+
+11. This license places no restrictions on works that are unrelated to
+the Work, nor does this license place any restrictions on aggregating
+such works with the Work by any means.
+
+12.  Nothing in this license is intended to, or may be used to, prevent
+complete compliance by all parties with all applicable laws.
+
+
+NO WARRANTY
+===========
+
+There is no warranty for the Work.  Except when otherwise stated in
+writing, the Copyright Holder provides the Work `as is', without
+warranty of any kind, either expressed or implied, including, but not
+limited to, the implied warranties of merchantability and fitness for a
+particular purpose.  The entire risk as to the quality and performance
+of the Work is with you.  Should the Work prove defective, you assume
+the cost of all necessary servicing, repair, or correction.
+
+In no event unless required by applicable law or agreed to in writing
+will The Copyright Holder, or any author named in the components of the
+Work, or any other party who may distribute and/or modify the Work as
+permitted above, be liable to you for damages, including any general,
+special, incidental or consequential damages arising out of any use of
+the Work or out of inability to use the Work (including, but not limited
+to, loss of data, data being rendered inaccurate, or losses sustained by
+anyone as a result of any failure of the Work to operate with any other
+programs), even if the Copyright Holder or said author or said other
+party has been advised of the possibility of such damages.
+
+
+MAINTENANCE OF THE WORK
+=======================
+
+The Work has the status `author-maintained' if the Copyright Holder
+explicitly and prominently states near the primary copyright notice in
+the Work that the Work can only be maintained by the Copyright Holder
+or simply that it is `author-maintained'.
+
+The Work has the status `maintained' if there is a Current Maintainer
+who has indicated in the Work that they are willing to receive error
+reports for the Work (for example, by supplying a valid e-mail
+address). It is not required for the Current Maintainer to acknowledge
+or act upon these error reports.
+
+The Work changes from status `maintained' to `unmaintained' if there
+is no Current Maintainer, or the person stated to be Current
+Maintainer of the work cannot be reached through the indicated means
+of communication for a period of six months, and there are no other
+significant signs of active maintenance.
+
+You can become the Current Maintainer of the Work by agreement with
+any existing Current Maintainer to take over this role.
+
+If the Work is unmaintained, you can become the Current Maintainer of
+the Work through the following steps:
+
+ 1.  Make a reasonable attempt to trace the Current Maintainer (and
+     the Copyright Holder, if the two differ) through the means of
+     an Internet or similar search.
+
+ 2.  If this search is successful, then enquire whether the Work
+     is still maintained.
+
+  a. If it is being maintained, then ask the Current Maintainer
+     to update their communication data within one month.
+     
+  b. If the search is unsuccessful or no action to resume active
+     maintenance is taken by the Current Maintainer, then announce
+     within the pertinent community your intention to take over
+     maintenance.  (If the Work is a LaTeX work, this could be
+     done, for example, by posting to comp.text.tex.)
+
+ 3a. If the Current Maintainer is reachable and agrees to pass
+     maintenance of the Work to you, then this takes effect
+     immediately upon announcement.
+     
+  b. If the Current Maintainer is not reachable and the Copyright
+     Holder agrees that maintenance of the Work be passed to you,
+     then this takes effect immediately upon announcement.  
+    
+ 4.  If you make an `intention announcement' as described in 2b. above
+     and after three months your intention is challenged neither by
+     the Current Maintainer nor by the Copyright Holder nor by other
+     people, then you may arrange for the Work to be changed so as
+     to name you as the (new) Current Maintainer.
+     
+ 5.  If the previously unreachable Current Maintainer becomes
+     reachable once more within three months of a change completed
+     under the terms of 3b) or 4), then that Current Maintainer must
+     become or remain the Current Maintainer upon request provided
+     they then update their communication data within one month.
+
+A change in the Current Maintainer does not, of itself, alter the fact
+that the Work is distributed under the LPPL license.
+
+If you become the Current Maintainer of the Work, you should
+immediately provide, within the Work, a prominent and unambiguous
+statement of your status as Current Maintainer.  You should also
+announce your new status to the same pertinent community as
+in 2b) above.
+
+
+WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE
+======================================================
+
+This section contains important instructions, examples, and
+recommendations for authors who are considering distributing their
+works under this license.  These authors are addressed as `you' in
+this section.
+
+Choosing This License or Another License
+----------------------------------------
+
+If for any part of your work you want or need to use *distribution*
+conditions that differ significantly from those in this license, then
+do not refer to this license anywhere in your work but, instead,
+distribute your work under a different license.  You may use the text
+of this license as a model for your own license, but your license
+should not refer to the LPPL or otherwise give the impression that
+your work is distributed under the LPPL.
+
+The document `modguide.tex' in the base LaTeX distribution explains
+the motivation behind the conditions of this license.  It explains,
+for example, why distributing LaTeX under the GNU General Public
+License (GPL) was considered inappropriate.  Even if your work is
+unrelated to LaTeX, the discussion in `modguide.tex' may still be
+relevant, and authors intending to distribute their works under any
+license are encouraged to read it.
+
+A Recommendation on Modification Without Distribution
+-----------------------------------------------------
+
+It is wise never to modify a component of the Work, even for your own
+personal use, without also meeting the above conditions for
+distributing the modified component.  While you might intend that such
+modifications will never be distributed, often this will happen by
+accident -- you may forget that you have modified that component; or
+it may not occur to you when allowing others to access the modified
+version that you are thus distributing it and violating the conditions
+of this license in ways that could have legal implications and, worse,
+cause problems for the community.  It is therefore usually in your
+best interest to keep your copy of the Work identical with the public
+one.  Many works provide ways to control the behavior of that work
+without altering any of its licensed components.
+
+How to Use This License
+-----------------------
+
+To use this license, place in each of the components of your work both
+an explicit copyright notice including your name and the year the work
+was authored and/or last substantially modified.  Include also a
+statement that the distribution and/or modification of that
+component is constrained by the conditions in this license.
+
+Here is an example of such a notice and statement:
+
+  %% pig.dtx
+  %% Copyright 2005 M. Y. Name
+  %
+  % 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
+  %   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.
+  %
+  % This work has the LPPL maintenance status `maintained'.
+  % 
+  % The Current Maintainer of this work is M. Y. Name.
+  %
+  % This work consists of the files pig.dtx and pig.ins
+  % and the derived file pig.sty.
+
+Given such a notice and statement in a file, the conditions
+given in this license document would apply, with the `Work' referring
+to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
+generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
+referring to any `LaTeX-Format', and both `Copyright Holder' and
+`Current Maintainer' referring to the person `M. Y. Name'.
+
+If you do not want the Maintenance section of LPPL to apply to your
+Work, change `maintained' above into `author-maintained'.  
+However, we recommend that you use `maintained', as the Maintenance
+section was added in order to ensure that your Work remains useful to
+the community even when you can no longer maintain and support it
+yourself.
+
+Derived Works That Are Not Replacements
+---------------------------------------
+
+Several clauses of the LPPL specify means to provide reliability and
+stability for the user community. They therefore concern themselves
+with the case that a Derived Work is intended to be used as a
+(compatible or incompatible) replacement of the original Work. If
+this is not the case (e.g., if a few lines of code are reused for a
+completely different task), then clauses 6b and 6d shall not apply.
+
+
+Important Recommendations
+-------------------------
+
+ Defining What Constitutes the Work
+
+   The LPPL requires that distributions of the Work contain all the
+   files of the Work.  It is therefore important that you provide a
+   way for the licensee to determine which files constitute the Work.
+   This could, for example, be achieved by explicitly listing all the
+   files of the Work near the copyright notice of each file or by
+   using a line such as:
+
+    % This work consists of all files listed in manifest.txt.
+   
+   in that place.  In the absence of an unequivocal list it might be
+   impossible for the licensee to determine what is considered by you
+   to comprise the Work and, in such a case, the licensee would be
+   entitled to make reasonable conjectures as to which files comprise
+   the Work.
+

Modified: trunk/Master/texmf-dist/doc/bibtex/gbt7714/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/gbt7714/README.md	2018-05-22 00:23:33 UTC (rev 47791)
+++ trunk/Master/texmf-dist/doc/bibtex/gbt7714/README.md	2018-05-22 20:58:47 UTC (rev 47792)
@@ -2,8 +2,7 @@
 
 [![Travis build](https://travis-ci.org/zepinglee/gbt7714-bibtex-style.svg?branch=master)](https://travis-ci.org/zepinglee/gbt7714-bibtex-style)
 [![GitHub release](https://img.shields.io/github/release/zepinglee/gbt7714-bibtex-style/all.svg)](https://github.com/zepinglee/gbt7714-bibtex-style/releases/latest)
-[![Github downloads](https://img.shields.io/github/downloads/zepinglee/gbt7714-bibtex-style/total.svg)](https://github.com/zepinglee/gbt7714-bibtex-style/releases)
-[![GitHub commits](https://img.shields.io/github/commits-since/zepinglee/gbt7714-bibtex-style/v1.0.svg)](https://github.com/zepinglee/gbt7714-bibtex-style/commits/master)
+[![GitHub commits](https://img.shields.io/github/commits-since/zepinglee/gbt7714-bibtex-style/latest.svg)](https://github.com/zepinglee/gbt7714-bibtex-style/commits/master)
 
 
 ## 新特性
@@ -98,9 +97,10 @@
 拼音(用于排序)       | `key`
 
 注:
-- 带 “\*” 的类型不是 natbib 原生支持的。
+- 其中带星号的不是 BibTeX/natbib 的标准著录项目。
+- 不支持的 BibTeX 标准著录项目有 annote, chapter, crossref, howpublished,
+month, note, type。
 
-
 ## 参考文献著录标准
 
 - [GB/T 7714-2015 信息与文献 参考文献著录规则.pdf](https://github.com/Haixing-Hu/GBT7714-2005-BibTeX-Style/files/153951/GBT.7714-2015.pdf)

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

Modified: trunk/Master/texmf-dist/source/bibtex/gbt7714/gbt7714.dtx
===================================================================
--- trunk/Master/texmf-dist/source/bibtex/gbt7714/gbt7714.dtx	2018-05-22 00:23:33 UTC (rev 47791)
+++ trunk/Master/texmf-dist/source/bibtex/gbt7714/gbt7714.dtx	2018-05-22 20:58:47 UTC (rev 47792)
@@ -3,18 +3,13 @@
 % Copyright (C) 2016-2018 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:
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%    https://www.latex-project.org/lppl.txt
+% and version 1.3c 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.2 or later is part of all distributions of
-% LaTeX version 1999/12/01 or later.
-%
-% This file is derived from both `btxbst.doc' by Oren Patashnik and
-% `plainnat.bst' by Patrick W Daly.
-%
 %<*internal>
 \iffalse
 \fi
@@ -30,28 +25,22 @@
 Copyright (C) 2016-\the\year 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:
+conditions of the LaTeX Project Public License, either version 1.3c
+of this license or (at your option) any later version.
+The latest version of this license is in
+   https://www.latex-project.org/lppl.txt
+and version 1.3c 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.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.
-
 \endpreamble
 \keepsilent
 \askforoverwritefalse
 \nopostamble
 \generate{
-    \file{\jobname.sty}{\from{\jobname.dtx}{package}}
-    \file{\jobname-plain.bst}{\from{\jobname.dtx}{authoryear}}
-    \file{\jobname-unsrt.bst}{\from{\jobname.dtx}{numerical}}
+  \file{\jobname.sty}{\from{\jobname.dtx}{package}}
+  \file{\jobname-plain.bst}{\from{\jobname.dtx}{authoryear}}
+  \file{\jobname-unsrt.bst}{\from{\jobname.dtx}{numerical}}
 }
-\Msg{* Happy TeXing!}
 \endbatchfile
 %</install>
 %<*internal>
@@ -58,12 +47,12 @@
 \fi
 %</internal>
 %<*driver>
-\ProvidesFile{gbt7714.dtx}
+\ProvidesFile{\jobname.dtx}
 %</driver>
 %<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
 %<package>\ProvidesPackage{gbt7714}
 %<*package>
-    [2018/03/16 v1.0.3 GB/T 7714-2015 BibTeX Style]
+  [2018/05/12 v1.0.7 GB/T 7714-2015 BibTeX Style]
 %</package>
 %
 %<*driver>
@@ -99,6 +88,23 @@
 \renewcommand\glossaryname{版本历史}
 \GlossaryPrologue{\section*{\glossaryname}}
 \renewcommand\indexname{命令索引}
+\makeatletter
+\renewcommand*{\changes@}[3]{%
+  \protected at edef\@tempa{%
+    \noexpand\glossary{#1 (#2)\levelchar
+      \ifx\saved at macroname\@empty
+        \space\actualchar\generalname
+      \else
+        \expandafter\@gobble\saved at macroname
+        \actualchar
+        \string\verb\quotechar*\verbatimchar\saved at macroname\verbatimchar
+      \fi
+      :\levelchar #3}}%
+  \@tempa
+  \endgroup
+  \@esphack
+}
+\makeatother
 \EnableCrossrefs
 \CodelineIndex
 \RecordChanges
@@ -105,7 +111,7 @@
 \OnlyDescription
 
 \begin{document}
-  \DocInput{gbt7714.dtx}
+  \DocInput{\jobname.dtx}
   \PrintChanges
   \PrintIndex
 \end{document}
@@ -130,20 +136,10 @@
 %   Grave accent  \`     Left brace    \{     Vertical bar  \|
 %   Right brace   \}     Tilde         \~}
 %
-% \DoNotIndex{%
-%   \a,\b,\c,\d,\e,\f,\g,\h,\i,\j,%
-%   \k,\l,\m,\n,\o,\p,\q,\r,\s,\t,%
-%   \u,\v,\w,\x,\y,\z,%
-%   \A,\B,\C,\D,\E,\F,\G,\H,\I,\J,%
-%   \K,\L,\M,\N,\O,\P,\Q,\R,\S,\T,%
-%   \U,\V,\W,\X,\Y,\Z,%
-%   \1,\2,\3,\4,\5,\6,\7,\8,\9,\0,%
-% }
 %
 %
+% \GetFileInfo{\jobname.dtx}
 %
-% \GetFileInfo{gbt7714.dtx}
-%
 % \title{GB/T 7714-2015 \BibTeX{} style}
 % \author{Zeping Lee\thanks{zepinglee AT gmail.com}}
 % \date{\filedate\qquad\fileversion}
@@ -150,6 +146,14 @@
 % \maketitle
 %
 % \changes{v1.0}{2018/01/01}{Initial release.}
+% \changes{v1.0.1}{2018/03/09}{著者出版年制的文献引用不再排序}
+% \changes{v1.0.2}{2017/03/16}{正确识别姓名中的“others”}
+% \changes{v1.0.3}{2018/03/29}{顺序编码制连续两个文献引用之间使用连接号}
+% \changes{v1.0.4}{2018/04/12}{页码的连接号由 en dash 改为 hyphen}
+% \changes{v1.0.5}{2018/04/18}{允许著录多个 DOI}
+% \changes{v1.0.6}{2018/05/10}{不再处理中文标题的英文单词的大小写}
+% \changes{v1.0.6}{2018/05/10}{文献列表的数字标签左对齐}
+% \changes{v1.0.7}{2018/05/12}{修正了检测 Unicode 语言}
 %
 %
 % \section{简介}
@@ -164,13 +168,8 @@
 % \end{itemize}
 %
 %
-% \section{相关工作}
+% \section{使用方法}
 %
-% TeX 社区一直在努力实现国家的参考文献推荐标准。2005 年
-%
-%
-% \section{使用宏包}
-%
 % 首先应在导言区调用宏包 \pkg{gbt7714} ,可以选择的参数如
 % 表~\ref{tab:options}。
 %
@@ -244,7 +243,7 @@
 %
 % \section{著录项目}
 %
-% 以下列出了本宏包支持的全部著录项目。
+% 表~\ref{tab:fields} 列出了本宏包支持的全部著录项目。
 %
 % \begin{table}[htbp]
 %   \centering
@@ -275,16 +274,18 @@
 %     引用日期               & urldate* \\
 %     获取和访问路径         & url \\
 %     数字对象唯一标识符     & doi \\
+%     语言                   & language* \\
 %     拼音(用于排序)       & key \\
-%     语言                   & language* \\
 %     \bottomrule
 %   \end{tabular}
-%   \caption{全部著录项目,其中带星号的不是 \BibTeX{}/natbib 的标准著录项目。}
+%   \caption{全部著录项目,其中带星号的不是 \BibTeX{}/natbib 的标准著录项目。
+%     不支持的 \BibTeX{} 标准著录项目有 annote, chapter, crossref,
+%     howpublished, month, note, type。}
 %   \label{tab:fields}
 % \end{table}
 %
-% 由于《规则》中要的著录项目比 \BibTeX{} 支持的要多,新增的项目尽可能同
-% BibLaTeX 一致,如 date 和 urldate。
+% 由于《规则》中要求的著录项目比 \BibTeX{} 支持的要多,必须新增一些著录项目,
+% 这些新增的类型在设计时参考了 BibLaTeX,如 date 和 urldate。
 %
 % 本宏包默认情况下可以自动识别文献语言,并自动处理文献类型和载体类型标识,
 % 但是在少数情况下需要用户手动指定,如:
@@ -298,6 +299,7 @@
 % 可选的语言有 english, chinese, japanese, russian,
 % 目前对日语和俄语的支持较为有限。
 %
+%
 % \section{参考文献列表的排序}
 %
 % 在使用著者-出版年制时,需要将中文参考文献按照拼音或者笔画排序,然而 Unicode
@@ -311,6 +313,8 @@
 %   ...
 % \end{latex}
 %
+%
+%
 % \StopEventually{}
 %
 % \section{Package}
@@ -328,25 +332,6 @@
 \ProcessOptions\relax
 %    \end{macrocode}
 %
-% 需要 \pkg{url} 宏包。
-%    \begin{macrocode}
-\RequirePackage{url}
-%    \end{macrocode}
-%
-% 增加 URL 可断行的位置。
-%    \begin{macrocode}
-\g at addto@macro\UrlBreaks{%
-  \do\a\do\b\do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j%
-  \do\k\do\l\do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t%
-  \do\u\do\v\do\w\do\x\do\y\do\z%
-  \do\A\do\B\do\C\do\D\do\E\do\F\do\G\do\H\do\I\do\J%
-  \do\K\do\L\do\M\do\N\do\O\do\P\do\Q\do\R\do\S\do\T%
-  \do\U\do\V\do\W\do\X\do\Y\do\Z%
-  \do\1\do\2\do\3\do\4\do\5\do\6\do\7\do\8\do\9\do\0%
-}
-%    \end{macrocode}
-%
-% \changes{v1.0.1}{2018/03/09}{在 author-year 模式下不再对引用排序。}
 % 只在顺序编码时使用 \opt{sort\&compress}。
 %    \begin{macrocode}
 \if at gbt@numerical
@@ -444,7 +429,8 @@
         #1\NAT@@close\if*#3*\else\textsuperscript{#3}\fi\else#1\fi\endgroup}
 %    \end{macrocode}
 %
-% \changes{v1.0.3}{2018/03/29}{顺序编码制连续两个文献引用之间使用连接号}
+% 在顺序编码制下,\pkg{natbib} 只有在三个以上连续文献引用才会使用连接号,
+% 这里修改为允许两个引用使用连接号。
 %    \begin{macrocode}
 \patchcmd{\NAT at citexnum}{%
   \ifx\NAT at last@yr\relax
@@ -453,11 +439,35 @@
     \def at NAT@last at yr{--\NAT at penalty}%
   \fi
 }{%
-  \def at NAT@last at yr{--\NAT at penalty}%
+  \def at NAT@last at yr{-\NAT at penalty}%
 }{}{}
+%    \end{macrocode}
+%
+% 参考文献列表的标签左对齐
+%    \begin{macrocode}
+\renewcommand\@biblabel[1]{[#1]\hfill}
+%    \end{macrocode}
+%
+% 需要 \pkg{url} 宏包显示 URL。
+%    \begin{macrocode}
+\RequirePackage{url}
+%    \end{macrocode}
+%
+% 增加 URL 可断行的位置。
+%    \begin{macrocode}
+\g at addto@macro\UrlBreaks{%
+  \do\a\do\b\do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j%
+  \do\k\do\l\do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t%
+  \do\u\do\v\do\w\do\x\do\y\do\z%
+  \do\A\do\B\do\C\do\D\do\E\do\F\do\G\do\H\do\I\do\J%
+  \do\K\do\L\do\M\do\N\do\O\do\P\do\Q\do\R\do\S\do\T%
+  \do\U\do\V\do\W\do\X\do\Y\do\Z%
+  \do\1\do\2\do\3\do\4\do\5\do\6\do\7\do\8\do\9\do\0%
+}
 %</package>
 %    \end{macrocode}
 %
+%
 % \section{BibTeX style implementation}
 %
 % \subsection{Fields and entry strings}
@@ -663,7 +673,7 @@
 
 INTEGERS { lang.zh lang.ja lang.en lang.ru lang.other }
 
-INTEGERS { charptr stringlength }
+INTEGERS { charptr len }
 
 FUNCTION {init.state.consts}
 { #0 'before.all :=
@@ -1023,28 +1033,8 @@
   if$
 }
 
-INTEGERS { ascii }
+INTEGERS { byte second.byte }
 
-FUNCTION {get.char.lang}
-{ chr.to.int$ 'ascii :=
-  ascii #64 > ascii #91 < and ascii #96 > ascii #123 < and or
-    { lang.en }
-    { ascii #227 > ascii #234 < and
-        { lang.zh }
-        { ascii #227 =
-            { lang.ja }
-            { ascii #207 > ascii #212 < and
-                { lang.ru }
-                { lang.en }
-              if$
-            }
-          if$
-        }
-      if$
-    }
-  if$
-}
-
 INTEGERS { char.lang tmp.lang }
 
 STRINGS { tmp.str }
@@ -1052,29 +1042,88 @@
 FUNCTION {get.str.lang}
 { 'tmp.str :=
   lang.other 'tmp.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 tmp.lang >
-            { char.lang 'tmp.lang := }
-            'skip$
+  #1 'charptr :=
+  tmp.str text.length$ #1 + 'len :=
+    { charptr len < }
+    { tmp.str charptr #1 substring$ chr.to.int$ 'byte :=
+      byte #128 <
+        { charptr #1 + 'charptr :=
+          byte #64 > byte #91 < and byte #96 > byte #123 < and or
+            { lang.en 'char.lang := }
+            { lang.other 'char.lang := }
           if$
-
-          char.lang lang.zh = char.lang lang.ja = or
-            { charptr #3 + 'charptr := }
-            { char.lang lang.ru =
-                { charptr #2 + 'charptr := }
-                { charptr #1 + 'charptr := }
+        }
+        { tmp.str charptr #1 + #1 substring$ chr.to.int$ 'second.byte :=
+          byte #224 <
+%    \end{macrocode}
+% 俄文西里尔字母:U+0400 到 U+052F,对应 UTF-8 从 D0 80 到 D4 AF。
+%    \begin{macrocode}
+            { charptr #2 + 'charptr :=
+              byte #207 > byte #212 < and
+              byte #212 = second.byte #176 < and or
+                { lang.ru 'char.lang := }
+                { lang.other 'char.lang := }
               if$
             }
+            { byte #240 <
+%    \end{macrocode}
+% CJK Unified Ideographs: U+4E00--U+9FFF; UTF-8: E4 B8 80--E9 BF BF.
+%    \begin{macrocode}
+                { charptr #3 + 'charptr :=
+                  byte #227 > byte #234 < and
+                    { lang.zh 'char.lang := }
+%    \end{macrocode}
+% CJK Unified Ideographs Extension A: U+3400--U+4DBF; UTF-8: E3 90 80--E4 B6 BF.
+%    \begin{macrocode}
+                    { byte #227 =
+                        { second.byte #143 >
+                            { lang.zh 'char.lang := }
+%    \end{macrocode}
+% 日语假名:U+3040--U+30FF, UTF-8: E3 81 80--E3 83 BF.
+%    \begin{macrocode}
+                            { second.byte #128 > second.byte #132 < and
+                                { lang.ja 'char.lang := }
+                                { lang.other 'char.lang := }
+                              if$
+                            }
+                          if$
+                        }
+%    \end{macrocode}
+% CJK Compatibility Ideographs: U+F900--U+FAFF, UTF-8: EF A4 80--EF AB BF.
+%    \begin{macrocode}
+                        { byte #239 =
+                          second.byte #163 > second.byte #172 < and and
+                            { lang.zh 'char.lang := }
+                            { lang.other 'char.lang := }
+                          if$
+                        }
+                      if$
+                    }
+                  if$
+                }
+%    \end{macrocode}
+% CJK Unified Ideographs Extension B--F: U+20000--U+2EBEF,
+% UTF-8: F0 A0 80 80--F0 AE AF AF.
+% CJK Compatibility Ideographs Supplement: U+2F800--U+2FA1F,
+% UTF-8: F0 AF A0 80--F0 AF A8 9F.
+%    \begin{macrocode}
+                { charptr #4 + 'charptr :=
+                  byte #240 = second.byte #159 > and
+                    { lang.zh 'char.lang := }
+                    { lang.other 'char.lang := }
+                  if$
+                }
+              if$
+            }
           if$
         }
-      while$
+      if$
+      char.lang tmp.lang >
+        { char.lang 'tmp.lang := }
+        'skip$
+      if$
     }
-  if$
+  while$
   tmp.lang
 }
 
@@ -1098,11 +1147,6 @@
 
 INTEGERS { nameptr namesleft numnames name.lang }
 
-%    \end{macrocode}
-%
-% \changes{v1.0.2}{2017/03/16}{修正参考文献姓名的“others”}
-%
-%    \begin{macrocode}
 FUNCTION {format.names}
 { 's :=
   #1 'nameptr :=
@@ -1192,27 +1236,61 @@
 %
 %    \begin{macrocode}
 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
+{ 's :=
+  s empty$
+    { #1 }
+    { url empty$
+        { #0 }
+        { s text.length$ 'len :=
+          url text.length$ 'charptr :=
+            { url charptr len substring$ s = not
+              charptr #0 >
+              and
+            }
+            { charptr #1 - 'charptr := }
+          while$
+          charptr
         }
-        { charptr #1 - 'charptr := }
-      while$
-      charptr
+      if$
     }
   if$
 }
 
 FUNCTION {format.doi}
-{ doi empty$
-    { "" }
-    { is.doi.in.url
+{ ""
+  doi empty$
+    'skip$
+    { "" 's :=
+      doi 't :=
+      #0 'numnames :=
+        { t empty$ not}
+        { t #1 #1 substring$ 'tmp.str :=
+          tmp.str "," = tmp.str " " = or t #2 #1 substring$ empty$ or
+            { t #2 #1 substring$ empty$
+                { s tmp.str * 's := }
+                'skip$
+              if$
+              s empty$ s is.doi.in.url or
+                'skip$
+                { numnames #1 + 'numnames :=
+                  numnames #1 >
+                    { ", " * }
+                    { "DOI: " * }
+                  if$
+                  "\doi{" s * "}" * *
+                }
+              if$
+              "" 's :=
+            }
+            { s tmp.str * 's := }
+          if$
+          t #2 global.max$ substring$ 't :=
+        }
+      while$
+      's :=
+      s empty$ not
+        { new.block s }
         { "" }
-        { new.block "\doi{" doi * "}" * }
       if$
     }
   if$
@@ -1230,7 +1308,12 @@
 FUNCTION {format.title}
 { title empty$
     { "" }
-    { title "t" change.case$ }
+    { title
+      entry.lang lang.en =
+        { "t" change.case$ }
+        'skip$
+      if$
+    }
   if$
 }
 
@@ -1390,23 +1473,18 @@
 %  END
 % \end{pseudocode}
 %
+% 《规则》里页码范围的连接号使用 hyphen,需要将 dash 转为 hyphen。
+%
 %    \begin{macrocode}
-FUNCTION {n.dashify}
+FUNCTION {hyphenate}
 { 't :=
   ""
     { t empty$ not }
     { t #1 #1 substring$ "-" =
-        { t #1 #2 substring$ "--" = not
-            { "--" *
-              t #2 global.max$ substring$ 't :=
-            }
-            {   { t #1 #1 substring$ "-" = }
-                { "-" *
-                  t #2 global.max$ substring$ 't :=
-                }
-              while$
-            }
-          if$
+        { "-" *
+            { t #1 #1 substring$ "-" = }
+            { t #2 global.max$ substring$ 't := }
+          while$
         }
         { t #1 #1 substring$ *
           t #2 global.max$ substring$ 't :=
@@ -1431,8 +1509,8 @@
     { pop$ "" }
     { 's :=
       #1 'charptr :=
-      s text.length$ #1 + 'stringlength :=
-        { charptr stringlength <
+      s text.length$ #1 + 'len :=
+        { charptr len <
           s charptr #1 substring$ "-" = not
           and
         }
@@ -1448,14 +1526,14 @@
     { pop$ "" }
     { 's :=
       #1 'charptr :=
-      s text.length$ #1 + 'stringlength :=
-        { charptr stringlength <
+      s text.length$ #1 + 'len :=
+        { charptr len <
           s charptr #1 substring$ "-" = not
           and
         }
         { charptr #1 + 'charptr := }
       while$
-        { charptr stringlength <
+        { charptr len <
           s charptr #1 substring$ "-" =
           and
         }
@@ -1640,7 +1718,7 @@
     { "" }
     { volume is.number
         { is.in.chinese
-            { "第" volume * "卷" * }
+            { "第 " volume * " 卷" * }
             { "volume" volume tie.or.space.connect }
           if$
         }
@@ -1655,7 +1733,7 @@
     { "" }
     { number is.number
         { is.in.chinese
-            { "第" number * "册" * }
+            { "第 " number * " 册" * }
             { "number" number tie.or.space.connect }
           if$
         }
@@ -1689,7 +1767,10 @@
       if$
     }
   if$
-  "t" change.case$
+  entry.lang lang.en =
+    { "t" change.case$ }
+    'skip$
+  if$
 }
 
 FUNCTION {format.series.vol.num.booktitle}
@@ -1740,7 +1821,7 @@
     { "" }
     { edition is.number
         { is.in.chinese
-            { edition "版" * }
+            { edition " 版" * }
             { edition num.to.ordinal " ed." * }
           if$
         }
@@ -1771,12 +1852,9 @@
   if$
 }
 
-FUNCTION {format.address}
-{ address }
-
 FUNCTION {format.sine.nomine}
 { is.in.chinese
-    { "[出版地不详]" }
+    { "[出版者不详]" }
     { "[s.n.]" }
   if$
 }
@@ -1844,7 +1922,7 @@
 FUNCTION {format.pages}
 { pages empty$
     { "" }
-    { pages n.dashify }
+    { pages hyphenate }
   if$
 }
 
@@ -2645,8 +2723,6 @@
 % We need the chop.word stuff for the dubious unsorted-list-with-labels case.
 %
 %    \begin{macrocode}
-INTEGERS { len }
-
 FUNCTION {chop.word}
 { 's :=
   'len :=
@@ -3127,7 +3203,7 @@
   write$ newline$
   "\providecommand{\href}[2]{\url{#2}}"
   write$ newline$
-  "\providecommand{\doi}[1]{DOI: \href{http://dx.doi.org/#1}{#1}}"
+  "\providecommand{\doi}[1]{\href{https://doi.org/#1}{#1}}"
   write$ newline$
   "\expandafter\ifx\csname urlstyle\endcsname\relax\relax\else"
   write$ newline$

Modified: trunk/Master/texmf-dist/tex/latex/gbt7714/gbt7714.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/gbt7714/gbt7714.sty	2018-05-22 00:23:33 UTC (rev 47791)
+++ trunk/Master/texmf-dist/tex/latex/gbt7714/gbt7714.sty	2018-05-22 20:58:47 UTC (rev 47792)
@@ -9,21 +9,16 @@
 %% Copyright (C) 2016-2018 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:
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%    https://www.latex-project.org/lppl.txt
+%% and version 1.3c 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.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.
-%% 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
 \ProvidesPackage{gbt7714}
-    [2018/03/16 v1.0.3 GB/T 7714-2015 BibTeX Style]
+  [2018/05/12 v1.0.7 GB/T 7714-2015 BibTeX Style]
 \newif\if at gbt@numerical
 \newif\if at gbt@super
 \DeclareOption{super}{\@gbt at numericaltrue\@gbt at supertrue}
@@ -32,16 +27,6 @@
 \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{natbib}}
 \ExecuteOptions{super}
 \ProcessOptions\relax
-\RequirePackage{url}
-\g at addto@macro\UrlBreaks{%
-  \do\a\do\b\do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j%
-  \do\k\do\l\do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t%
-  \do\u\do\v\do\w\do\x\do\y\do\z%
-  \do\A\do\B\do\C\do\D\do\E\do\F\do\G\do\H\do\I\do\J%
-  \do\K\do\L\do\M\do\N\do\O\do\P\do\Q\do\R\do\S\do\T%
-  \do\U\do\V\do\W\do\X\do\Y\do\Z%
-  \do\1\do\2\do\3\do\4\do\5\do\6\do\7\do\8\do\9\do\0%
-}
 \if at gbt@numerical
   \PassOptionsToPackage{sort&compress}{natbib}
 \fi
@@ -109,5 +94,16 @@
     \def at NAT@last at yr{--\NAT at penalty}%
   \fi
 }{%
-  \def at NAT@last at yr{--\NAT at penalty}%
+  \def at NAT@last at yr{-\NAT at penalty}%
 }{}{}
+\renewcommand\@biblabel[1]{[#1]\hfill}
+\RequirePackage{url}
+\g at addto@macro\UrlBreaks{%
+  \do\a\do\b\do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j%
+  \do\k\do\l\do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t%
+  \do\u\do\v\do\w\do\x\do\y\do\z%
+  \do\A\do\B\do\C\do\D\do\E\do\F\do\G\do\H\do\I\do\J%
+  \do\K\do\L\do\M\do\N\do\O\do\P\do\Q\do\R\do\S\do\T%
+  \do\U\do\V\do\W\do\X\do\Y\do\Z%
+  \do\1\do\2\do\3\do\4\do\5\do\6\do\7\do\8\do\9\do\0%
+}



More information about the tex-live-commits mailing list