diff options
Diffstat (limited to 'Master/texmf-dist/bibtex/bst/gbt7714/gbt7714-plain.bst')
-rw-r--r-- | Master/texmf-dist/bibtex/bst/gbt7714/gbt7714-plain.bst | 313 |
1 files changed, 216 insertions, 97 deletions
diff --git a/Master/texmf-dist/bibtex/bst/gbt7714/gbt7714-plain.bst b/Master/texmf-dist/bibtex/bst/gbt7714/gbt7714-plain.bst index 771d00425db..5e9aee9bb1f 100644 --- a/Master/texmf-dist/bibtex/bst/gbt7714/gbt7714-plain.bst +++ b/Master/texmf-dist/bibtex/bst/gbt7714/gbt7714-plain.bst @@ -5,10 +5,13 @@ %% The original source files were: %% %% gbt7714.dtx (with options: `2015,authoryear') -%% Version: 2018/08/05 v1.0.9 -%% -%% Copyright (C) 2016-2018 by Zeping Lee <zepinglee AT gmail.com> -%% +%% ------------------------------------------------------------------- +%% GB/T 7714-2015 BibTeX Style +%% https://github.com/CTeX-org/gbt7714-bibtex-style +%% Version: 2019/03/21 v1.1.1 +%% ------------------------------------------------------------------- +%% Copyright (C) 2016-2019 by Zeping Lee <zepinglee AT gmail.com> +%% ------------------------------------------------------------------- %% This file may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c %% of this license or (at your option) any later version. @@ -16,8 +19,7 @@ %% 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. -%% - +%% ------------------------------------------------------------------- INTEGERS { uppercase.name max.num.authors @@ -25,11 +27,19 @@ INTEGERS { sentence.case.title link.title show.mark + slash.for.extraction + in.booktitle italic.jounal + bold.journal.volume show.missing.address.publisher show.url show.doi show.note + lang.zh.order + lang.ja.order + lang.en.order + lang.ru.order + lang.other.order } FUNCTION {load.config} @@ -40,11 +50,19 @@ FUNCTION {load.config} #1 'sentence.case.title := #0 'link.title := #1 'show.mark := + #1 'slash.for.extraction := + #0 'in.booktitle := #0 'italic.jounal := + #0 'bold.journal.volume := #1 'show.missing.address.publisher := #1 'show.url := #1 'show.doi := #0 'show.note := + #1 'lang.zh.order := + #2 'lang.ja.order := + #3 'lang.en.order := + #4 'lang.ru.order := + #5 'lang.other.order := } ENTRY @@ -76,7 +94,7 @@ ENTRY volume year } - { entry.lang entry.is.electronic } + { entry.lang entry.is.electronic entry.numbered } { label extra.label sort.label short.list entry.mark entry.url } INTEGERS { output.state before.all mid.sentence after.sentence after.block after.slash } @@ -99,20 +117,25 @@ FUNCTION {init.state.consts} } FUNCTION {bbl.anonymous} -{ lang.zh entry.lang = +{ entry.lang lang.zh = { "佚名" } { "Anon" } if$ } -FUNCTION {bbl.space} { "\ " } +FUNCTION {bbl.space} +{ entry.lang lang.zh = + { "\ " } + { " " } + if$ +} FUNCTION {bbl.et.al} -{ lang.zh entry.lang = +{ entry.lang lang.zh = { "等" } - { lang.ja entry.lang = + { entry.lang lang.ja = { "他" } - { lang.ru entry.lang = + { entry.lang lang.ru = { "идр" } { "et~al." } if$ @@ -122,28 +145,31 @@ FUNCTION {bbl.et.al} if$ } +FUNCTION {citation.et.al} +{ bbl.et.al } + FUNCTION {bbl.colon} { ": " } FUNCTION {bbl.wide.space} { "\quad " } -FUNCTION {bbl.slash} { "//\allowbreak{}" } +FUNCTION {bbl.slash} { "//\allowbreak " } FUNCTION {bbl.sine.loco} -{ lang.zh entry.lang = +{ entry.lang lang.zh = { "[出版地不详]" } { "[S.l.]" } if$ } FUNCTION {bbl.sine.nomine} -{ lang.zh entry.lang = +{ entry.lang lang.zh = { "[出版者不详]" } { "[s.n.]" } if$ } FUNCTION {bbl.sine.loco.sine.nomine} -{ lang.zh entry.lang = +{ entry.lang lang.zh = { "[出版地不详: 出版者不详]" } { "[S.l.: s.n.]" } if$ @@ -181,7 +207,9 @@ FUNCTION {output.nonnull} { output.state before.all = 'write$ { output.state after.slash = - { bbl.slash * write$ } + { bbl.slash * write$ + newline$ + } { add.period$ " " * write$ } if$ } @@ -274,7 +302,11 @@ FUNCTION {new.sentence} FUNCTION {new.slash} { output.state before.all = 'skip$ - { after.slash 'output.state := } + { slash.for.extraction + { after.slash 'output.state := } + { after.block 'output.state := } + if$ + } if$ } @@ -427,6 +459,15 @@ FUNCTION {set.entry.lang} 'entry.lang := } +FUNCTION {set.entry.numbered} +{ type$ "patent" = + type$ "standard" = or + type$ "techreport" = or + { #1 'entry.numbered := } + { #0 'entry.numbered := } + if$ +} + INTEGERS { nameptr namesleft numnames name.lang } FUNCTION {format.names} @@ -475,9 +516,11 @@ FUNCTION {format.key} } FUNCTION {format.authors} -{ author empty$ - { bbl.anonymous } +{ author empty$ not { author format.names } + { "empty author in " cite$ * warning$ + bbl.anonymous + } if$ } @@ -492,7 +535,7 @@ FUNCTION {format.translators} { translator empty$ { "" } { translator format.names - lang.zh entry.lang = + entry.lang lang.zh = { translator num.names$ #3 > { "译" * } { ", 译" * } @@ -587,7 +630,20 @@ FUNCTION {output.bibitem} ")" make.full.names duplicate$ short.list = { pop$ } { * } - if$ + if$ + 's := + s text.length$ 'charptr := + { charptr #0 > } + { s charptr #1 substring$ "]" = + { #0 'charptr := } + { charptr #1 - 'charptr := } + if$ + } + while$ + charptr #0 > + { "{" s * "}" * } + { s } + if$ "]{" * write$ cite$ write$ "}" write$ @@ -604,15 +660,15 @@ FUNCTION {change.sentence.case} } FUNCTION {add.link} - { url empty$ not - { "\href{" url * "}{" * swap$ * "}" * } - { doi empty$ not - { "\href{http://dx.doi.org/" doi * "}{" * swap$ * "}" * } - 'skip$ - if$ - } - if$ - } +{ url empty$ not + { "\href{" url * "}{" * swap$ * "}" * } + { doi empty$ not + { "\href{http://dx.doi.org/" doi * "}{" * swap$ * "}" * } + 'skip$ + if$ + } + if$ +} FUNCTION {format.title} { title empty$ @@ -622,6 +678,10 @@ FUNCTION {format.title} 'change.sentence.case 'skip$ if$ + entry.numbered number empty$ not and + { bbl.colon * number * } + 'skip$ + if$ link.title 'add.link 'skip$ @@ -678,24 +738,32 @@ FUNCTION {is.number} } FUNCTION {format.volume} -{ volume empty$ - { "" } - { lang.zh entry.lang = - { "第 " volume * " 卷" * } - { "volume" volume tie.or.space.connect } +{ volume empty$ not + { volume is.number + { entry.lang lang.zh = + { "第 " volume * " 卷" * } + { "volume" volume tie.or.space.connect } + if$ + } + { volume } if$ } + { "" } if$ } FUNCTION {format.number} -{ number empty$ - { "" } - { lang.zh entry.lang = - { "第 " number * " 册" * } - { "number" number tie.or.space.connect } +{ number empty$ not + { number is.number + { entry.lang lang.zh = + { "第 " number * " 册" * } + { "number" number tie.or.space.connect } + if$ + } + { number } if$ } + { "" } if$ } @@ -706,36 +774,55 @@ FUNCTION {format.volume.number} if$ } -FUNCTION {format.series.vol.num.title} -{ format.volume.number 's := - series empty$ not - { series - sentence.case.title - 'change.sentence.case +FUNCTION {format.title.vol.num} +{ title + sentence.case.title + 'change.sentence.case + 'skip$ + if$ + entry.numbered + { number empty$ not + { bbl.colon * number * } 'skip$ if$ - bbl.colon * + } + { format.volume.number 's := s empty$ not - { s * bbl.wide.space * } + { bbl.colon * s * } 'skip$ if$ - title + } + if$ +} + +FUNCTION {format.series.vol.num.title} +{ format.volume.number 's := + series empty$ not + { series sentence.case.title 'change.sentence.case 'skip$ if$ - * - } - { title + entry.numbered + { bbl.wide.space * } + { bbl.colon * + s empty$ not + { s * bbl.wide.space * } + 'skip$ + if$ + } + if$ + title * sentence.case.title 'change.sentence.case 'skip$ if$ - s empty$ not - { bbl.colon * s * } + entry.numbered number empty$ not and + { bbl.colon * number * } 'skip$ if$ } + { format.title.vol.num } if$ link.title 'add.link @@ -743,28 +830,44 @@ FUNCTION {format.series.vol.num.title} if$ } +FUNCTION {format.booktitle.vol.num} +{ booktitle + entry.numbered + 'skip$ + { format.volume.number 's := + s empty$ not + { bbl.colon * s * } + 'skip$ + if$ + } + if$ +} + FUNCTION {format.series.vol.num.booktitle} { format.volume.number 's := series empty$ not { series bbl.colon * - s empty$ not + entry.numbered not s empty$ not and { s * bbl.wide.space * } 'skip$ if$ booktitle * } - { booktitle - s empty$ not - { bbl.colon * s * } + { format.booktitle.vol.num } + if$ + in.booktitle + { duplicate$ empty$ not entry.lang lang.en = and + { "In: " swap$ * } 'skip$ if$ } + 'skip$ if$ } FUNCTION {format.journal} { journal - italic.jounal + italic.jounal entry.lang lang.en = and 'italicize 'skip$ if$ @@ -818,7 +921,7 @@ FUNCTION {format.edition} { edition empty$ { "" } { edition is.number - { lang.zh entry.lang = + { entry.lang lang.zh = { edition " 版" * } { edition num.to.ordinal " ed." * } if$ @@ -946,7 +1049,10 @@ FUNCTION {format.year} { date empty$ not { date extract.before.dash } { "empty year in " cite$ * warning$ - "" + urldate empty$ not + { "[" urldate extract.before.dash * "]" * } + { "" } + if$ } if$ } @@ -1001,6 +1107,17 @@ FUNCTION {format.pages} if$ } +FUNCTION {format.journal.volume} +{ volume empty$ not + { bold.journal.volume + { "\textbf{" volume * "}" * } + { volume } + if$ + } + { "" } + if$ +} + FUNCTION {format.journal.number} { number empty$ not { "\penalty0 (" number * ")" * } @@ -1199,7 +1316,9 @@ FUNCTION {monograph} { format.authors } { editor empty$ not { format.editors } - { bbl.anonymous } + { "empty author and editor in " cite$ * warning$ + bbl.anonymous + } if$ } if$ @@ -1230,7 +1349,7 @@ FUNCTION {monograph} FUNCTION {incollection} { output.bibitem - format.authors "author" output.check + format.authors output author format.key output period.between.author.year 'new.sentence @@ -1262,7 +1381,7 @@ FUNCTION {incollection} FUNCTION {periodical} { output.bibitem - format.authors "author" output.check + format.authors output author format.key output period.between.author.year 'new.sentence @@ -1287,7 +1406,7 @@ FUNCTION {periodical} FUNCTION {article} { output.bibitem - format.authors "author" output.check + format.authors output author format.key output period.between.author.year 'new.sentence @@ -1300,7 +1419,7 @@ FUNCTION {article} format.mark "" output.after new.block format.journal "journal" output.check - volume output + format.journal.volume output format.journal.number "" output.after format.journal.pages "" output.after format.urldate "" output.after @@ -1321,12 +1440,7 @@ FUNCTION {patent} if$ format.year "year" output.check new.block - format.title - number empty$ not - { bbl.colon * number * } - 'skip$ - if$ - "title" output.check + format.title "title" output.check "P" set.entry.mark format.mark "" output.after new.block @@ -1560,7 +1674,7 @@ FUNCTION {format.lab.names} { t #1 "{ll}{ff}" format.name$} if$ s num.names$ #1 > - { bbl.space * bbl.et.al * } + { bbl.space * citation.et.al * } 'skip$ if$ } @@ -1657,14 +1771,14 @@ FUNCTION {calc.label} FUNCTION {sort.language.label} { entry.lang lang.zh = - { "a zh " } + { lang.zh.order } { entry.lang lang.ja = - { "b ja " } + { lang.ja.order } { entry.lang lang.en = - { "c en " } + { lang.en.order } { entry.lang lang.ru = - { "d ru " } - { "e other " } + { lang.ru.order } + { lang.other.order } if$ } if$ @@ -1672,6 +1786,7 @@ FUNCTION {sort.language.label} if$ } if$ + int.to.chr$ } FUNCTION {sort.format.names} @@ -1716,18 +1831,22 @@ FUNCTION {sort.format.title} } FUNCTION {anonymous.sort} -{ lang.zh entry.lang = +{ entry.lang lang.zh = { "yi4 ming2" } { "anon" } if$ } +FUNCTION {warn.empty.key} +{ entry.lang lang.zh = + { "empty key in " cite$ * warning$ } + 'skip$ + if$ +} + FUNCTION {author.sort} { key empty$ - { entry.lang lang.zh = - { "empty key in " cite$ * warning$ } - 'skip$ - if$ + { warn.empty.key author empty$ { anonymous.sort } { author sort.format.names } @@ -1739,7 +1858,8 @@ FUNCTION {author.sort} FUNCTION {author.editor.sort} { key empty$ - { author empty$ + { warn.empty.key + author empty$ { editor empty$ { anonymous.sort } { editor sort.format.names } @@ -1754,7 +1874,8 @@ FUNCTION {author.editor.sort} FUNCTION {author.organization.sort} { key empty$ - { author empty$ + { warn.empty.key + author empty$ { organization empty$ { anonymous.sort } { "The " #4 organization chop.word sortify } @@ -1769,7 +1890,8 @@ FUNCTION {author.organization.sort} FUNCTION {editor.organization.sort} { key empty$ - { editor empty$ + { warn.empty.key + editor empty$ { organization empty$ { anonymous.sort } { "The " #4 organization chop.word sortify } @@ -1784,6 +1906,7 @@ FUNCTION {editor.organization.sort} FUNCTION {presort} { set.entry.lang + set.entry.numbered show.url show.doi check.electronic calc.label label sortify @@ -1872,16 +1995,12 @@ FUNCTION {begin.bib} write$ newline$ "\providecommand{\natexlab}[1]{#1}" write$ newline$ - show.url show.doi or - { "\providecommand{\url}[1]{#1}" - write$ newline$ - "\expandafter\ifx\csname urlstyle\endcsname\relax\relax\else" - write$ newline$ - " \urlstyle{same}\fi" - write$ newline$ - } - 'skip$ - if$ + "\providecommand{\url}[1]{#1}" + write$ newline$ + "\expandafter\ifx\csname urlstyle\endcsname\relax\relax\else" + write$ newline$ + " \urlstyle{same}\fi" + write$ newline$ show.doi { "\providecommand{\href}[2]{\url{#2}}" write$ newline$ |