diff options
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/bibtex/bst/gbt7714/gbt7714-plain.bst | 231 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bst/gbt7714/gbt7714-unsrt.bst | 231 | ||||
-rw-r--r-- | Master/texmf-dist/doc/bibtex/gbt7714/LICENSE | 416 | ||||
-rw-r--r-- | Master/texmf-dist/doc/bibtex/gbt7714/README.md | 8 | ||||
-rw-r--r-- | Master/texmf-dist/doc/bibtex/gbt7714/gbt7714.pdf | bin | 117386 -> 127223 bytes | |||
-rw-r--r-- | Master/texmf-dist/source/bibtex/gbt7714/gbt7714.dtx | 396 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/gbt7714/gbt7714.sty | 42 |
7 files changed, 949 insertions, 375 deletions
diff --git a/Master/texmf-dist/bibtex/bst/gbt7714/gbt7714-plain.bst b/Master/texmf-dist/bibtex/bst/gbt7714/gbt7714-plain.bst index 2d52082b5bc..5d2a7976318 100644 --- a/Master/texmf-dist/bibtex/bst/gbt7714/gbt7714-plain.bst +++ b/Master/texmf-dist/bibtex/bst/gbt7714/gbt7714-plain.bst @@ -9,17 +9,12 @@ %% 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: -%% -%% 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. +%% 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. %% ENTRY { address @@ -55,7 +50,7 @@ INTEGERS { output.state before.all mid.sentence after.sentence after.block after 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,27 +268,7 @@ FUNCTION {emphasize} if$ } -INTEGERS { ascii } - -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 { byte second.byte } INTEGERS { char.lang tmp.lang } @@ -302,29 +277,67 @@ STRINGS { tmp.str } 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 {format.url} } 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.doi} FUNCTION {format.title} { title empty$ { "" } - { title "t" change.case$ } + { title + entry.lang lang.en = + { "t" change.case$ } + 'skip$ + if$ + } if$ } @@ -574,22 +626,15 @@ FUNCTION {output.bibitem} 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 @@ FUNCTION {extract.before.dash} { 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 @@ FUNCTION {extract.after.dash} { 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 @@ FUNCTION {format.volume} { "" } { volume is.number { is.in.chinese - { "第" volume * "卷" * } + { "第 " volume * " 卷" * } { "volume" volume tie.or.space.connect } if$ } @@ -764,7 +809,7 @@ FUNCTION {format.number} { "" } { number is.number { is.in.chinese - { "第" number * "册" * } + { "第 " number * " 册" * } { "number" number tie.or.space.connect } if$ } @@ -798,7 +843,10 @@ FUNCTION {format.series.vol.num.title} if$ } if$ - "t" change.case$ + entry.lang lang.en = + { "t" change.case$ } + 'skip$ + if$ } FUNCTION {format.series.vol.num.booktitle} @@ -842,7 +890,7 @@ FUNCTION {format.edition} { "" } { edition is.number { is.in.chinese - { edition "版" * } + { edition " 版" * } { edition num.to.ordinal " ed." * } if$ } @@ -868,12 +916,9 @@ FUNCTION {format.sine.loco} if$ } -FUNCTION {format.address} -{ address } - FUNCTION {format.sine.nomine} { is.in.chinese - { "[出版地不详]" } + { "[出版者不详]" } { "[s.n.]" } if$ } @@ -935,7 +980,7 @@ FUNCTION {format.address.publisher} FUNCTION {format.pages} { pages empty$ { "" } - { pages n.dashify } + { pages hyphenate } if$ } @@ -1397,8 +1442,6 @@ FUNCTION {sortify} "l" change.case$ } -INTEGERS { len } - FUNCTION {chop.word} { 's := 'len := @@ -1742,7 +1785,7 @@ FUNCTION {begin.bib} 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$ diff --git a/Master/texmf-dist/bibtex/bst/gbt7714/gbt7714-unsrt.bst b/Master/texmf-dist/bibtex/bst/gbt7714/gbt7714-unsrt.bst index 56d20a66f13..01dc40da2e5 100644 --- a/Master/texmf-dist/bibtex/bst/gbt7714/gbt7714-unsrt.bst +++ b/Master/texmf-dist/bibtex/bst/gbt7714/gbt7714-unsrt.bst @@ -9,17 +9,12 @@ %% 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: -%% -%% 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. +%% 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. %% ENTRY { address @@ -55,7 +50,7 @@ INTEGERS { output.state before.all mid.sentence after.sentence after.block after 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,27 +268,7 @@ FUNCTION {emphasize} if$ } -INTEGERS { ascii } - -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 { byte second.byte } INTEGERS { char.lang tmp.lang } @@ -302,29 +277,67 @@ STRINGS { tmp.str } 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 {format.url} } 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.doi} FUNCTION {format.title} { title empty$ { "" } - { title "t" change.case$ } + { title + entry.lang lang.en = + { "t" change.case$ } + 'skip$ + if$ + } if$ } @@ -574,22 +626,15 @@ FUNCTION {output.bibitem} 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 @@ FUNCTION {extract.before.dash} { 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 @@ FUNCTION {extract.after.dash} { 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 @@ FUNCTION {format.volume} { "" } { volume is.number { is.in.chinese - { "第" volume * "卷" * } + { "第 " volume * " 卷" * } { "volume" volume tie.or.space.connect } if$ } @@ -764,7 +809,7 @@ FUNCTION {format.number} { "" } { number is.number { is.in.chinese - { "第" number * "册" * } + { "第 " number * " 册" * } { "number" number tie.or.space.connect } if$ } @@ -798,7 +843,10 @@ FUNCTION {format.series.vol.num.title} if$ } if$ - "t" change.case$ + entry.lang lang.en = + { "t" change.case$ } + 'skip$ + if$ } FUNCTION {format.series.vol.num.booktitle} @@ -842,7 +890,7 @@ FUNCTION {format.edition} { "" } { edition is.number { is.in.chinese - { edition "版" * } + { edition " 版" * } { edition num.to.ordinal " ed." * } if$ } @@ -868,12 +916,9 @@ FUNCTION {format.sine.loco} if$ } -FUNCTION {format.address} -{ address } - FUNCTION {format.sine.nomine} { is.in.chinese - { "[出版地不详]" } + { "[出版者不详]" } { "[s.n.]" } if$ } @@ -935,7 +980,7 @@ FUNCTION {format.address.publisher} FUNCTION {format.pages} { pages empty$ { "" } - { pages n.dashify } + { pages hyphenate } if$ } @@ -1399,8 +1444,6 @@ FUNCTION {sortify} "l" change.case$ } -INTEGERS { len } - FUNCTION {chop.word} { 's := 'len := @@ -1612,7 +1655,7 @@ FUNCTION {begin.bib} 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$ diff --git a/Master/texmf-dist/doc/bibtex/gbt7714/LICENSE b/Master/texmf-dist/doc/bibtex/gbt7714/LICENSE new file mode 100644 index 00000000000..22443139013 --- /dev/null +++ b/Master/texmf-dist/doc/bibtex/gbt7714/LICENSE @@ -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. + diff --git a/Master/texmf-dist/doc/bibtex/gbt7714/README.md b/Master/texmf-dist/doc/bibtex/gbt7714/README.md index c6e3026fc45..694d67d0a03 100644 --- a/Master/texmf-dist/doc/bibtex/gbt7714/README.md +++ b/Master/texmf-dist/doc/bibtex/gbt7714/README.md @@ -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,8 +97,9 @@ medium = {CD}, 拼音(用于排序) | `key` 注: -- 带 “\*” 的类型不是 natbib 原生支持的。 - +- 其中带星号的不是 BibTeX/natbib 的标准著录项目。 +- 不支持的 BibTeX 标准著录项目有 annote, chapter, crossref, howpublished, +month, note, type。 ## 参考文献著录标准 diff --git a/Master/texmf-dist/doc/bibtex/gbt7714/gbt7714.pdf b/Master/texmf-dist/doc/bibtex/gbt7714/gbt7714.pdf Binary files differindex 711a1f9370f..c83c5cd1e30 100644 --- a/Master/texmf-dist/doc/bibtex/gbt7714/gbt7714.pdf +++ b/Master/texmf-dist/doc/bibtex/gbt7714/gbt7714.pdf diff --git a/Master/texmf-dist/source/bibtex/gbt7714/gbt7714.dtx b/Master/texmf-dist/source/bibtex/gbt7714/gbt7714.dtx index 42d50b170d5..d2003e067ad 100644 --- a/Master/texmf-dist/source/bibtex/gbt7714/gbt7714.dtx +++ b/Master/texmf-dist/source/bibtex/gbt7714/gbt7714.dtx @@ -3,17 +3,12 @@ % 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: -% -% 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. +% 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. % %<*internal> \iffalse @@ -30,40 +25,34 @@ 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: - - 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. +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. \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> \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,13 +88,30 @@ which was designed for use with the `natbib.sty' package. \renewcommand\glossaryname{版本历史} \GlossaryPrologue{\section*{\glossaryname}} \renewcommand\indexname{命令索引} +\makeatletter +\renewcommand*{\changes@}[3]{% + \protected@edef\@tempa{% + \noexpand\glossary{#1 (#2)\levelchar + \ifx\saved@macroname\@empty + \space\actualchar\generalname + \else + \expandafter\@gobble\saved@macroname + \actualchar + \string\verb\quotechar*\verbatimchar\saved@macroname\verbatimchar + \fi + :\levelchar #3}}% + \@tempa + \endgroup + \@esphack +} +\makeatother \EnableCrossrefs \CodelineIndex \RecordChanges \OnlyDescription \begin{document} - \DocInput{gbt7714.dtx} + \DocInput{\jobname.dtx} \PrintChanges \PrintIndex \end{document} @@ -130,19 +136,9 @@ which was designed for use with the `natbib.sty' package. % 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{gbt7714.dtx} +% \GetFileInfo{\jobname.dtx} % % \title{GB/T 7714-2015 \BibTeX{} style} % \author{Zeping Lee\thanks{zepinglee AT gmail.com}} @@ -150,6 +146,14 @@ which was designed for use with the `natbib.sty' package. % \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,12 +168,7 @@ which was designed for use with the `natbib.sty' package. % \end{itemize} % % -% \section{相关工作} -% -% TeX 社区一直在努力实现国家的参考文献推荐标准。2005 年 -% -% -% \section{使用宏包} +% \section{使用方法} % % 首先应在导言区调用宏包 \pkg{gbt7714} ,可以选择的参数如 % 表~\ref{tab:options}。 @@ -244,7 +243,7 @@ which was designed for use with the `natbib.sty' package. % % \section{著录项目} % -% 以下列出了本宏包支持的全部著录项目。 +% 表~\ref{tab:fields} 列出了本宏包支持的全部著录项目。 % % \begin{table}[htbp] % \centering @@ -275,16 +274,18 @@ which was designed for use with the `natbib.sty' package. % 引用日期 & urldate* \\ % 获取和访问路径 & url \\ % 数字对象唯一标识符 & doi \\ -% 拼音(用于排序) & key \\ % 语言 & language* \\ +% 拼音(用于排序) & key \\ % \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 @@ which was designed for use with the `natbib.sty' package. % 可选的语言有 english, chinese, japanese, russian, % 目前对日语和俄语的支持较为有限。 % +% % \section{参考文献列表的排序} % % 在使用著者-出版年制时,需要将中文参考文献按照拼音或者笔画排序,然而 Unicode @@ -311,6 +313,8 @@ which was designed for use with the `natbib.sty' package. % ... % \end{latex} % +% +% % \StopEventually{} % % \section{Package} @@ -328,25 +332,6 @@ which was designed for use with the `natbib.sty' package. \ProcessOptions\relax % \end{macrocode} % -% 需要 \pkg{url} 宏包。 -% \begin{macrocode} -\RequirePackage{url} -% \end{macrocode} -% -% 增加 URL 可断行的位置。 -% \begin{macrocode} -\g@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@gbt@numerical @@ -444,7 +429,8 @@ which was designed for use with the `natbib.sty' package. #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@citexnum}{% \ifx\NAT@last@yr\relax @@ -453,11 +439,35 @@ which was designed for use with the `natbib.sty' package. \def@NAT@last@yr{--\NAT@penalty}% \fi }{% - \def@NAT@last@yr{--\NAT@penalty}% + \def@NAT@last@yr{-\NAT@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@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 { output.state before.all mid.sentence after.sentence after.block after 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,27 +1033,7 @@ FUNCTION {emphasize} if$ } -INTEGERS { ascii } - -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 { byte second.byte } INTEGERS { char.lang tmp.lang } @@ -1052,29 +1042,88 @@ STRINGS { tmp.str } 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 @@ FUNCTION {format.anonymous} 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 @@ FUNCTION {format.url} % % \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.doi} FUNCTION {format.title} { title empty$ { "" } - { title "t" change.case$ } + { title + entry.lang lang.en = + { "t" change.case$ } + 'skip$ + if$ + } if$ } @@ -1390,23 +1473,18 @@ FUNCTION {output.bibitem} % 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 @@ FUNCTION {extract.before.dash} { 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 @@ FUNCTION {extract.after.dash} { 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 @@ FUNCTION {format.volume} { "" } { volume is.number { is.in.chinese - { "第" volume * "卷" * } + { "第 " volume * " 卷" * } { "volume" volume tie.or.space.connect } if$ } @@ -1655,7 +1733,7 @@ FUNCTION {format.number} { "" } { number is.number { is.in.chinese - { "第" number * "册" * } + { "第 " number * " 册" * } { "number" number tie.or.space.connect } if$ } @@ -1689,7 +1767,10 @@ FUNCTION {format.series.vol.num.title} if$ } if$ - "t" change.case$ + entry.lang lang.en = + { "t" change.case$ } + 'skip$ + if$ } FUNCTION {format.series.vol.num.booktitle} @@ -1740,7 +1821,7 @@ FUNCTION {format.edition} { "" } { edition is.number { is.in.chinese - { edition "版" * } + { edition " 版" * } { edition num.to.ordinal " ed." * } if$ } @@ -1771,12 +1852,9 @@ FUNCTION {format.sine.loco} if$ } -FUNCTION {format.address} -{ address } - FUNCTION {format.sine.nomine} { is.in.chinese - { "[出版地不详]" } + { "[出版者不详]" } { "[s.n.]" } if$ } @@ -1844,7 +1922,7 @@ FUNCTION {format.address.publisher} FUNCTION {format.pages} { pages empty$ { "" } - { pages n.dashify } + { pages hyphenate } if$ } @@ -2645,8 +2723,6 @@ FUNCTION {sortify} % 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 @@ FUNCTION {begin.bib} 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$ diff --git a/Master/texmf-dist/tex/latex/gbt7714/gbt7714.sty b/Master/texmf-dist/tex/latex/gbt7714/gbt7714.sty index 3397dadc602..266ac210a18 100644 --- a/Master/texmf-dist/tex/latex/gbt7714/gbt7714.sty +++ b/Master/texmf-dist/tex/latex/gbt7714/gbt7714.sty @@ -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: -%% -%% 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. +%% 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. %% \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@gbt@numerical \newif\if@gbt@super \DeclareOption{super}{\@gbt@numericaltrue\@gbt@supertrue} @@ -32,16 +27,6 @@ \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{natbib}} \ExecuteOptions{super} \ProcessOptions\relax -\RequirePackage{url} -\g@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@gbt@numerical \PassOptionsToPackage{sort&compress}{natbib} \fi @@ -109,5 +94,16 @@ \def@NAT@last@yr{--\NAT@penalty}% \fi }{% - \def@NAT@last@yr{--\NAT@penalty}% + \def@NAT@last@yr{-\NAT@penalty}% }{}{} +\renewcommand\@biblabel[1]{[#1]\hfill} +\RequirePackage{url} +\g@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% +} |