summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/bibtex/bst/gbt7714/gbt7714-plain.bst
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/bibtex/bst/gbt7714/gbt7714-plain.bst')
-rw-r--r--Master/texmf-dist/bibtex/bst/gbt7714/gbt7714-plain.bst313
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$