diff --git a/.github/workflows/install-texlive.sh b/.github/workflows/install-texlive.sh index 4859363..9b7a05f 100644 --- a/.github/workflows/install-texlive.sh +++ b/.github/workflows/install-texlive.sh @@ -4,7 +4,8 @@ INSTALL="/tmp/install-texlive"; mkdir -p "$INSTALL"; curl -sSL "$REMOTE/install-tl-unx.tar.gz" | tar -xz -C "$INSTALL" \ --strip-components=1; -"$INSTALL/install-tl" -profile .github/workflows/texlive.profile; +"$INSTALL/install-tl" -no-gui -repository $REMOTE \ + -profile .github/workflows/texlive.profile; export PATH="/tmp/texlive/bin/x86_64-linux:$PATH"; diff --git a/.gitignore b/.gitignore index 0b8bb61..2e72e43 100644 --- a/.gitignore +++ b/.gitignore @@ -29,7 +29,7 @@ build/ ## Bibliography auxiliary files (bibtex/biblatex/biber): *.bbl -!testbst/**/*.bbl +!test/**/*.bbl *.bcf *.blg *-blx.aux diff --git a/CHANGELOG.md b/CHANGELOG.md index 1702891..fa93762 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ## [Unreleased] +## [v2.0.1] - 2020-03-14 +### Added +- 新增选项 `only.start.page` +- 增加选项 `title.in.journal` +- 增加选项 `space.before.pages` +- 增加选项 `abbreviate.journal` +- 增加选项 `show.english.translation` + +### Fixed +- 修正 DOI 中含有下划线的问题 + ## [v2.0] - 2020-03-04 ### Changed - 需要用户在主文档使用 `\bibliographystyle` 命令 @@ -82,7 +93,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Changed - Initial release. -[Unreleased]: https://github.com/CTeX-org/gbt7714-bibtex-style/compare/v2.0...HEAD +[Unreleased]: https://github.com/CTeX-org/gbt7714-bibtex-style/compare/v2.0.1...HEAD +[v2.0.1]: https://github.com/CTeX-org/gbt7714-bibtex-style/compare/v2.0...v2.0.1 [v2.0]: https://github.com/CTeX-org/gbt7714-bibtex-style/compare/v1.1.2...v2.0 [v1.1.2]: https://github.com/CTeX-org/gbt7714-bibtex-style/compare/v1.1.1...v1.1.2 [v1.1.1]: https://github.com/CTeX-org/gbt7714-bibtex-style/compare/v1.1...v1.1.1 diff --git a/Makefile b/Makefile index 254885d..8b401fc 100644 --- a/Makefile +++ b/Makefile @@ -8,13 +8,15 @@ TEXOPTS = -file-line-error -halt-on-error -interaction=nonstopmode LATEXMK = latexmk -xelatex $(TEXOPTS) testbst : bst - bash test/check.sh + bash test/test.sh test: testbst l3build check -save : +savebst: bash test/save.sh + +save : savebst l3build save --quiet super l3build save --quiet numbers l3build save --quiet authoryear @@ -31,6 +33,7 @@ doc : $(NAME).pdf %.sty %-numerical.bst %-author-year.bst : %.ins %.dtx xetex $(TEXOPTS) $< + xetex $(TEXOPTS) variants/gbt7714-variants.ins $(NAME).pdf : $(NAME).dtx FORCE_MAKE $(LATEXMK) $< @@ -46,5 +49,8 @@ cleanall : install : l3build install -ctan : - l3build ctan +ctan : test doc + ln -sf . $(NAME) + zip -r ../$(NAME).zip $(NAME)/{README.md,LICENSE,$(NAME).dtx,$(NAME).ins,\ + $(NAME).pdf,$(NAME).sty,$(NAME)-author-year.bst,$(NAME)-numerical.bst} + rm $(NAME) diff --git a/README.md b/README.md index 7afe22f..149708f 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ and English) for each biblilography entry. - Homepage: https://github.com/CTeX-org/gbt7714-bibtex-style - Maintainer: Zeping Lee -- Email: zeinglee AT gmail DOT com +- Email: zepinglee AT gmail DOT com - License: LaTeX Project Public License 1.3c or later ## 新特性 @@ -147,6 +147,6 @@ and English) for each biblilography entry. - 胡振震 [hushidong/biblatex-gb7714-2015](https://github.com/hushidong/biblatex-gb7714-2015) - 沈周 [szsdk/biblatex-gbt77142005](https://github.com/szsdk/biblatex-gbt77142005) - 胡海星 [Haixing-Hu/GBT7714-2005-BibTeX-Style](https://github.com/Haixing-Hu/GBT7714-2005-BibTeX-Style) -- 李志奇 [基于biblatex的符合GBT7714-2005的中文文献生成工具](http://bbs.ctex.org/forum.php?mod=viewthread&tid=74474) +- 李志奇 [基于biblatex的符合GBT7714-2005的中文文献生成工具](http://bbs.ctex.org/forum.php?mod=viewthread&tid=74474) (not accessible) - Casper Ti. Vector [CasperVector/biblatex-caspervector](https://github.com/CasperVector/biblatex-caspervector) -- 吴凯 [发布GBT7714-2005.bst version1 Beta版](http://bbs.ctex.org/forum.php?mod=viewthread&tid=33591) +- 吴凯 [发布GBT7714-2005.bst version1 Beta版](http://bbs.ctex.org/forum.php?mod=viewthread&tid=33591) (not accessible) diff --git a/build.lua b/build.lua index 42c434b..6070265 100644 --- a/build.lua +++ b/build.lua @@ -6,12 +6,9 @@ testfiledir = "./test/testfiles" testsuppdir = testfiledir .. "/support" installfiles = {"*.sty", "*.bst"} -sourcefiles = {"*.dtx"} -tagfiles = {"*.dtx", "*.ins", "CHANGELOG.md"} +tagfiles = {"*.dtx", "*.ins", "CHANGELOG.md", "variants/*.ins"} textfiles = {"*.md", "LICENSE"} -unpackfiles = {"*.dtx"} - checkengines = {"xetex"} stdengine = "xetex" diff --git a/gbt7714-author-year.bst b/gbt7714-author-year.bst index 4075739..65cc492 100644 --- a/gbt7714-author-year.bst +++ b/gbt7714-author-year.bst @@ -8,7 +8,7 @@ %% ------------------------------------------------------------------- %% GB/T 7714-2015 BibTeX Style %% https://github.com/CTeX-org/gbt7714-bibtex-style -%% Version: 2020/03/04 v2.0 +%% Version: 2020/03/14 v2.0.1 %% ------------------------------------------------------------------- %% Copyright (C) 2016-2020 by Zeping Lee %% ------------------------------------------------------------------- @@ -26,16 +26,21 @@ INTEGERS { period.between.author.year sentence.case.title link.title + title.in.journal show.mark show.medium.type slash.for.extraction in.booktitle - italic.jounal + abbreviate.journal + italic.journal bold.journal.volume show.missing.address.publisher + space.before.pages + only.start.page show.url show.doi show.note + show.english.translation lang.zh.order lang.ja.order lang.en.order @@ -50,16 +55,21 @@ FUNCTION {load.config} #0 'period.between.author.year := #1 'sentence.case.title := #0 'link.title := + #1 'title.in.journal := #1 'show.mark := #1 'show.medium.type := #1 'slash.for.extraction := #0 'in.booktitle := - #0 'italic.jounal := + #0 'abbreviate.journal := + #0 'italic.journal := #0 'bold.journal.volume := #1 'show.missing.address.publisher := + #0 'space.before.pages := + #0 'only.start.page := #1 'show.url := #1 'show.doi := #0 'show.note := + #0 'show.english.translation := #1 'lang.zh.order := #2 'lang.ja.order := #3 'lang.en.order := @@ -91,6 +101,7 @@ ENTRY series title translator + translation url urldate volume @@ -272,6 +283,12 @@ FUNCTION {output.check} FUNCTION {fin.entry} { add.period$ write$ + show.english.translation entry.lang lang.zh = and + { ")" + write$ + } + 'skip$ + if$ newline$ } @@ -863,12 +880,51 @@ FUNCTION {format.series.vol.num.booktitle} if$ } -FUNCTION {format.journal} -{ journal - italic.jounal entry.lang lang.en = and - 'italicize +FUNCTION {remove.period} +{ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ 'tmp.str := + tmp.str "." = not + { s tmp.str * 's := } + 'skip$ + if$ + t #2 global.max$ substring$ 't := + } + while$ + s +} + +FUNCTION {abbreviate} +{ remove.period + 't := + t "l" change.case$ 's := + "" + s "physical review letters" = + { "Phys Rev Lett" } 'skip$ if$ + 's := + s empty$ + { t } + { pop$ s } + if$ +} + +FUNCTION {format.journal} +{ journal empty$ not + { journal + abbreviate.journal + 'abbreviate + 'skip$ + if$ + italic.journal entry.lang lang.en = and + 'italicize + 'skip$ + if$ + } + { "" } + if$ } FUNCTION {set.entry.mark} @@ -1107,7 +1163,12 @@ FUNCTION {hyphenate} FUNCTION {format.pages} { pages empty$ { "" } - { pages hyphenate } + { pages + only.start.page + 'extract.before.dash + 'hyphenate + if$ + } if$ } @@ -1132,7 +1193,12 @@ FUNCTION {format.journal.number} FUNCTION {format.journal.pages} { pages empty$ { "" } - { ":\penalty0 " pages hyphenate * } + { space.before.pages + { ": " } + { ":\penalty0 " } + if$ + format.pages * + } if$ } @@ -1204,9 +1270,15 @@ FUNCTION {check.url} } FUNCTION {format.url} +{ entry.url +} + +FUNCTION {output.url} { entry.url empty$ not - { new.block entry.url } - { "" } + { new.block + entry.url output + } + 'skip$ if$ } @@ -1240,7 +1312,7 @@ FUNCTION {is.in.url} FUNCTION {format.doi} { "" - doi empty$ not show.doi and + doi empty$ not { "" 's := doi 't := #0 'numnames := @@ -1268,11 +1340,16 @@ FUNCTION {format.doi} t #2 global.max$ substring$ 't := } while$ - 's := - s empty$ not - { new.block s } - { "" } - if$ + } + 'skip$ + if$ +} + +FUNCTION {output.doi} +{ doi empty$ not show.doi and + show.english.translation entry.lang lang.zh = and not and + { new.block + format.doi output } 'skip$ if$ @@ -1304,6 +1381,30 @@ FUNCTION {format.note} if$ } +FUNCTION {output.translation} +{ show.english.translation entry.lang lang.zh = and + { translation empty$ not + { translation } + { "[English translation missing!]" } + if$ + " (in Chinese)" * output + write$ + format.doi duplicate$ empty$ not + { newline$ + write$ + } + 'pop$ + if$ + " \\" write$ + newline$ + "(" write$ + "" + before.all 'output.state := + } + 'skip$ + if$ +} + FUNCTION {empty.misc.check} { author empty$ title empty$ year empty$ @@ -1316,6 +1417,7 @@ FUNCTION {empty.misc.check} FUNCTION {monograph} { output.bibitem + output.translation author empty$ not { format.authors } { editor empty$ not @@ -1344,8 +1446,8 @@ FUNCTION {monograph} format.address.publisher output format.pages bbl.colon output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1353,6 +1455,7 @@ FUNCTION {monograph} FUNCTION {incollection} { output.bibitem + output.translation format.authors output author format.key output period.between.author.year @@ -1376,8 +1479,8 @@ FUNCTION {incollection} format.address.publisher output format.pages bbl.colon output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1385,6 +1488,7 @@ FUNCTION {incollection} FUNCTION {periodical} { output.bibitem + output.translation format.authors output author format.key output period.between.author.year @@ -1401,8 +1505,8 @@ FUNCTION {periodical} new.block format.address.publisher output format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1410,6 +1514,7 @@ FUNCTION {periodical} FUNCTION {article} { output.bibitem + output.translation format.authors output author format.key output period.between.author.year @@ -1418,17 +1523,21 @@ FUNCTION {article} if$ format.year "year" output.check new.block - format.title "title" output.check - "J" set.entry.mark - format.mark "" output.after - new.block + title.in.journal + { format.title "title" output.check + "J" set.entry.mark + format.mark "" output.after + new.block + } + 'skip$ + if$ format.journal "journal" output.check format.journal.volume output format.journal.number "" output.after format.journal.pages "" output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1436,6 +1545,7 @@ FUNCTION {article} FUNCTION {patent} { output.bibitem + output.translation format.authors output author format.key output period.between.author.year @@ -1450,8 +1560,8 @@ FUNCTION {patent} new.block format.date "year" output.check format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1461,6 +1571,7 @@ FUNCTION {electronic} { #1 #1 check.electronic #1 'entry.is.electronic := output.bibitem + output.translation format.authors output author format.key output period.between.author.year @@ -1477,8 +1588,8 @@ FUNCTION {electronic} format.pages bbl.colon output.after format.editdate "" output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -2008,9 +2119,9 @@ FUNCTION {begin.bib} show.doi { "\expandafter\ifx\csname href\endcsname\relax" write$ newline$ - " \def\doi#1{#1}\else" + " \DeclareUrlCommand\doi{\urlstyle{rm}}\else" write$ newline$ - " \def\doi#1{\href{https://doi.org/#1}{#1}}\fi" + " \providecommand\doi[1]{\href{https://doi.org/#1}{\nolinkurl{#1}}}\fi" write$ newline$ } 'skip$ diff --git a/gbt7714-numerical.bst b/gbt7714-numerical.bst index 8fdb371..c8424d0 100644 --- a/gbt7714-numerical.bst +++ b/gbt7714-numerical.bst @@ -8,7 +8,7 @@ %% ------------------------------------------------------------------- %% GB/T 7714-2015 BibTeX Style %% https://github.com/CTeX-org/gbt7714-bibtex-style -%% Version: 2020/03/04 v2.0 +%% Version: 2020/03/14 v2.0.1 %% ------------------------------------------------------------------- %% Copyright (C) 2016-2020 by Zeping Lee %% ------------------------------------------------------------------- @@ -26,16 +26,21 @@ INTEGERS { period.between.author.year sentence.case.title link.title + title.in.journal show.mark show.medium.type slash.for.extraction in.booktitle - italic.jounal + abbreviate.journal + italic.journal bold.journal.volume show.missing.address.publisher + space.before.pages + only.start.page show.url show.doi show.note + show.english.translation } FUNCTION {load.config} @@ -44,16 +49,21 @@ FUNCTION {load.config} #3 'max.num.authors := #1 'sentence.case.title := #0 'link.title := + #1 'title.in.journal := #1 'show.mark := #1 'show.medium.type := #1 'slash.for.extraction := #0 'in.booktitle := - #0 'italic.jounal := + #0 'abbreviate.journal := + #0 'italic.journal := #0 'bold.journal.volume := #1 'show.missing.address.publisher := + #0 'space.before.pages := + #0 'only.start.page := #1 'show.url := #1 'show.doi := #0 'show.note := + #0 'show.english.translation := } ENTRY @@ -80,6 +90,7 @@ ENTRY series title translator + translation url urldate volume @@ -261,6 +272,12 @@ FUNCTION {output.check} FUNCTION {fin.entry} { add.period$ write$ + show.english.translation entry.lang lang.zh = and + { ")" + write$ + } + 'skip$ + if$ newline$ } @@ -852,12 +869,51 @@ FUNCTION {format.series.vol.num.booktitle} if$ } -FUNCTION {format.journal} -{ journal - italic.jounal entry.lang lang.en = and - 'italicize +FUNCTION {remove.period} +{ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ 'tmp.str := + tmp.str "." = not + { s tmp.str * 's := } + 'skip$ + if$ + t #2 global.max$ substring$ 't := + } + while$ + s +} + +FUNCTION {abbreviate} +{ remove.period + 't := + t "l" change.case$ 's := + "" + s "physical review letters" = + { "Phys Rev Lett" } 'skip$ if$ + 's := + s empty$ + { t } + { pop$ s } + if$ +} + +FUNCTION {format.journal} +{ journal empty$ not + { journal + abbreviate.journal + 'abbreviate + 'skip$ + if$ + italic.journal entry.lang lang.en = and + 'italicize + 'skip$ + if$ + } + { "" } + if$ } FUNCTION {set.entry.mark} @@ -1096,7 +1152,12 @@ FUNCTION {hyphenate} FUNCTION {format.pages} { pages empty$ { "" } - { pages hyphenate } + { pages + only.start.page + 'extract.before.dash + 'hyphenate + if$ + } if$ } @@ -1121,7 +1182,12 @@ FUNCTION {format.journal.number} FUNCTION {format.journal.pages} { pages empty$ { "" } - { ":\penalty0 " pages hyphenate * } + { space.before.pages + { ": " } + { ":\penalty0 " } + if$ + format.pages * + } if$ } @@ -1193,9 +1259,15 @@ FUNCTION {check.url} } FUNCTION {format.url} +{ entry.url +} + +FUNCTION {output.url} { entry.url empty$ not - { new.block entry.url } - { "" } + { new.block + entry.url output + } + 'skip$ if$ } @@ -1229,7 +1301,7 @@ FUNCTION {is.in.url} FUNCTION {format.doi} { "" - doi empty$ not show.doi and + doi empty$ not { "" 's := doi 't := #0 'numnames := @@ -1257,11 +1329,16 @@ FUNCTION {format.doi} t #2 global.max$ substring$ 't := } while$ - 's := - s empty$ not - { new.block s } - { "" } - if$ + } + 'skip$ + if$ +} + +FUNCTION {output.doi} +{ doi empty$ not show.doi and + show.english.translation entry.lang lang.zh = and not and + { new.block + format.doi output } 'skip$ if$ @@ -1293,6 +1370,30 @@ FUNCTION {format.note} if$ } +FUNCTION {output.translation} +{ show.english.translation entry.lang lang.zh = and + { translation empty$ not + { translation } + { "[English translation missing!]" } + if$ + " (in Chinese)" * output + write$ + format.doi duplicate$ empty$ not + { newline$ + write$ + } + 'pop$ + if$ + " \\" write$ + newline$ + "(" write$ + "" + before.all 'output.state := + } + 'skip$ + if$ +} + FUNCTION {empty.misc.check} { author empty$ title empty$ year empty$ @@ -1305,6 +1406,7 @@ FUNCTION {empty.misc.check} FUNCTION {monograph} { output.bibitem + output.translation author empty$ not { format.authors } { editor empty$ not @@ -1329,8 +1431,8 @@ FUNCTION {monograph} format.year "year" output.check format.pages bbl.colon output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1338,6 +1440,7 @@ FUNCTION {monograph} FUNCTION {incollection} { output.bibitem + output.translation format.authors output author format.key output new.block @@ -1357,8 +1460,8 @@ FUNCTION {incollection} format.year "year" output.check format.pages bbl.colon output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1366,6 +1469,7 @@ FUNCTION {incollection} FUNCTION {periodical} { output.bibitem + output.translation format.authors output author format.key output new.block @@ -1378,8 +1482,8 @@ FUNCTION {periodical} format.address.publisher output format.date "year" output.check format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1387,21 +1491,26 @@ FUNCTION {periodical} FUNCTION {article} { output.bibitem + output.translation format.authors output author format.key output new.block - format.title "title" output.check - "J" set.entry.mark - format.mark "" output.after - new.block + title.in.journal + { format.title "title" output.check + "J" set.entry.mark + format.mark "" output.after + new.block + } + 'skip$ + if$ format.journal "journal" output.check format.date "year" output.check format.journal.volume output format.journal.number "" output.after format.journal.pages "" output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1409,6 +1518,7 @@ FUNCTION {article} FUNCTION {patent} { output.bibitem + output.translation format.authors output author format.key output new.block @@ -1418,8 +1528,8 @@ FUNCTION {patent} new.block format.date "year" output.check format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1429,6 +1539,7 @@ FUNCTION {electronic} { #1 #1 check.electronic #1 'entry.is.electronic := output.bibitem + output.translation format.authors output author format.key output new.block @@ -1444,8 +1555,8 @@ FUNCTION {electronic} format.pages bbl.colon output.after format.editdate "" output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1829,9 +1940,9 @@ FUNCTION {begin.bib} show.doi { "\expandafter\ifx\csname href\endcsname\relax" write$ newline$ - " \def\doi#1{#1}\else" + " \DeclareUrlCommand\doi{\urlstyle{rm}}\else" write$ newline$ - " \def\doi#1{\href{https://doi.org/#1}{#1}}\fi" + " \providecommand\doi[1]{\href{https://doi.org/#1}{\nolinkurl{#1}}}\fi" write$ newline$ } 'skip$ diff --git a/gbt7714.dtx b/gbt7714.dtx index f022e8a..e429388 100644 --- a/gbt7714.dtx +++ b/gbt7714.dtx @@ -12,58 +12,15 @@ % and version 1.3c or later is part of all distributions of LaTeX % version 2005/12/01 or later. % -%<*internal> -\iffalse -\fi -\begingroup - \def\nameoflatex{LaTeX2e} -\expandafter\endgroup\ifx\nameoflatex\fmtname\else -\csname fi\endcsname -% -%<*install> -\input docstrip.tex -\keepsilent -\askforoverwritefalse -\preamble -------------------------------------------------------------------- -GB/T 7714-2015 BibTeX Style -https://github.com/CTeX-org/gbt7714-bibtex-style -Version: 2020/03/04 v2.0 -------------------------------------------------------------------- -Copyright (C) 2016-\the\year by Zeping Lee -------------------------------------------------------------------- -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. -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 -\nopostamble -\generate{ - \file{\jobname.sty}{\from{\jobname.dtx}{package}} - \file{\jobname-numerical.bst}{\from{\jobname.dtx}{2015,numerical}} - \file{\jobname-author-year.bst}{\from{\jobname.dtx}{2015,authoryear}} -} -\endbatchfile -% -%<*internal> -\fi -% -%<*driver> -\ProvidesFile{\jobname.dtx} -% +% \fi +% +% \iffalse %\NeedsTeXFormat{LaTeX2e}[1999/12/01] %\ProvidesPackage{gbt7714} -%<*package> - [2020/03/04 v2.0 GB/T 7714-2015 BibTeX Style] -% +% [2020/03/14 v2.0.1 GB/T 7714-2015 BibTeX Style] % %<*driver> \documentclass[a4paper]{ltxdoc} -\usepackage[paper=a4paper,margin=1in,left=1.25in]{geometry} \usepackage{hypdoc} \usepackage[UTF8]{ctex} \usepackage{caption} @@ -119,7 +76,7 @@ version 2005/12/01 or later. % % % -% \GetFileInfo{\jobname.dtx} +% \GetFileInfo{gbt7714.sty} % % \title{GB/T 7714-2015 \BibTeX{} style} % \author{Zeping Lee\thanks{zepinglee AT gmail.com}} @@ -328,10 +285,13 @@ version 2005/12/01 or later. % period.between.author.year & |#0| & 著者和年份之间使用句点连接 \\ % sentence.case.title & |#1| & 将西文的题名转为 sentence case \\ % link.title & |#0| & 在题名上添加 url 的超链接 \\ +% title.in.journal & |#1| & 期刊是否显示标题 \\ % show.mark & |#1| & 显示文献类型标识 \\ % show.medium.type & |#1| & 显示载体类型标识 \\ -% italic.jounal & |#0| & 西文期刊名使用斜体 \\ +% 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.note & |#0| & 显示 note 域的信息 \\ @@ -406,14 +366,16 @@ version 2005/12/01 or later. % 吴凯. % \newblock 发布GBT7714-2005.bst version1 Beta版\allowbreak[EB/OL]. % \newblock 2006. -% \newblock \url{http://bbs.ctex.org/forum.php?mod=viewthread&tid=33591}. +% \newblock \url{http://bbs.ctex.org/forum.php?mod=viewthread&tid=33591} +% (not accessible). % % \bibitem[李志奇(2013)]{lqz2013} % 李志奇. % \newblock % 基于biblatex的符合GBT7714-2005的中文文献生成工具\allowbreak[EB/OL]. % \newblock 2013. -% \newblock \url{http://bbs.ctex.org/forum.php?mod=viewthread&tid=74474}. +% \newblock \url{http://bbs.ctex.org/forum.php?mod=viewthread&tid=74474} +% (not accessible). % % \bibitem[胡海星(2013)]{hhx2013} % 胡海星. @@ -465,8 +427,6 @@ version 2005/12/01 or later. \newcommand\gbt@obselete@option[1]{% \PackageWarning{gbt7714}{The option "#1" is obselete}% } -\DeclareOption{authoryear}{} - \DeclareOption{2015}{% \gbt@obselete@option{2015}% \gbt@legacy@interfacetrue @@ -512,6 +472,7 @@ version 2005/12/01 or later. % 定义接口切换引用文献的标注法,可用 \cs{citestyle} 调用 \opt{numerical} % 或 \opt{authoryear},参见 \pkg{natbib}。 % \begin{macrocode} +\renewcommand\newblock{\space} \newcommand\bibstyle@super{\bibpunct{[}{]}{,}{s}{,}{\textsuperscript{,}}} \newcommand\bibstyle@numbers{\bibpunct{[}{]}{,}{n}{,}{,}} \newcommand\bibstyle@authoryear{\bibpunct{(}{)}{;}{a}{,}{,}} @@ -821,16 +782,21 @@ INTEGERS { period.between.author.year sentence.case.title link.title + title.in.journal show.mark show.medium.type slash.for.extraction in.booktitle - italic.jounal + abbreviate.journal + italic.journal bold.journal.volume show.missing.address.publisher + space.before.pages + only.start.page show.url show.doi show.note + show.english.translation %<*authoryear> lang.zh.order lang.ja.order @@ -892,6 +858,16 @@ FUNCTION {load.config} % % \end{macrocode} % +% 期刊是否含标题: +% \begin{macrocode} +%<*!title-in-journal&!npr> + #1 'title.in.journal := +% +%<*title-in-journal|npr> + #0 'title.in.journal := +% +% \end{macrocode} +% % 著录文献类型标识(比如“[M/OL]“): % \begin{macrocode} #1 'show.mark := @@ -921,11 +897,21 @@ FUNCTION {load.config} #0 'in.booktitle := % \end{macrocode} % +% 期刊名使用缩写: +% \begin{macrocode} +%<*!abbreviate-journal&!npr> + #0 'abbreviate.journal := +% +%<*abbreviate-journal|npr> + #1 'abbreviate.journal := +% +% \end{macrocode} +% % 期刊名使用斜体: % \begin{macrocode} - #0 'italic.jounal := + #0 'italic.journal := %<*italicjournal> - #1 'italic.jounal := + #1 'italic.journal := % % \end{macrocode} % @@ -944,6 +930,26 @@ FUNCTION {load.config} % % \end{macrocode} % +% 页码是否只含起始页: +% \begin{macrocode} +%<*!space-begore-pages&!npr> + #0 'space.before.pages := +% +%<*space-begore-pages|npr> + #1 'space.before.pages := +% +% \end{macrocode} +% +% 页码前是否有空白: +% \begin{macrocode} +%<*!only-start-page&!npr> + #0 'only.start.page := +% +%<*only-start-page|npr> + #1 'only.start.page := +% +% \end{macrocode} +% % 是否著录 URL: % \begin{macrocode} #1 'show.url := @@ -967,6 +973,16 @@ FUNCTION {load.config} #0 'show.note := % \end{macrocode} % +% 中文文献是否显示英文翻译 +% \begin{macrocode} +%<*!show-english-translation&!npr> + #0 'show.english.translation := +% +%<*show-english-translation|npr> + #1 'show.english.translation := +% +% \end{macrocode} +% % 参考文献表按照“著者-出版年”组织时,各个文种的顺序: % \begin{macrocode} %<*authoryear> @@ -1013,6 +1029,7 @@ ENTRY series title translator + translation url urldate volume @@ -1389,6 +1406,12 @@ FUNCTION {output.check} FUNCTION {fin.entry} { add.period$ write$ + show.english.translation entry.lang lang.zh = and + { ")" + write$ + } + 'skip$ + if$ newline$ } @@ -2199,12 +2222,93 @@ FUNCTION {format.series.vol.num.booktitle} if$ } -FUNCTION {format.journal} -{ journal - italic.jounal entry.lang lang.en = and - 'italicize +FUNCTION {remove.period} +{ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ 'tmp.str := + tmp.str "." = not + { s tmp.str * 's := } + 'skip$ + if$ + t #2 global.max$ substring$ 't := + } + while$ + s +} + +FUNCTION {abbreviate} +{ remove.period + 't := + t "l" change.case$ 's := + "" + s "physical review letters" = + { "Phys Rev Lett" } + 'skip$ + if$ +%<*npr> + s "china physics c" = + { "Chin Phys C" } 'skip$ if$ + s "chinese physics letters" = + { "Chin Phys Lett" } + 'skip$ + if$ + s "nuclear instruments and methods in physics research section a" = + { "Nucl Instr and Meth A" } + 'skip$ + if$ + s "nuclear instruments and methods in physics research section a: accelerators, spectrometers, detectors and associated equipment" = + { "Nucl Instr and Meth A" } + 'skip$ + if$ + s "nuclear instruments and methods in physics research section b" = + { "Nucl Instr and Meth B" } + 'skip$ + if$ + s "nuclear instruments and methods in physics research section b: beam interactions with materials and atoms" = + { "Nucl Instr and Meth B" } + 'skip$ + if$ + s "physical review c" = + { "Phys Rev C" } + 'skip$ + if$ + s "physical review d" = + { "Phys Rev D" } + 'skip$ + if$ + s "physical review e" = + { "Phys Rev E" } + 'skip$ + if$ + s "physics letters b" = + { "Phys Lett B" } + 'skip$ + if$ +% + 's := + s empty$ + { t } + { pop$ s } + if$ +} + +FUNCTION {format.journal} +{ journal empty$ not + { journal + abbreviate.journal + 'abbreviate + 'skip$ + if$ + italic.journal entry.lang lang.en = and + 'italicize + 'skip$ + if$ + } + { "" } + if$ } % \end{macrocode} @@ -2551,7 +2655,12 @@ FUNCTION {hyphenate} FUNCTION {format.pages} { pages empty$ { "" } - { pages hyphenate } + { pages + only.start.page + 'extract.before.dash + 'hyphenate + if$ + } if$ } @@ -2584,7 +2693,12 @@ FUNCTION {format.journal.number} FUNCTION {format.journal.pages} { pages empty$ { "" } - { ":\penalty0 " pages hyphenate * } + { space.before.pages + { ": " } + { ":\penalty0 " } + if$ + format.pages * + } if$ } @@ -2666,9 +2780,15 @@ FUNCTION {check.url} } FUNCTION {format.url} +{ entry.url +} + +FUNCTION {output.url} { entry.url empty$ not - { new.block entry.url } - { "" } + { new.block + entry.url output + } + 'skip$ if$ } @@ -2706,7 +2826,7 @@ FUNCTION {is.in.url} FUNCTION {format.doi} { "" - doi empty$ not show.doi and + doi empty$ not { "" 's := doi 't := #0 'numnames := @@ -2734,11 +2854,16 @@ FUNCTION {format.doi} t #2 global.max$ substring$ 't := } while$ - 's := - s empty$ not - { new.block s } - { "" } - if$ + } + 'skip$ + if$ +} + +FUNCTION {output.doi} +{ doi empty$ not show.doi and + show.english.translation entry.lang lang.zh = and not and + { new.block + format.doi output } 'skip$ if$ @@ -2770,6 +2895,30 @@ FUNCTION {format.note} if$ } +FUNCTION {output.translation} +{ show.english.translation entry.lang lang.zh = and + { translation empty$ not + { translation } + { "[English translation missing!]" } + if$ + " (in Chinese)" * output + write$ + format.doi duplicate$ empty$ not + { newline$ + write$ + } + 'pop$ + if$ + " \\" write$ + newline$ + "(" write$ + "" + before.all 'output.state := + } + 'skip$ + if$ +} + % \end{macrocode} % % The function empty.misc.check complains if all six fields are empty, and @@ -2803,6 +2952,7 @@ FUNCTION {empty.misc.check} % \begin{macrocode} FUNCTION {monograph} { output.bibitem + output.translation author empty$ not { format.authors } { editor empty$ not @@ -2841,8 +2991,8 @@ FUNCTION {monograph} % format.pages bbl.colon output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -2863,6 +3013,7 @@ FUNCTION {monograph} % \begin{macrocode} FUNCTION {incollection} { output.bibitem + output.translation format.authors output author format.key output %<*authoryear> @@ -2891,8 +3042,8 @@ FUNCTION {incollection} % format.pages bbl.colon output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -2905,6 +3056,7 @@ FUNCTION {incollection} % \begin{macrocode} FUNCTION {periodical} { output.bibitem + output.translation format.authors output author format.key output %<*authoryear> @@ -2926,8 +3078,8 @@ FUNCTION {periodical} format.date "year" output.check % format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -2949,6 +3101,7 @@ FUNCTION {periodical} % \begin{macrocode} FUNCTION {article} { output.bibitem + output.translation format.authors output author format.key output %<*authoryear> @@ -2959,10 +3112,14 @@ FUNCTION {article} format.year "year" output.check % new.block - format.title "title" output.check - "J" set.entry.mark - format.mark "" output.after - new.block + title.in.journal + { format.title "title" output.check + "J" set.entry.mark + format.mark "" output.after + new.block + } + 'skip$ + if$ format.journal "journal" output.check %<*numerical> format.date "year" output.check @@ -2971,8 +3128,8 @@ FUNCTION {article} format.journal.number "" output.after format.journal.pages "" output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -2986,6 +3143,7 @@ FUNCTION {article} % \begin{macrocode} FUNCTION {patent} { output.bibitem + output.translation format.authors output author format.key output %<*authoryear> @@ -3002,8 +3160,8 @@ FUNCTION {patent} new.block format.date "year" output.check format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -3017,6 +3175,7 @@ FUNCTION {electronic} { #1 #1 check.electronic #1 'entry.is.electronic := output.bibitem + output.translation format.authors output author format.key output %<*authoryear> @@ -3041,8 +3200,8 @@ FUNCTION {electronic} format.pages bbl.colon output.after format.editdate "" output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -3971,9 +4130,9 @@ FUNCTION {begin.bib} show.doi { "\expandafter\ifx\csname href\endcsname\relax" write$ newline$ - " \def\doi#1{#1}\else" + " \DeclareUrlCommand\doi{\urlstyle{rm}}\else" write$ newline$ - " \def\doi#1{\href{https://doi.org/#1}{#1}}\fi" + " \providecommand\doi[1]{\href{https://doi.org/#1}{\nolinkurl{#1}}}\fi" write$ newline$ } 'skip$ diff --git a/gbt7714.ins b/gbt7714.ins index 7f09b09..5d0ba5e 100644 --- a/gbt7714.ins +++ b/gbt7714.ins @@ -5,7 +5,7 @@ ------------------------------------------------------------------- GB/T 7714-2015 BibTeX Style https://github.com/CTeX-org/gbt7714-bibtex-style -Version: 2020/03/04 v2.0 +Version: 2020/03/14 v2.0.1 ------------------------------------------------------------------- Copyright (C) 2016-\the\year by Zeping Lee ------------------------------------------------------------------- @@ -20,32 +20,8 @@ version 2005/12/01 or later. \endpreamble \nopostamble \generate{ - \file{\jobname.sty}{\from{\jobname.dtx}{package}} - \file{\jobname-numerical.bst}{\from{\jobname.dtx}{2015,numerical}} - \file{\jobname-author-year.bst}{\from{\jobname.dtx}{2015,authoryear}} - \file{versions/2005/\jobname-2005-numerical.bst}{ - \from{\jobname.dtx}{2005,numerical} - } - \file{versions/2005/\jobname-2005-author-year.bst}{ - \from{\jobname.dtx}{2005,authoryear} - } - \file{versions/thu/thuthesis-numeric.bst}{ - \from{\jobname.dtx}{thu,2005,numerical} - } - \file{versions/thu/thuthesis-author-year.bst}{ - \from{\jobname.dtx}{thu,2005,authoryear} - } - \file{versions/thu/thuthesis-bachelor.bst}{ - \from{\jobname.dtx}{2015,numerical,noslsn} - } - \file{versions/ustc/ustcthesis-authoryear.bst}{ - \from{\jobname.dtx}{ustc,2015,authoryear} - } - \file{versions/ustc/ustcthesis-numerical.bst}{ - \from{\jobname.dtx}{ustc,2015,numerical} - } - \file{versions/ustc/ustcthesis-bachelor.bst}{ - \from{\jobname.dtx}{ustc,2015,numerical,nouppercase,nomark,italicjournal} - } + \file{gbt7714.sty}{\from{gbt7714.dtx}{package}} + \file{gbt7714-numerical.bst}{\from{gbt7714.dtx}{2015,numerical}} + \file{gbt7714-author-year.bst}{\from{gbt7714.dtx}{2015,authoryear}} } \endbatchfile diff --git a/gbt7714.sty b/gbt7714.sty index 92d2e5e..fd7fe5c 100644 --- a/gbt7714.sty +++ b/gbt7714.sty @@ -8,7 +8,7 @@ %% ------------------------------------------------------------------- %% GB/T 7714-2015 BibTeX Style %% https://github.com/CTeX-org/gbt7714-bibtex-style -%% Version: 2020/03/04 v2.0 +%% Version: 2020/03/14 v2.0.1 %% ------------------------------------------------------------------- %% Copyright (C) 2016-2020 by Zeping Lee %% ------------------------------------------------------------------- @@ -22,7 +22,7 @@ %% ------------------------------------------------------------------- \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesPackage{gbt7714} - [2020/03/04 v2.0 GB/T 7714-2015 BibTeX Style] + [2020/03/14 v2.0.1 GB/T 7714-2015 BibTeX Style] \newif\ifgbt@legacy@interface \newif\ifgbt@mmxv \newif\ifgbt@numerical @@ -30,8 +30,6 @@ \newcommand\gbt@obselete@option[1]{% \PackageWarning{gbt7714}{The option "#1" is obselete}% } -\DeclareOption{authoryear}{} - \DeclareOption{2015}{% \gbt@obselete@option{2015}% \gbt@legacy@interfacetrue @@ -63,6 +61,7 @@ \ProcessOptions\relax \RequirePackage[compress]{natbib} \RequirePackage{url} +\renewcommand\newblock{\space} \newcommand\bibstyle@super{\bibpunct{[}{]}{,}{s}{,}{\textsuperscript{,}}} \newcommand\bibstyle@numbers{\bibpunct{[}{]}{,}{n}{,}{,}} \newcommand\bibstyle@authoryear{\bibpunct{(}{)}{;}{a}{,}{,}} diff --git a/test/check.sh b/test/check.sh deleted file mode 100644 index fef4bc9..0000000 --- a/test/check.sh +++ /dev/null @@ -1,55 +0,0 @@ -testfiledir="test/testbst" -testsuppdir="$testfiledir/support" -unpackdir="build/unpacked"; -testdir="build/test"; -texoptions="-file-line-error -halt-on-error -interaction=nonstopmode" -unpackexe="xetex $texoptions" -checkexe="xelatex $texoptions -no-pdf" -bibtexexe="bibtex" - - -if [ ! -d "$unpackdir" ]; then - mkdir -p "$unpackdir"; -fi -cp -f "gbt7714.dtx" "$unpackdir"; - - -if [ ! -d "$testdir" ]; then - mkdir -p "$testdir"; -fi -cp -f "$testfiledir/support/test.aux" "$testdir"; -cp -f "$testfiledir/support/standard.bib" "$testdir"; - - -succuss=true; -echo "Running checks on"; - -for file in $testfiledir/*.dtx; do - filename=$(basename $file); - testname=$(basename $filename .dtx); - echo " $testname"; - - cp -f "$file" "$unpackdir"; # test bib file - - ( cd "$unpackdir"; $unpackexe $filename > /dev/null; ) - cp -f "$unpackdir/test.bst" "$testdir" - cp -f "$unpackdir/test.bib" "$testdir" - - ( cd $testdir; $bibtexexe test > /dev/null; ) - - bblfile="$testdir/test.bbl"; - stdfile="$testfiledir/$testname.bbl"; - if ! diff -q "$bblfile" "$stdfile"; then - echo "fails"; - succuss=false; - cp -f "$bblfile" "$stdfile"; - fi -done - -if $succuss; then - echo ""; - echo "All checks passed"; - echo ""; -else - exit 1; -fi diff --git a/test/save.sh b/test/save.sh index 2c91d11..e420b1b 100644 --- a/test/save.sh +++ b/test/save.sh @@ -38,7 +38,7 @@ for file in $testfiledir/*.dtx; do bblfile="$testdir/test.bbl"; stdfile="$testfiledir/$testname.bbl"; - if ! diff -q "$bblfile" "$stdfile"; then + if ! diff -q "$bblfile" "$stdfile" > /dev/null; then cp -f "$bblfile" "$stdfile"; fi done diff --git a/test/test.sh b/test/test.sh new file mode 100644 index 0000000..738dfc4 --- /dev/null +++ b/test/test.sh @@ -0,0 +1,77 @@ +testfiledir="test/testbst" +testsuppdir="$testfiledir/support" +unpackdir="build/unpacked"; +testdir="build/test"; +texoptions="-file-line-error -halt-on-error -interaction=nonstopmode" +unpackexe="xetex $texoptions" +checkexe="xelatex $texoptions -no-pdf" +bibtexexe="bibtex" + + +if [ ! -d "$unpackdir" ]; then + mkdir -p "$unpackdir"; +fi +cp -f "gbt7714.dtx" "$unpackdir"; + + +if [ ! -d "$testdir" ]; then + mkdir -p "$testdir"; +fi +cp -f "$testfiledir/support/test.aux" "$testdir"; +cp -f "$testfiledir/support/standard.bib" "$testdir"; + + +if [ -z "$1" ]; then + fails=0; + echo "Running checks on"; + + for file in $testfiledir/*.dtx; do + filename=$(basename $file); + testname=$(basename $filename .dtx); + echo " $testname"; + + cp -f "$file" "$unpackdir"; # test bib file + + ( cd "$unpackdir"; $unpackexe $filename > /dev/null; ) + cp -f "$unpackdir/test.bst" "$testdir" + cp -f "$unpackdir/test.bib" "$testdir" + + ( cd $testdir; if ! $bibtexexe test > /dev/null; then $bibtexexe test; fi ) + + bblfile="$testdir/test.bbl"; + stdfile="$testfiledir/$testname.bbl"; + if ! diff -q "$bblfile" "$stdfile" > /dev/null 2> /dev/null; then + echo " differs"; + cp -f "$bblfile" "$stdfile"; + fails=$((fails+1)); + fi + done + + echo ""; + if [ $fails == 0 ]; then + echo "All checks passed"; + echo ""; + fi + exit $fails; + +else + cp -f "$testfiledir/support/test.tex" "$testdir"; + cp -f "gbt7714.sty" "$testdir"; + testname="$1"; + filename="$testname.dtx"; + file="$testfiledir/$testname.dtx"; + + cp -f "$file" "$unpackdir"; # test bib file + + ( cd "$unpackdir"; $unpackexe $filename; ) + cp -f "$unpackdir/test.bst" "$testdir"; + cp -f "$unpackdir/test.bib" "$testdir"; + + ( cd "$testdir"; latexmk -xelatex test; ) + + bblfile="$testdir/test.bbl"; + stdfile="$testfiledir/$testname.bbl"; + if ! diff -q "$bblfile" "$stdfile" > /dev/null; then + cp -f "$bblfile" "$stdfile"; + fi +fi diff --git a/test/testbst/2015-authoryear.bbl b/test/testbst/2015-authoryear.bbl index e69d4b7..9be6601 100644 --- a/test/testbst/2015-authoryear.bbl +++ b/test/testbst/2015-authoryear.bbl @@ -4,8 +4,8 @@ \expandafter\ifx\csname urlstyle\endcsname\relax\else \urlstyle{same}\fi \expandafter\ifx\csname href\endcsname\relax - \def\doi#1{#1}\else - \def\doi#1{\href{https://doi.org/#1}{#1}}\fi + \DeclareUrlCommand\doi{\urlstyle{rm}}\else + \providecommand\doi[1]{\href{https://doi.org/#1}{\nolinkurl{#1}}}\fi \bibitem[刘彻东(1998)]{liuchedong1998zhongguo} 刘彻东, 1998. diff --git a/test/testbst/2015-numerical.bbl b/test/testbst/2015-numerical.bbl index c39cf0d..1aab973 100644 --- a/test/testbst/2015-numerical.bbl +++ b/test/testbst/2015-numerical.bbl @@ -4,8 +4,8 @@ \expandafter\ifx\csname urlstyle\endcsname\relax\else \urlstyle{same}\fi \expandafter\ifx\csname href\endcsname\relax - \def\doi#1{#1}\else - \def\doi#1{\href{https://doi.org/#1}{#1}}\fi + \DeclareUrlCommand\doi{\urlstyle{rm}}\else + \providecommand\doi[1]{\href{https://doi.org/#1}{\nolinkurl{#1}}}\fi \bibitem[陈登原(2000)]{chendengyuan2000guoshijiuwen} 陈登原. diff --git a/test/testbst/npr.bbl b/test/testbst/npr.bbl new file mode 100644 index 0000000..20bba87 --- /dev/null +++ b/test/testbst/npr.bbl @@ -0,0 +1,930 @@ +\begin{thebibliography}{134} +\providecommand{\natexlab}[1]{#1} +\providecommand{\url}[1]{#1} +\expandafter\ifx\csname urlstyle\endcsname\relax\else + \urlstyle{same}\fi +\expandafter\ifx\csname href\endcsname\relax + \DeclareUrlCommand\doi{\urlstyle{rm}}\else + \providecommand\doi[1]{\href{https://doi.org/#1}{\nolinkurl{#1}}}\fi + +\bibitem[陈登原(2000)]{chendengyuan2000guoshijiuwen} +[English translation missing!] (in Chinese) \\ +(陈登原. +\newblock 国史旧闻: 第 1 卷\allowbreak[M]. +\newblock 北京: 中华书局, 2000: 29.) + +\bibitem[哈里森·沃尔德伦(2012)]{hali2012jingji} +[English translation missing!] (in Chinese) \\ +(哈里森·沃尔德伦. +\newblock 经济数学与金融数学\allowbreak[M]. +\newblock 谢远涛, 译. +\newblock 北京: 中国人民大学出版社, 2012: 235.) + +\bibitem[北京市政协民族和宗教委员会\ + 等(2012)北京市政协民族和宗教委员会 and + 北京联合大学民族与宗教研究所]{beijing2012lidai} +[English translation missing!] (in Chinese) \\ +(北京市政协民族和宗教委员会, + 北京联合大学民族与宗教研究所. +\newblock 历代王朝与民族宗教\allowbreak[M]. +\newblock 北京: 民族出版社, 2012: 112.) + +\bibitem[全国信息与文献标准化技术委员会(2010{\natexlab{a}})]{quanguo2010doubai} +[English translation missing!] (in Chinese) \\ +(全国信息与文献标准化技术委员会. +\newblock 信息与文献\quad 都柏林核心元数据元素集: GB/T + 25100—2010\allowbreak[S]. +\newblock 北京: 中国标准出版社, 2010{\natexlab{a}}: 2.) + +\bibitem[徐光宪\ 等(2010)徐光宪 and + 王祥云]{xuguangxian2010wuzhijiegou} +[English translation missing!] (in Chinese) \\ +(徐光宪, 王祥云. +\newblock 物质结构\allowbreak[M]. +\newblock 北京: 科学出版社, 2010.) + +\bibitem[顾炎武(1992)]{guyanwu1992changping} +[English translation missing!] (in Chinese) \\ +(顾炎武. +\newblock 昌平山水记:京东考古录\allowbreak[M]. +\newblock 北京: 北京古籍出版社, 1992.) + +\bibitem[王夫之(1865(清同治四年))]{wangfuzhi1865songlun} +[English translation missing!] (in Chinese) \\ +(王夫之. +\newblock 宋论\allowbreak[M]. +\newblock 刻本. +\newblock 金陵: 湘乡曾国荃, 1865(清同治四年).) + +\bibitem[牛志明\ 等(2012)牛志明, 斯温兰德, and + 雷光春]{niuzhiming2012zonghe} +[English translation missing!] (in Chinese) \\ +(牛志明, 斯温兰德, 雷光春. +\newblock 综合湿地管理国际研讨会论文集\allowbreak[C]. +\newblock 北京: 海洋出版社, 2012.) + +\bibitem[中国第一历史档案馆\ 等(2001)中国第一历史档案馆 and + 辽宁省档案馆]{zhongguo2001zhongguo} +[English translation missing!] (in Chinese) \\ +(中国第一历史档案馆, 辽宁省档案馆. +\newblock 中国明朝档案总汇\allowbreak[A]. +\newblock 桂林: 广西师范大学出版社, 2001.) + +\bibitem[杨保军(2012)]{yangbaojun2012xinwen} +[English translation missing!] (in Chinese) \\ +(杨保军. +\newblock 新闻道德论\allowbreak[D/OL]. +\newblock 北京: 中国人民大学出版社, 2012\allowbreak[2012-11-01]. +\newblock + \url{http://apabi.lib.pku.edu.cn/usp/pku/pub.mvc?pid=book.detail&metaid=m.20101104-BPO-889-1023&cult=CN}.) + +\bibitem[赵学功(2001)]{zhaoxuegong2001dangdai} +[English translation missing!] (in Chinese) \\ +(赵学功. +\newblock 当代美国外交\allowbreak[M/OL]. +\newblock 北京: 社会科学文献出版社, 2001\allowbreak[2014-06-11]. +\newblock \url{http://www.cadal.zju.edu.cn/book/trySinglePage/33023884/1}.) + +\bibitem[同济大学土木工程防灾国家重点实验室(2011)]{tongji2011wenchuan} +[English translation missing!] (in Chinese) \\ +(同济大学土木工程防灾国家重点实验室. +\newblock 汶川地震灾害研究\allowbreak[M/OL]. +\newblock 上海: 同济大学出版社, 2011: 5\allowbreak[2013-05-09]. +\newblock + \url{http://apabi.lib.pku.edu.cn/usp/pku/pub.mvc?pid=book.detail&metaid=m.20120406-YPT-889-0010}.) + +\bibitem[中国造纸学会(2003)]{zaozhi2003zhongguo} +[English translation missing!] (in Chinese) \\ +(中国造纸学会. +\newblock 中国造纸年鉴:2003\allowbreak[M/OL]. +\newblock 北京: 中国轻工业出版社, 2003\allowbreak[2014-04-25]. +\newblock \url{http://www.cadal.zju.edu.cn/book/view/25010080}.) + +\bibitem[Peebles(2001)]{peebles2001probability} +PEEBLES~P~Z, Jr. +\newblock Probability, random variables, and random signal + principles\allowbreak[M]. +\newblock 4th ed. +\newblock New York: McGraw-Hill, 2001. + +\bibitem[Yufin(2000)]{yufin2000geoecology} +YUFIN~S~A. +\newblock Geoecology and computers: Proceedings of the {Third International + Conference on Advances of Computer Methods in Geotechnical and + Geoenvironmental Engineering, Moscow, Russia, February 1--4, + 2000}\allowbreak[C]. +\newblock Rotterdam: A. A. Balkema, 2000. + +\bibitem[Baldock(2011)]{baldock2011developing} +BALDOCK~P. +\newblock Developing early childhood services: Past, present and + future\allowbreak[M/OL]. +\newblock Rotterdam: Open University Press, 2011: 105\allowbreak[2012-11-27]. +\newblock \url{http://lib.myilibrary.com/Open.aspx?id=312377}. + +\bibitem[Fan et~al.(2013)Fan and Sommers]{fan2013food} +FAN~X, SOMMERS~C~H. +\newblock Food irradiation research and technology\allowbreak[M/OL]. +\newblock 2nd ed. +\newblock Ames, Iowa: Blackwell Publishing, 2013: 25\allowbreak[2014-06-26]. +\newblock + \url{http://onlinelibrary.wiley.com/doi/10.1002/9781118422557.ch2/summary}. + +\bibitem[wan(2011)]{wangfuzhi2011zhouyi} +[English translation missing!] (in Chinese) \\ +(周易外传:卷 5\allowbreak[M]//\allowbreak +王夫之. +\newblock 船山全书: 第 6 册. +\newblock 长沙: 岳麓书社, 2011: 1109.) + +\bibitem[程根伟(1999)]{chenggenwei1999hongshui} +[English translation missing!] (in Chinese) \\ +(程根伟. +\newblock 1998 + 年长江洪水的成因与减灾对策\allowbreak[M]//\allowbreak +许厚泽, 赵其国. +\newblock 长江流域洪涝灾害与科技对策. +\newblock 北京: 科学出版社, 1999: 32.) + +\bibitem[陈晋镳\ 等(1980)陈晋镳, 张惠民, 朱士兴, 赵震, and + 王振刚]{chenjinbiao1980jixian} +[English translation missing!] (in Chinese) \\ +(陈晋镳, 张惠民, 朱士兴, 等. +\newblock 蓟县震旦亚界研究\allowbreak[M]//\allowbreak +中国地质科学院天津地质矿产研究所. +\newblock 中国震旦亚界. +\newblock 天津: 天津科学技术出版社, 1980: 56.) + +\bibitem[马克思(2013)]{makesi2013zhengzhi} +[English translation missing!] (in Chinese) \\ +(马克思. +\newblock 政治经济学批判\allowbreak[M]//\allowbreak +马克思, 恩格斯. +\newblock 马克思恩格斯全集: 第 35 卷. +\newblock 北京: 人民出版社, 2013: 302.) + +\bibitem[贾东琴\ 等(2011)贾东琴 and 柯平]{jiadongqin2011mianxiang} +[English translation missing!] (in Chinese) \\ +(贾东琴, 柯平. +\newblock + 面向数字素养的高校图书馆数字服务体系研究\allowbreak[C]//\allowbreak +中国图书馆学会. +\newblock 中国图书馆学会年会论文集: 2011 年卷. +\newblock 北京: 国家图书馆出版社, 2011: 45.) + +\bibitem[Weinstein et~al.(1974)Weinstein and Swertz]{weinstein1974pathogenic} +WEINSTEIN~L, SWERTZ~M~N. +\newblock Pathogenic properties of invading + microorganism\allowbreak[M]//\allowbreak +SODEMAN~W~A, Jr, SODEMAN~W~A. +\newblock Pathologic physiology: mechanisms of disease. +\newblock Philadelphia: Saunders, 1974: 745. + +\bibitem[Roberson et~al.(2011)Roberson and Burneson]{roberson2011drinking} +ROBERSON~J~A, BURNESON~E~G. +\newblock Drinking water standards, regulations and + goals\allowbreak[M/OL]//\allowbreak +{American Water Works Association}. +\newblock Water quality \& treatment: a handbook on drinking water. +\newblock 6th ed. +\newblock New York: McGraw-Hill, 2011: 1.1\allowbreak[2012-12-10]. +\newblock \url{http://lib.myilibrary.com/Open.aspx?id=291430}. + +\bibitem[中华医学会湖北分会(1984)]{zhonghua1984linchuang} +[English translation missing!] (in Chinese) \\ +(中华医学会湖北分会. +\newblock 临床内科杂志\allowbreak[J]. +\newblock 1984, 1\penalty0 (1)--. +\newblock 武汉: 中华医学会湖北分会, 1984--.) + +\bibitem[中国图书馆学会(1957)]{zhongguo1957tushu} +[English translation missing!] (in Chinese) \\ +(中国图书馆学会. +\newblock 图书馆学通讯\allowbreak[J]. +\newblock 1957\penalty0 (1)--1990\penalty0 (4). +\newblock 北京: 北京图书馆, 1957--1990.) + +\bibitem[{American Association for the Advancement of + Science}(1883)]{aaas1883science} +{American Association for the Advancement of Science}. +\newblock Science\allowbreak[J]. +\newblock 1883, 1\penalty0 (1)--. +\newblock Washington, D.C.: American Association for the Advancement of + Science, 1883--. + +\bibitem[袁训来\ 等(2012)袁训来, 陈哲, 肖书海, + et~al.]{yuanxunlai2012lantian} +[English translation missing!] (in Chinese) \\ +(袁训来, 陈哲, 肖书海, 等. +\newblock 科学通报, 2012, 55\penalty0 (34): 3219.) + +\bibitem[余建斌(2013)]{yujianbin2013women} +[English translation missing!] (in Chinese) \\ +(余建斌. +\newblock 人民日报, 2013-01-12\penalty0 (2)\allowbreak[2013-03-20]. +\newblock + \url{http://paper.people.com.cn/rmrb/html/2013-01/12/nw.D110000renmrb_20130112_5-02.htm}.) + +\bibitem[李炳穆(2008{\natexlab{a}})]{libingmu2008hanguo} +[English translation missing!] (in Chinese) \\ +(李炳穆. +\newblock 图书情报工作, 2008, 52\penalty0 (6): 6\allowbreak[2013-10-25]. +\newblock \url{http://www.docin.com/p-400265742.html}.) + +\bibitem[李幼平\ 等(2010)李幼平 and 王莉]{liyouping2010xunzheng} +[English translation missing!] (in Chinese) \\ +(李幼平, 王莉. +\newblock 中华移植杂志(电子版), 2010, 4\penalty0 (3): + 225\allowbreak[2014-06-09]. +\newblock \url{http://www.cqvip.com/Read/Read.aspx?id=36658332}.) + +\bibitem[武丽丽\ 等(2008)武丽丽, 华一新, 张亚军, + et~al.]{wulili2008beidou} +[English translation missing!] (in Chinese) +DOI: \doi{10.3771/j.issn.1009-2307.2008.05.002} \\ +(武丽丽, 华一新, 张亚军, 等. +\newblock 测绘科学, 2008, 33\penalty0 (5): 8\allowbreak[2009-10-25]. +\newblock \url{http://vip.calis.edu.cn/CSTJ/Sear.dll?OPAC_CreateDetail}.) + +\bibitem[Kanamori(1998)]{kanamori1998shaking} +KANAMORI~H. +\newblock Science, 1998, 279\penalty0 (5359): 2063. + +\bibitem[Caplan(1993)]{caplan1993cataloging} +CAPLAN~P. +\newblock The public access computer systems review, 1993, 4\penalty0 (2): 61. + +\bibitem[Frese et~al.(2013)Frese, Katus, and Meder]{frese2013next} +FRESE~K~S, KATUS~H~A, MEDER~B. +\newblock Biology, 2013, 2\penalty0 (1): 378\allowbreak[2013-03-19]. +\newblock \url{http://www.mdpi.com/2079-7737/2/1/378}. +\newblock DOI: \doi{10.3390/biology2010378}. + +\bibitem[Myburg et~al.(2014)Myburg, Grattapaglia, Tuskan, + et~al.]{myburg2014genome} +MYBURG~A~A, GRATTAPAGLIA~D, TUSKAN~G~A, et~al. +\newblock Nature, 2014, 510: 356\allowbreak[2014-06-25]. +\newblock + \url{http://www.nature.com/nature/journal/v510/n7505/pdf/nature13308.pdf}. +\newblock DOI: \doi{10.1038/nature13308}. + +\bibitem[邓一刚(2006)]{dengyigang2006quanzhineng} +[English translation missing!] (in Chinese) \\ +(邓一刚. +\newblock 全智能节电器: 200610171314.3\allowbreak[P]. +\newblock 2006-12-13.) + +\bibitem[西安电子科技大学(2002)]{xian2002guangzhebian} +[English translation missing!] (in Chinese) \\ +(西安电子科技大学. +\newblock 光折变自适应光外差探测方法: 01128777.2\allowbreak[P/OL]. +\newblock 2002-03-06\allowbreak[2002-05-28]. +\newblock + \url{http://211.152.9.47/sipoasp/zljs/hyjs-yx-new.asp?recid=01128777.2&leixin=0}.) + +\bibitem[Tachibana et~al.(2005)Tachibana, Shimizu, Kobayshi, and + Nakamura]{tachibana2005electronic} +TACHIBANA~R, SHIMIZU~S, KOBAYSHI~S, et~al. +\newblock Electronic watermarking method and system: + US6915001\allowbreak[P/OL]. +\newblock 2005-07-05\allowbreak[2013-11-11]. +\newblock \url{http://www.google.co.in/patents/US6915001}. + +\bibitem[中国互联网络信息中心(2012)]{hulianwang2012di} +[English translation missing!] (in Chinese) \\ +(中国互联网络信息中心. +\newblock 第 29 + 次中国互联网络发展现状统计报告\allowbreak[R/OL]. +\newblock \allowbreak(2012-01-16)\allowbreak[2013-03-26]. +\newblock + \url{http://www.cnnic.net.cn/hlwfzyj/hlwxzbg/201201/P020120709345264469680}.) + +\bibitem[北京市人民政府办公厅(2005)]{beijing2005guanyu} +[English translation missing!] (in Chinese) \\ +(北京市人民政府办公厅. +\newblock + 关于转发北京市企业投资项目核准暂行实施办法的通知: + 京政办发[2005]37号\allowbreak[A/OL]. +\newblock \allowbreak(2005-07-12)\allowbreak[2011-07-12]. +\newblock \url{http://china.findlaw.cn/fagui/p_1/39934.html}.) + +\bibitem[Bawden(2008)]{bawden2008origins} +BAWDEN~D. +\newblock Origins and concepts of digital literacy\allowbreak[EB/OL]. +\newblock \allowbreak(2008-05-04)\allowbreak[2013-03-08]. +\newblock + \url{http://www.soi.city.ac.uk/~dbawden/digital%20literacy%20chapter.pdf}. + +\bibitem[{{Online Computer Library Center, Inc}([2012])}]{oclc2012about} +{Online Computer Library Center, Inc}. +\newblock About {OCLC}: History of cooperation\allowbreak[EB/OL]. +\newblock \allowbreak[2012-03-27]. +\newblock \url{http://www.oclc.org/about/cooperation.en.html}. + +\bibitem[Hopkinson(2009)]{hopkinson2009unimarc} +HOPKINSON~A. +\newblock {UNIMARC} and metadata: Dublin core\allowbreak[EB/OL]. +\newblock \allowbreak(2009-04-22)\allowbreak[2013-03-27]. +\newblock \url{http://archive.ifla.org/IV/ifla64/138-161e.htm}. + +\bibitem[刘乃安(2000)]{liunaian2000shengwu} +[English translation missing!] (in Chinese) +DOI: \doi{10.7666/d.y351065} \\ +(刘乃安. +\newblock + 生物质材料热解失重动力学及其分析方法研究\allowbreak[D/OL]. +\newblock 安徽: 中国科学技术大学, 2000: 17\allowbreak[2014-08-29]. +\newblock + \url{http://wenku.baidu.com/link?url=GJDJxb4lxBUXnIPmq1XoEGSIr1H8TMLbidW_LjlYu33tpt707u62rKliypU_FBGUmox7ovPNaVIVBALAMd5yfwuKUUOAGYuB7cuZ-BYEhXa}.) + +\bibitem[Deverell et~al.(2013)Deverell and Igler]{deverell2013companion} +DEVERELL~W, IGLER~D. +\newblock A companion to {California} history\allowbreak[D/OL]. +\newblock New York: John Wiley \& Sons, 2013: 21\allowbreak[2014-06-24]. +\newblock + \url{http://onlinelibrary.wiley.com/doi/10.1002/9781444305036.ch2/summary}. + +\bibitem[Baker et~al.(1995)Baker and Jackson]{baker1995future} +BAKER~S~K, JACKSON~M~E. +\newblock The future of resource sharing\allowbreak[M]. +\newblock New York: The Haworth Press, 1995. + +\bibitem[Chernik(1982)]{chernik1982introduction} +CHERNIK~B~E. +\newblock Introduction to library services for library + technicians\allowbreak[M]. +\newblock Littleton, Colo.: Libraries Unlimited, Inc., 1982. + +\bibitem[尼葛洛庞帝(1996)]{nigeluopangdi1996shuzi} +[English translation missing!] (in Chinese) \\ +(尼葛洛庞帝. +\newblock 数字化生存\allowbreak[M]. +\newblock 胡泳, 范海燕, 译. +\newblock 海口: 海南出版社, 1996.) + +\bibitem[汪冰(1997)]{wangbing1997dianzi} +[English translation missing!] (in Chinese) \\ +(汪冰. +\newblock 电子图书馆理论与实践研究\allowbreak[M]. +\newblock 北京: 北京图书馆出版社, 1997: 16.) + +\bibitem[杨宗英(1996)]{yangzongying1996dianzi} +[English translation missing!] (in Chinese) \\ +(杨宗英. +\newblock 中国图书馆学报, 1996\penalty0 (2): 24.) + +\bibitem[Dowler(1995)]{dowler1995research} +DOWLER~L. +\newblock Journal of library administration, 1995, 21\penalty0 (1/2): 5. + +\bibitem[Sunstein(1996)]{sunstein1996social} +SUNSTEIN~C~R. +\newblock Columbia law review, 1996, 96: 903\allowbreak[2012-01-26]. +\newblock + \url{http://www.heinonline.org/HOL/Page?handle=hein.journals/clr96&id=913&collection=journals&index=journals/clr}. + +\bibitem[Morri(2010)]{morri2010why} +MORRI~I. +\newblock Why the west rules for now: the patterns of history, and what they + reveal about the future\allowbreak[M]. +\newblock New York: Farrar, Straus and Giroux, 2010. + +\bibitem[罗杰斯(2011)]{luojiesi2011xifang} +[English translation missing!] (in Chinese) \\ +(罗杰斯. +\newblock 西方文明史: 问题与源头\allowbreak[M]. +\newblock 潘惠霞, 魏婧, 杨艳, 等译. +\newblock 大连: 东北财经大学出版社, 2011: 15.) + +\bibitem[张忠智(1997)]{zhangzhongzhi1997keji} +[English translation missing!] (in Chinese) \\ +(张忠智. +\newblock + 科技书刊的总编(主编)的角色要求\allowbreak[C]//\allowbreak +中国科学技术期刊编辑学会. +\newblock + 中国科学技术期刊编辑学会建会十周年学术研讨会论文汇编. +\newblock 北京: 中国科学技术期刊编辑学会学术委员会, 1997: + 33.) + +\bibitem[中国社会科学院语言研究所词典编辑室(1996)]{zhongguo1996xiandai} +[English translation missing!] (in Chinese) \\ +(中国社会科学院语言研究所词典编辑室. +\newblock 现代汉语词典\allowbreak[M]. +\newblock 修订本. +\newblock 北京: 商务印书馆, 1996.) + +\bibitem[刘彻东(1998)]{liuchedong1998zhongguo} +[English translation missing!] (in Chinese) \\ +(刘彻东. +\newblock 中国出版, 1998\penalty0 (5): 38.) + +\bibitem[裴丽生(1981)]{peilisheng1981jianghua} +[English translation missing!] (in Chinese) \\ +(裴丽生. +\newblock + 在中国科协学术期刊编辑工作经验交流会上的讲话\allowbreak[C]//\allowbreak +中国科学技术协会. +\newblock 中国科协学术期刊编辑工作经验交流会资料选. +\newblock 北京: 中国科学技术协会学会工作部, 1981: 2.) + +\bibitem[张伯伟(2002)]{zhangbowei2002quantang} +[English translation missing!] (in Chinese) \\ +(张伯伟. +\newblock 全唐五代诗格会考\allowbreak[M]. +\newblock 南京: 江苏古籍出版社, 2002: 288.) + +\bibitem[200(2009{\natexlab{a}})]{2009shifutangriji} +[English translation missing!] (in Chinese) \\ +(师伏堂日记: 第 4 册\allowbreak[M]. +\newblock 北京: 北京图书馆出版社, 2009{\natexlab{a}}: 155.) + +\bibitem[胡承正\ 等(2010)胡承正, 周详, and + 缪灵]{huchengzheng2010lilun} +[English translation missing!] (in Chinese) \\ +(胡承正, 周详, 缪灵. +\newblock 理论物理概论: 上\allowbreak[M]. +\newblock 武汉: 武汉大学出版社, 2010: 112.) + +\bibitem[美国妇产科医师学会(2010)]{meiguo2010xinshenger} +[English translation missing!] (in Chinese) \\ +(美国妇产科医师学会. +\newblock + 新生儿脑病和脑性瘫痪发病机制与病理生理\allowbreak[M]. +\newblock 段涛, 杨慧霞, 译. +\newblock 北京: 人民卫生出版社, 2010: 38.) + +\bibitem[196(1962)]{1962kangxizidian} +[English translation missing!] (in Chinese) \\ +(康熙字典: 巳集上: 水部\allowbreak[M]. +\newblock 同文书局影印本. +\newblock 北京: 中华书局, 1962: 50.) + +\bibitem[汪昂(1881)]{wangang1881zengding} +[English translation missing!] (in Chinese) \\ +(汪昂. +\newblock 增订本草备要: 四卷\allowbreak[M]. +\newblock 刻本. +\newblock 京都: 老二酉堂, 1881.) + +\bibitem[蒋有绪\ 等(1998)蒋有绪, 郭泉水, 马娟, + et~al.]{jiangyouxu1998zhongguo} +[English translation missing!] (in Chinese) \\ +(蒋有绪, 郭泉水, 马娟, 等. +\newblock 中国森林群落分类及其群落特征\allowbreak[M]. +\newblock 北京: 科学出版社, 1998.) + +\bibitem[中国企业投资协会\ 等(2013)中国企业投资协会, + 台湾并购与私募股权协会, and + 汇盈国际投资集团]{zhongguo2013touzi} +[English translation missing!] (in Chinese) \\ +(中国企业投资协会, 台湾并购与私募股权协会, + 汇盈国际投资集团. +\newblock 投资台湾: 大陆企业赴台投资指南\allowbreak[M]. +\newblock 北京: 九州出版社, 2013.) + +\bibitem[罗斯基(2009)]{luosiji2009zhanqian} +[English translation missing!] (in Chinese) \\ +(罗斯基. +\newblock 战前中国经济的增长\allowbreak[M]. +\newblock 唐巧天, 毛立坤, 姜修宪, 译. +\newblock 杭州: 浙江大学出版社, 2009.) + +\bibitem[库恩(2012)]{kuen2012kexue} +[English translation missing!] (in Chinese) \\ +(库恩. +\newblock 科学革命的结构: 第 4 版\allowbreak[M]. +\newblock 金吾伦, 胡新和, 译. 2 版. +\newblock 北京: 北京大学出版社, 2012.) + +\bibitem[侯文顺(2010)]{houwenshun2010gaofenzi} +[English translation missing!] (in Chinese) \\ +(侯文顺. +\newblock 高分子物理: + 高分子材料分析、选择与改性\allowbreak[M/OL]. +\newblock 北京: 化学工业出版社, 2010: 119\allowbreak[2012-11-27]. +\newblock + \url{http://apabi.lib.pku.edu.cn/usp/pku/pub.mvc?pid=book.detail&metaid=m.20111114-HGS-889-0228}.) + +\bibitem[Crawfprd et~al.(1995)Crawfprd and Gorman]{crawfprd1995future} +CRAWFPRD~W, GORMAN~M. +\newblock Future libraries: Dreams, madness, \& reality\allowbreak[M]. +\newblock Chicago: American Library Association, 1995. + +\bibitem[{International Federation of Library Association and + Institutions}(1977)]{ifola1977names} +{International Federation of Library Association and Institutions}. +\newblock Names of persons: National usages for entry in + catalogues\allowbreak[M]. +\newblock 3rd ed. +\newblock London: IFLA International Office for UBC, 1977. + +\bibitem[O'Brien(1994)]{obrien1994introduction} +O'BRIEN~J~A. +\newblock Introduction to information systems\allowbreak[M]. +\newblock 7th ed. +\newblock Burr Ridge, III: Irwin, 1994. + +\bibitem[Kinchy(2012)]{kinchy2012seeds} +KINCHY~A. +\newblock Seeds, sciences, and struggle: the global politics of transgenic + crops\allowbreak[M/OL]. +\newblock Cambridge, Mass.: MIT Press, 2012: 50\allowbreak[2013-07-14]. +\newblock \url{http://lib.myilibrary.com?ID=381443}. + +\bibitem[Praetzellis(2011)]{praetzellis2011death} +PRAETZELLIS~A. +\newblock Death by theory: a tale of mystery and archaeological + theory\allowbreak[M/OL]. +\newblock Rev. ed. +\newblock Rowman \& Littlefield Publishing Group, Inc., 2011: + 13\allowbreak[2012-07-26]. +\newblock \url{http://lib.myilibrary.com/Open.aspx?id=293666}. + +\bibitem[中国职工教育研究会(1985)]{zhigong1985zhigong} +[English translation missing!] (in Chinese) \\ +(中国职工教育研究会. +\newblock 职工教育研究论文集\allowbreak[G]. +\newblock 北京: 人民教育出版社, 1985.) + +\bibitem[中国社会科学院台湾史研究中心(2012)]{shekeyuan2012taiwan} +[English translation missing!] (in Chinese) \\ +(中国社会科学院台湾史研究中心. +\newblock + 台湾光复六十五周年暨抗战史实学术研讨会论文集\allowbreak[C]. +\newblock 北京: 九州出版社, 2012.) + +\bibitem[雷光春(2012)]{leiguangchun2012zonghe} +[English translation missing!] (in Chinese) \\ +(雷光春. +\newblock + 综合湿地管理:综合湿地管理国际研讨会论文集\allowbreak[C]. +\newblock 北京: 海洋出版社, 2012.) + +\bibitem[陈志勇(2011)]{chenzhiyong2011zhongguo} +[English translation missing!] (in Chinese) \\ +(陈志勇. +\newblock 中国财税文化价值研究: + “中国财税文化国际学术研讨会”论文集\allowbreak[C/OL]. +\newblock 北京: 经济科学出版社, 2011\allowbreak[2013-10-14]. +\newblock + \url{http://apabi.lib.pku.edu.cn/usp/pku/pub.mvc?pid=book.detail&metaid=m.201106228-BPO-889-0135&cult=CN}.) + +\bibitem[Babu et~al.(2014)Babu, Nagar, Deep, et~al.]{babu2014proceedings} +BABU~B~V, NAGAR~A~K, DEEP~K, et~al. +\newblock Proceedings of the second international conference on soft computing + for problem solving, december 28--30, 2012\allowbreak[C]. +\newblock New Delhi: Springer, 2014. + +\bibitem[中华人民共和国国务院新闻办公室(2013)]{zhonghua2013guofang} +[English translation missing!] (in Chinese) \\ +(中华人民共和国国务院新闻办公室. +\newblock 国防白皮书: + 中国武装力量的多样化运用\allowbreak[R/OL]. +\newblock \allowbreak(2013-04-16)\allowbreak[2014-06-11]. +\newblock \url{http://www.mod.gov.cn/affair/2013-04/16/content_4442839.htm}.) + +\bibitem[汤万金\ 等(2013)汤万金, 杨跃翔, 刘文, + et~al.]{tangwanjin2013renti} +[English translation missing!] (in Chinese) \\ +(汤万金, 杨跃翔, 刘文, 等. +\newblock 人体安全重要技术标准研制最终报告: + 7178999X-2006BAK04A10/10.2013\allowbreak[R/OL]. +\newblock \allowbreak(2013-09-30)\allowbreak[2014-06-24]. +\newblock \url{http://www.nstrs.org.cn/xiangxiBG.aspx?id=41707}.) + +\bibitem[Calkin et~al.(2011)Calkin, Ager, and Thompson]{calkin2011comparative} +CALKIN~D, AGER~A, THOMPSON~M. +\newblock A comparative risk assessment framework for wildland fire management: + the 2010 cohesive strategy science report: RMRS-GTR-262\allowbreak[R]. +\newblock [S.l.: s.n.], 2011: 8. + +\bibitem[{U.S. Department of Transportation Federal Highway + Administration}(1990)]{usdtfha1990guidelines} +{U.S. Department of Transportation Federal Highway Administration}. +\newblock Guidelines for handling excavated acid-producing material: {PB + 91-194001}\allowbreak[R]. +\newblock Springfield: U.S. Department of Commerce National Information + Service, 1990. + +\bibitem[{World Health Organization}(1970)]{who1970factors} +{World Health Organization}. +\newblock Factors regulating the immune response: Report of {WHO Scientific + Group}\allowbreak[R]. +\newblock Geneva: WHO, 1970. + +\bibitem[马欢(2011)]{mahuan2011renlei} +[English translation missing!] (in Chinese) \\ +(马欢. +\newblock + 人类活动影响下海河流域典型区水循环变化分析\allowbreak[D/OL]. +\newblock 北京: 清华大学, 2011: 27\allowbreak[2013-10-14]. +\newblock + \url{http://www.cnki.net/kcms/detail/detail.aspx?dbcode=CDFD&QueryID=.0&CurRec=11&dbname=CDFDLAST2013&filename=1012035905.nh&uid=WEEvREcwSlJHSldTTGJhYIJRaEhGUXFQWVB6SGZXeisxdmVhV3ZyZkpoUnozeDE1b0paM0NmMjZiQ3p4TUdmcw=}.) + +\bibitem[吴云芳(2003)]{wuyunfang2003mianxiang} +[English translation missing!] (in Chinese) \\ +(吴云芳. +\newblock + 面向中文信息处理的现代汉语并列结构研究\allowbreak[D/OL]. +\newblock 北京: 北京大学, 2003\allowbreak[2013-10-14]. +\newblock + \url{http://thesis.lib.pku.edu.cn/dlib/List.asp?lang=gb&type=Reader&DocGroupID=4&DocID=6328}.) + +\bibitem[Calms(1965)]{calms1965infrared} +CALMS~R~B. +\newblock Infrared spectroscopic studies on solid oxygen\allowbreak[D]. +\newblock Berkeley: Univ. of California, 1965. + +\bibitem[张凯军(2012)]{zhangkaijun2012guidao} +[English translation missing!] (in Chinese) \\ +(张凯军. +\newblock 轨道火车及高速轨道火车紧急安全制动辅助装置: + 201220158825.2\allowbreak[P]. +\newblock 2012-04-05.) + +\bibitem[河北绿洲生态环境科技有限公司(2001)]{hebei2001yizhong} +[English translation missing!] (in Chinese) \\ +(河北绿洲生态环境科技有限公司. +\newblock 一种荒漠化地区生态植被综合培育种植方法: + 01129210.5\allowbreak[P/OL]. +\newblock 2001-10-24\allowbreak[2002-05-28]. +\newblock + \url{http://211.152.9.47/sipoasp/zlijs/hyjs-yx-new.asp?recid=01129210.5&leixin=0}.) + +\bibitem[Koseki et~al.(2002)Koseki, Momose, Kawahito, + et~al.]{koseki2002compiler} +KOSEKI~A, MOMOSE~H, KAWAHITO~M, et~al. +\newblock Compiler: US828402\allowbreak[P/OL]. +\newblock 2002-05-25\allowbreak[2002-05-28]. +\newblock + \url{http://FF&p=1&u=netahtml/PTO/search-bool.html&r=5&f=G&1=50&col=AND&d=PG01&sl=IBM.AS.&OS=AN/IBM/RS=AN/IBM}. + +\bibitem[全国信息与文献标准化技术委员会(2010{\natexlab{b}})]{quanguo2010wenxian} +[English translation missing!] (in Chinese) \\ +(全国信息与文献标准化技术委员会. +\newblock 文献著录: 第 4 部分\quad 非书资料: GB/T + 3792.7—2009\allowbreak[S]. +\newblock 北京: 中国标准出版社, 2010{\natexlab{b}}: 3.) + +\bibitem[全国广播电视标准化技术委员会(2007)]{quanguo2007guangbo} +[English translation missing!] (in Chinese) \\ +(全国广播电视标准化技术委员会. +\newblock 广播电视音像资料编目规范: 第 2 部分\quad 广播资料: + GY/T 202.2—2007\allowbreak[S]. +\newblock 北京: 国家广播电影电视总局广播电视规划院, 2007: + 1.) + +\bibitem[国家环境保护局科技标准司(1996)]{guojia1996turang} +[English translation missing!] (in Chinese) \\ +(国家环境保护局科技标准司. +\newblock 土壤环境质量标准: GB 15616—1995\allowbreak[S/OL]. +\newblock 北京: 中国标准出版社, 1996: 2\allowbreak[2013-10-14]. +\newblock \url{http://wenku.baidu.com/view/b950a34b767f5acfa1c7cd49.html}.) + +\bibitem[200(2009{\natexlab{b}})]{2009information} +Information and documentation---the {Dublin} cord metadata element set: ISO + 15836: 2009\allowbreak[S/OL]. +\newblock 2009\allowbreak[2013-03-24]. +\newblock + \url{http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=52142}. + +\bibitem[198(1988)]{1988qizhi} +[English translation missing!] (in Chinese) \\ +(卷 39 乞致仕第一\allowbreak[M]//\allowbreak +苏魏公文集: 下册. +\newblock 北京: 中华书局, 1988: 590.) + +\bibitem[白书农(1998)]{baishunong1998zhiwu} +[English translation missing!] (in Chinese) \\ +(白书农. +\newblock 植物开花研究\allowbreak[M]//\allowbreak +李承森. +\newblock 植物科学进展. +\newblock 北京: 高等教育出版社, 1998: 146.) + +\bibitem[汪学军(2002)]{wangxuejun2002zhongguo} +[English translation missing!] (in Chinese) \\ +(汪学军. +\newblock + 中国农业转基因生物研究进展与安全管理\allowbreak[C]//\allowbreak +国家环境保护总局生物安全管理办公室. +\newblock + 中国国家生物安全框架实施国际合作项目研讨会论文集. +\newblock 北京: 中国环境科学出版社, 2002: 22.) + +\bibitem[国家标准局信息分类编码研究所(1988)]{guojia1988shijie} +[English translation missing!] (in Chinese) \\ +(国家标准局信息分类编码研究所. +\newblock 世界各国和地区名称代码: GB/T + 2659—1986\allowbreak[S]//\allowbreak +全国文献工作标准化委员会. +\newblock 文献工作国家标准汇编: 3. +\newblock 北京: 中国标准出版社, 1988: 59.) + +\bibitem[197(1977)]{1977songshi} +[English translation missing!] (in Chinese) \\ +(宋史卷三: 本纪第三\allowbreak[M]//\allowbreak +宋史: 第 1 册. +\newblock 北京: 中华书局, 1977: 49.) + +\bibitem[楼梦鳞\ 等(2011)楼梦鳞 and 杨燕]{loumenglin2011wenchuan} +[English translation missing!] (in Chinese) \\ +(楼梦鳞, 杨燕. +\newblock 汶川地震基岩地震动特征分析\allowbreak[M/OL]//\allowbreak +同济大学土木工程防灾国家重点实验室. +\newblock 汶川地震震害研究. +\newblock 上海: 同济大学出版社, 2011: 011\allowbreak[2013-05-09]. +\newblock + \url{http://apabi.lib.pku.edu.cn/usp/pku/pub.mvc?pid=book.detail&metaid=m.20120406-YPT-889-0010}.) + +\bibitem[Buseck et~al.(c1980)Buseck, Nord, and Veblen]{buseckc1980subsolidus} +BUSECK~P~R, NORD~G~L, Jr, VEBLEN~D~R. +\newblock Subsolidus phenomena in pyroxenes\allowbreak[M]//\allowbreak +Pyroxense. +\newblock Washington, D.C.: Mineralogical Society of America, c1980: 117. + +\bibitem[Fourney(c1971)]{fourneyc1971advances} +FOURNEY~M~E. +\newblock Advances in holographic photoelasticity\allowbreak[C]//\allowbreak +Symposium on Applications of Holography in Mechanics, August 23-25, 1971, + University of Southern California, Los Angeles, California. +\newblock New York: ASME, c1971: 17. + +\bibitem[杨洪升(2013)]{yanghongsheng2013siku} +[English translation missing!] (in Chinese) \\ +(杨洪升. +\newblock 文献, 2013\penalty0 (1): 56.) + +\bibitem[李炳穆(2008{\natexlab{b}})]{libingmu2008hanguo2} +[English translation missing!] (in Chinese) \\ +(李炳穆. +\newblock 图书情报工作, 2008, 52\penalty0 (6): 6.) + +\bibitem[于潇\ 等(2012)于潇, 刘义, 柴跃廷, + et~al.]{yuxiao2012hulianwang} +[English translation missing!] (in Chinese) \\ +(于潇, 刘义, 柴跃廷, 等. +\newblock 清华大学学报(自然科学版), 2012, 52\penalty0 (11): 1518.) + +\bibitem[陈建军(20l0)]{chenjianjun20l0cong} +[English translation missing!] (in Chinese) +DOI: \doi{10.3969/j.issn.1672-5603.2010.10.038} \\ +(陈建军. +\newblock 国图资源导刊, 20l0, 7\penalty0 (10): 93\allowbreak[2013-03-20]. +\newblock + \url{http://d.g.wanfangdata.com.cn/Periodical_hunandz201010038.aspx}.) + +\bibitem[Des~Marais et~al.(1992)Des~Marais, Strauss, Summons, + et~al.]{desmarais1992carbon} +DES~MARAIS~D~J, STRAUSS~H, SUMMONS~R~E, et~al. +\newblock Nature, 1992, 359: 605. + +\bibitem[Saito et~al.(2006)Saito and Miyazaki]{saito2006jadeite} +SAITO~M, MIYAZAKI~K. +\newblock Bulletin of the geological survey of Japan, 2006, 57\penalty0 (5/6): + 169. + +\bibitem[Walls et~al.(2013)Walls, Barichivich, and Brown]{walls2013drought} +WALLS~S~C, BARICHIVICH~W~J, BROWN~M~E. +\newblock Biology, 2013, 2\penalty0 (1): 399\allowbreak[2013-11-04]. +\newblock \url{http://www.mdpi.com/2079-7737/2/1/399}. +\newblock DOI: \doi{10.3390/biology2010399}. + +\bibitem[Franz et~al.(2013)Franz, Danielewicz, Wong, Anderson, and + Boothe]{franz2013phenotypic} +FRANZ~A~K, DANIELEWICZ~M~A, WONG~D~M, et~al. +\newblock ACS Chemical biology, 2013, 8: 1053\allowbreak[2014-06-26]. +\newblock \url{http://pubs.acs.org/doi/ipdf/10.1021/cb300573r}. + +\bibitem[Park et~al.(2010)Park and Tosaka]{park2010metadata} +PARK~J~R, TOSAKA~Y. +\newblock Cataloging \& classification quarterly, 2010, 48\penalty0 (8): + 696\allowbreak[2013-09-05]. +\newblock + \url{http://www.tandfonline.com/doi/pdf/10.1080/01639374.2010.508711}. + +\bibitem[丁文详(2000)]{dingwenxiang2000shuzi} +[English translation missing!] (in Chinese) \\ +(丁文详. +\newblock 中国青年报, 2000-11-20\penalty0 (15).) + +\bibitem[张田勤(2000)]{zhangtianqin2000zuifan} +[English translation missing!] (in Chinese) \\ +(张田勤. +\newblock 大众科技报, 2000-11-12\penalty0 (7).) + +\bibitem[傅刚\ 等(2000)傅刚, 赵承, and 李佳路]{fugang2000dafeng} +[English translation missing!] (in Chinese) \\ +(傅刚, 赵承, 李佳路. +\newblock 北京青年报, 2000-01-12\allowbreak[2005-09-28]. +\newblock + \url{http://www.bjyouth.com.cn/Bqb/20000412/GB/4216%5ED0412B1401.htm}.) + +\bibitem[刘裕国\ 等(2013)刘裕国, 杨柳, 张洋, + et~al.]{liuyuguo2013wumai} +[English translation missing!] (in Chinese) \\ +(刘裕国, 杨柳, 张洋, 等. +\newblock 人民日报, 2013-01-12\allowbreak[2013-11-06]. +\newblock + \url{http://paper.people.com.cn/rmrb/html/2013-01/12/nw.D110000renmrb_20130112_2-04.htm}.) + +\bibitem[萧钰(2001)]{xiaoyu2001chuban} +[English translation missing!] (in Chinese) \\ +(萧钰. +\newblock 出版业信息化迈入快车道\allowbreak[EB/OL]. +\newblock \allowbreak(2001-12-19)\allowbreak[2002-04-15]. +\newblock \url{http://www.creader.com/news/20011219/200112190019.html}.) + +\bibitem[李强(2012)]{liqiang2012huajie} +[English translation missing!] (in Chinese) \\ +(李强. +\newblock 化解医患矛盾需釜底抽薪\allowbreak[EB/OL]. +\newblock \allowbreak(2012-05-03)\allowbreak[2013-03-25]. +\newblock \url{http://wenku.baidu.com/view/47e4f206b52acfc789ebc92f.html}.) + +\bibitem[{{Commonwealth Libraries Bureau of Library Development. Pennsylvania + Department of Education Office}([2013])}]{clbld2013pennsylvania} +{Commonwealth Libraries Bureau of Library Development. Pennsylvania Department + of Education Office}. +\newblock Pennsylvania library laws\allowbreak[EB/OL]. +\newblock \allowbreak[2013-03-24]. +\newblock \url{http://www.racc.edu/yocum/pdf/PALibraryLaws.pdf}. + +\bibitem[201(2012)]{2012dublin} +Dublin core metadata element set: version 1.1\allowbreak[EB/OL]. +\newblock \allowbreak(2012-06-14)\allowbreak[2014-06-11]. +\newblock \url{http://dublincore.org/documents/dces/}. + +\bibitem[魏志勇\ 等(2006)魏志勇, 臧黎慧, 范我, + et~al.]{weizhiyong2006} +WEI Zhiyong, ZANG Lihui, FAN Wo, et al. Nuclear Techniques, 2006, 29(9): 713. + (in Chinese) \\ +(魏志勇, 臧黎慧, 范我, 等. +\newblock 核技术, 2006, 29\penalty0 (9): 713.) + +\bibitem[陈东风\ 等(2005)陈东风, 勾成, 叶春堂, + et~al.]{chendongfeng2005} +CHEN Dongfeng, GOU Cheng, YE Chuntang, et al. Nuclear Techniques, 2005, 28(2): + 127. (in Chinese) \\ +(陈东风, 勾成, 叶春堂, 等. +\newblock 核技术, 2005, 28\penalty0 (2): 127.) + +\bibitem[Oed(2004)]{oed2004} +OED~A. +\newblock Nucl Instr Meth A, 2004, 525\penalty0 (1-2): 62. + +\bibitem[Rhodes et~al.(1997)Rhodes, Wardle, Boram, et~al.]{rhodes1997} +RHODES~N~J, WARDLE~A~G, BORAM~A~J, et~al. +\newblock Nucl Instr Meth A, 1997, 392\penalty0 (1-3): 315. + +\bibitem[Crow et~al.(2004)Crow, Hodges, and Cooper]{crow2004} +CROW~M~L, HODGES~J~P, COOPER~R~G. +\newblock Nucl Instr Meth A, 2004, 529\penalty0 (1-3): 287. + +\bibitem[mis()]{misc} +\allowbreak[EB/OL]. +\newblock \url{http://www.detectors.saint-gobain.com/default.aspx}. + +\bibitem[phi(1987)]{philips1987} +Philips data handbook for electron tubes t9\allowbreak[M]. +\newblock [S.l.: s.n.], 1987. + +\bibitem[迟少鹏\ 等(2003)迟少鹏, 夏小米, 周莉, + et~al.]{chishaopeng2003} +CHI Shaopeng, XIA Xiaomi, ZHOU Li, et al. High Energy Physics and Nuclear + Physics. 2003, 27(3): 257. (in Chinese) \\ +(迟少鹏, 夏小米, 周莉, 等. +\newblock 高能物理与核物理, 2003, 27\penalty0 (3): 257.) + +\bibitem[汪晓莲\ 等(2003)汪晓莲, 许咨宗, 侯云珍, + et~al.]{wangxiaolian2003} +WANG Xiaolian, XU Zizong, HOU Yunzhen, et al. High Energy Physics and Nuclear + Physics. 1997, 21(9): 787. (in Chinese) \\ +(汪晓莲, 许咨宗, 侯云珍, 等. +\newblock 高能物理与核物理, 2003, 27\penalty0 (3): 257.) + +\bibitem[Sackett et~al.(1993)Sackett, Ieki, A, et~al.]{sackett1993} +SACKETT~D, IEKI~K, A~G, et~al. +\newblock Phys Rev C, 1993, 48\penalty0 (1): 118. + +\bibitem[Sackett et~al.(1997)Sackett, Ieki, A, et~al.]{zecher1997} +SACKETT~D, IEKI~K, A~G, et~al. +\newblock Nucl Instr Meth A, 1997, 401\penalty0 (2-3): 329. + +\bibitem[薛梦驰(2009)]{xuemengchi2009} +XUE Mengchi. Telecommunication Science. 2009, 7: 57. (in Chinese) \\ +(薛梦驰. +\newblock 电信科学, 2009, 7: 57.) + +\bibitem[唐军杰\ 等(2013)唐军杰, 王拓, 张强, et~al.]{tangjunjie2013} +TANG Junjie, WANG Tuo, ZHANG Qiang, et al. Chin J Lumi, 2013, 34(1): 78. (in + Chinese) \\ +(唐军杰, 王拓, 张强, 等. +\newblock 发光学报, 2013, 34\penalty0 (1): 78.) + +\bibitem[WU et~al.(2013)WU, TANG, SUN, et~al.]{wuchong2013} +WU~C, TANG~B, SUN~Z, et~al. +\newblock Radiation Measurements, 2013, 58\penalty0 (11): 128. + +\end{thebibliography} diff --git a/test/testbst/npr.dtx b/test/testbst/npr.dtx new file mode 100644 index 0000000..22b96ef --- /dev/null +++ b/test/testbst/npr.dtx @@ -0,0 +1,152 @@ +%<*internal> +\begingroup + \def\nameoflatex{LaTeX2e} +\expandafter\endgroup\ifx\nameoflatexe\fmtname\else +\csname fi\endcsname +% +%<*install> +\input docstrip.tex +\nopreamble +\keepsilent +\askforoverwritefalse +\nopostamble +\generate{ + \file{test.bst}{\from{gbt7714.dtx}{npr,2015,numerical}} + \file{test.bib}{\from{\jobname.dtx}{bib}} +} +\endbatchfile +% +%<*internal> +\fi +% +%<*driver> +\ProvidesFile{\jobname.dtx} +% +% \fi +% +% \begin{macrocode} +%<*bib> +@article{weizhiyong2006, + author = {魏志勇 and 臧黎慧 and 范我 and others}, + journal = {核技术}, + year = {2006}, + volume = {29}, + number = {9}, + pages = {713}, + translation = {WEI Zhiyong, ZANG Lihui, FAN Wo, et al. Nuclear Techniques, 2006, 29(9): 713.}, +} + +@article{chendongfeng2005, + author = {陈东风 and 勾成 and 叶春堂 and others}, + journal = {核技术}, + year = {2005}, + volume = {28}, + number = {2}, + pages = {127}, + translation = {CHEN Dongfeng, GOU Cheng, YE Chuntang, et al. Nuclear Techniques, 2005, 28(2): 127.}, +} + +@article{oed2004, + author = {Oed, A}, + journal = {Nucl Instr Meth A}, + year = {2004}, + volume = {525}, + number = {1-2}, + pages = {62}, +} + +@article{rhodes1997, + author = {Rhodes, N J and Wardle, A G and Boram, A J and others}, + journal = {Nucl Instr Meth A}, + year = {1997}, + volume = {392}, + number = {1-3}, + pages = {315}, +} + +@article{crow2004, + author = {Crow, M L and Hodges, J P and Cooper, R G}, + journal = {Nucl Instr Meth A}, + year = {2004}, + volume = {529}, + number = {1-3}, + pages = {287}, +} + +@online{misc, + url = {http://www.detectors.saint-gobain.com/default.aspx}, +} + +@book{philips1987, + title = {Philips Data Handbook for Electron Tubes T9}, + year = {1987}, +} + +@article{chishaopeng2003, + author = {迟少鹏 and 夏小米 and 周莉 and others}, + journal = {高能物理与核物理}, + year = {2003}, + volume = {27}, + number = {3}, + pages = {257}, + translation = {CHI Shaopeng, XIA Xiaomi, ZHOU Li, et al. High Energy Physics and Nuclear Physics. 2003, 27(3): 257.}, +} + +@article{wangxiaolian2003, + author = {汪晓莲 and 许咨宗 and 侯云珍 and others}, + journal = {高能物理与核物理}, + year = {2003}, + volume = {27}, + number = {3}, + pages = {257}, + translation = {WANG Xiaolian, XU Zizong, HOU Yunzhen, et al. High Energy Physics and Nuclear Physics. 1997, 21(9): 787.}, +} + +@article{sackett1993, + author = {Sackett, D and Ieki, K and Galonsky A and others}, + journal = {Physical Review C}, + year = {1993}, + volume = {48}, + number = {1}, + pages = {118}, +} + +@article{zecher1997, + author = {Sackett, D and Ieki, K and Galonsky A and others}, + journal = {Nucl Instr Meth A}, + year = {1997}, + volume = {401}, + number = {2-3}, + pages = {329}, +} + +@article{xuemengchi2009, + author = {薛梦驰}, + journal = {电信科学}, + year = {2009}, + volume = {7}, + pages = {57}, + translation = {XUE Mengchi. Telecommunication Science. 2009, 7: 57.}, +} + +@article{tangjunjie2013, + author = {唐军杰 and 王拓 and 张强 and others}, + journal = {发光学报}, + year = {2013}, + volume = {34}, + number = {1}, + pages = {78}, + translation = {TANG Junjie, WANG Tuo, ZHANG Qiang, et al. Chin J Lumi, 2013, 34(1): 78.}, +} + +@article{wuchong2013, + author = {WU, Chong and TANG, Bin and SUN, Zhijia and others}, + journal = {Radiation Measurements}, + year = {2013}, + volume = {58}, + number = {11}, + pages = {128}, +} +% +% \end{macrocode} +\endinput diff --git a/test/testbst/option-italicjournal.bbl b/test/testbst/option-italicjournal.bbl index 174b7e6..64c8835 100644 --- a/test/testbst/option-italicjournal.bbl +++ b/test/testbst/option-italicjournal.bbl @@ -4,8 +4,8 @@ \expandafter\ifx\csname urlstyle\endcsname\relax\else \urlstyle{same}\fi \expandafter\ifx\csname href\endcsname\relax - \def\doi#1{#1}\else - \def\doi#1{\href{https://doi.org/#1}{#1}}\fi + \DeclareUrlCommand\doi{\urlstyle{rm}}\else + \providecommand\doi[1]{\href{https://doi.org/#1}{\nolinkurl{#1}}}\fi \bibitem[陈登原(2000)]{chendengyuan2000guoshijiuwen} 陈登原. diff --git a/test/testbst/option-linktitle.bbl b/test/testbst/option-linktitle.bbl index 7466db3..fbd2ea3 100644 --- a/test/testbst/option-linktitle.bbl +++ b/test/testbst/option-linktitle.bbl @@ -4,8 +4,8 @@ \expandafter\ifx\csname urlstyle\endcsname\relax\else \urlstyle{same}\fi \expandafter\ifx\csname href\endcsname\relax - \def\doi#1{#1}\else - \def\doi#1{\href{https://doi.org/#1}{#1}}\fi + \DeclareUrlCommand\doi{\urlstyle{rm}}\else + \providecommand\doi[1]{\href{https://doi.org/#1}{\nolinkurl{#1}}}\fi \bibitem[陈登原(2000)]{chendengyuan2000guoshijiuwen} 陈登原. diff --git a/test/testbst/option-no-medium-type.bbl b/test/testbst/option-no-medium-type.bbl index b5cb4ae..3fa6993 100644 --- a/test/testbst/option-no-medium-type.bbl +++ b/test/testbst/option-no-medium-type.bbl @@ -4,8 +4,8 @@ \expandafter\ifx\csname urlstyle\endcsname\relax\else \urlstyle{same}\fi \expandafter\ifx\csname href\endcsname\relax - \def\doi#1{#1}\else - \def\doi#1{\href{https://doi.org/#1}{#1}}\fi + \DeclareUrlCommand\doi{\urlstyle{rm}}\else + \providecommand\doi[1]{\href{https://doi.org/#1}{\nolinkurl{#1}}}\fi \bibitem[陈登原(2000)]{chendengyuan2000guoshijiuwen} 陈登原. diff --git a/test/testbst/option-nomark.bbl b/test/testbst/option-nomark.bbl index 8ea8917..8fb6806 100644 --- a/test/testbst/option-nomark.bbl +++ b/test/testbst/option-nomark.bbl @@ -4,8 +4,8 @@ \expandafter\ifx\csname urlstyle\endcsname\relax\else \urlstyle{same}\fi \expandafter\ifx\csname href\endcsname\relax - \def\doi#1{#1}\else - \def\doi#1{\href{https://doi.org/#1}{#1}}\fi + \DeclareUrlCommand\doi{\urlstyle{rm}}\else + \providecommand\doi[1]{\href{https://doi.org/#1}{\nolinkurl{#1}}}\fi \bibitem[陈登原(2000)]{chendengyuan2000guoshijiuwen} 陈登原. diff --git a/test/testbst/option-nosentencase.bbl b/test/testbst/option-nosentencase.bbl index c39cf0d..1aab973 100644 --- a/test/testbst/option-nosentencase.bbl +++ b/test/testbst/option-nosentencase.bbl @@ -4,8 +4,8 @@ \expandafter\ifx\csname urlstyle\endcsname\relax\else \urlstyle{same}\fi \expandafter\ifx\csname href\endcsname\relax - \def\doi#1{#1}\else - \def\doi#1{\href{https://doi.org/#1}{#1}}\fi + \DeclareUrlCommand\doi{\urlstyle{rm}}\else + \providecommand\doi[1]{\href{https://doi.org/#1}{\nolinkurl{#1}}}\fi \bibitem[陈登原(2000)]{chendengyuan2000guoshijiuwen} 陈登原. diff --git a/test/testbst/option-noslash.bbl b/test/testbst/option-noslash.bbl index d3d69d9..b492bcd 100644 --- a/test/testbst/option-noslash.bbl +++ b/test/testbst/option-noslash.bbl @@ -4,8 +4,8 @@ \expandafter\ifx\csname urlstyle\endcsname\relax\else \urlstyle{same}\fi \expandafter\ifx\csname href\endcsname\relax - \def\doi#1{#1}\else - \def\doi#1{\href{https://doi.org/#1}{#1}}\fi + \DeclareUrlCommand\doi{\urlstyle{rm}}\else + \providecommand\doi[1]{\href{https://doi.org/#1}{\nolinkurl{#1}}}\fi \bibitem[陈登原(2000)]{chendengyuan2000guoshijiuwen} 陈登原. diff --git a/test/testbst/option-noslsn.bbl b/test/testbst/option-noslsn.bbl index 66e2ec0..89c8bab 100644 --- a/test/testbst/option-noslsn.bbl +++ b/test/testbst/option-noslsn.bbl @@ -4,8 +4,8 @@ \expandafter\ifx\csname urlstyle\endcsname\relax\else \urlstyle{same}\fi \expandafter\ifx\csname href\endcsname\relax - \def\doi#1{#1}\else - \def\doi#1{\href{https://doi.org/#1}{#1}}\fi + \DeclareUrlCommand\doi{\urlstyle{rm}}\else + \providecommand\doi[1]{\href{https://doi.org/#1}{\nolinkurl{#1}}}\fi \bibitem[陈登原(2000)]{chendengyuan2000guoshijiuwen} 陈登原. diff --git a/test/testbst/option-nouppercase.bbl b/test/testbst/option-nouppercase.bbl index 8c8bfc8..a6f7d30 100644 --- a/test/testbst/option-nouppercase.bbl +++ b/test/testbst/option-nouppercase.bbl @@ -4,8 +4,8 @@ \expandafter\ifx\csname urlstyle\endcsname\relax\else \urlstyle{same}\fi \expandafter\ifx\csname href\endcsname\relax - \def\doi#1{#1}\else - \def\doi#1{\href{https://doi.org/#1}{#1}}\fi + \DeclareUrlCommand\doi{\urlstyle{rm}}\else + \providecommand\doi[1]{\href{https://doi.org/#1}{\nolinkurl{#1}}}\fi \bibitem[陈登原(2000)]{chendengyuan2000guoshijiuwen} 陈登原. diff --git a/test/testbst/option-nourl.bbl b/test/testbst/option-nourl.bbl index a89efa3..c841a3f 100644 --- a/test/testbst/option-nourl.bbl +++ b/test/testbst/option-nourl.bbl @@ -4,8 +4,8 @@ \expandafter\ifx\csname urlstyle\endcsname\relax\else \urlstyle{same}\fi \expandafter\ifx\csname href\endcsname\relax - \def\doi#1{#1}\else - \def\doi#1{\href{https://doi.org/#1}{#1}}\fi + \DeclareUrlCommand\doi{\urlstyle{rm}}\else + \providecommand\doi[1]{\href{https://doi.org/#1}{\nolinkurl{#1}}}\fi \bibitem[陈登原(2000)]{chendengyuan2000guoshijiuwen} 陈登原. diff --git a/test/testbst/option-only-start-page.bbl b/test/testbst/option-only-start-page.bbl new file mode 100644 index 0000000..a39e75a --- /dev/null +++ b/test/testbst/option-only-start-page.bbl @@ -0,0 +1,822 @@ +\begin{thebibliography}{120} +\providecommand{\natexlab}[1]{#1} +\providecommand{\url}[1]{#1} +\expandafter\ifx\csname urlstyle\endcsname\relax\else + \urlstyle{same}\fi +\expandafter\ifx\csname href\endcsname\relax + \DeclareUrlCommand\doi{\urlstyle{rm}}\else + \providecommand\doi[1]{\href{https://doi.org/#1}{\nolinkurl{#1}}}\fi + +\bibitem[陈登原(2000)]{chendengyuan2000guoshijiuwen} +陈登原. +\newblock 国史旧闻: 第 1 卷\allowbreak[M]. +\newblock 北京: 中华书局, 2000: 29. + +\bibitem[哈里森·沃尔德伦(2012)]{hali2012jingji} +哈里森·沃尔德伦. +\newblock 经济数学与金融数学\allowbreak[M]. +\newblock 谢远涛, 译. +\newblock 北京: 中国人民大学出版社, 2012: 235. + +\bibitem[北京市政协民族和宗教委员会\ + 等(2012)北京市政协民族和宗教委员会 and + 北京联合大学民族与宗教研究所]{beijing2012lidai} +北京市政协民族和宗教委员会, + 北京联合大学民族与宗教研究所. +\newblock 历代王朝与民族宗教\allowbreak[M]. +\newblock 北京: 民族出版社, 2012: 112. + +\bibitem[全国信息与文献标准化技术委员会(2010{\natexlab{a}})]{quanguo2010doubai} +全国信息与文献标准化技术委员会. +\newblock 信息与文献\quad 都柏林核心元数据元素集: GB/T + 25100—2010\allowbreak[S]. +\newblock 北京: 中国标准出版社, 2010{\natexlab{a}}: 2. + +\bibitem[徐光宪\ 等(2010)徐光宪 and + 王祥云]{xuguangxian2010wuzhijiegou} +徐光宪, 王祥云. +\newblock 物质结构\allowbreak[M]. +\newblock 北京: 科学出版社, 2010. + +\bibitem[顾炎武(1992)]{guyanwu1992changping} +顾炎武. +\newblock 昌平山水记:京东考古录\allowbreak[M]. +\newblock 北京: 北京古籍出版社, 1992. + +\bibitem[王夫之(1865(清同治四年))]{wangfuzhi1865songlun} +王夫之. +\newblock 宋论\allowbreak[M]. +\newblock 刻本. +\newblock 金陵: 湘乡曾国荃, 1865(清同治四年). + +\bibitem[牛志明\ 等(2012)牛志明, 斯温兰德, and + 雷光春]{niuzhiming2012zonghe} +牛志明, 斯温兰德, 雷光春. +\newblock 综合湿地管理国际研讨会论文集\allowbreak[C]. +\newblock 北京: 海洋出版社, 2012. + +\bibitem[中国第一历史档案馆\ 等(2001)中国第一历史档案馆 and + 辽宁省档案馆]{zhongguo2001zhongguo} +中国第一历史档案馆, 辽宁省档案馆. +\newblock 中国明朝档案总汇\allowbreak[A]. +\newblock 桂林: 广西师范大学出版社, 2001. + +\bibitem[杨保军(2012)]{yangbaojun2012xinwen} +杨保军. +\newblock 新闻道德论\allowbreak[D/OL]. +\newblock 北京: 中国人民大学出版社, 2012\allowbreak[2012-11-01]. +\newblock + \url{http://apabi.lib.pku.edu.cn/usp/pku/pub.mvc?pid=book.detail&metaid=m.20101104-BPO-889-1023&cult=CN}. + +\bibitem[赵学功(2001)]{zhaoxuegong2001dangdai} +赵学功. +\newblock 当代美国外交\allowbreak[M/OL]. +\newblock 北京: 社会科学文献出版社, 2001\allowbreak[2014-06-11]. +\newblock \url{http://www.cadal.zju.edu.cn/book/trySinglePage/33023884/1}. + +\bibitem[同济大学土木工程防灾国家重点实验室(2011)]{tongji2011wenchuan} +同济大学土木工程防灾国家重点实验室. +\newblock 汶川地震灾害研究\allowbreak[M/OL]. +\newblock 上海: 同济大学出版社, 2011: 5\allowbreak[2013-05-09]. +\newblock + \url{http://apabi.lib.pku.edu.cn/usp/pku/pub.mvc?pid=book.detail&metaid=m.20120406-YPT-889-0010}. + +\bibitem[中国造纸学会(2003)]{zaozhi2003zhongguo} +中国造纸学会. +\newblock 中国造纸年鉴:2003\allowbreak[M/OL]. +\newblock 北京: 中国轻工业出版社, 2003\allowbreak[2014-04-25]. +\newblock \url{http://www.cadal.zju.edu.cn/book/view/25010080}. + +\bibitem[Peebles(2001)]{peebles2001probability} +PEEBLES~P~Z, Jr. +\newblock Probability, random variables, and random signal + principles\allowbreak[M]. +\newblock 4th ed. +\newblock New York: McGraw-Hill, 2001. + +\bibitem[Yufin(2000)]{yufin2000geoecology} +YUFIN~S~A. +\newblock Geoecology and computers: Proceedings of the {Third International + Conference on Advances of Computer Methods in Geotechnical and + Geoenvironmental Engineering, Moscow, Russia, February 1--4, + 2000}\allowbreak[C]. +\newblock Rotterdam: A. A. Balkema, 2000. + +\bibitem[Baldock(2011)]{baldock2011developing} +BALDOCK~P. +\newblock Developing early childhood services: Past, present and + future\allowbreak[M/OL]. +\newblock Rotterdam: Open University Press, 2011: 105\allowbreak[2012-11-27]. +\newblock \url{http://lib.myilibrary.com/Open.aspx?id=312377}. + +\bibitem[Fan et~al.(2013)Fan and Sommers]{fan2013food} +FAN~X, SOMMERS~C~H. +\newblock Food irradiation research and technology\allowbreak[M/OL]. +\newblock 2nd ed. +\newblock Ames, Iowa: Blackwell Publishing, 2013: 25\allowbreak[2014-06-26]. +\newblock + \url{http://onlinelibrary.wiley.com/doi/10.1002/9781118422557.ch2/summary}. + +\bibitem[wan(2011)]{wangfuzhi2011zhouyi} +周易外传:卷 5\allowbreak[M]//\allowbreak +王夫之. +\newblock 船山全书: 第 6 册. +\newblock 长沙: 岳麓书社, 2011: 1109. + +\bibitem[程根伟(1999)]{chenggenwei1999hongshui} +程根伟. +\newblock 1998 + 年长江洪水的成因与减灾对策\allowbreak[M]//\allowbreak +许厚泽, 赵其国. +\newblock 长江流域洪涝灾害与科技对策. +\newblock 北京: 科学出版社, 1999: 32. + +\bibitem[陈晋镳\ 等(1980)陈晋镳, 张惠民, 朱士兴, 赵震, and + 王振刚]{chenjinbiao1980jixian} +陈晋镳, 张惠民, 朱士兴, 等. +\newblock 蓟县震旦亚界研究\allowbreak[M]//\allowbreak +中国地质科学院天津地质矿产研究所. +\newblock 中国震旦亚界. +\newblock 天津: 天津科学技术出版社, 1980: 56. + +\bibitem[马克思(2013)]{makesi2013zhengzhi} +马克思. +\newblock 政治经济学批判\allowbreak[M]//\allowbreak +马克思, 恩格斯. +\newblock 马克思恩格斯全集: 第 35 卷. +\newblock 北京: 人民出版社, 2013: 302. + +\bibitem[贾东琴\ 等(2011)贾东琴 and 柯平]{jiadongqin2011mianxiang} +贾东琴, 柯平. +\newblock + 面向数字素养的高校图书馆数字服务体系研究\allowbreak[C]//\allowbreak +中国图书馆学会. +\newblock 中国图书馆学会年会论文集: 2011 年卷. +\newblock 北京: 国家图书馆出版社, 2011: 45. + +\bibitem[Weinstein et~al.(1974)Weinstein and Swertz]{weinstein1974pathogenic} +WEINSTEIN~L, SWERTZ~M~N. +\newblock Pathogenic properties of invading + microorganism\allowbreak[M]//\allowbreak +SODEMAN~W~A, Jr, SODEMAN~W~A. +\newblock Pathologic physiology: mechanisms of disease. +\newblock Philadelphia: Saunders, 1974: 745. + +\bibitem[Roberson et~al.(2011)Roberson and Burneson]{roberson2011drinking} +ROBERSON~J~A, BURNESON~E~G. +\newblock Drinking water standards, regulations and + goals\allowbreak[M/OL]//\allowbreak +{American Water Works Association}. +\newblock Water quality \& treatment: a handbook on drinking water. +\newblock 6th ed. +\newblock New York: McGraw-Hill, 2011: 1.1\allowbreak[2012-12-10]. +\newblock \url{http://lib.myilibrary.com/Open.aspx?id=291430}. + +\bibitem[中华医学会湖北分会(1984)]{zhonghua1984linchuang} +中华医学会湖北分会. +\newblock 临床内科杂志\allowbreak[J]. +\newblock 1984, 1\penalty0 (1)--. +\newblock 武汉: 中华医学会湖北分会, 1984--. + +\bibitem[中国图书馆学会(1957)]{zhongguo1957tushu} +中国图书馆学会. +\newblock 图书馆学通讯\allowbreak[J]. +\newblock 1957\penalty0 (1)--1990\penalty0 (4). +\newblock 北京: 北京图书馆, 1957--1990. + +\bibitem[{American Association for the Advancement of + Science}(1883)]{aaas1883science} +{American Association for the Advancement of Science}. +\newblock Science\allowbreak[J]. +\newblock 1883, 1\penalty0 (1)--. +\newblock Washington, D.C.: American Association for the Advancement of + Science, 1883--. + +\bibitem[袁训来\ 等(2012)袁训来, 陈哲, 肖书海, + et~al.]{yuanxunlai2012lantian} +袁训来, 陈哲, 肖书海, 等. +\newblock 蓝田生物群: + 一个认识多细胞生物起源和早期演化的新窗口\allowbreak[J]. +\newblock 科学通报, 2012, 55\penalty0 (34):\penalty0 3219. + +\bibitem[余建斌(2013)]{yujianbin2013women} +余建斌. +\newblock 我们的科技一直在追赶: + 访中国工程院院长周济\allowbreak[N/OL]. +\newblock 人民日报, 2013-01-12\penalty0 (2)\allowbreak[2013-03-20]. +\newblock + \url{http://paper.people.com.cn/rmrb/html/2013-01/12/nw.D110000renmrb_20130112_5-02.htm}. + +\bibitem[李炳穆(2008{\natexlab{a}})]{libingmu2008hanguo} +李炳穆. +\newblock 韩国图书馆法\allowbreak[J/OL]. +\newblock 图书情报工作, 2008, 52\penalty0 (6):\penalty0 + 6\allowbreak[2013-10-25]. +\newblock \url{http://www.docin.com/p-400265742.html}. + +\bibitem[李幼平\ 等(2010)李幼平 and 王莉]{liyouping2010xunzheng} +李幼平, 王莉. +\newblock 循证医学研究方法: 附视频\allowbreak[J/OL]. +\newblock 中华移植杂志(电子版), 2010, 4\penalty0 (3):\penalty0 + 225\allowbreak[2014-06-09]. +\newblock \url{http://www.cqvip.com/Read/Read.aspx?id=36658332}. + +\bibitem[武丽丽\ 等(2008)武丽丽, 华一新, 张亚军, + et~al.]{wulili2008beidou} +武丽丽, 华一新, 张亚军, 等. +\newblock “北斗一号”监控管理网设计与实现\allowbreak[J/OL]. +\newblock 测绘科学, 2008, 33\penalty0 (5):\penalty0 + 8\allowbreak[2009-10-25]. +\newblock \url{http://vip.calis.edu.cn/CSTJ/Sear.dll?OPAC_CreateDetail}. +\newblock DOI: \doi{10.3771/j.issn.1009-2307.2008.05.002}. + +\bibitem[Kanamori(1998)]{kanamori1998shaking} +KANAMORI~H. +\newblock Shaking without quaking\allowbreak[J]. +\newblock Science, 1998, 279\penalty0 (5359):\penalty0 2063. + +\bibitem[Caplan(1993)]{caplan1993cataloging} +CAPLAN~P. +\newblock Cataloging internet resources\allowbreak[J]. +\newblock The public access computer systems review, 1993, 4\penalty0 + (2):\penalty0 61. + +\bibitem[Frese et~al.(2013)Frese, Katus, and Meder]{frese2013next} +FRESE~K~S, KATUS~H~A, MEDER~B. +\newblock Next-generation sequencing: from understanding biology to + personalized medicine\allowbreak[J/OL]. +\newblock Biology, 2013, 2\penalty0 (1):\penalty0 378\allowbreak[2013-03-19]. +\newblock \url{http://www.mdpi.com/2079-7737/2/1/378}. +\newblock DOI: \doi{10.3390/biology2010378}. + +\bibitem[Myburg et~al.(2014)Myburg, Grattapaglia, Tuskan, + et~al.]{myburg2014genome} +MYBURG~A~A, GRATTAPAGLIA~D, TUSKAN~G~A, et~al. +\newblock The genome of eucalyptus grandis\allowbreak[J/OL]. +\newblock Nature, 2014, 510:\penalty0 356\allowbreak[2014-06-25]. +\newblock + \url{http://www.nature.com/nature/journal/v510/n7505/pdf/nature13308.pdf}. +\newblock DOI: \doi{10.1038/nature13308}. + +\bibitem[邓一刚(2006)]{dengyigang2006quanzhineng} +邓一刚. +\newblock 全智能节电器: 200610171314.3\allowbreak[P]. +\newblock 2006-12-13. + +\bibitem[西安电子科技大学(2002)]{xian2002guangzhebian} +西安电子科技大学. +\newblock 光折变自适应光外差探测方法: 01128777.2\allowbreak[P/OL]. +\newblock 2002-03-06\allowbreak[2002-05-28]. +\newblock + \url{http://211.152.9.47/sipoasp/zljs/hyjs-yx-new.asp?recid=01128777.2&leixin=0}. + +\bibitem[Tachibana et~al.(2005)Tachibana, Shimizu, Kobayshi, and + Nakamura]{tachibana2005electronic} +TACHIBANA~R, SHIMIZU~S, KOBAYSHI~S, et~al. +\newblock Electronic watermarking method and system: + US6915001\allowbreak[P/OL]. +\newblock 2005-07-05\allowbreak[2013-11-11]. +\newblock \url{http://www.google.co.in/patents/US6915001}. + +\bibitem[中国互联网络信息中心(2012)]{hulianwang2012di} +中国互联网络信息中心. +\newblock 第 29 + 次中国互联网络发展现状统计报告\allowbreak[R/OL]. +\newblock \allowbreak(2012-01-16)\allowbreak[2013-03-26]. +\newblock + \url{http://www.cnnic.net.cn/hlwfzyj/hlwxzbg/201201/P020120709345264469680}. + +\bibitem[北京市人民政府办公厅(2005)]{beijing2005guanyu} +北京市人民政府办公厅. +\newblock + 关于转发北京市企业投资项目核准暂行实施办法的通知: + 京政办发[2005]37号\allowbreak[A/OL]. +\newblock \allowbreak(2005-07-12)\allowbreak[2011-07-12]. +\newblock \url{http://china.findlaw.cn/fagui/p_1/39934.html}. + +\bibitem[Bawden(2008)]{bawden2008origins} +BAWDEN~D. +\newblock Origins and concepts of digital literacy\allowbreak[EB/OL]. +\newblock \allowbreak(2008-05-04)\allowbreak[2013-03-08]. +\newblock + \url{http://www.soi.city.ac.uk/~dbawden/digital%20literacy%20chapter.pdf}. + +\bibitem[{{Online Computer Library Center, Inc}([2012])}]{oclc2012about} +{Online Computer Library Center, Inc}. +\newblock About {OCLC}: History of cooperation\allowbreak[EB/OL]. +\newblock \allowbreak[2012-03-27]. +\newblock \url{http://www.oclc.org/about/cooperation.en.html}. + +\bibitem[Hopkinson(2009)]{hopkinson2009unimarc} +HOPKINSON~A. +\newblock {UNIMARC} and metadata: Dublin core\allowbreak[EB/OL]. +\newblock \allowbreak(2009-04-22)\allowbreak[2013-03-27]. +\newblock \url{http://archive.ifla.org/IV/ifla64/138-161e.htm}. + +\bibitem[刘乃安(2000)]{liunaian2000shengwu} +刘乃安. +\newblock + 生物质材料热解失重动力学及其分析方法研究\allowbreak[D/OL]. +\newblock 安徽: 中国科学技术大学, 2000: 17\allowbreak[2014-08-29]. +\newblock + \url{http://wenku.baidu.com/link?url=GJDJxb4lxBUXnIPmq1XoEGSIr1H8TMLbidW_LjlYu33tpt707u62rKliypU_FBGUmox7ovPNaVIVBALAMd5yfwuKUUOAGYuB7cuZ-BYEhXa}. +\newblock DOI: \doi{10.7666/d.y351065}. + +\bibitem[Deverell et~al.(2013)Deverell and Igler]{deverell2013companion} +DEVERELL~W, IGLER~D. +\newblock A companion to {California} history\allowbreak[D/OL]. +\newblock New York: John Wiley \& Sons, 2013: 21\allowbreak[2014-06-24]. +\newblock + \url{http://onlinelibrary.wiley.com/doi/10.1002/9781444305036.ch2/summary}. + +\bibitem[Baker et~al.(1995)Baker and Jackson]{baker1995future} +BAKER~S~K, JACKSON~M~E. +\newblock The future of resource sharing\allowbreak[M]. +\newblock New York: The Haworth Press, 1995. + +\bibitem[Chernik(1982)]{chernik1982introduction} +CHERNIK~B~E. +\newblock Introduction to library services for library + technicians\allowbreak[M]. +\newblock Littleton, Colo.: Libraries Unlimited, Inc., 1982. + +\bibitem[尼葛洛庞帝(1996)]{nigeluopangdi1996shuzi} +尼葛洛庞帝. +\newblock 数字化生存\allowbreak[M]. +\newblock 胡泳, 范海燕, 译. +\newblock 海口: 海南出版社, 1996. + +\bibitem[汪冰(1997)]{wangbing1997dianzi} +汪冰. +\newblock 电子图书馆理论与实践研究\allowbreak[M]. +\newblock 北京: 北京图书馆出版社, 1997: 16. + +\bibitem[杨宗英(1996)]{yangzongying1996dianzi} +杨宗英. +\newblock 电子图书馆的现实模型\allowbreak[J]. +\newblock 中国图书馆学报, 1996\penalty0 (2):\penalty0 24. + +\bibitem[Dowler(1995)]{dowler1995research} +DOWLER~L. +\newblock The research university's dilemma: Resource sharing and research in a + transinstitutional environment\allowbreak[J]. +\newblock Journal of library administration, 1995, 21\penalty0 (1/2):\penalty0 + 5. + +\bibitem[Sunstein(1996)]{sunstein1996social} +SUNSTEIN~C~R. +\newblock Social norms and social roles\allowbreak[J/OL]. +\newblock Columbia law review, 1996, 96:\penalty0 903\allowbreak[2012-01-26]. +\newblock + \url{http://www.heinonline.org/HOL/Page?handle=hein.journals/clr96&id=913&collection=journals&index=journals/clr}. + +\bibitem[Morri(2010)]{morri2010why} +MORRI~I. +\newblock Why the west rules for now: the patterns of history, and what they + reveal about the future\allowbreak[M]. +\newblock New York: Farrar, Straus and Giroux, 2010. + +\bibitem[罗杰斯(2011)]{luojiesi2011xifang} +罗杰斯. +\newblock 西方文明史: 问题与源头\allowbreak[M]. +\newblock 潘惠霞, 魏婧, 杨艳, 等译. +\newblock 大连: 东北财经大学出版社, 2011: 15. + +\bibitem[张忠智(1997)]{zhangzhongzhi1997keji} +张忠智. +\newblock + 科技书刊的总编(主编)的角色要求\allowbreak[C]//\allowbreak +中国科学技术期刊编辑学会. +\newblock + 中国科学技术期刊编辑学会建会十周年学术研讨会论文汇编. +\newblock 北京: 中国科学技术期刊编辑学会学术委员会, 1997: + 33. + +\bibitem[中国社会科学院语言研究所词典编辑室(1996)]{zhongguo1996xiandai} +中国社会科学院语言研究所词典编辑室. +\newblock 现代汉语词典\allowbreak[M]. +\newblock 修订本. +\newblock 北京: 商务印书馆, 1996. + +\bibitem[刘彻东(1998)]{liuchedong1998zhongguo} +刘彻东. +\newblock 中国的青年刊物:个性特色为本仁\allowbreak[J]. +\newblock 中国出版, 1998\penalty0 (5):\penalty0 38. + +\bibitem[裴丽生(1981)]{peilisheng1981jianghua} +裴丽生. +\newblock + 在中国科协学术期刊编辑工作经验交流会上的讲话\allowbreak[C]//\allowbreak +中国科学技术协会. +\newblock 中国科协学术期刊编辑工作经验交流会资料选. +\newblock 北京: 中国科学技术协会学会工作部, 1981: 2. + +\bibitem[张伯伟(2002)]{zhangbowei2002quantang} +张伯伟. +\newblock 全唐五代诗格会考\allowbreak[M]. +\newblock 南京: 江苏古籍出版社, 2002: 288. + +\bibitem[200(2009{\natexlab{a}})]{2009shifutangriji} +师伏堂日记: 第 4 册\allowbreak[M]. +\newblock 北京: 北京图书馆出版社, 2009{\natexlab{a}}: 155. + +\bibitem[胡承正\ 等(2010)胡承正, 周详, and + 缪灵]{huchengzheng2010lilun} +胡承正, 周详, 缪灵. +\newblock 理论物理概论: 上\allowbreak[M]. +\newblock 武汉: 武汉大学出版社, 2010: 112. + +\bibitem[美国妇产科医师学会(2010)]{meiguo2010xinshenger} +美国妇产科医师学会. +\newblock + 新生儿脑病和脑性瘫痪发病机制与病理生理\allowbreak[M]. +\newblock 段涛, 杨慧霞, 译. +\newblock 北京: 人民卫生出版社, 2010: 38. + +\bibitem[196(1962)]{1962kangxizidian} +康熙字典: 巳集上: 水部\allowbreak[M]. +\newblock 同文书局影印本. +\newblock 北京: 中华书局, 1962: 50. + +\bibitem[汪昂(1881)]{wangang1881zengding} +汪昂. +\newblock 增订本草备要: 四卷\allowbreak[M]. +\newblock 刻本. +\newblock 京都: 老二酉堂, 1881. + +\bibitem[蒋有绪\ 等(1998)蒋有绪, 郭泉水, 马娟, + et~al.]{jiangyouxu1998zhongguo} +蒋有绪, 郭泉水, 马娟, 等. +\newblock 中国森林群落分类及其群落特征\allowbreak[M]. +\newblock 北京: 科学出版社, 1998. + +\bibitem[中国企业投资协会\ 等(2013)中国企业投资协会, + 台湾并购与私募股权协会, and + 汇盈国际投资集团]{zhongguo2013touzi} +中国企业投资协会, 台湾并购与私募股权协会, + 汇盈国际投资集团. +\newblock 投资台湾: 大陆企业赴台投资指南\allowbreak[M]. +\newblock 北京: 九州出版社, 2013. + +\bibitem[罗斯基(2009)]{luosiji2009zhanqian} +罗斯基. +\newblock 战前中国经济的增长\allowbreak[M]. +\newblock 唐巧天, 毛立坤, 姜修宪, 译. +\newblock 杭州: 浙江大学出版社, 2009. + +\bibitem[库恩(2012)]{kuen2012kexue} +库恩. +\newblock 科学革命的结构: 第 4 版\allowbreak[M]. +\newblock 金吾伦, 胡新和, 译. 2 版. +\newblock 北京: 北京大学出版社, 2012. + +\bibitem[侯文顺(2010)]{houwenshun2010gaofenzi} +侯文顺. +\newblock 高分子物理: + 高分子材料分析、选择与改性\allowbreak[M/OL]. +\newblock 北京: 化学工业出版社, 2010: 119\allowbreak[2012-11-27]. +\newblock + \url{http://apabi.lib.pku.edu.cn/usp/pku/pub.mvc?pid=book.detail&metaid=m.20111114-HGS-889-0228}. + +\bibitem[Crawfprd et~al.(1995)Crawfprd and Gorman]{crawfprd1995future} +CRAWFPRD~W, GORMAN~M. +\newblock Future libraries: Dreams, madness, \& reality\allowbreak[M]. +\newblock Chicago: American Library Association, 1995. + +\bibitem[{International Federation of Library Association and + Institutions}(1977)]{ifola1977names} +{International Federation of Library Association and Institutions}. +\newblock Names of persons: National usages for entry in + catalogues\allowbreak[M]. +\newblock 3rd ed. +\newblock London: IFLA International Office for UBC, 1977. + +\bibitem[O'Brien(1994)]{obrien1994introduction} +O'BRIEN~J~A. +\newblock Introduction to information systems\allowbreak[M]. +\newblock 7th ed. +\newblock Burr Ridge, III: Irwin, 1994. + +\bibitem[Kinchy(2012)]{kinchy2012seeds} +KINCHY~A. +\newblock Seeds, sciences, and struggle: the global politics of transgenic + crops\allowbreak[M/OL]. +\newblock Cambridge, Mass.: MIT Press, 2012: 50\allowbreak[2013-07-14]. +\newblock \url{http://lib.myilibrary.com?ID=381443}. + +\bibitem[Praetzellis(2011)]{praetzellis2011death} +PRAETZELLIS~A. +\newblock Death by theory: a tale of mystery and archaeological + theory\allowbreak[M/OL]. +\newblock Rev. ed. +\newblock Rowman \& Littlefield Publishing Group, Inc., 2011: + 13\allowbreak[2012-07-26]. +\newblock \url{http://lib.myilibrary.com/Open.aspx?id=293666}. + +\bibitem[中国职工教育研究会(1985)]{zhigong1985zhigong} +中国职工教育研究会. +\newblock 职工教育研究论文集\allowbreak[G]. +\newblock 北京: 人民教育出版社, 1985. + +\bibitem[中国社会科学院台湾史研究中心(2012)]{shekeyuan2012taiwan} +中国社会科学院台湾史研究中心. +\newblock + 台湾光复六十五周年暨抗战史实学术研讨会论文集\allowbreak[C]. +\newblock 北京: 九州出版社, 2012. + +\bibitem[雷光春(2012)]{leiguangchun2012zonghe} +雷光春. +\newblock + 综合湿地管理:综合湿地管理国际研讨会论文集\allowbreak[C]. +\newblock 北京: 海洋出版社, 2012. + +\bibitem[陈志勇(2011)]{chenzhiyong2011zhongguo} +陈志勇. +\newblock 中国财税文化价值研究: + “中国财税文化国际学术研讨会”论文集\allowbreak[C/OL]. +\newblock 北京: 经济科学出版社, 2011\allowbreak[2013-10-14]. +\newblock + \url{http://apabi.lib.pku.edu.cn/usp/pku/pub.mvc?pid=book.detail&metaid=m.201106228-BPO-889-0135&cult=CN}. + +\bibitem[Babu et~al.(2014)Babu, Nagar, Deep, et~al.]{babu2014proceedings} +BABU~B~V, NAGAR~A~K, DEEP~K, et~al. +\newblock Proceedings of the second international conference on soft computing + for problem solving, december 28--30, 2012\allowbreak[C]. +\newblock New Delhi: Springer, 2014. + +\bibitem[中华人民共和国国务院新闻办公室(2013)]{zhonghua2013guofang} +中华人民共和国国务院新闻办公室. +\newblock 国防白皮书: + 中国武装力量的多样化运用\allowbreak[R/OL]. +\newblock \allowbreak(2013-04-16)\allowbreak[2014-06-11]. +\newblock \url{http://www.mod.gov.cn/affair/2013-04/16/content_4442839.htm}. + +\bibitem[汤万金\ 等(2013)汤万金, 杨跃翔, 刘文, + et~al.]{tangwanjin2013renti} +汤万金, 杨跃翔, 刘文, 等. +\newblock 人体安全重要技术标准研制最终报告: + 7178999X-2006BAK04A10/10.2013\allowbreak[R/OL]. +\newblock \allowbreak(2013-09-30)\allowbreak[2014-06-24]. +\newblock \url{http://www.nstrs.org.cn/xiangxiBG.aspx?id=41707}. + +\bibitem[Calkin et~al.(2011)Calkin, Ager, and Thompson]{calkin2011comparative} +CALKIN~D, AGER~A, THOMPSON~M. +\newblock A comparative risk assessment framework for wildland fire management: + the 2010 cohesive strategy science report: RMRS-GTR-262\allowbreak[R]. +\newblock [S.l.: s.n.], 2011: 8. + +\bibitem[{U.S. Department of Transportation Federal Highway + Administration}(1990)]{usdtfha1990guidelines} +{U.S. Department of Transportation Federal Highway Administration}. +\newblock Guidelines for handling excavated acid-producing material: {PB + 91-194001}\allowbreak[R]. +\newblock Springfield: U.S. Department of Commerce National Information + Service, 1990. + +\bibitem[{World Health Organization}(1970)]{who1970factors} +{World Health Organization}. +\newblock Factors regulating the immune response: Report of {WHO Scientific + Group}\allowbreak[R]. +\newblock Geneva: WHO, 1970. + +\bibitem[马欢(2011)]{mahuan2011renlei} +马欢. +\newblock + 人类活动影响下海河流域典型区水循环变化分析\allowbreak[D/OL]. +\newblock 北京: 清华大学, 2011: 27\allowbreak[2013-10-14]. +\newblock + \url{http://www.cnki.net/kcms/detail/detail.aspx?dbcode=CDFD&QueryID=.0&CurRec=11&dbname=CDFDLAST2013&filename=1012035905.nh&uid=WEEvREcwSlJHSldTTGJhYIJRaEhGUXFQWVB6SGZXeisxdmVhV3ZyZkpoUnozeDE1b0paM0NmMjZiQ3p4TUdmcw=}. + +\bibitem[吴云芳(2003)]{wuyunfang2003mianxiang} +吴云芳. +\newblock + 面向中文信息处理的现代汉语并列结构研究\allowbreak[D/OL]. +\newblock 北京: 北京大学, 2003\allowbreak[2013-10-14]. +\newblock + \url{http://thesis.lib.pku.edu.cn/dlib/List.asp?lang=gb&type=Reader&DocGroupID=4&DocID=6328}. + +\bibitem[Calms(1965)]{calms1965infrared} +CALMS~R~B. +\newblock Infrared spectroscopic studies on solid oxygen\allowbreak[D]. +\newblock Berkeley: Univ. of California, 1965. + +\bibitem[张凯军(2012)]{zhangkaijun2012guidao} +张凯军. +\newblock 轨道火车及高速轨道火车紧急安全制动辅助装置: + 201220158825.2\allowbreak[P]. +\newblock 2012-04-05. + +\bibitem[河北绿洲生态环境科技有限公司(2001)]{hebei2001yizhong} +河北绿洲生态环境科技有限公司. +\newblock 一种荒漠化地区生态植被综合培育种植方法: + 01129210.5\allowbreak[P/OL]. +\newblock 2001-10-24\allowbreak[2002-05-28]. +\newblock + \url{http://211.152.9.47/sipoasp/zlijs/hyjs-yx-new.asp?recid=01129210.5&leixin=0}. + +\bibitem[Koseki et~al.(2002)Koseki, Momose, Kawahito, + et~al.]{koseki2002compiler} +KOSEKI~A, MOMOSE~H, KAWAHITO~M, et~al. +\newblock Compiler: US828402\allowbreak[P/OL]. +\newblock 2002-05-25\allowbreak[2002-05-28]. +\newblock + \url{http://FF&p=1&u=netahtml/PTO/search-bool.html&r=5&f=G&1=50&col=AND&d=PG01&sl=IBM.AS.&OS=AN/IBM/RS=AN/IBM}. + +\bibitem[全国信息与文献标准化技术委员会(2010{\natexlab{b}})]{quanguo2010wenxian} +全国信息与文献标准化技术委员会. +\newblock 文献著录: 第 4 部分\quad 非书资料: GB/T + 3792.7—2009\allowbreak[S]. +\newblock 北京: 中国标准出版社, 2010{\natexlab{b}}: 3. + +\bibitem[全国广播电视标准化技术委员会(2007)]{quanguo2007guangbo} +全国广播电视标准化技术委员会. +\newblock 广播电视音像资料编目规范: 第 2 部分\quad 广播资料: + GY/T 202.2—2007\allowbreak[S]. +\newblock 北京: 国家广播电影电视总局广播电视规划院, 2007: 1. + +\bibitem[国家环境保护局科技标准司(1996)]{guojia1996turang} +国家环境保护局科技标准司. +\newblock 土壤环境质量标准: GB 15616—1995\allowbreak[S/OL]. +\newblock 北京: 中国标准出版社, 1996: 2\allowbreak[2013-10-14]. +\newblock \url{http://wenku.baidu.com/view/b950a34b767f5acfa1c7cd49.html}. + +\bibitem[200(2009{\natexlab{b}})]{2009information} +Information and documentation---the {Dublin} cord metadata element set: ISO + 15836: 2009\allowbreak[S/OL]. +\newblock 2009\allowbreak[2013-03-24]. +\newblock + \url{http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=52142}. + +\bibitem[198(1988)]{1988qizhi} +卷 39 乞致仕第一\allowbreak[M]//\allowbreak +苏魏公文集: 下册. +\newblock 北京: 中华书局, 1988: 590. + +\bibitem[白书农(1998)]{baishunong1998zhiwu} +白书农. +\newblock 植物开花研究\allowbreak[M]//\allowbreak +李承森. +\newblock 植物科学进展. +\newblock 北京: 高等教育出版社, 1998: 146. + +\bibitem[汪学军(2002)]{wangxuejun2002zhongguo} +汪学军. +\newblock + 中国农业转基因生物研究进展与安全管理\allowbreak[C]//\allowbreak +国家环境保护总局生物安全管理办公室. +\newblock + 中国国家生物安全框架实施国际合作项目研讨会论文集. +\newblock 北京: 中国环境科学出版社, 2002: 22. + +\bibitem[国家标准局信息分类编码研究所(1988)]{guojia1988shijie} +国家标准局信息分类编码研究所. +\newblock 世界各国和地区名称代码: GB/T + 2659—1986\allowbreak[S]//\allowbreak +全国文献工作标准化委员会. +\newblock 文献工作国家标准汇编: 3. +\newblock 北京: 中国标准出版社, 1988: 59. + +\bibitem[197(1977)]{1977songshi} +宋史卷三: 本纪第三\allowbreak[M]//\allowbreak +宋史: 第 1 册. +\newblock 北京: 中华书局, 1977: 49. + +\bibitem[楼梦鳞\ 等(2011)楼梦鳞 and 杨燕]{loumenglin2011wenchuan} +楼梦鳞, 杨燕. +\newblock 汶川地震基岩地震动特征分析\allowbreak[M/OL]//\allowbreak +同济大学土木工程防灾国家重点实验室. +\newblock 汶川地震震害研究. +\newblock 上海: 同济大学出版社, 2011: 011\allowbreak[2013-05-09]. +\newblock + \url{http://apabi.lib.pku.edu.cn/usp/pku/pub.mvc?pid=book.detail&metaid=m.20120406-YPT-889-0010}. + +\bibitem[Buseck et~al.(c1980)Buseck, Nord, and Veblen]{buseckc1980subsolidus} +BUSECK~P~R, NORD~G~L, Jr, VEBLEN~D~R. +\newblock Subsolidus phenomena in pyroxenes\allowbreak[M]//\allowbreak +Pyroxense. +\newblock Washington, D.C.: Mineralogical Society of America, c1980: 117. + +\bibitem[Fourney(c1971)]{fourneyc1971advances} +FOURNEY~M~E. +\newblock Advances in holographic photoelasticity\allowbreak[C]//\allowbreak +Symposium on Applications of Holography in Mechanics, August 23-25, 1971, + University of Southern California, Los Angeles, California. +\newblock New York: ASME, c1971: 17. + +\bibitem[杨洪升(2013)]{yanghongsheng2013siku} +杨洪升. +\newblock 四库馆私家抄校书考略\allowbreak[J]. +\newblock 文献, 2013\penalty0 (1):\penalty0 56. + +\bibitem[李炳穆(2008{\natexlab{b}})]{libingmu2008hanguo2} +李炳穆. +\newblock 韩国图书馆法\allowbreak[J]. +\newblock 图书情报工作, 2008, 52\penalty0 (6):\penalty0 6. + +\bibitem[于潇\ 等(2012)于潇, 刘义, 柴跃廷, + et~al.]{yuxiao2012hulianwang} +于潇, 刘义, 柴跃廷, 等. +\newblock + 互联网药品可信交易环境中主体资质审核备案模式\allowbreak[J]. +\newblock 清华大学学报(自然科学版), 2012, 52\penalty0 (11):\penalty0 + 1518. + +\bibitem[陈建军(20l0)]{chenjianjun20l0cong} +陈建军. +\newblock 从数字地球到智慧地球\allowbreak[J/OL]. +\newblock 国图资源导刊, 20l0, 7\penalty0 (10):\penalty0 + 93\allowbreak[2013-03-20]. +\newblock \url{http://d.g.wanfangdata.com.cn/Periodical_hunandz201010038.aspx}. +\newblock DOI: \doi{10.3969/j.issn.1672-5603.2010.10.038}. + +\bibitem[Des~Marais et~al.(1992)Des~Marais, Strauss, Summons, + et~al.]{desmarais1992carbon} +DES~MARAIS~D~J, STRAUSS~H, SUMMONS~R~E, et~al. +\newblock Carbon isotope evidence for the stepwise oxidation of the proterozoic + environment\allowbreak[J]. +\newblock Nature, 1992, 359:\penalty0 605. + +\bibitem[Saito et~al.(2006)Saito and Miyazaki]{saito2006jadeite} +SAITO~M, MIYAZAKI~K. +\newblock Jadeite-bearing metagabbro in serpentinite mélange of the + {"Kurosegawa Belt" in Izumi Town, Yatsushiro City, Kumamoto Prefecture, + central Kyushu}\allowbreak[J]. +\newblock Bulletin of the geological survey of Japan, 2006, 57\penalty0 + (5/6):\penalty0 169. + +\bibitem[Walls et~al.(2013)Walls, Barichivich, and Brown]{walls2013drought} +WALLS~S~C, BARICHIVICH~W~J, BROWN~M~E. +\newblock Drought, deluge and declines: the impact of precipitation extremes on + amphibians in a changing climate\allowbreak[J/OL]. +\newblock Biology, 2013, 2\penalty0 (1):\penalty0 399\allowbreak[2013-11-04]. +\newblock \url{http://www.mdpi.com/2079-7737/2/1/399}. +\newblock DOI: \doi{10.3390/biology2010399}. + +\bibitem[Franz et~al.(2013)Franz, Danielewicz, Wong, Anderson, and + Boothe]{franz2013phenotypic} +FRANZ~A~K, DANIELEWICZ~M~A, WONG~D~M, et~al. +\newblock Phenotypic screening with oleaginous microalgae reveals modulators of + lipid productivity\allowbreak[J/OL]. +\newblock ACS Chemical biology, 2013, 8:\penalty0 1053\allowbreak[2014-06-26]. +\newblock \url{http://pubs.acs.org/doi/ipdf/10.1021/cb300573r}. + +\bibitem[Park et~al.(2010)Park and Tosaka]{park2010metadata} +PARK~J~R, TOSAKA~Y. +\newblock Metadata quality control in digital repositories and collections: + Criteria, semantics, and mechanisms\allowbreak[J/OL]. +\newblock Cataloging \& classification quarterly, 2010, 48\penalty0 + (8):\penalty0 696\allowbreak[2013-09-05]. +\newblock + \url{http://www.tandfonline.com/doi/pdf/10.1080/01639374.2010.508711}. + +\bibitem[丁文详(2000)]{dingwenxiang2000shuzi} +丁文详. +\newblock 数字革命与竞争国际化\allowbreak[N]. +\newblock 中国青年报, 2000-11-20\penalty0 (15). + +\bibitem[张田勤(2000)]{zhangtianqin2000zuifan} +张田勤. +\newblock 罪犯 DNA 库与生命伦理学计划\allowbreak[N]. +\newblock 大众科技报, 2000-11-12\penalty0 (7). + +\bibitem[傅刚\ 等(2000)傅刚, 赵承, and 李佳路]{fugang2000dafeng} +傅刚, 赵承, 李佳路. +\newblock 大风沙过后的思考\allowbreak[N/OL]. +\newblock 北京青年报, 2000-01-12\allowbreak[2005-09-28]. +\newblock + \url{http://www.bjyouth.com.cn/Bqb/20000412/GB/4216%5ED0412B1401.htm}. + +\bibitem[刘裕国\ 等(2013)刘裕国, 杨柳, 张洋, + et~al.]{liuyuguo2013wumai} +刘裕国, 杨柳, 张洋, 等. +\newblock 雾霾来袭, 如何突围\allowbreak[N/OL]. +\newblock 人民日报, 2013-01-12\allowbreak[2013-11-06]. +\newblock + \url{http://paper.people.com.cn/rmrb/html/2013-01/12/nw.D110000renmrb_20130112_2-04.htm}. + +\bibitem[萧钰(2001)]{xiaoyu2001chuban} +萧钰. +\newblock 出版业信息化迈入快车道\allowbreak[EB/OL]. +\newblock \allowbreak(2001-12-19)\allowbreak[2002-04-15]. +\newblock \url{http://www.creader.com/news/20011219/200112190019.html}. + +\bibitem[李强(2012)]{liqiang2012huajie} +李强. +\newblock 化解医患矛盾需釜底抽薪\allowbreak[EB/OL]. +\newblock \allowbreak(2012-05-03)\allowbreak[2013-03-25]. +\newblock \url{http://wenku.baidu.com/view/47e4f206b52acfc789ebc92f.html}. + +\bibitem[{{Commonwealth Libraries Bureau of Library Development. Pennsylvania + Department of Education Office}([2013])}]{clbld2013pennsylvania} +{Commonwealth Libraries Bureau of Library Development. Pennsylvania Department + of Education Office}. +\newblock Pennsylvania library laws\allowbreak[EB/OL]. +\newblock \allowbreak[2013-03-24]. +\newblock \url{http://www.racc.edu/yocum/pdf/PALibraryLaws.pdf}. + +\bibitem[201(2012)]{2012dublin} +Dublin core metadata element set: version 1.1\allowbreak[EB/OL]. +\newblock \allowbreak(2012-06-14)\allowbreak[2014-06-11]. +\newblock \url{http://dublincore.org/documents/dces/}. + +\end{thebibliography} diff --git a/test/testbst/option-only-start-page.dtx b/test/testbst/option-only-start-page.dtx new file mode 100644 index 0000000..bb0bf57 --- /dev/null +++ b/test/testbst/option-only-start-page.dtx @@ -0,0 +1,31 @@ +%<*internal> +\begingroup + \def\nameoflatex{LaTeX2e} +\expandafter\endgroup\ifx\nameoflatexe\fmtname\else +\csname fi\endcsname +% +%<*install> +\input docstrip.tex +\nopreamble +\keepsilent +\askforoverwritefalse +\nopostamble +\generate{ + \file{test.bst}{\from{gbt7714.dtx}{2015,numerical,only-start-page}} + \file{test.bib}{\from{\jobname.dtx}{bib}} +} +\endbatchfile +% +%<*internal> +\fi +% +%<*driver> +\ProvidesFile{\jobname.dtx} +% +% \fi +% +% \begin{macrocode} +%<*bib> +% +% \end{macrocode} +\endinput diff --git a/test/testbst/support/cases.bib b/test/testbst/support/cases.bib deleted file mode 100644 index e69de29..0000000 diff --git a/test/testbst/support/test.tex b/test/testbst/support/test.tex new file mode 100644 index 0000000..8d65876 --- /dev/null +++ b/test/testbst/support/test.tex @@ -0,0 +1,16 @@ +\documentclass{ctexart} + +\usepackage{gbt7714} +\usepackage{hyperref} + +\begin{document} + +\citestyle{super} + +Foo +\nocite{*} + +\bibliographystyle{test} +\bibliography{standard,test} + +\end{document} diff --git a/test/testbst/thu-authoryear.dtx b/test/testbst/thu-authoryear.dtx index 7538426..bc924fe 100644 --- a/test/testbst/thu-authoryear.dtx +++ b/test/testbst/thu-authoryear.dtx @@ -195,16 +195,6 @@ key = {huo4 si1 ni2}, } -@book{wangfuzhi1865songlun, - author = {王夫之}, - title = {宋论}, - edition = {刻本}, - address = {金陵}, - publisher = {曾氏}, - year = {1865(清同治四年)}, - key = {wang2 fu1 zhi1}, -} - @book{zhaoyaodong1998xinshidai, author = {赵耀东}, title = {新时代的工业工程师}, @@ -236,46 +226,6 @@ key = {quan2 guo2 chu1 ban3 ye4}, } -@techreport{who1970factors, - author = {{World Health Organization}}, - title = {Factors Regulating the Immune Response: Report of {WHO Scientific Group}}, - address = {Geneva}, - publisher = {WHO}, - year = {1970}, -} - -@book{peebles2001probability, - author = {Peebles, Jr, Peyton Z.}, - title = {Probability, Random Variables, and Random Signal Principles}, - edition = {4}, - address = {New York}, - publisher = {McGraw Hill}, - year = {2001}, -} - -@incollection{baishunong1998zhiwu, - author = {白书农}, - title = {植物开花研究}, - editor = {李承森}, - booktitle = {植物科学进展}, - address = {北京}, - publisher = {高等教育出版社}, - year = {1998}, - pages = {146--163}, - key = {bai2 shu1 nong2}, -} - -@incollection{weinstein1974pathogenic, - author = {Weinstein, L and Swertz, M N}, - title = {Pathogenic Properties of Invading Microorganism}, - editor = {Sodeman, Jr, William A and Sodeman, William A}, - booktitle = {Pathologic physiology: mechanisms of disease}, - address = {Philadelphia}, - publisher = {Saunders}, - year = {1974}, - pages = {745--772}, -} - @inproceedings{hanjiren1985lun, author = {韩吉人}, title = {论职工教育的特点}, @@ -309,16 +259,6 @@ key = {zhong1 guo2 tu2 shu1 guan3 xue2 hui4}, } -@periodical{aaas1883science, - author = {{American Association for the Advancement of Science}}, - title = {Science}, - year = {1883--}, - volume = {1}, - number = {1}, - address = {Washington, D.C.}, - publisher = {American Association for the Advancement of Science}, -} - @newspaper{fugang2000fengsha, author = {傅刚 and 赵承 and 李佳路}, title = {大风沙过后的思考}, diff --git a/test/testbst/thu-numerical.dtx b/test/testbst/thu-numerical.dtx index 3a9070c..056c4c5 100644 --- a/test/testbst/thu-numerical.dtx +++ b/test/testbst/thu-numerical.dtx @@ -195,16 +195,6 @@ key = {huo4 si1 ni2}, } -@book{wangfuzhi1865songlun, - author = {王夫之}, - title = {宋论}, - edition = {刻本}, - address = {金陵}, - publisher = {曾氏}, - year = {1865(清同治四年)}, - key = {wang2 fu1 zhi1}, -} - @book{zhaoyaodong1998xinshidai, author = {赵耀东}, title = {新时代的工业工程师}, @@ -236,46 +226,6 @@ key = {quan2 guo2 chu1 ban3 ye4}, } -@techreport{who1970factors, - author = {{World Health Organization}}, - title = {Factors Regulating the Immune Response: Report of {WHO Scientific Group}}, - address = {Geneva}, - publisher = {WHO}, - year = {1970}, -} - -@book{peebles2001probability, - author = {Peebles, Jr, Peyton Z.}, - title = {Probability, Random Variables, and Random Signal Principles}, - edition = {4}, - address = {New York}, - publisher = {McGraw Hill}, - year = {2001}, -} - -@incollection{baishunong1998zhiwu, - author = {白书农}, - title = {植物开花研究}, - editor = {李承森}, - booktitle = {植物科学进展}, - address = {北京}, - publisher = {高等教育出版社}, - year = {1998}, - pages = {146--163}, - key = {bai2 shu1 nong2}, -} - -@incollection{weinstein1974pathogenic, - author = {Weinstein, L and Swertz, M N}, - title = {Pathogenic Properties of Invading Microorganism}, - editor = {Sodeman, Jr, William A and Sodeman, William A}, - booktitle = {Pathologic physiology: mechanisms of disease}, - address = {Philadelphia}, - publisher = {Saunders}, - year = {1974}, - pages = {745--772}, -} - @inproceedings{hanjiren1985lun, author = {韩吉人}, title = {论职工教育的特点}, @@ -309,16 +259,6 @@ key = {zhong1 guo2 tu2 shu1 guan3 xue2 hui4}, } -@periodical{aaas1883science, - author = {{American Association for the Advancement of Science}}, - title = {Science}, - year = {1883--}, - volume = {1}, - number = {1}, - address = {Washington, D.C.}, - publisher = {American Association for the Advancement of Science}, -} - @newspaper{fugang2000fengsha, author = {傅刚 and 赵承 and 李佳路}, title = {大风沙过后的思考}, diff --git a/test/testbst/ustc-authoryear.bbl b/test/testbst/ustc-authoryear.bbl index 1398202..cae6d0b 100644 --- a/test/testbst/ustc-authoryear.bbl +++ b/test/testbst/ustc-authoryear.bbl @@ -4,8 +4,8 @@ \expandafter\ifx\csname urlstyle\endcsname\relax\else \urlstyle{same}\fi \expandafter\ifx\csname href\endcsname\relax - \def\doi#1{#1}\else - \def\doi#1{\href{https://doi.org/#1}{#1}}\fi + \DeclareUrlCommand\doi{\urlstyle{rm}}\else + \providecommand\doi[1]{\href{https://doi.org/#1}{\nolinkurl{#1}}}\fi \bibitem[刘彻东(1998)]{liuchedong1998zhongguo} 刘彻东. 1998. diff --git a/test/testbst/ustc-bachelor.bbl b/test/testbst/ustc-bachelor.bbl index 6659a33..5b56291 100644 --- a/test/testbst/ustc-bachelor.bbl +++ b/test/testbst/ustc-bachelor.bbl @@ -4,8 +4,8 @@ \expandafter\ifx\csname urlstyle\endcsname\relax\else \urlstyle{same}\fi \expandafter\ifx\csname href\endcsname\relax - \def\doi#1{#1}\else - \def\doi#1{\href{https://doi.org/#1}{#1}}\fi + \DeclareUrlCommand\doi{\urlstyle{rm}}\else + \providecommand\doi[1]{\href{https://doi.org/#1}{\nolinkurl{#1}}}\fi \bibitem[陈登原(2000)]{chendengyuan2000guoshijiuwen} 陈登原. diff --git a/test/testbst/ustc-numerical.bbl b/test/testbst/ustc-numerical.bbl index 859d48a..10e0bb3 100644 --- a/test/testbst/ustc-numerical.bbl +++ b/test/testbst/ustc-numerical.bbl @@ -4,8 +4,8 @@ \expandafter\ifx\csname urlstyle\endcsname\relax\else \urlstyle{same}\fi \expandafter\ifx\csname href\endcsname\relax - \def\doi#1{#1}\else - \def\doi#1{\href{https://doi.org/#1}{#1}}\fi + \DeclareUrlCommand\doi{\urlstyle{rm}}\else + \providecommand\doi[1]{\href{https://doi.org/#1}{\nolinkurl{#1}}}\fi \bibitem[陈登原(2000)]{chendengyuan2000guoshijiuwen} 陈登原. diff --git a/tools/abbr-journal.py b/tools/abbr-journal.py new file mode 100644 index 0000000..b342918 --- /dev/null +++ b/tools/abbr-journal.py @@ -0,0 +1,50 @@ +abbrs = { + 'China Physics C': 'Chin Phys C', + 'Chinese Physics Letters': 'Chin Phys Lett', + 'Nuclear Instruments and Methods in Physics Research Section A': 'Nucl Instr and Meth A', + 'Nuclear Instruments and Methods in Physics Research Section A: Accelerators, Spectrometers, Detectors and Associated Equipment': 'Nucl Instr and Meth A', + 'Nuclear Instruments and Methods in Physics Research Section B': 'Nucl Instr and Meth B', + 'Nuclear Instruments and Methods in Physics Research Section B: Beam Interactions with Materials and Atoms': 'Nucl Instr and Meth B', + 'Physical Review C': 'Phys Rev C', + 'Physical Review D': 'Phys Rev D', + 'Physical Review E': 'Phys Rev E', + 'Physical Review Letters': 'Phys Rev Lett', + 'Physics Letters B': 'Phys Lett B', +} + +lines = [] + +lines.append('''\ +FUNCTION {abbreviate.journal} +{ 't := + t "l" change.case$ 's := +''') + +# for k, v in abbrs.items(): +# lines.append(f' s "{k.lower()}" =\n {{ "{v}" }} {{\n') +# lines.append(f' t\n') +# for _ in range(len(abbrs)): +# lines.append(f' }} if$\n') + +for k, v in abbrs.items(): + k = k.replace('.', '').lower() + lines.append(f' s "{k}" =\n') + lines.append(f' {{ "{v}" }}\n') + lines.append(f' \'skip$\n') + lines.append(f' if$\n') + +lines.append('''\ + \'s := + s empty$ + { t } + { s } + if$ +} +''') + + +for line in lines: + print(line, end='') + +with open('abbr.bst', 'w') as f: + f.writelines(lines) diff --git a/versions/2005/gbt7714-2005-author-year.bst b/variants/2005/gbt7714-2005-author-year.bst similarity index 93% rename from versions/2005/gbt7714-2005-author-year.bst rename to variants/2005/gbt7714-2005-author-year.bst index 5e48d69..2bb906c 100644 --- a/versions/2005/gbt7714-2005-author-year.bst +++ b/variants/2005/gbt7714-2005-author-year.bst @@ -1,5 +1,5 @@ %% -%% This is file `versions/2005/gbt7714-2005-author-year.bst', +%% This is file `variants/2005/gbt7714-2005-author-year.bst', %% generated with the docstrip utility. %% %% The original source files were: @@ -8,7 +8,7 @@ %% ------------------------------------------------------------------- %% GB/T 7714-2015 BibTeX Style %% https://github.com/CTeX-org/gbt7714-bibtex-style -%% Version: 2020/03/04 v2.0 +%% Version: 2020/03/14 v2.0.1 %% ------------------------------------------------------------------- %% Copyright (C) 2016-2020 by Zeping Lee %% ------------------------------------------------------------------- @@ -26,16 +26,21 @@ INTEGERS { period.between.author.year sentence.case.title link.title + title.in.journal show.mark show.medium.type slash.for.extraction in.booktitle - italic.jounal + abbreviate.journal + italic.journal bold.journal.volume show.missing.address.publisher + space.before.pages + only.start.page show.url show.doi show.note + show.english.translation lang.zh.order lang.ja.order lang.en.order @@ -50,16 +55,21 @@ FUNCTION {load.config} #1 'period.between.author.year := #1 'sentence.case.title := #0 'link.title := + #1 'title.in.journal := #1 'show.mark := #1 'show.medium.type := #1 'slash.for.extraction := #0 'in.booktitle := - #0 'italic.jounal := + #0 'abbreviate.journal := + #0 'italic.journal := #0 'bold.journal.volume := #1 'show.missing.address.publisher := + #0 'space.before.pages := + #0 'only.start.page := #1 'show.url := #0 'show.doi := #0 'show.note := + #0 'show.english.translation := #1 'lang.zh.order := #2 'lang.ja.order := #3 'lang.en.order := @@ -91,6 +101,7 @@ ENTRY series title translator + translation url urldate volume @@ -272,6 +283,12 @@ FUNCTION {output.check} FUNCTION {fin.entry} { add.period$ write$ + show.english.translation entry.lang lang.zh = and + { ")" + write$ + } + 'skip$ + if$ newline$ } @@ -863,12 +880,51 @@ FUNCTION {format.series.vol.num.booktitle} if$ } -FUNCTION {format.journal} -{ journal - italic.jounal entry.lang lang.en = and - 'italicize +FUNCTION {remove.period} +{ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ 'tmp.str := + tmp.str "." = not + { s tmp.str * 's := } + 'skip$ + if$ + t #2 global.max$ substring$ 't := + } + while$ + s +} + +FUNCTION {abbreviate} +{ remove.period + 't := + t "l" change.case$ 's := + "" + s "physical review letters" = + { "Phys Rev Lett" } 'skip$ if$ + 's := + s empty$ + { t } + { pop$ s } + if$ +} + +FUNCTION {format.journal} +{ journal empty$ not + { journal + abbreviate.journal + 'abbreviate + 'skip$ + if$ + italic.journal entry.lang lang.en = and + 'italicize + 'skip$ + if$ + } + { "" } + if$ } FUNCTION {set.entry.mark} @@ -1107,7 +1163,12 @@ FUNCTION {hyphenate} FUNCTION {format.pages} { pages empty$ { "" } - { pages hyphenate } + { pages + only.start.page + 'extract.before.dash + 'hyphenate + if$ + } if$ } @@ -1132,7 +1193,12 @@ FUNCTION {format.journal.number} FUNCTION {format.journal.pages} { pages empty$ { "" } - { ":\penalty0 " pages hyphenate * } + { space.before.pages + { ": " } + { ":\penalty0 " } + if$ + format.pages * + } if$ } @@ -1204,9 +1270,15 @@ FUNCTION {check.url} } FUNCTION {format.url} +{ entry.url +} + +FUNCTION {output.url} { entry.url empty$ not - { new.block entry.url } - { "" } + { new.block + entry.url output + } + 'skip$ if$ } @@ -1240,7 +1312,7 @@ FUNCTION {is.in.url} FUNCTION {format.doi} { "" - doi empty$ not show.doi and + doi empty$ not { "" 's := doi 't := #0 'numnames := @@ -1268,11 +1340,16 @@ FUNCTION {format.doi} t #2 global.max$ substring$ 't := } while$ - 's := - s empty$ not - { new.block s } - { "" } - if$ + } + 'skip$ + if$ +} + +FUNCTION {output.doi} +{ doi empty$ not show.doi and + show.english.translation entry.lang lang.zh = and not and + { new.block + format.doi output } 'skip$ if$ @@ -1304,6 +1381,30 @@ FUNCTION {format.note} if$ } +FUNCTION {output.translation} +{ show.english.translation entry.lang lang.zh = and + { translation empty$ not + { translation } + { "[English translation missing!]" } + if$ + " (in Chinese)" * output + write$ + format.doi duplicate$ empty$ not + { newline$ + write$ + } + 'pop$ + if$ + " \\" write$ + newline$ + "(" write$ + "" + before.all 'output.state := + } + 'skip$ + if$ +} + FUNCTION {empty.misc.check} { author empty$ title empty$ year empty$ @@ -1316,6 +1417,7 @@ FUNCTION {empty.misc.check} FUNCTION {monograph} { output.bibitem + output.translation author empty$ not { format.authors } { editor empty$ not @@ -1344,8 +1446,8 @@ FUNCTION {monograph} format.address.publisher output format.pages bbl.colon output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1353,6 +1455,7 @@ FUNCTION {monograph} FUNCTION {incollection} { output.bibitem + output.translation format.authors output author format.key output period.between.author.year @@ -1376,8 +1479,8 @@ FUNCTION {incollection} format.address.publisher output format.pages bbl.colon output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1385,6 +1488,7 @@ FUNCTION {incollection} FUNCTION {periodical} { output.bibitem + output.translation format.authors output author format.key output period.between.author.year @@ -1401,8 +1505,8 @@ FUNCTION {periodical} new.block format.address.publisher output format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1410,6 +1514,7 @@ FUNCTION {periodical} FUNCTION {article} { output.bibitem + output.translation format.authors output author format.key output period.between.author.year @@ -1418,17 +1523,21 @@ FUNCTION {article} if$ format.year "year" output.check new.block - format.title "title" output.check - "J" set.entry.mark - format.mark "" output.after - new.block + title.in.journal + { format.title "title" output.check + "J" set.entry.mark + format.mark "" output.after + new.block + } + 'skip$ + if$ format.journal "journal" output.check format.journal.volume output format.journal.number "" output.after format.journal.pages "" output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1436,6 +1545,7 @@ FUNCTION {article} FUNCTION {patent} { output.bibitem + output.translation format.authors output author format.key output period.between.author.year @@ -1450,8 +1560,8 @@ FUNCTION {patent} new.block format.date "year" output.check format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1461,6 +1571,7 @@ FUNCTION {electronic} { #1 #1 check.electronic #1 'entry.is.electronic := output.bibitem + output.translation format.authors output author format.key output period.between.author.year @@ -1477,8 +1588,8 @@ FUNCTION {electronic} format.pages bbl.colon output.after format.editdate "" output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -2008,9 +2119,9 @@ FUNCTION {begin.bib} show.doi { "\expandafter\ifx\csname href\endcsname\relax" write$ newline$ - " \def\doi#1{#1}\else" + " \DeclareUrlCommand\doi{\urlstyle{rm}}\else" write$ newline$ - " \def\doi#1{\href{https://doi.org/#1}{#1}}\fi" + " \providecommand\doi[1]{\href{https://doi.org/#1}{\nolinkurl{#1}}}\fi" write$ newline$ } 'skip$ diff --git a/versions/2005/gbt7714-2005-numerical.bst b/variants/2005/gbt7714-2005-numerical.bst similarity index 92% rename from versions/2005/gbt7714-2005-numerical.bst rename to variants/2005/gbt7714-2005-numerical.bst index 2b294db..9a6b224 100644 --- a/versions/2005/gbt7714-2005-numerical.bst +++ b/variants/2005/gbt7714-2005-numerical.bst @@ -1,5 +1,5 @@ %% -%% This is file `versions/2005/gbt7714-2005-numerical.bst', +%% This is file `variants/2005/gbt7714-2005-numerical.bst', %% generated with the docstrip utility. %% %% The original source files were: @@ -8,7 +8,7 @@ %% ------------------------------------------------------------------- %% GB/T 7714-2015 BibTeX Style %% https://github.com/CTeX-org/gbt7714-bibtex-style -%% Version: 2020/03/04 v2.0 +%% Version: 2020/03/14 v2.0.1 %% ------------------------------------------------------------------- %% Copyright (C) 2016-2020 by Zeping Lee %% ------------------------------------------------------------------- @@ -26,16 +26,21 @@ INTEGERS { period.between.author.year sentence.case.title link.title + title.in.journal show.mark show.medium.type slash.for.extraction in.booktitle - italic.jounal + abbreviate.journal + italic.journal bold.journal.volume show.missing.address.publisher + space.before.pages + only.start.page show.url show.doi show.note + show.english.translation } FUNCTION {load.config} @@ -44,16 +49,21 @@ FUNCTION {load.config} #3 'max.num.authors := #1 'sentence.case.title := #0 'link.title := + #1 'title.in.journal := #1 'show.mark := #1 'show.medium.type := #1 'slash.for.extraction := #0 'in.booktitle := - #0 'italic.jounal := + #0 'abbreviate.journal := + #0 'italic.journal := #0 'bold.journal.volume := #1 'show.missing.address.publisher := + #0 'space.before.pages := + #0 'only.start.page := #1 'show.url := #0 'show.doi := #0 'show.note := + #0 'show.english.translation := } ENTRY @@ -80,6 +90,7 @@ ENTRY series title translator + translation url urldate volume @@ -261,6 +272,12 @@ FUNCTION {output.check} FUNCTION {fin.entry} { add.period$ write$ + show.english.translation entry.lang lang.zh = and + { ")" + write$ + } + 'skip$ + if$ newline$ } @@ -852,12 +869,51 @@ FUNCTION {format.series.vol.num.booktitle} if$ } -FUNCTION {format.journal} -{ journal - italic.jounal entry.lang lang.en = and - 'italicize +FUNCTION {remove.period} +{ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ 'tmp.str := + tmp.str "." = not + { s tmp.str * 's := } + 'skip$ + if$ + t #2 global.max$ substring$ 't := + } + while$ + s +} + +FUNCTION {abbreviate} +{ remove.period + 't := + t "l" change.case$ 's := + "" + s "physical review letters" = + { "Phys Rev Lett" } 'skip$ if$ + 's := + s empty$ + { t } + { pop$ s } + if$ +} + +FUNCTION {format.journal} +{ journal empty$ not + { journal + abbreviate.journal + 'abbreviate + 'skip$ + if$ + italic.journal entry.lang lang.en = and + 'italicize + 'skip$ + if$ + } + { "" } + if$ } FUNCTION {set.entry.mark} @@ -1096,7 +1152,12 @@ FUNCTION {hyphenate} FUNCTION {format.pages} { pages empty$ { "" } - { pages hyphenate } + { pages + only.start.page + 'extract.before.dash + 'hyphenate + if$ + } if$ } @@ -1121,7 +1182,12 @@ FUNCTION {format.journal.number} FUNCTION {format.journal.pages} { pages empty$ { "" } - { ":\penalty0 " pages hyphenate * } + { space.before.pages + { ": " } + { ":\penalty0 " } + if$ + format.pages * + } if$ } @@ -1193,9 +1259,15 @@ FUNCTION {check.url} } FUNCTION {format.url} +{ entry.url +} + +FUNCTION {output.url} { entry.url empty$ not - { new.block entry.url } - { "" } + { new.block + entry.url output + } + 'skip$ if$ } @@ -1229,7 +1301,7 @@ FUNCTION {is.in.url} FUNCTION {format.doi} { "" - doi empty$ not show.doi and + doi empty$ not { "" 's := doi 't := #0 'numnames := @@ -1257,11 +1329,16 @@ FUNCTION {format.doi} t #2 global.max$ substring$ 't := } while$ - 's := - s empty$ not - { new.block s } - { "" } - if$ + } + 'skip$ + if$ +} + +FUNCTION {output.doi} +{ doi empty$ not show.doi and + show.english.translation entry.lang lang.zh = and not and + { new.block + format.doi output } 'skip$ if$ @@ -1293,6 +1370,30 @@ FUNCTION {format.note} if$ } +FUNCTION {output.translation} +{ show.english.translation entry.lang lang.zh = and + { translation empty$ not + { translation } + { "[English translation missing!]" } + if$ + " (in Chinese)" * output + write$ + format.doi duplicate$ empty$ not + { newline$ + write$ + } + 'pop$ + if$ + " \\" write$ + newline$ + "(" write$ + "" + before.all 'output.state := + } + 'skip$ + if$ +} + FUNCTION {empty.misc.check} { author empty$ title empty$ year empty$ @@ -1305,6 +1406,7 @@ FUNCTION {empty.misc.check} FUNCTION {monograph} { output.bibitem + output.translation author empty$ not { format.authors } { editor empty$ not @@ -1329,8 +1431,8 @@ FUNCTION {monograph} format.year "year" output.check format.pages bbl.colon output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1338,6 +1440,7 @@ FUNCTION {monograph} FUNCTION {incollection} { output.bibitem + output.translation format.authors output author format.key output new.block @@ -1357,8 +1460,8 @@ FUNCTION {incollection} format.year "year" output.check format.pages bbl.colon output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1366,6 +1469,7 @@ FUNCTION {incollection} FUNCTION {periodical} { output.bibitem + output.translation format.authors output author format.key output new.block @@ -1378,8 +1482,8 @@ FUNCTION {periodical} format.address.publisher output format.date "year" output.check format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1387,21 +1491,26 @@ FUNCTION {periodical} FUNCTION {article} { output.bibitem + output.translation format.authors output author format.key output new.block - format.title "title" output.check - "J" set.entry.mark - format.mark "" output.after - new.block + title.in.journal + { format.title "title" output.check + "J" set.entry.mark + format.mark "" output.after + new.block + } + 'skip$ + if$ format.journal "journal" output.check format.date "year" output.check format.journal.volume output format.journal.number "" output.after format.journal.pages "" output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1409,6 +1518,7 @@ FUNCTION {article} FUNCTION {patent} { output.bibitem + output.translation format.authors output author format.key output new.block @@ -1418,8 +1528,8 @@ FUNCTION {patent} new.block format.date "year" output.check format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1429,6 +1539,7 @@ FUNCTION {electronic} { #1 #1 check.electronic #1 'entry.is.electronic := output.bibitem + output.translation format.authors output author format.key output new.block @@ -1444,8 +1555,8 @@ FUNCTION {electronic} format.pages bbl.colon output.after format.editdate "" output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1829,9 +1940,9 @@ FUNCTION {begin.bib} show.doi { "\expandafter\ifx\csname href\endcsname\relax" write$ newline$ - " \def\doi#1{#1}\else" + " \DeclareUrlCommand\doi{\urlstyle{rm}}\else" write$ newline$ - " \def\doi#1{\href{https://doi.org/#1}{#1}}\fi" + " \providecommand\doi[1]{\href{https://doi.org/#1}{\nolinkurl{#1}}}\fi" write$ newline$ } 'skip$ diff --git a/variants/gbt7714-variants.ins b/variants/gbt7714-variants.ins new file mode 100644 index 0000000..f3175b7 --- /dev/null +++ b/variants/gbt7714-variants.ins @@ -0,0 +1,51 @@ +\input docstrip.tex +\keepsilent +\askforoverwritefalse +\preamble +------------------------------------------------------------------- +GB/T 7714-2015 BibTeX Style +https://github.com/CTeX-org/gbt7714-bibtex-style +Version: 2020/03/14 v2.0.1 +------------------------------------------------------------------- +Copyright (C) 2016-\the\year by Zeping Lee +------------------------------------------------------------------- +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. +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 +\nopostamble +\generate{ + \file{variants/2005/gbt7714-2005-numerical.bst}{ + \from{gbt7714.dtx}{2005,numerical} + } + \file{variants/2005/gbt7714-2005-author-year.bst}{ + \from{gbt7714.dtx}{2005,authoryear} + } + \file{variants/thu/thuthesis-numeric.bst}{ + \from{gbt7714.dtx}{thu,2005,numerical} + } + \file{variants/thu/thuthesis-author-year.bst}{ + \from{gbt7714.dtx}{thu,2005,authoryear} + } + \file{variants/thu/thuthesis-bachelor.bst}{ + \from{gbt7714.dtx}{2015,numerical,noslsn} + } + \file{variants/ustc/ustcthesis-authoryear.bst}{ + \from{gbt7714.dtx}{ustc,2015,authoryear} + } + \file{variants/ustc/ustcthesis-numerical.bst}{ + \from{gbt7714.dtx}{ustc,2015,numerical} + } + \file{variants/ustc/ustcthesis-bachelor.bst}{ + \from{gbt7714.dtx}{ustc,2015,numerical,nouppercase,nomark,italicjournal} + } + \file{variants/npr/npr.bst}{ + \from{gbt7714.dtx}{npr,2015,numerical} + } +} +\endbatchfile diff --git a/variants/npr/npr.bst b/variants/npr/npr.bst new file mode 100644 index 0000000..d9a1e77 --- /dev/null +++ b/variants/npr/npr.bst @@ -0,0 +1,2023 @@ +%% +%% This is file `variants/npr/npr.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% gbt7714.dtx (with options: `npr,2015,numerical') +%% ------------------------------------------------------------------- +%% GB/T 7714-2015 BibTeX Style +%% https://github.com/CTeX-org/gbt7714-bibtex-style +%% Version: 2020/03/14 v2.0.1 +%% ------------------------------------------------------------------- +%% Copyright (C) 2016-2020 by Zeping Lee +%% ------------------------------------------------------------------- +%% 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. +%% 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. +%% ------------------------------------------------------------------- +INTEGERS { + uppercase.name + max.num.authors + period.between.author.year + sentence.case.title + link.title + title.in.journal + show.mark + show.medium.type + slash.for.extraction + in.booktitle + abbreviate.journal + italic.journal + bold.journal.volume + show.missing.address.publisher + space.before.pages + only.start.page + show.url + show.doi + show.note + show.english.translation +} + +FUNCTION {load.config} +{ + #1 'uppercase.name := + #3 'max.num.authors := + #1 'sentence.case.title := + #0 'link.title := + #0 'title.in.journal := + #1 'show.mark := + #1 'show.medium.type := + #1 'slash.for.extraction := + #0 'in.booktitle := + #1 'abbreviate.journal := + #0 'italic.journal := + #0 'bold.journal.volume := + #1 'show.missing.address.publisher := + #1 'space.before.pages := + #1 'only.start.page := + #1 'show.url := + #1 'show.doi := + #0 'show.note := + #1 'show.english.translation := +} + +ENTRY + { address + author + booktitle + date + doi + edition + editor + howpublished + institution + journal + key + language + mark + medium + note + number + organization + pages + publisher + school + series + title + translator + translation + url + urldate + volume + year + } + { 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 } + +INTEGERS { lang.zh lang.ja lang.en lang.ru lang.other } + +INTEGERS { charptr len } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'after.slash := + #3 'lang.zh := + #4 'lang.ja := + #1 'lang.en := + #2 'lang.ru := + #0 'lang.other := +} + +FUNCTION {bbl.anonymous} +{ entry.lang lang.zh = + { "佚名" } + { "Anon" } + if$ +} + +FUNCTION {bbl.space} +{ entry.lang lang.zh = + { "\ " } + { " " } + if$ +} + +FUNCTION {bbl.et.al} +{ entry.lang lang.zh = + { "等" } + { entry.lang lang.ja = + { "他" } + { entry.lang lang.ru = + { "идр" } + { "et~al." } + if$ + } + if$ + } + if$ +} + +FUNCTION {citation.et.al} +{ bbl.et.al } + +FUNCTION {bbl.colon} { ": " } + +FUNCTION {bbl.wide.space} { "\quad " } + +FUNCTION {bbl.slash} { "//\allowbreak " } + +FUNCTION {bbl.sine.loco} +{ entry.lang lang.zh = + { "[出版地不详]" } + { "[S.l.]" } + if$ +} + +FUNCTION {bbl.sine.nomine} +{ entry.lang lang.zh = + { "[出版者不详]" } + { "[s.n.]" } + if$ +} + +FUNCTION {bbl.sine.loco.sine.nomine} +{ entry.lang lang.zh = + { "[出版地不详: 出版者不详]" } + { "[S.l.: s.n.]" } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { output.state after.slash = + { bbl.slash * write$ + newline$ + } + { add.period$ " " * write$ } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.after} +{ 't := + duplicate$ empty$ + 'pop$ + { 's := + output.state mid.sentence = + { t * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { output.state after.slash = + { bbl.slash * write$ } + { add.period$ " " * write$ } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s + } + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + show.english.translation entry.lang lang.zh = and + { ")" + write$ + } + 'skip$ + if$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { output.state after.slash = + 'skip$ + { after.block 'output.state := } + if$ + } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { output.state after.slash = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ + } + if$ +} + +FUNCTION {new.slash} +{ output.state before.all = + 'skip$ + { slash.for.extraction + { after.slash 'output.state := } + { after.block 'output.state := } + if$ + } + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {italicize} +{ duplicate$ empty$ + { pop$ "" } + { "\textit{" swap$ * "}" * } + if$ +} + +INTEGERS { byte second.byte } + +INTEGERS { char.lang tmp.lang } + +STRINGS { tmp.str } + +FUNCTION {get.str.lang} +{ 'tmp.str := + lang.other 'tmp.lang := + #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$ + } + { 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$ + } + if$ + char.lang tmp.lang > + { char.lang 'tmp.lang := } + 'skip$ + if$ + } + while$ + tmp.lang +} + +FUNCTION {check.entry.lang} +{ author field.or.null + title field.or.null * + get.str.lang +} + +FUNCTION {set.entry.lang} +{ language empty$ + { check.entry.lang } + { language "english" = language "american" = or language "british" = or + { lang.en } + { language "chinese" = + { lang.zh } + { language "japanese" = + { lang.ja } + { language "russian" = + { lang.ru } + { check.entry.lang } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + '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} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't := + nameptr max.num.authors > + { bbl.et.al + #1 'namesleft := + } + { t "others" = + { bbl.et.al } + { t get.str.lang 'name.lang := + name.lang lang.en = + { t #1 "{vv~}{ll}{~f{~}}" format.name$ + uppercase.name + { "u" change.case$ } + 'skip$ + if$ + t #1 "{, jj}" format.name$ * + } + { t #1 "{ll}{ff}" format.name$ } + if$ + } + if$ + } + if$ + nameptr #1 > + { ", " swap$ * * } + 'skip$ + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author empty$ not + { author format.names } + { "empty author in " cite$ * warning$ + "" + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names } + if$ +} + +FUNCTION {format.translators} +{ translator empty$ + { "" } + { translator format.names + entry.lang lang.zh = + { translator num.names$ #3 > + { "译" * } + { ", 译" * } + if$ + } + 'skip$ + if$ + } + if$ +} + +FUNCTION {format.full.names} +{'s := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't := + t get.str.lang 'name.lang := + name.lang lang.en = + { t #1 "{vv~}{ll}" format.name$ 't := } + { t #1 "{ll}{ff}" format.name$ 't := } + if$ + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.full} +{ author empty$ + { editor empty$ + { "" } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.full} +{ author empty$ + { "" } + { author format.full.names } + if$ +} + +FUNCTION {editor.full} +{ editor empty$ + { "" } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.full + { type$ "collection" = + type$ "proceedings" = + or + 'editor.full + 'author.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label ")" * + make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + 's := + s text.length$ 'charptr := + { charptr #0 > s charptr #1 substring$ "[" = not and } + { charptr #1 - 'charptr := } + while$ + charptr #0 > + { "{" s * "}" * } + { s } + if$ + "]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {change.sentence.case} +{ entry.lang lang.en = + { "t" change.case$ } + 'skip$ + if$ +} + +FUNCTION {add.link} +{ url empty$ not + { "\href{" url * "}{" * swap$ * "}" * } + { doi empty$ not + { "\href{http://dx.doi.org/" doi * "}{" * swap$ * "}" * } + 'skip$ + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title + sentence.case.title + 'change.sentence.case + 'skip$ + if$ + entry.numbered number empty$ not and + { bbl.colon * number * } + 'skip$ + if$ + link.title + 'add.link + 'skip$ + if$ + } + if$ +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {is.digit} +{ duplicate$ empty$ + { pop$ #0 } + { chr.to.int$ + duplicate$ "0" chr.to.int$ < + { pop$ #0 } + { "9" chr.to.int$ > + { #0 } + { #1 } + if$ + } + if$ + } + if$ +} + +FUNCTION {is.number} +{ 's := + s empty$ + { #0 } + { s text.length$ 'charptr := + { charptr #0 > + s charptr #1 substring$ is.digit + and + } + { charptr #1 - 'charptr := } + while$ + charptr not + } + if$ +} + +FUNCTION {format.volume} +{ 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$ not + { number is.number + { entry.lang lang.zh = + { "第 " number * " 册" * } + { "number" number tie.or.space.connect } + if$ + } + { number } + if$ + } + { "" } + if$ +} + +FUNCTION {format.volume.number} +{ volume empty$ not + { format.volume } + { format.number } + if$ +} + +FUNCTION {format.title.vol.num} +{ title + sentence.case.title + 'change.sentence.case + 'skip$ + if$ + entry.numbered + { number empty$ not + { bbl.colon * number * } + 'skip$ + if$ + } + { format.volume.number 's := + s empty$ not + { bbl.colon * s * } + 'skip$ + if$ + } + if$ +} + +FUNCTION {format.series.vol.num.title} +{ format.volume.number 's := + series empty$ not + { series + sentence.case.title + 'change.sentence.case + 'skip$ + if$ + 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$ + entry.numbered number empty$ not and + { bbl.colon * number * } + 'skip$ + if$ + } + { format.title.vol.num } + if$ + link.title + 'add.link + 'skip$ + 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 * + entry.numbered not s empty$ not and + { s * bbl.wide.space * } + 'skip$ + if$ + booktitle * + } + { format.booktitle.vol.num } + if$ + in.booktitle + { duplicate$ empty$ not entry.lang lang.en = and + { "In: " swap$ * } + 'skip$ + if$ + } + 'skip$ + if$ +} + +FUNCTION {remove.period} +{ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ 'tmp.str := + tmp.str "." = not + { s tmp.str * 's := } + 'skip$ + if$ + t #2 global.max$ substring$ 't := + } + while$ + s +} + +FUNCTION {abbreviate} +{ remove.period + 't := + t "l" change.case$ 's := + "" + s "physical review letters" = + { "Phys Rev Lett" } + 'skip$ + if$ + s "china physics c" = + { "Chin Phys C" } + 'skip$ + if$ + s "chinese physics letters" = + { "Chin Phys Lett" } + 'skip$ + if$ + s "nuclear instruments and methods in physics research section a" = + { "Nucl Instr and Meth A" } + 'skip$ + if$ + s "nuclear instruments and methods in physics research section a: accelerators, spectrometers, detectors and associated equipment" = + { "Nucl Instr and Meth A" } + 'skip$ + if$ + s "nuclear instruments and methods in physics research section b" = + { "Nucl Instr and Meth B" } + 'skip$ + if$ + s "nuclear instruments and methods in physics research section b: beam interactions with materials and atoms" = + { "Nucl Instr and Meth B" } + 'skip$ + if$ + s "physical review c" = + { "Phys Rev C" } + 'skip$ + if$ + s "physical review d" = + { "Phys Rev D" } + 'skip$ + if$ + s "physical review e" = + { "Phys Rev E" } + 'skip$ + if$ + s "physics letters b" = + { "Phys Lett B" } + 'skip$ + if$ + 's := + s empty$ + { t } + { pop$ s } + if$ +} + +FUNCTION {format.journal} +{ journal empty$ not + { journal + abbreviate.journal + 'abbreviate + 'skip$ + if$ + italic.journal entry.lang lang.en = and + 'italicize + 'skip$ + if$ + } + { "" } + if$ +} + +FUNCTION {set.entry.mark} +{ entry.mark empty$ not + 'pop$ + { mark empty$ not + { pop$ mark 'entry.mark := } + { 'entry.mark := } + if$ + } + if$ +} + +FUNCTION {format.mark} +{ show.mark + { entry.mark + show.medium.type + { medium empty$ not + { "/" * medium * } + { entry.is.electronic + { "/OL" * } + 'skip$ + if$ + } + if$ + } + 'skip$ + if$ + 'entry.mark := + "\allowbreak[" entry.mark * "]" * + } + { "" } + if$ +} + +FUNCTION {num.to.ordinal} +{ duplicate$ text.length$ 'charptr := + duplicate$ charptr #1 substring$ 's := + s "1" = + { "st" * } + { s "2" = + { "nd" * } + { s "3" = + { "rd" * } + { "th" * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { edition is.number + { entry.lang lang.zh = + { edition " 版" * } + { edition num.to.ordinal " ed." * } + if$ + } + { entry.lang lang.en = + { edition change.sentence.case 's := + s "Revised" = s "Revised edition" = or + { "Rev. ed." } + { s " ed." *} + if$ + } + { edition } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.publisher} +{ publisher empty$ not + { publisher } + { school empty$ not + { school } + { organization empty$ not + { organization } + { institution empty$ not + { institution } + { "" } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.address.publisher} +{ address empty$ not + { address + format.publisher empty$ not + { bbl.colon * format.publisher * } + { entry.is.electronic not show.missing.address.publisher and + { bbl.colon * bbl.sine.nomine * } + 'skip$ + if$ + } + if$ + } + { entry.is.electronic not show.missing.address.publisher and + { format.publisher empty$ not + { bbl.sine.loco bbl.colon * format.publisher * } + { bbl.sine.loco.sine.nomine } + if$ + } + { format.publisher empty$ not + { format.publisher } + { "" } + if$ + } + if$ + } + if$ +} + +FUNCTION {extract.before.dash} +{ duplicate$ empty$ + { pop$ "" } + { 's := + #1 'charptr := + s text.length$ #1 + 'len := + { charptr len < + s charptr #1 substring$ "-" = not + and + } + { charptr #1 + 'charptr := } + while$ + s #1 charptr #1 - substring$ + } + if$ +} + +FUNCTION {extract.after.dash} +{ duplicate$ empty$ + { pop$ "" } + { 's := + #1 'charptr := + s text.length$ #1 + 'len := + { charptr len < + s charptr #1 substring$ "-" = not + and + } + { charptr #1 + 'charptr := } + while$ + { charptr len < + s charptr #1 substring$ "-" = + and + } + { charptr #1 + 'charptr := } + while$ + s charptr global.max$ substring$ + } + if$ +} + +FUNCTION {contains.dash} +{ duplicate$ empty$ + { pop$ #0 } + { 's := + { s empty$ not + s #1 #1 substring$ "-" = not + and + } + { s #2 global.max$ substring$ 's := } + while$ + s empty$ not + } + if$ +} + +FUNCTION {format.year} +{ year empty$ not + { year extract.before.dash } + { date empty$ not + { date extract.before.dash } + { "empty year in " cite$ * warning$ + urldate empty$ not + { "[" urldate extract.before.dash * "]" * } + { "" } + if$ + } + if$ + } + if$ + extra.label * +} + +FUNCTION {format.date} +{ type$ "patent" = type$ "newspaper" = or + date empty$ not and + { date } + { year } + if$ +} + +FUNCTION {format.editdate} +{ date empty$ not + { "\allowbreak(" date * ")" * } + { "" } + if$ +} + +FUNCTION {format.urldate} +{ urldate empty$ not entry.is.electronic and + { "\allowbreak[" urldate * "]" * } + { "" } + if$ +} + +FUNCTION {hyphenate} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { "-" * + { t #1 #1 substring$ "-" = } + { t #2 global.max$ substring$ 't := } + while$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages + only.start.page + 'extract.before.dash + 'hyphenate + if$ + } + 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 * ")" * } + { "" } + if$ +} + +FUNCTION {format.journal.pages} +{ pages empty$ + { "" } + { space.before.pages + { ": " } + { ":\penalty0 " } + if$ + format.pages * + } + if$ +} + +FUNCTION {format.periodical.year.volume.number} +{ year empty$ not + { year extract.before.dash } + { "empty year in periodical " cite$ * warning$ } + if$ + volume empty$ not + { ", " * volume extract.before.dash * } + 'skip$ + if$ + number empty$ not + { "\penalty0 (" * number extract.before.dash * ")" * } + 'skip$ + if$ + year contains.dash + { "--" * + year extract.after.dash empty$ + volume extract.after.dash empty$ and + number extract.after.dash empty$ and not + { year extract.after.dash empty$ not + { year extract.after.dash * } + { year extract.before.dash * } + if$ + volume empty$ not + { ", " * volume extract.after.dash * } + 'skip$ + if$ + number empty$ not + { "\penalty0 (" * number extract.after.dash * ")" * } + 'skip$ + if$ + } + 'skip$ + if$ + } + 'skip$ + if$ +} + +FUNCTION {check.url} +{ url empty$ not + { "\url{" url * "}" * 'entry.url := + #1 'entry.is.electronic := + } + { howpublished empty$ not + { howpublished #1 #5 substring$ "\url{" = + { howpublished 'entry.url := + #1 'entry.is.electronic := + } + 'skip$ + if$ + } + { note empty$ not + { note #1 #5 substring$ "\url{" = + { note 'entry.url := + #1 'entry.is.electronic := + } + 'skip$ + if$ + } + 'skip$ + if$ + } + if$ + } + if$ +} + +FUNCTION {format.url} +{ entry.url +} + +FUNCTION {output.url} +{ entry.url empty$ not + { new.block + entry.url output + } + 'skip$ + if$ +} + +FUNCTION {check.doi} +{ doi empty$ not + { #1 'entry.is.electronic := } + 'skip$ + if$ +} + +FUNCTION {is.in.url} +{ 's := + s empty$ + { #1 } + { entry.url empty$ + { #0 } + { s text.length$ 'len := + entry.url text.length$ 'charptr := + { entry.url charptr len substring$ s = not + charptr #0 > + and + } + { charptr #1 - 'charptr := } + while$ + charptr + } + if$ + } + if$ +} + +FUNCTION {format.doi} +{ "" + doi empty$ not + { "" '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.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$ + } + 'skip$ + if$ +} + +FUNCTION {output.doi} +{ doi empty$ not show.doi and + show.english.translation entry.lang lang.zh = and not and + { new.block + format.doi output + } + 'skip$ + if$ +} + +FUNCTION {check.electronic} +{ "" 'entry.url := + #0 'entry.is.electronic := + 'check.doi + 'skip$ + if$ + 'check.url + 'skip$ + if$ + medium empty$ not + { medium "MT" = medium "DK" = or medium "CD" = or medium "OL" = or + { #1 'entry.is.electronic := } + 'skip$ + if$ + } + 'skip$ + if$ +} + +FUNCTION {format.note} +{ note empty$ not show.note and + { note } + { "" } + if$ +} + +FUNCTION {output.translation} +{ show.english.translation entry.lang lang.zh = and + { translation empty$ not + { translation } + { "[English translation missing!]" } + if$ + " (in Chinese)" * output + write$ + format.doi duplicate$ empty$ not + { newline$ + write$ + } + 'pop$ + if$ + " \\" write$ + newline$ + "(" write$ + "" + before.all 'output.state := + } + 'skip$ + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ + year empty$ + and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {monograph} +{ output.bibitem + output.translation + author empty$ not + { format.authors } + { editor empty$ not + { format.editors } + { "empty author and editor in " cite$ * warning$ + "" + } + if$ + } + if$ + output + new.block + format.series.vol.num.title "title" output.check + "M" set.entry.mark + format.mark "" output.after + new.block + format.translators output + new.sentence + format.edition output + new.block + format.address.publisher output + format.year "year" output.check + format.pages bbl.colon output.after + format.urldate "" output.after + output.url + output.doi + new.block + format.note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + output.translation + format.authors output + author format.key output + new.block + format.title "title" output.check + "M" set.entry.mark + format.mark "" output.after + new.block + format.translators output + new.slash + format.editors output + new.block + format.series.vol.num.booktitle "booktitle" output.check + new.block + format.edition output + new.block + format.address.publisher output + format.year "year" output.check + format.pages bbl.colon output.after + format.urldate "" output.after + output.url + output.doi + new.block + format.note output + fin.entry +} + +FUNCTION {periodical} +{ output.bibitem + output.translation + format.authors output + author format.key output + new.block + format.title "title" output.check + "J" set.entry.mark + format.mark "" output.after + new.block + format.periodical.year.volume.number output + new.block + format.address.publisher output + format.date "year" output.check + format.urldate "" output.after + output.url + output.doi + new.block + format.note output + fin.entry +} + +FUNCTION {article} +{ output.bibitem + output.translation + format.authors output + author format.key output + new.block + title.in.journal + { format.title "title" output.check + "J" set.entry.mark + format.mark "" output.after + new.block + } + 'skip$ + if$ + format.journal "journal" output.check + format.date "year" output.check + format.journal.volume output + format.journal.number "" output.after + format.journal.pages "" output.after + format.urldate "" output.after + output.url + output.doi + new.block + format.note output + fin.entry +} + +FUNCTION {patent} +{ output.bibitem + output.translation + format.authors output + author format.key output + new.block + format.title "title" output.check + "P" set.entry.mark + format.mark "" output.after + new.block + format.date "year" output.check + format.urldate "" output.after + output.url + output.doi + new.block + format.note output + fin.entry +} + +FUNCTION {electronic} +{ #1 #1 check.electronic + #1 'entry.is.electronic := + output.bibitem + output.translation + format.authors output + author format.key output + new.block + format.series.vol.num.title "title" output.check + "EB" set.entry.mark + format.mark "" output.after + new.block + format.address.publisher output + date empty$ + { format.date output } + 'skip$ + if$ + format.pages bbl.colon output.after + format.editdate "" output.after + format.urldate "" output.after + output.url + output.doi + new.block + format.note output + fin.entry +} + +FUNCTION {misc} +{ journal empty$ not + 'article + { booktitle empty$ not + 'incollection + { publisher empty$ not + 'monograph + { entry.is.electronic + 'electronic + { "Z" set.entry.mark + monograph + } + if$ + } + if$ + } + if$ + } + if$ + empty.misc.check +} + +FUNCTION {archive} +{ "A" set.entry.mark + misc +} + +FUNCTION {book} { monograph } + +FUNCTION {booklet} { book } + +FUNCTION {collection} +{ "G" set.entry.mark + monograph +} + +FUNCTION {database} +{ "DB" set.entry.mark + electronic +} + +FUNCTION {dataset} +{ "DS" set.entry.mark + electronic +} + +FUNCTION {inbook} { book } + +FUNCTION {inproceedings} +{ "C" set.entry.mark + incollection +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {map} +{ "CM" set.entry.mark + misc +} + +FUNCTION {manual} { monograph } + +FUNCTION {mastersthesis} +{ "D" set.entry.mark + monograph +} + +FUNCTION {newspaper} +{ "N" set.entry.mark + article +} + +FUNCTION {online} +{ "EB" set.entry.mark + electronic +} + +FUNCTION {phdthesis} { mastersthesis } + +FUNCTION {proceedings} +{ "C" set.entry.mark + monograph +} + +FUNCTION {software} +{ "CP" set.entry.mark + electronic +} + +FUNCTION {standard} +{ "S" set.entry.mark + misc +} + +FUNCTION {techreport} +{ "R" set.entry.mark + misc +} + +FUNCTION {unpublished} +{ "Z" set.entry.mark + misc +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}{, jj}{, ff}" format.name$ 't := + t get.str.lang 'name.lang := + name.lang lang.en = + { t #1 "{vv~}{ll}" format.name$} + { t #1 "{ll}{ff}" format.name$} + if$ + s num.names$ #1 > + { bbl.space * citation.et.al * } + 'skip$ + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "collection" = + type$ "proceedings" = + or + { editor empty$ not + 'editor.key.organization.label + 'author.key.organization.label + if$ + } + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + format.year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +INTEGERS { seq.num } + +FUNCTION {init.seq} +{ #0 'seq.num :=} + +FUNCTION {int.to.fix} +{ "000000000" swap$ int.to.str$ * + #-1 #10 substring$ +} + +FUNCTION {presort} +{ set.entry.lang + set.entry.numbered + show.url show.doi check.electronic + calc.label + label sortify + " " + * + seq.num #1 + 'seq.num := + seq.num int.to.fix + 'sort.label := + sort.label * + #1 entry.max$ substring$ + 'sort.key$ := +} + +STRINGS { longest.label last.label next.extra } + +INTEGERS { longest.label.width last.extra.num number.label } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := + #0 'number.label := +} + +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := +} + +FUNCTION {bib.sort.order} +{ sort.label 'sort.key$ := +} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ + "\providecommand{\url}[1]{#1}" + write$ newline$ + "\expandafter\ifx\csname urlstyle\endcsname\relax\else" + write$ newline$ + " \urlstyle{same}\fi" + write$ newline$ + show.doi + { "\expandafter\ifx\csname href\endcsname\relax" + write$ newline$ + " \DeclareUrlCommand\doi{\urlstyle{rm}}\else" + write$ newline$ + " \providecommand\doi[1]{\href{https://doi.org/#1}{\nolinkurl{#1}}}\fi" + write$ newline$ + } + 'skip$ + if$ +} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +READ + +EXECUTE {init.state.consts} + +EXECUTE {load.config} + +EXECUTE {init.seq} + +ITERATE {presort} + +SORT + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +ITERATE {bib.sort.order} + +SORT + +EXECUTE {begin.bib} + +ITERATE {call.type$} + +EXECUTE {end.bib} diff --git a/versions/thu/thuthesis-author-year.bst b/variants/thu/thuthesis-author-year.bst similarity index 93% rename from versions/thu/thuthesis-author-year.bst rename to variants/thu/thuthesis-author-year.bst index 9c1f1c9..e8952a9 100644 --- a/versions/thu/thuthesis-author-year.bst +++ b/variants/thu/thuthesis-author-year.bst @@ -1,5 +1,5 @@ %% -%% This is file `versions/thu/thuthesis-author-year.bst', +%% This is file `variants/thu/thuthesis-author-year.bst', %% generated with the docstrip utility. %% %% The original source files were: @@ -8,7 +8,7 @@ %% ------------------------------------------------------------------- %% GB/T 7714-2015 BibTeX Style %% https://github.com/CTeX-org/gbt7714-bibtex-style -%% Version: 2020/03/04 v2.0 +%% Version: 2020/03/14 v2.0.1 %% ------------------------------------------------------------------- %% Copyright (C) 2016-2020 by Zeping Lee %% ------------------------------------------------------------------- @@ -26,16 +26,21 @@ INTEGERS { period.between.author.year sentence.case.title link.title + title.in.journal show.mark show.medium.type slash.for.extraction in.booktitle - italic.jounal + abbreviate.journal + italic.journal bold.journal.volume show.missing.address.publisher + space.before.pages + only.start.page show.url show.doi show.note + show.english.translation lang.zh.order lang.ja.order lang.en.order @@ -50,16 +55,21 @@ FUNCTION {load.config} #1 'period.between.author.year := #1 'sentence.case.title := #0 'link.title := + #1 'title.in.journal := #1 'show.mark := #1 'show.medium.type := #1 'slash.for.extraction := #0 'in.booktitle := - #0 'italic.jounal := + #0 'abbreviate.journal := + #0 'italic.journal := #0 'bold.journal.volume := #0 'show.missing.address.publisher := + #0 'space.before.pages := + #0 'only.start.page := #1 'show.url := #0 'show.doi := #0 'show.note := + #0 'show.english.translation := #1 'lang.zh.order := #2 'lang.ja.order := #3 'lang.en.order := @@ -91,6 +101,7 @@ ENTRY series title translator + translation url urldate volume @@ -272,6 +283,12 @@ FUNCTION {output.check} FUNCTION {fin.entry} { add.period$ write$ + show.english.translation entry.lang lang.zh = and + { ")" + write$ + } + 'skip$ + if$ newline$ } @@ -863,12 +880,51 @@ FUNCTION {format.series.vol.num.booktitle} if$ } -FUNCTION {format.journal} -{ journal - italic.jounal entry.lang lang.en = and - 'italicize +FUNCTION {remove.period} +{ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ 'tmp.str := + tmp.str "." = not + { s tmp.str * 's := } + 'skip$ + if$ + t #2 global.max$ substring$ 't := + } + while$ + s +} + +FUNCTION {abbreviate} +{ remove.period + 't := + t "l" change.case$ 's := + "" + s "physical review letters" = + { "Phys Rev Lett" } 'skip$ if$ + 's := + s empty$ + { t } + { pop$ s } + if$ +} + +FUNCTION {format.journal} +{ journal empty$ not + { journal + abbreviate.journal + 'abbreviate + 'skip$ + if$ + italic.journal entry.lang lang.en = and + 'italicize + 'skip$ + if$ + } + { "" } + if$ } FUNCTION {set.entry.mark} @@ -1110,7 +1166,12 @@ FUNCTION {hyphenate} FUNCTION {format.pages} { pages empty$ { "" } - { pages hyphenate } + { pages + only.start.page + 'extract.before.dash + 'hyphenate + if$ + } if$ } @@ -1135,7 +1196,12 @@ FUNCTION {format.journal.number} FUNCTION {format.journal.pages} { pages empty$ { "" } - { ":\penalty0 " pages hyphenate * } + { space.before.pages + { ": " } + { ":\penalty0 " } + if$ + format.pages * + } if$ } @@ -1207,9 +1273,15 @@ FUNCTION {check.url} } FUNCTION {format.url} +{ entry.url +} + +FUNCTION {output.url} { entry.url empty$ not - { new.block entry.url } - { "" } + { new.block + entry.url output + } + 'skip$ if$ } @@ -1243,7 +1315,7 @@ FUNCTION {is.in.url} FUNCTION {format.doi} { "" - doi empty$ not show.doi and + doi empty$ not { "" 's := doi 't := #0 'numnames := @@ -1271,11 +1343,16 @@ FUNCTION {format.doi} t #2 global.max$ substring$ 't := } while$ - 's := - s empty$ not - { new.block s } - { "" } - if$ + } + 'skip$ + if$ +} + +FUNCTION {output.doi} +{ doi empty$ not show.doi and + show.english.translation entry.lang lang.zh = and not and + { new.block + format.doi output } 'skip$ if$ @@ -1307,6 +1384,30 @@ FUNCTION {format.note} if$ } +FUNCTION {output.translation} +{ show.english.translation entry.lang lang.zh = and + { translation empty$ not + { translation } + { "[English translation missing!]" } + if$ + " (in Chinese)" * output + write$ + format.doi duplicate$ empty$ not + { newline$ + write$ + } + 'pop$ + if$ + " \\" write$ + newline$ + "(" write$ + "" + before.all 'output.state := + } + 'skip$ + if$ +} + FUNCTION {empty.misc.check} { author empty$ title empty$ year empty$ @@ -1319,6 +1420,7 @@ FUNCTION {empty.misc.check} FUNCTION {monograph} { output.bibitem + output.translation author empty$ not { format.authors } { editor empty$ not @@ -1347,8 +1449,8 @@ FUNCTION {monograph} format.address.publisher output format.pages bbl.colon output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1356,6 +1458,7 @@ FUNCTION {monograph} FUNCTION {incollection} { output.bibitem + output.translation format.authors output author format.key output period.between.author.year @@ -1379,8 +1482,8 @@ FUNCTION {incollection} format.address.publisher output format.pages bbl.colon output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1388,6 +1491,7 @@ FUNCTION {incollection} FUNCTION {periodical} { output.bibitem + output.translation format.authors output author format.key output period.between.author.year @@ -1404,8 +1508,8 @@ FUNCTION {periodical} new.block format.address.publisher output format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1413,6 +1517,7 @@ FUNCTION {periodical} FUNCTION {article} { output.bibitem + output.translation format.authors output author format.key output period.between.author.year @@ -1421,17 +1526,21 @@ FUNCTION {article} if$ format.year "year" output.check new.block - format.title "title" output.check - "J" set.entry.mark - format.mark "" output.after - new.block + title.in.journal + { format.title "title" output.check + "J" set.entry.mark + format.mark "" output.after + new.block + } + 'skip$ + if$ format.journal "journal" output.check format.journal.volume output format.journal.number "" output.after format.journal.pages "" output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1439,6 +1548,7 @@ FUNCTION {article} FUNCTION {patent} { output.bibitem + output.translation format.authors output author format.key output period.between.author.year @@ -1453,8 +1563,8 @@ FUNCTION {patent} new.block format.date "year" output.check format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1464,6 +1574,7 @@ FUNCTION {electronic} { #1 #1 check.electronic #1 'entry.is.electronic := output.bibitem + output.translation format.authors output author format.key output period.between.author.year @@ -1480,8 +1591,8 @@ FUNCTION {electronic} format.pages bbl.colon output.after format.editdate "" output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -2022,9 +2133,9 @@ FUNCTION {begin.bib} show.doi { "\expandafter\ifx\csname href\endcsname\relax" write$ newline$ - " \def\doi#1{#1}\else" + " \DeclareUrlCommand\doi{\urlstyle{rm}}\else" write$ newline$ - " \def\doi#1{\href{https://doi.org/#1}{#1}}\fi" + " \providecommand\doi[1]{\href{https://doi.org/#1}{\nolinkurl{#1}}}\fi" write$ newline$ } 'skip$ diff --git a/versions/thu/thuthesis-bachelor.bst b/variants/thu/thuthesis-bachelor.bst similarity index 92% rename from versions/thu/thuthesis-bachelor.bst rename to variants/thu/thuthesis-bachelor.bst index 75d3a0f..aeba435 100644 --- a/versions/thu/thuthesis-bachelor.bst +++ b/variants/thu/thuthesis-bachelor.bst @@ -1,5 +1,5 @@ %% -%% This is file `versions/thu/thuthesis-bachelor.bst', +%% This is file `variants/thu/thuthesis-bachelor.bst', %% generated with the docstrip utility. %% %% The original source files were: @@ -8,7 +8,7 @@ %% ------------------------------------------------------------------- %% GB/T 7714-2015 BibTeX Style %% https://github.com/CTeX-org/gbt7714-bibtex-style -%% Version: 2020/03/04 v2.0 +%% Version: 2020/03/14 v2.0.1 %% ------------------------------------------------------------------- %% Copyright (C) 2016-2020 by Zeping Lee %% ------------------------------------------------------------------- @@ -26,16 +26,21 @@ INTEGERS { period.between.author.year sentence.case.title link.title + title.in.journal show.mark show.medium.type slash.for.extraction in.booktitle - italic.jounal + abbreviate.journal + italic.journal bold.journal.volume show.missing.address.publisher + space.before.pages + only.start.page show.url show.doi show.note + show.english.translation } FUNCTION {load.config} @@ -44,16 +49,21 @@ FUNCTION {load.config} #3 'max.num.authors := #1 'sentence.case.title := #0 'link.title := + #1 'title.in.journal := #1 'show.mark := #1 'show.medium.type := #1 'slash.for.extraction := #0 'in.booktitle := - #0 'italic.jounal := + #0 'abbreviate.journal := + #0 'italic.journal := #0 'bold.journal.volume := #0 'show.missing.address.publisher := + #0 'space.before.pages := + #0 'only.start.page := #1 'show.url := #1 'show.doi := #0 'show.note := + #0 'show.english.translation := } ENTRY @@ -80,6 +90,7 @@ ENTRY series title translator + translation url urldate volume @@ -261,6 +272,12 @@ FUNCTION {output.check} FUNCTION {fin.entry} { add.period$ write$ + show.english.translation entry.lang lang.zh = and + { ")" + write$ + } + 'skip$ + if$ newline$ } @@ -852,12 +869,51 @@ FUNCTION {format.series.vol.num.booktitle} if$ } -FUNCTION {format.journal} -{ journal - italic.jounal entry.lang lang.en = and - 'italicize +FUNCTION {remove.period} +{ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ 'tmp.str := + tmp.str "." = not + { s tmp.str * 's := } + 'skip$ + if$ + t #2 global.max$ substring$ 't := + } + while$ + s +} + +FUNCTION {abbreviate} +{ remove.period + 't := + t "l" change.case$ 's := + "" + s "physical review letters" = + { "Phys Rev Lett" } 'skip$ if$ + 's := + s empty$ + { t } + { pop$ s } + if$ +} + +FUNCTION {format.journal} +{ journal empty$ not + { journal + abbreviate.journal + 'abbreviate + 'skip$ + if$ + italic.journal entry.lang lang.en = and + 'italicize + 'skip$ + if$ + } + { "" } + if$ } FUNCTION {set.entry.mark} @@ -1096,7 +1152,12 @@ FUNCTION {hyphenate} FUNCTION {format.pages} { pages empty$ { "" } - { pages hyphenate } + { pages + only.start.page + 'extract.before.dash + 'hyphenate + if$ + } if$ } @@ -1121,7 +1182,12 @@ FUNCTION {format.journal.number} FUNCTION {format.journal.pages} { pages empty$ { "" } - { ":\penalty0 " pages hyphenate * } + { space.before.pages + { ": " } + { ":\penalty0 " } + if$ + format.pages * + } if$ } @@ -1193,9 +1259,15 @@ FUNCTION {check.url} } FUNCTION {format.url} +{ entry.url +} + +FUNCTION {output.url} { entry.url empty$ not - { new.block entry.url } - { "" } + { new.block + entry.url output + } + 'skip$ if$ } @@ -1229,7 +1301,7 @@ FUNCTION {is.in.url} FUNCTION {format.doi} { "" - doi empty$ not show.doi and + doi empty$ not { "" 's := doi 't := #0 'numnames := @@ -1257,11 +1329,16 @@ FUNCTION {format.doi} t #2 global.max$ substring$ 't := } while$ - 's := - s empty$ not - { new.block s } - { "" } - if$ + } + 'skip$ + if$ +} + +FUNCTION {output.doi} +{ doi empty$ not show.doi and + show.english.translation entry.lang lang.zh = and not and + { new.block + format.doi output } 'skip$ if$ @@ -1293,6 +1370,30 @@ FUNCTION {format.note} if$ } +FUNCTION {output.translation} +{ show.english.translation entry.lang lang.zh = and + { translation empty$ not + { translation } + { "[English translation missing!]" } + if$ + " (in Chinese)" * output + write$ + format.doi duplicate$ empty$ not + { newline$ + write$ + } + 'pop$ + if$ + " \\" write$ + newline$ + "(" write$ + "" + before.all 'output.state := + } + 'skip$ + if$ +} + FUNCTION {empty.misc.check} { author empty$ title empty$ year empty$ @@ -1305,6 +1406,7 @@ FUNCTION {empty.misc.check} FUNCTION {monograph} { output.bibitem + output.translation author empty$ not { format.authors } { editor empty$ not @@ -1329,8 +1431,8 @@ FUNCTION {monograph} format.year "year" output.check format.pages bbl.colon output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1338,6 +1440,7 @@ FUNCTION {monograph} FUNCTION {incollection} { output.bibitem + output.translation format.authors output author format.key output new.block @@ -1357,8 +1460,8 @@ FUNCTION {incollection} format.year "year" output.check format.pages bbl.colon output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1366,6 +1469,7 @@ FUNCTION {incollection} FUNCTION {periodical} { output.bibitem + output.translation format.authors output author format.key output new.block @@ -1378,8 +1482,8 @@ FUNCTION {periodical} format.address.publisher output format.date "year" output.check format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1387,21 +1491,26 @@ FUNCTION {periodical} FUNCTION {article} { output.bibitem + output.translation format.authors output author format.key output new.block - format.title "title" output.check - "J" set.entry.mark - format.mark "" output.after - new.block + title.in.journal + { format.title "title" output.check + "J" set.entry.mark + format.mark "" output.after + new.block + } + 'skip$ + if$ format.journal "journal" output.check format.date "year" output.check format.journal.volume output format.journal.number "" output.after format.journal.pages "" output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1409,6 +1518,7 @@ FUNCTION {article} FUNCTION {patent} { output.bibitem + output.translation format.authors output author format.key output new.block @@ -1418,8 +1528,8 @@ FUNCTION {patent} new.block format.date "year" output.check format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1429,6 +1539,7 @@ FUNCTION {electronic} { #1 #1 check.electronic #1 'entry.is.electronic := output.bibitem + output.translation format.authors output author format.key output new.block @@ -1444,8 +1555,8 @@ FUNCTION {electronic} format.pages bbl.colon output.after format.editdate "" output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1829,9 +1940,9 @@ FUNCTION {begin.bib} show.doi { "\expandafter\ifx\csname href\endcsname\relax" write$ newline$ - " \def\doi#1{#1}\else" + " \DeclareUrlCommand\doi{\urlstyle{rm}}\else" write$ newline$ - " \def\doi#1{\href{https://doi.org/#1}{#1}}\fi" + " \providecommand\doi[1]{\href{https://doi.org/#1}{\nolinkurl{#1}}}\fi" write$ newline$ } 'skip$ diff --git a/versions/thu/thuthesis-numeric.bst b/variants/thu/thuthesis-numeric.bst similarity index 92% rename from versions/thu/thuthesis-numeric.bst rename to variants/thu/thuthesis-numeric.bst index 5421033..525a40c 100644 --- a/versions/thu/thuthesis-numeric.bst +++ b/variants/thu/thuthesis-numeric.bst @@ -1,5 +1,5 @@ %% -%% This is file `versions/thu/thuthesis-numeric.bst', +%% This is file `variants/thu/thuthesis-numeric.bst', %% generated with the docstrip utility. %% %% The original source files were: @@ -8,7 +8,7 @@ %% ------------------------------------------------------------------- %% GB/T 7714-2015 BibTeX Style %% https://github.com/CTeX-org/gbt7714-bibtex-style -%% Version: 2020/03/04 v2.0 +%% Version: 2020/03/14 v2.0.1 %% ------------------------------------------------------------------- %% Copyright (C) 2016-2020 by Zeping Lee %% ------------------------------------------------------------------- @@ -26,16 +26,21 @@ INTEGERS { period.between.author.year sentence.case.title link.title + title.in.journal show.mark show.medium.type slash.for.extraction in.booktitle - italic.jounal + abbreviate.journal + italic.journal bold.journal.volume show.missing.address.publisher + space.before.pages + only.start.page show.url show.doi show.note + show.english.translation } FUNCTION {load.config} @@ -44,16 +49,21 @@ FUNCTION {load.config} #3 'max.num.authors := #1 'sentence.case.title := #0 'link.title := + #1 'title.in.journal := #1 'show.mark := #1 'show.medium.type := #1 'slash.for.extraction := #0 'in.booktitle := - #0 'italic.jounal := + #0 'abbreviate.journal := + #0 'italic.journal := #0 'bold.journal.volume := #0 'show.missing.address.publisher := + #0 'space.before.pages := + #0 'only.start.page := #1 'show.url := #0 'show.doi := #0 'show.note := + #0 'show.english.translation := } ENTRY @@ -80,6 +90,7 @@ ENTRY series title translator + translation url urldate volume @@ -261,6 +272,12 @@ FUNCTION {output.check} FUNCTION {fin.entry} { add.period$ write$ + show.english.translation entry.lang lang.zh = and + { ")" + write$ + } + 'skip$ + if$ newline$ } @@ -852,12 +869,51 @@ FUNCTION {format.series.vol.num.booktitle} if$ } -FUNCTION {format.journal} -{ journal - italic.jounal entry.lang lang.en = and - 'italicize +FUNCTION {remove.period} +{ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ 'tmp.str := + tmp.str "." = not + { s tmp.str * 's := } + 'skip$ + if$ + t #2 global.max$ substring$ 't := + } + while$ + s +} + +FUNCTION {abbreviate} +{ remove.period + 't := + t "l" change.case$ 's := + "" + s "physical review letters" = + { "Phys Rev Lett" } 'skip$ if$ + 's := + s empty$ + { t } + { pop$ s } + if$ +} + +FUNCTION {format.journal} +{ journal empty$ not + { journal + abbreviate.journal + 'abbreviate + 'skip$ + if$ + italic.journal entry.lang lang.en = and + 'italicize + 'skip$ + if$ + } + { "" } + if$ } FUNCTION {set.entry.mark} @@ -1099,7 +1155,12 @@ FUNCTION {hyphenate} FUNCTION {format.pages} { pages empty$ { "" } - { pages hyphenate } + { pages + only.start.page + 'extract.before.dash + 'hyphenate + if$ + } if$ } @@ -1124,7 +1185,12 @@ FUNCTION {format.journal.number} FUNCTION {format.journal.pages} { pages empty$ { "" } - { ":\penalty0 " pages hyphenate * } + { space.before.pages + { ": " } + { ":\penalty0 " } + if$ + format.pages * + } if$ } @@ -1196,9 +1262,15 @@ FUNCTION {check.url} } FUNCTION {format.url} +{ entry.url +} + +FUNCTION {output.url} { entry.url empty$ not - { new.block entry.url } - { "" } + { new.block + entry.url output + } + 'skip$ if$ } @@ -1232,7 +1304,7 @@ FUNCTION {is.in.url} FUNCTION {format.doi} { "" - doi empty$ not show.doi and + doi empty$ not { "" 's := doi 't := #0 'numnames := @@ -1260,11 +1332,16 @@ FUNCTION {format.doi} t #2 global.max$ substring$ 't := } while$ - 's := - s empty$ not - { new.block s } - { "" } - if$ + } + 'skip$ + if$ +} + +FUNCTION {output.doi} +{ doi empty$ not show.doi and + show.english.translation entry.lang lang.zh = and not and + { new.block + format.doi output } 'skip$ if$ @@ -1296,6 +1373,30 @@ FUNCTION {format.note} if$ } +FUNCTION {output.translation} +{ show.english.translation entry.lang lang.zh = and + { translation empty$ not + { translation } + { "[English translation missing!]" } + if$ + " (in Chinese)" * output + write$ + format.doi duplicate$ empty$ not + { newline$ + write$ + } + 'pop$ + if$ + " \\" write$ + newline$ + "(" write$ + "" + before.all 'output.state := + } + 'skip$ + if$ +} + FUNCTION {empty.misc.check} { author empty$ title empty$ year empty$ @@ -1308,6 +1409,7 @@ FUNCTION {empty.misc.check} FUNCTION {monograph} { output.bibitem + output.translation author empty$ not { format.authors } { editor empty$ not @@ -1332,8 +1434,8 @@ FUNCTION {monograph} format.year "year" output.check format.pages bbl.colon output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1341,6 +1443,7 @@ FUNCTION {monograph} FUNCTION {incollection} { output.bibitem + output.translation format.authors output author format.key output new.block @@ -1360,8 +1463,8 @@ FUNCTION {incollection} format.year "year" output.check format.pages bbl.colon output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1369,6 +1472,7 @@ FUNCTION {incollection} FUNCTION {periodical} { output.bibitem + output.translation format.authors output author format.key output new.block @@ -1381,8 +1485,8 @@ FUNCTION {periodical} format.address.publisher output format.date "year" output.check format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1390,21 +1494,26 @@ FUNCTION {periodical} FUNCTION {article} { output.bibitem + output.translation format.authors output author format.key output new.block - format.title "title" output.check - "J" set.entry.mark - format.mark "" output.after - new.block + title.in.journal + { format.title "title" output.check + "J" set.entry.mark + format.mark "" output.after + new.block + } + 'skip$ + if$ format.journal "journal" output.check format.date "year" output.check format.journal.volume output format.journal.number "" output.after format.journal.pages "" output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1412,6 +1521,7 @@ FUNCTION {article} FUNCTION {patent} { output.bibitem + output.translation format.authors output author format.key output new.block @@ -1421,8 +1531,8 @@ FUNCTION {patent} new.block format.date "year" output.check format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1432,6 +1542,7 @@ FUNCTION {electronic} { #1 #1 check.electronic #1 'entry.is.electronic := output.bibitem + output.translation format.authors output author format.key output new.block @@ -1447,8 +1558,8 @@ FUNCTION {electronic} format.pages bbl.colon output.after format.editdate "" output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1843,9 +1954,9 @@ FUNCTION {begin.bib} show.doi { "\expandafter\ifx\csname href\endcsname\relax" write$ newline$ - " \def\doi#1{#1}\else" + " \DeclareUrlCommand\doi{\urlstyle{rm}}\else" write$ newline$ - " \def\doi#1{\href{https://doi.org/#1}{#1}}\fi" + " \providecommand\doi[1]{\href{https://doi.org/#1}{\nolinkurl{#1}}}\fi" write$ newline$ } 'skip$ diff --git a/versions/ustc/ustcthesis-authoryear.bst b/variants/ustc/ustcthesis-authoryear.bst similarity index 93% rename from versions/ustc/ustcthesis-authoryear.bst rename to variants/ustc/ustcthesis-authoryear.bst index 66b2dfc..f6caddb 100644 --- a/versions/ustc/ustcthesis-authoryear.bst +++ b/variants/ustc/ustcthesis-authoryear.bst @@ -1,5 +1,5 @@ %% -%% This is file `versions/ustc/ustcthesis-authoryear.bst', +%% This is file `variants/ustc/ustcthesis-authoryear.bst', %% generated with the docstrip utility. %% %% The original source files were: @@ -8,7 +8,7 @@ %% ------------------------------------------------------------------- %% GB/T 7714-2015 BibTeX Style %% https://github.com/CTeX-org/gbt7714-bibtex-style -%% Version: 2020/03/04 v2.0 +%% Version: 2020/03/14 v2.0.1 %% ------------------------------------------------------------------- %% Copyright (C) 2016-2020 by Zeping Lee %% ------------------------------------------------------------------- @@ -26,16 +26,21 @@ INTEGERS { period.between.author.year sentence.case.title link.title + title.in.journal show.mark show.medium.type slash.for.extraction in.booktitle - italic.jounal + abbreviate.journal + italic.journal bold.journal.volume show.missing.address.publisher + space.before.pages + only.start.page show.url show.doi show.note + show.english.translation lang.zh.order lang.ja.order lang.en.order @@ -50,16 +55,21 @@ FUNCTION {load.config} #1 'period.between.author.year := #1 'sentence.case.title := #0 'link.title := + #1 'title.in.journal := #1 'show.mark := #1 'show.medium.type := #1 'slash.for.extraction := #0 'in.booktitle := - #0 'italic.jounal := + #0 'abbreviate.journal := + #0 'italic.journal := #0 'bold.journal.volume := #0 'show.missing.address.publisher := + #0 'space.before.pages := + #0 'only.start.page := #1 'show.url := #1 'show.doi := #0 'show.note := + #0 'show.english.translation := #1 'lang.zh.order := #2 'lang.ja.order := #3 'lang.en.order := @@ -91,6 +101,7 @@ ENTRY series title translator + translation url urldate volume @@ -272,6 +283,12 @@ FUNCTION {output.check} FUNCTION {fin.entry} { add.period$ write$ + show.english.translation entry.lang lang.zh = and + { ")" + write$ + } + 'skip$ + if$ newline$ } @@ -863,12 +880,51 @@ FUNCTION {format.series.vol.num.booktitle} if$ } -FUNCTION {format.journal} -{ journal - italic.jounal entry.lang lang.en = and - 'italicize +FUNCTION {remove.period} +{ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ 'tmp.str := + tmp.str "." = not + { s tmp.str * 's := } + 'skip$ + if$ + t #2 global.max$ substring$ 't := + } + while$ + s +} + +FUNCTION {abbreviate} +{ remove.period + 't := + t "l" change.case$ 's := + "" + s "physical review letters" = + { "Phys Rev Lett" } 'skip$ if$ + 's := + s empty$ + { t } + { pop$ s } + if$ +} + +FUNCTION {format.journal} +{ journal empty$ not + { journal + abbreviate.journal + 'abbreviate + 'skip$ + if$ + italic.journal entry.lang lang.en = and + 'italicize + 'skip$ + if$ + } + { "" } + if$ } FUNCTION {set.entry.mark} @@ -1107,7 +1163,12 @@ FUNCTION {hyphenate} FUNCTION {format.pages} { pages empty$ { "" } - { pages hyphenate } + { pages + only.start.page + 'extract.before.dash + 'hyphenate + if$ + } if$ } @@ -1132,7 +1193,12 @@ FUNCTION {format.journal.number} FUNCTION {format.journal.pages} { pages empty$ { "" } - { ":\penalty0 " pages hyphenate * } + { space.before.pages + { ": " } + { ":\penalty0 " } + if$ + format.pages * + } if$ } @@ -1204,9 +1270,15 @@ FUNCTION {check.url} } FUNCTION {format.url} +{ entry.url +} + +FUNCTION {output.url} { entry.url empty$ not - { new.block entry.url } - { "" } + { new.block + entry.url output + } + 'skip$ if$ } @@ -1240,7 +1312,7 @@ FUNCTION {is.in.url} FUNCTION {format.doi} { "" - doi empty$ not show.doi and + doi empty$ not { "" 's := doi 't := #0 'numnames := @@ -1268,11 +1340,16 @@ FUNCTION {format.doi} t #2 global.max$ substring$ 't := } while$ - 's := - s empty$ not - { new.block s } - { "" } - if$ + } + 'skip$ + if$ +} + +FUNCTION {output.doi} +{ doi empty$ not show.doi and + show.english.translation entry.lang lang.zh = and not and + { new.block + format.doi output } 'skip$ if$ @@ -1304,6 +1381,30 @@ FUNCTION {format.note} if$ } +FUNCTION {output.translation} +{ show.english.translation entry.lang lang.zh = and + { translation empty$ not + { translation } + { "[English translation missing!]" } + if$ + " (in Chinese)" * output + write$ + format.doi duplicate$ empty$ not + { newline$ + write$ + } + 'pop$ + if$ + " \\" write$ + newline$ + "(" write$ + "" + before.all 'output.state := + } + 'skip$ + if$ +} + FUNCTION {empty.misc.check} { author empty$ title empty$ year empty$ @@ -1316,6 +1417,7 @@ FUNCTION {empty.misc.check} FUNCTION {monograph} { output.bibitem + output.translation author empty$ not { format.authors } { editor empty$ not @@ -1344,8 +1446,8 @@ FUNCTION {monograph} format.address.publisher output format.pages bbl.colon output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1353,6 +1455,7 @@ FUNCTION {monograph} FUNCTION {incollection} { output.bibitem + output.translation format.authors output author format.key output period.between.author.year @@ -1376,8 +1479,8 @@ FUNCTION {incollection} format.address.publisher output format.pages bbl.colon output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1385,6 +1488,7 @@ FUNCTION {incollection} FUNCTION {periodical} { output.bibitem + output.translation format.authors output author format.key output period.between.author.year @@ -1401,8 +1505,8 @@ FUNCTION {periodical} new.block format.address.publisher output format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1410,6 +1514,7 @@ FUNCTION {periodical} FUNCTION {article} { output.bibitem + output.translation format.authors output author format.key output period.between.author.year @@ -1418,17 +1523,21 @@ FUNCTION {article} if$ format.year "year" output.check new.block - format.title "title" output.check - "J" set.entry.mark - format.mark "" output.after - new.block + title.in.journal + { format.title "title" output.check + "J" set.entry.mark + format.mark "" output.after + new.block + } + 'skip$ + if$ format.journal "journal" output.check format.journal.volume output format.journal.number "" output.after format.journal.pages "" output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1436,6 +1545,7 @@ FUNCTION {article} FUNCTION {patent} { output.bibitem + output.translation format.authors output author format.key output period.between.author.year @@ -1450,8 +1560,8 @@ FUNCTION {patent} new.block format.date "year" output.check format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1461,6 +1571,7 @@ FUNCTION {electronic} { #1 #1 check.electronic #1 'entry.is.electronic := output.bibitem + output.translation format.authors output author format.key output period.between.author.year @@ -1477,8 +1588,8 @@ FUNCTION {electronic} format.pages bbl.colon output.after format.editdate "" output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -2008,9 +2119,9 @@ FUNCTION {begin.bib} show.doi { "\expandafter\ifx\csname href\endcsname\relax" write$ newline$ - " \def\doi#1{#1}\else" + " \DeclareUrlCommand\doi{\urlstyle{rm}}\else" write$ newline$ - " \def\doi#1{\href{https://doi.org/#1}{#1}}\fi" + " \providecommand\doi[1]{\href{https://doi.org/#1}{\nolinkurl{#1}}}\fi" write$ newline$ } 'skip$ diff --git a/versions/ustc/ustcthesis-bachelor.bst b/variants/ustc/ustcthesis-bachelor.bst similarity index 92% rename from versions/ustc/ustcthesis-bachelor.bst rename to variants/ustc/ustcthesis-bachelor.bst index 4a188b4..1e371b3 100644 --- a/versions/ustc/ustcthesis-bachelor.bst +++ b/variants/ustc/ustcthesis-bachelor.bst @@ -1,5 +1,5 @@ %% -%% This is file `versions/ustc/ustcthesis-bachelor.bst', +%% This is file `variants/ustc/ustcthesis-bachelor.bst', %% generated with the docstrip utility. %% %% The original source files were: @@ -8,7 +8,7 @@ %% ------------------------------------------------------------------- %% GB/T 7714-2015 BibTeX Style %% https://github.com/CTeX-org/gbt7714-bibtex-style -%% Version: 2020/03/04 v2.0 +%% Version: 2020/03/14 v2.0.1 %% ------------------------------------------------------------------- %% Copyright (C) 2016-2020 by Zeping Lee %% ------------------------------------------------------------------- @@ -26,16 +26,21 @@ INTEGERS { period.between.author.year sentence.case.title link.title + title.in.journal show.mark show.medium.type slash.for.extraction in.booktitle - italic.jounal + abbreviate.journal + italic.journal bold.journal.volume show.missing.address.publisher + space.before.pages + only.start.page show.url show.doi show.note + show.english.translation } FUNCTION {load.config} @@ -44,18 +49,23 @@ FUNCTION {load.config} #3 'max.num.authors := #1 'sentence.case.title := #0 'link.title := + #1 'title.in.journal := #1 'show.mark := #0 'show.mark := #1 'show.medium.type := #1 'slash.for.extraction := #0 'in.booktitle := - #0 'italic.jounal := - #1 'italic.jounal := + #0 'abbreviate.journal := + #0 'italic.journal := + #1 'italic.journal := #0 'bold.journal.volume := #0 'show.missing.address.publisher := + #0 'space.before.pages := + #0 'only.start.page := #1 'show.url := #1 'show.doi := #0 'show.note := + #0 'show.english.translation := } ENTRY @@ -82,6 +92,7 @@ ENTRY series title translator + translation url urldate volume @@ -263,6 +274,12 @@ FUNCTION {output.check} FUNCTION {fin.entry} { add.period$ write$ + show.english.translation entry.lang lang.zh = and + { ")" + write$ + } + 'skip$ + if$ newline$ } @@ -854,12 +871,51 @@ FUNCTION {format.series.vol.num.booktitle} if$ } -FUNCTION {format.journal} -{ journal - italic.jounal entry.lang lang.en = and - 'italicize +FUNCTION {remove.period} +{ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ 'tmp.str := + tmp.str "." = not + { s tmp.str * 's := } + 'skip$ + if$ + t #2 global.max$ substring$ 't := + } + while$ + s +} + +FUNCTION {abbreviate} +{ remove.period + 't := + t "l" change.case$ 's := + "" + s "physical review letters" = + { "Phys Rev Lett" } 'skip$ if$ + 's := + s empty$ + { t } + { pop$ s } + if$ +} + +FUNCTION {format.journal} +{ journal empty$ not + { journal + abbreviate.journal + 'abbreviate + 'skip$ + if$ + italic.journal entry.lang lang.en = and + 'italicize + 'skip$ + if$ + } + { "" } + if$ } FUNCTION {set.entry.mark} @@ -1098,7 +1154,12 @@ FUNCTION {hyphenate} FUNCTION {format.pages} { pages empty$ { "" } - { pages hyphenate } + { pages + only.start.page + 'extract.before.dash + 'hyphenate + if$ + } if$ } @@ -1123,7 +1184,12 @@ FUNCTION {format.journal.number} FUNCTION {format.journal.pages} { pages empty$ { "" } - { ":\penalty0 " pages hyphenate * } + { space.before.pages + { ": " } + { ":\penalty0 " } + if$ + format.pages * + } if$ } @@ -1195,9 +1261,15 @@ FUNCTION {check.url} } FUNCTION {format.url} +{ entry.url +} + +FUNCTION {output.url} { entry.url empty$ not - { new.block entry.url } - { "" } + { new.block + entry.url output + } + 'skip$ if$ } @@ -1231,7 +1303,7 @@ FUNCTION {is.in.url} FUNCTION {format.doi} { "" - doi empty$ not show.doi and + doi empty$ not { "" 's := doi 't := #0 'numnames := @@ -1259,11 +1331,16 @@ FUNCTION {format.doi} t #2 global.max$ substring$ 't := } while$ - 's := - s empty$ not - { new.block s } - { "" } - if$ + } + 'skip$ + if$ +} + +FUNCTION {output.doi} +{ doi empty$ not show.doi and + show.english.translation entry.lang lang.zh = and not and + { new.block + format.doi output } 'skip$ if$ @@ -1295,6 +1372,30 @@ FUNCTION {format.note} if$ } +FUNCTION {output.translation} +{ show.english.translation entry.lang lang.zh = and + { translation empty$ not + { translation } + { "[English translation missing!]" } + if$ + " (in Chinese)" * output + write$ + format.doi duplicate$ empty$ not + { newline$ + write$ + } + 'pop$ + if$ + " \\" write$ + newline$ + "(" write$ + "" + before.all 'output.state := + } + 'skip$ + if$ +} + FUNCTION {empty.misc.check} { author empty$ title empty$ year empty$ @@ -1307,6 +1408,7 @@ FUNCTION {empty.misc.check} FUNCTION {monograph} { output.bibitem + output.translation author empty$ not { format.authors } { editor empty$ not @@ -1331,8 +1433,8 @@ FUNCTION {monograph} format.year "year" output.check format.pages bbl.colon output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1340,6 +1442,7 @@ FUNCTION {monograph} FUNCTION {incollection} { output.bibitem + output.translation format.authors output author format.key output new.block @@ -1359,8 +1462,8 @@ FUNCTION {incollection} format.year "year" output.check format.pages bbl.colon output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1368,6 +1471,7 @@ FUNCTION {incollection} FUNCTION {periodical} { output.bibitem + output.translation format.authors output author format.key output new.block @@ -1380,8 +1484,8 @@ FUNCTION {periodical} format.address.publisher output format.date "year" output.check format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1389,21 +1493,26 @@ FUNCTION {periodical} FUNCTION {article} { output.bibitem + output.translation format.authors output author format.key output new.block - format.title "title" output.check - "J" set.entry.mark - format.mark "" output.after - new.block + title.in.journal + { format.title "title" output.check + "J" set.entry.mark + format.mark "" output.after + new.block + } + 'skip$ + if$ format.journal "journal" output.check format.date "year" output.check format.journal.volume output format.journal.number "" output.after format.journal.pages "" output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1411,6 +1520,7 @@ FUNCTION {article} FUNCTION {patent} { output.bibitem + output.translation format.authors output author format.key output new.block @@ -1420,8 +1530,8 @@ FUNCTION {patent} new.block format.date "year" output.check format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1431,6 +1541,7 @@ FUNCTION {electronic} { #1 #1 check.electronic #1 'entry.is.electronic := output.bibitem + output.translation format.authors output author format.key output new.block @@ -1446,8 +1557,8 @@ FUNCTION {electronic} format.pages bbl.colon output.after format.editdate "" output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1831,9 +1942,9 @@ FUNCTION {begin.bib} show.doi { "\expandafter\ifx\csname href\endcsname\relax" write$ newline$ - " \def\doi#1{#1}\else" + " \DeclareUrlCommand\doi{\urlstyle{rm}}\else" write$ newline$ - " \def\doi#1{\href{https://doi.org/#1}{#1}}\fi" + " \providecommand\doi[1]{\href{https://doi.org/#1}{\nolinkurl{#1}}}\fi" write$ newline$ } 'skip$ diff --git a/versions/ustc/ustcthesis-numerical.bst b/variants/ustc/ustcthesis-numerical.bst similarity index 92% rename from versions/ustc/ustcthesis-numerical.bst rename to variants/ustc/ustcthesis-numerical.bst index ea420c6..cf58392 100644 --- a/versions/ustc/ustcthesis-numerical.bst +++ b/variants/ustc/ustcthesis-numerical.bst @@ -1,5 +1,5 @@ %% -%% This is file `versions/ustc/ustcthesis-numerical.bst', +%% This is file `variants/ustc/ustcthesis-numerical.bst', %% generated with the docstrip utility. %% %% The original source files were: @@ -8,7 +8,7 @@ %% ------------------------------------------------------------------- %% GB/T 7714-2015 BibTeX Style %% https://github.com/CTeX-org/gbt7714-bibtex-style -%% Version: 2020/03/04 v2.0 +%% Version: 2020/03/14 v2.0.1 %% ------------------------------------------------------------------- %% Copyright (C) 2016-2020 by Zeping Lee %% ------------------------------------------------------------------- @@ -26,16 +26,21 @@ INTEGERS { period.between.author.year sentence.case.title link.title + title.in.journal show.mark show.medium.type slash.for.extraction in.booktitle - italic.jounal + abbreviate.journal + italic.journal bold.journal.volume show.missing.address.publisher + space.before.pages + only.start.page show.url show.doi show.note + show.english.translation } FUNCTION {load.config} @@ -44,16 +49,21 @@ FUNCTION {load.config} #3 'max.num.authors := #1 'sentence.case.title := #0 'link.title := + #1 'title.in.journal := #1 'show.mark := #1 'show.medium.type := #1 'slash.for.extraction := #0 'in.booktitle := - #0 'italic.jounal := + #0 'abbreviate.journal := + #0 'italic.journal := #0 'bold.journal.volume := #0 'show.missing.address.publisher := + #0 'space.before.pages := + #0 'only.start.page := #1 'show.url := #1 'show.doi := #0 'show.note := + #0 'show.english.translation := } ENTRY @@ -80,6 +90,7 @@ ENTRY series title translator + translation url urldate volume @@ -261,6 +272,12 @@ FUNCTION {output.check} FUNCTION {fin.entry} { add.period$ write$ + show.english.translation entry.lang lang.zh = and + { ")" + write$ + } + 'skip$ + if$ newline$ } @@ -852,12 +869,51 @@ FUNCTION {format.series.vol.num.booktitle} if$ } -FUNCTION {format.journal} -{ journal - italic.jounal entry.lang lang.en = and - 'italicize +FUNCTION {remove.period} +{ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ 'tmp.str := + tmp.str "." = not + { s tmp.str * 's := } + 'skip$ + if$ + t #2 global.max$ substring$ 't := + } + while$ + s +} + +FUNCTION {abbreviate} +{ remove.period + 't := + t "l" change.case$ 's := + "" + s "physical review letters" = + { "Phys Rev Lett" } 'skip$ if$ + 's := + s empty$ + { t } + { pop$ s } + if$ +} + +FUNCTION {format.journal} +{ journal empty$ not + { journal + abbreviate.journal + 'abbreviate + 'skip$ + if$ + italic.journal entry.lang lang.en = and + 'italicize + 'skip$ + if$ + } + { "" } + if$ } FUNCTION {set.entry.mark} @@ -1096,7 +1152,12 @@ FUNCTION {hyphenate} FUNCTION {format.pages} { pages empty$ { "" } - { pages hyphenate } + { pages + only.start.page + 'extract.before.dash + 'hyphenate + if$ + } if$ } @@ -1121,7 +1182,12 @@ FUNCTION {format.journal.number} FUNCTION {format.journal.pages} { pages empty$ { "" } - { ":\penalty0 " pages hyphenate * } + { space.before.pages + { ": " } + { ":\penalty0 " } + if$ + format.pages * + } if$ } @@ -1193,9 +1259,15 @@ FUNCTION {check.url} } FUNCTION {format.url} +{ entry.url +} + +FUNCTION {output.url} { entry.url empty$ not - { new.block entry.url } - { "" } + { new.block + entry.url output + } + 'skip$ if$ } @@ -1229,7 +1301,7 @@ FUNCTION {is.in.url} FUNCTION {format.doi} { "" - doi empty$ not show.doi and + doi empty$ not { "" 's := doi 't := #0 'numnames := @@ -1257,11 +1329,16 @@ FUNCTION {format.doi} t #2 global.max$ substring$ 't := } while$ - 's := - s empty$ not - { new.block s } - { "" } - if$ + } + 'skip$ + if$ +} + +FUNCTION {output.doi} +{ doi empty$ not show.doi and + show.english.translation entry.lang lang.zh = and not and + { new.block + format.doi output } 'skip$ if$ @@ -1293,6 +1370,30 @@ FUNCTION {format.note} if$ } +FUNCTION {output.translation} +{ show.english.translation entry.lang lang.zh = and + { translation empty$ not + { translation } + { "[English translation missing!]" } + if$ + " (in Chinese)" * output + write$ + format.doi duplicate$ empty$ not + { newline$ + write$ + } + 'pop$ + if$ + " \\" write$ + newline$ + "(" write$ + "" + before.all 'output.state := + } + 'skip$ + if$ +} + FUNCTION {empty.misc.check} { author empty$ title empty$ year empty$ @@ -1305,6 +1406,7 @@ FUNCTION {empty.misc.check} FUNCTION {monograph} { output.bibitem + output.translation author empty$ not { format.authors } { editor empty$ not @@ -1329,8 +1431,8 @@ FUNCTION {monograph} format.year "year" output.check format.pages bbl.colon output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1338,6 +1440,7 @@ FUNCTION {monograph} FUNCTION {incollection} { output.bibitem + output.translation format.authors output author format.key output new.block @@ -1357,8 +1460,8 @@ FUNCTION {incollection} format.year "year" output.check format.pages bbl.colon output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1366,6 +1469,7 @@ FUNCTION {incollection} FUNCTION {periodical} { output.bibitem + output.translation format.authors output author format.key output new.block @@ -1378,8 +1482,8 @@ FUNCTION {periodical} format.address.publisher output format.date "year" output.check format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1387,21 +1491,26 @@ FUNCTION {periodical} FUNCTION {article} { output.bibitem + output.translation format.authors output author format.key output new.block - format.title "title" output.check - "J" set.entry.mark - format.mark "" output.after - new.block + title.in.journal + { format.title "title" output.check + "J" set.entry.mark + format.mark "" output.after + new.block + } + 'skip$ + if$ format.journal "journal" output.check format.date "year" output.check format.journal.volume output format.journal.number "" output.after format.journal.pages "" output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1409,6 +1518,7 @@ FUNCTION {article} FUNCTION {patent} { output.bibitem + output.translation format.authors output author format.key output new.block @@ -1418,8 +1528,8 @@ FUNCTION {patent} new.block format.date "year" output.check format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1429,6 +1539,7 @@ FUNCTION {electronic} { #1 #1 check.electronic #1 'entry.is.electronic := output.bibitem + output.translation format.authors output author format.key output new.block @@ -1444,8 +1555,8 @@ FUNCTION {electronic} format.pages bbl.colon output.after format.editdate "" output.after format.urldate "" output.after - format.url output - format.doi output + output.url + output.doi new.block format.note output fin.entry @@ -1829,9 +1940,9 @@ FUNCTION {begin.bib} show.doi { "\expandafter\ifx\csname href\endcsname\relax" write$ newline$ - " \def\doi#1{#1}\else" + " \DeclareUrlCommand\doi{\urlstyle{rm}}\else" write$ newline$ - " \def\doi#1{\href{https://doi.org/#1}{#1}}\fi" + " \providecommand\doi[1]{\href{https://doi.org/#1}{\nolinkurl{#1}}}\fi" write$ newline$ } 'skip$