summaryrefslogtreecommitdiff
path: root/biblio/bibtex/contrib/gbt7714/gbt7714.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'biblio/bibtex/contrib/gbt7714/gbt7714.dtx')
-rw-r--r--biblio/bibtex/contrib/gbt7714/gbt7714.dtx214
1 files changed, 158 insertions, 56 deletions
diff --git a/biblio/bibtex/contrib/gbt7714/gbt7714.dtx b/biblio/bibtex/contrib/gbt7714/gbt7714.dtx
index e42938874c..d5a7794538 100644
--- a/biblio/bibtex/contrib/gbt7714/gbt7714.dtx
+++ b/biblio/bibtex/contrib/gbt7714/gbt7714.dtx
@@ -17,7 +17,7 @@
% \iffalse
%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<package>\ProvidesPackage{gbt7714}
-%<package> [2020/03/14 v2.0.1 GB/T 7714-2015 BibTeX Style]
+%<package> [2020/06/08 v2.0.2 GB/T 7714-2015 BibTeX Style]
%
%<*driver>
\documentclass[a4paper]{ltxdoc}
@@ -290,10 +290,10 @@
% show.medium.type & |#1| & 显示载体类型标识 \\
% italic.journal & |#0| & 西文期刊名使用斜体 \\
% show.missing.address.publisher & |#1| & 出版项缺失时显示“出版者不详” \\
-% space.before.pages & |#0| & 页码前有空白 \\
% only.start.page & |#0| & 只显示起始页码 \\
% show.url & |#1| & 显示 url \\
% show.doi & |#1| & 显示 doi \\
+% show.preprint & |#0| & 显示预印本 \\
% show.note & |#0| & 显示 note 域的信息 \\
% \bottomrule
% \end{tabular}
@@ -366,16 +366,14 @@
% 吴凯.
% \newblock 发布GBT7714-2005.bst version1 Beta版\allowbreak[EB/OL].
% \newblock 2006.
-% \newblock \url{http://bbs.ctex.org/forum.php?mod=viewthread&tid=33591}
-% (not accessible).
+% \newblock CTeX 论坛(已关闭).
%
% \bibitem[李志奇(2013)]{lqz2013}
% 李志奇.
% \newblock
% 基于biblatex的符合GBT7714-2005的中文文献生成工具\allowbreak[EB/OL].
% \newblock 2013.
-% \newblock \url{http://bbs.ctex.org/forum.php?mod=viewthread&tid=74474}
-% (not accessible).
+% \newblock CTeX 论坛(已关闭).
%
% \bibitem[胡海星(2013)]{hhx2013}
% 胡海星.
@@ -424,33 +422,33 @@
\newif\ifgbt@mmxv
\newif\ifgbt@numerical
\newif\ifgbt@super
-\newcommand\gbt@obselete@option[1]{%
- \PackageWarning{gbt7714}{The option "#1" is obselete}%
+\newcommand\gbt@obsolete@option[1]{%
+ \PackageWarning{gbt7714}{The option "#1" is obsolete}%
}
\DeclareOption{2015}{%
- \gbt@obselete@option{2015}%
+ \gbt@obsolete@option{2015}%
\gbt@legacy@interfacetrue
\gbt@mmxvtrue
}
\DeclareOption{2005}{%
- \gbt@obselete@option{2005}%
+ \gbt@obsolete@option{2005}%
\gbt@legacy@interfacetrue
\gbt@mmxvfalse
}
\DeclareOption{super}{%
- \gbt@obselete@option{super}%
+ \gbt@obsolete@option{super}%
\gbt@legacy@interfacetrue
\gbt@numericaltrue
\gbt@supertrue
}
\DeclareOption{numbers}{%
- \gbt@obselete@option{numbers}%
+ \gbt@obsolete@option{numbers}%
\gbt@legacy@interfacetrue
\gbt@numericaltrue
\gbt@superfalse
}
\DeclareOption{authoryear}{%
- \gbt@obselete@option{authoryear}%
+ \gbt@obsolete@option{authoryear}%
\gbt@legacy@interfacetrue
\gbt@numericalfalse
}
@@ -791,10 +789,10 @@ INTEGERS {
italic.journal
bold.journal.volume
show.missing.address.publisher
- space.before.pages
only.start.page
show.url
show.doi
+ show.preprint
show.note
show.english.translation
%<*authoryear>
@@ -843,7 +841,9 @@ FUNCTION {load.config}
% \end{macrocode}
%
% 英文标题转为 sentence case (句首字母大写,其余小写):
+%<*!nosentencecase>
% \begin{macrocode}
+%</!nosentencecase>
#1 'sentence.case.title :=
%<*nosentencecase>
#0 'sentence.case.title :=
@@ -852,7 +852,9 @@ FUNCTION {load.config}
%
% 在标题添加超链接:
% \begin{macrocode}
+%<*!linktitle>
#0 'link.title :=
+%</!linktitle>
%<*linktitle>
#1 'link.title :=
%</linktitle>
@@ -870,7 +872,9 @@ FUNCTION {load.config}
%
% 著录文献类型标识(比如“[M/OL]“):
% \begin{macrocode}
+%<*!nomark>
#1 'show.mark :=
+%</!nomark>
%<*nomark>
#0 'show.mark :=
%</nomark>
@@ -878,7 +882,9 @@ FUNCTION {load.config}
%
% 是否显示载体类型标识(比如“/OL“):
% \begin{macrocode}
+%<*!no.medium.type>
#1 'show.medium.type :=
+%</!no.medium.type>
%<*no.medium.type>
#0 'show.medium.type :=
%</no.medium.type>
@@ -886,7 +892,9 @@ FUNCTION {load.config}
%
% 使用“//”表示析出文献
% \begin{macrocode}
+%<*!noslash>
#1 'slash.for.extraction :=
+%</!noslash>
%<*noslash>
#0 'slash.for.extraction :=
%</noslash>
@@ -909,7 +917,9 @@ FUNCTION {load.config}
%
% 期刊名使用斜体:
% \begin{macrocode}
+%<*!italicjournal>
#0 'italic.journal :=
+%</!italicjournal>
%<*italicjournal>
#1 'italic.journal :=
%</italicjournal>
@@ -922,26 +932,16 @@ FUNCTION {load.config}
%
% 无出版地或出版者时,著录“出版地不详”,“出版者不详”,“S.l.” 或 “s.n.”:
% \begin{macrocode}
-%<*!noslsn&!thu&!ustc>
+%<*!noslsn&!thu&!ustc&!npr>
#1 'show.missing.address.publisher :=
-%</!noslsn&!thu&!ustc>
-%<*noslsn|thu|ustc>
+%</!noslsn&!thu&!ustc&!npr>
+%<*noslsn|thu|ustc|npr>
#0 'show.missing.address.publisher :=
-%</noslsn|thu|ustc>
+%</noslsn|thu|ustc|npr>
% \end{macrocode}
%
% 页码是否只含起始页:
% \begin{macrocode}
-%<*!space-begore-pages&!npr>
- #0 'space.before.pages :=
-%</!space-begore-pages&!npr>
-%<*space-begore-pages|npr>
- #1 'space.before.pages :=
-%</space-begore-pages|npr>
-% \end{macrocode}
-%
-% 页码前是否有空白:
-% \begin{macrocode}
%<*!only-start-page&!npr>
#0 'only.start.page :=
%</!only-start-page&!npr>
@@ -952,7 +952,9 @@ FUNCTION {load.config}
%
% 是否著录 URL:
% \begin{macrocode}
+%<*!nourl>
#1 'show.url :=
+%</!nourl>
%<*nourl>
#0 'show.url :=
%</nourl>
@@ -968,6 +970,16 @@ FUNCTION {load.config}
%</nodoi|2005>
% \end{macrocode}
%
+% 是否著录 e-print:
+% \begin{macrocode}
+%<*!preprint&!npr>
+ #0 'show.preprint :=
+%</!preprint&!npr>
+%<*preprint|npr>
+ #1 'show.preprint :=
+%</preprint|npr>
+% \end{macrocode}
+%
% 在每一条文献最后输出注释(note)的内容:
% \begin{macrocode}
#0 'show.note :=
@@ -1007,12 +1019,14 @@ FUNCTION {load.config}
% \begin{macrocode}
ENTRY
{ address
+ archivePrefix
author
booktitle
date
doi
edition
editor
+ eprint
howpublished
institution
journal
@@ -1028,8 +1042,8 @@ ENTRY
school
series
title
- translator
translation
+ translator
url
urldate
volume
@@ -1768,15 +1782,20 @@ FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
+ ""
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't :=
+ nameptr #1 >
+ { ", " * }
+ 'skip$
+ if$
nameptr max.num.authors >
- { bbl.et.al
+ { bbl.et.al *
#1 'namesleft :=
}
{ t "others" =
- { bbl.et.al }
+ { bbl.et.al * }
{ t get.str.lang 'name.lang :=
name.lang lang.en =
{ t #1 "{vv~}{ll}{~f{~}}" format.name$
@@ -1788,14 +1807,11 @@ FUNCTION {format.names}
}
{ t #1 "{ll}{ff}" format.name$ }
if$
+ *
}
if$
}
if$
- nameptr #1 >
- { ", " swap$ * * }
- 'skip$
- if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
@@ -2655,6 +2671,13 @@ FUNCTION {hyphenate}
FUNCTION {format.pages}
{ pages empty$
{ "" }
+ { pages hyphenate }
+ if$
+}
+
+FUNCTION {format.extracted.pages}
+{ pages empty$
+ { "" }
{ pages
only.start.page
'extract.before.dash
@@ -2693,11 +2716,8 @@ FUNCTION {format.journal.number}
FUNCTION {format.journal.pages}
{ pages empty$
{ "" }
- { space.before.pages
- { ": " }
- { ":\penalty0 " }
- if$
- format.pages *
+ { ": "
+ format.extracted.pages *
}
if$
}
@@ -2888,6 +2908,27 @@ FUNCTION {check.electronic}
if$
}
+FUNCTION {format.eprint}
+{ ""
+ archivePrefix empty$ not
+ { archivePrefix * ": " *
+ "\eprint{https://" *
+ archivePrefix "l" change.case$ * ".org/abs/" * eprint * "}{" *
+ eprint * "}" *
+ }
+ { eprint }
+ if$
+}
+
+FUNCTION {output.eprint}
+{ show.preprint eprint empty$ not and
+ { new.block
+ format.eprint output
+ }
+ 'skip$
+ if$
+}
+
FUNCTION {format.note}
{ note empty$ not show.note and
{ note }
@@ -3040,7 +3081,7 @@ FUNCTION {incollection}
%<*numerical>
format.year "year" output.check
%</numerical>
- format.pages bbl.colon output.after
+ format.extracted.pages bbl.colon output.after
format.urldate "" output.after
output.url
output.doi
@@ -3209,6 +3250,62 @@ FUNCTION {electronic}
% \end{macrocode}
%
+% \subsubsection{预印本}
+%
+% \begin{macrocode}
+FUNCTION {preprint}
+{ output.bibitem
+ output.translation
+ author empty$ not
+ { format.authors }
+ { editor empty$ not
+ { format.editors }
+ { "empty author and editor in " cite$ * warning$
+%<*authoryear>
+ bbl.anonymous
+%</authoryear>
+%<*numerical>
+ ""
+%</numerical>
+ }
+ if$
+ }
+ if$
+ output
+%<*authoryear>
+ period.between.author.year
+ 'new.sentence
+ 'skip$
+ if$
+ format.year "year" output.check
+%</authoryear>
+ new.block
+ title.in.journal
+ { format.series.vol.num.title "title" output.check
+ "Z" set.entry.mark
+ format.mark "" output.after
+ new.block
+ }
+ 'skip$
+ if$
+ format.translators output
+ new.sentence
+ format.edition output
+ new.block
+ output.eprint
+%<*numerical>
+ format.year "year" output.check
+%</numerical>
+ format.pages bbl.colon output.after
+ format.urldate "" output.after
+ output.url
+ new.block
+ format.note output
+ fin.entry
+}
+
+% \end{macrocode}
+%
% \subsubsection{其他文献类型}
%
% A misc is something that doesn't fit elsewhere.
@@ -3226,10 +3323,14 @@ FUNCTION {misc}
'incollection
{ publisher empty$ not
'monograph
- { entry.is.electronic
- 'electronic
- { "Z" set.entry.mark
- monograph
+ { eprint empty$ not show.preprint and
+ 'preprint
+ { entry.is.electronic
+ 'electronic
+ { "Z" set.entry.mark
+ monograph
+ }
+ if$
}
if$
}
@@ -3436,10 +3537,7 @@ FUNCTION {techreport}
%
% Optional: month, year
% \begin{macrocode}
-FUNCTION {unpublished}
-{ "Z" set.entry.mark
- misc
-}
+FUNCTION {unpublished} { misc }
% \end{macrocode}
%
@@ -4127,17 +4225,21 @@ FUNCTION {begin.bib}
write$ newline$
" \urlstyle{same}\fi"
write$ newline$
- show.doi
- { "\expandafter\ifx\csname href\endcsname\relax"
+ "\expandafter\ifx\csname href\endcsname\relax"
+ write$ newline$
+ " \DeclareUrlCommand\doi{\urlstyle{rm}}"
+ write$ newline$
+ " \def\eprint#1#2{#2}"
write$ newline$
- " \DeclareUrlCommand\doi{\urlstyle{rm}}\else"
+ "\else"
+ write$ newline$
+ " \def\doi#1{\href{https://doi.org/#1}{\nolinkurl{#1}}}"
+ write$ newline$
+ " \let\eprint\href"
write$ newline$
- " \providecommand\doi[1]{\href{https://doi.org/#1}{\nolinkurl{#1}}}\fi"
+ "\fi"
write$ newline$
}
- 'skip$
- if$
-}
% \end{macrocode}
%