From d6f947fa36ed3b76d36a8dfad4e9247319b4d622 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Tue, 15 Mar 2022 03:01:13 +0000 Subject: CTAN sync 202203150301 --- .../biblatex-gb7714-2015/README.md | 3 +- .../biblatex-gb7714-2015/biblatex-gb7714-2015.pdf | Bin 1656829 -> 1659727 bytes .../biblatex-gb7714-2015/biblatex-gb7714-2015.tex | 15 + .../biblatex-gb7714-2015/gb7714-2015.bbx | 19 +- .../biblatex-gb7714-2015/gb7714-2015ay.bbx | 16 +- .../biblatex-gb7714-2015/gb7714-2015ms.bbx | 22 +- .../biblatex-gb7714-2015/gb7714-2015mx.bbx | 16 +- .../biblatex-gb7714-2015/gb7714-CCNU.bbx | 341 ++++++++++++++++++ .../biblatex-gb7714-2015/gb7714-CCNU.cbx | 30 ++ .../biblatex-gb7714-2015/gb7714-NWAFU.bbx | 384 +++++++++++++++++++++ .../biblatex-gb7714-2015/gb7714-NWAFU.cbx | 52 +++ .../biblatex-gb7714-2015/gb7714-SEU.bbx | 338 ++++++++++++++++++ .../biblatex-gb7714-2015/gb7714-SEU.cbx | 16 + .../biblatex-gb7714-2015/makeall.py | 6 +- macros/latex/contrib/bxorigcapt/LICENSE | 2 +- macros/latex/contrib/bxorigcapt/README.md | 25 +- macros/latex/contrib/bxorigcapt/bxorigcapt.sty | 65 +++- 17 files changed, 1287 insertions(+), 63 deletions(-) create mode 100644 macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-CCNU.bbx create mode 100644 macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-CCNU.cbx create mode 100644 macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-NWAFU.bbx create mode 100644 macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-NWAFU.cbx create mode 100644 macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-SEU.bbx create mode 100644 macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-SEU.cbx (limited to 'macros') diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md index a161a34c54..d89b8c3664 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md @@ -1,4 +1,4 @@ -Date of last change: 2022-03-07 to version v1.1e +Date of last change: 2022-03-13 to version v1.1f # biblatex-gb7714-2015: a biblatex style package @@ -1561,6 +1561,7 @@ please see the file 'biblatex-gb7714-2015.pdf' for further information! * 2022/01/24 v1.1c,ctan * 2022/02/22 v1.1d,ctan,github * 2022/03/07 v1.1e,ctan,github +* 2022/03/13 v1.1f,ctan,github --------------------------------------------------------- diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf index f6e31ca8b3..940809762f 100644 Binary files a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf and b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf differ diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex index 7d79d7c2d0..3dee09197a 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex @@ -2430,6 +2430,19 @@ author.title[usera].translator.edition.location:publisher,date或year:pages[urld 其中标题相关的附加信息除了可以直接在title域中录入外,还可以在subtitle或titleaddon域中添加,后面出现的booktitle,journaltitle,也有类似情况,可以在booktitleaddon或者journalsubtitle中附加信息。其中出版地用location域表示,也可以用传统的address表示,biblatex将address作为location的别名处理,使用两者中的任何一个都可以表示出版地信息。\bc{特别强调: usera域不用录入,该域内容由bbx样式文件根据条目类型自动处理得到。} +\qd{需要注意的是,当文献没有作者(责任制),但有编者、译者时,可以利用编者和译者替代责任者,这是需要使用选项useeditor或usetranslator。当前默认使用该上述选项,若不使用则可能出现标点问题。文献条目比如:} + +\begin{texlist} +@Book{周鲁卫2011--, + translator = {周鲁卫}, + title = {软物质物理导论}, + year = {2011}, + publisher = {复旦大学出版社}, + address = {上海}, + pages = {1}, +} +\end{texlist} + \qd{由于biblatex不支持standard条目类型,所以“标准”类型可以用book或inbook替代,但使用entrysubtype或note域等于standard作为一个区分,当entrysubtype或note域数据存在且内容等于standard时,就将其作为“标准”文献进行处理,其文献类型标识用S表示。这里为什么使用entrysubtype或note域而不是type域和keywords域,是因为考虑到entrysubtype通常标准样式不使用,而note域一般情况下没有什么特殊意义,使用它不会导致冲突,而type域在biblatex标准样式中没有被book和article条目类型当作支持的域,对于支持该域的条目比如thesis,type域又有特殊的意义,是用来区分master和doctor的,而keywords域在biblatex-gb7714-2015中用来存放entrykey以实现一些特殊的判断,所以也不便于使用它。} \subsubsection{标准/standard}\label{sec:standard} @@ -2486,6 +2499,8 @@ author/editor.title[usera].year或date,volume(number)-endyear, endvolume(endnumb 其中连续出版物的出版者用institution表示。 \qd{因为连续出版物可能用到两个日期,两个卷,两个期,所以录入数据时需要特别处理。不需要录入endyear等信息,只需要在到year或date域录入两个日期,由biber自动解析,由于一个日期内部的年月日之间是用-进行分隔,因此两个日期之间用/分隔。而卷和期由于可能有合订模式,且合订卷期之间用/分隔(参考GB/T 7714-2015第8.8.3节),因此如果需要解析有起止范围的卷和期,录入到volume和number域的信息中起止值之间应用-分隔。} +需要注意:当gbpub选项为false时,不使用起止范围的卷期,会导致只有起始范围时不输出后面的-字符,若要使其与国标完全一致,则赢使用gbpub=true选项。 + \subsubsection{连续出版物的析出文献/article} \begin{refentry}{}{}%[break at=0.5cm/0pt] 连续出版物的析出文献对应的biblatex的entrytype为: article。文献类型标识用J表示。 diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx index 46dd2633fb..c0ff2bb90e 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx @@ -11,7 +11,7 @@ % % 版本和时间信息 % -\def\versionofgbtstyle{2022/03/07 v1.1e} +\def\versionofgbtstyle{2022/03/13 v1.1f} \def\versionofbiblatex{\abx@version} \ProvidesFile{gb7714-2015.bbx}[\versionofgbtstyle biblatex bibliography style] %\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求 @@ -630,6 +630,7 @@ maxitems = 1,%设置列表最大数量 minitems = 1, %设置缩减后的列表最小数量 isbn=false, + usetranslator=true, } % @@ -2367,7 +2368,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 \renewbibmacro*{bytranslator+others}{\bibauthorfont% \ifnameundef{translator} {} - {\iffieldequalstr{usere}{chinese}{}{\usebibmacro{bytranslator+othersstrg}} + {\iffieldequalstr{usere}{chinese}{}{\usebibmacro{bytranslator+othersstrg}}% %\setunit{\addspace}% \printnames[bytranslator]{translator}% \clearname{translator}% @@ -3325,17 +3326,18 @@ incollection,proceedings,inproceedings]{number}{% % % 对edition版本信息格式做出修改 -% +% 注意实现逻辑: +% 1. 不是整数时原样输出 +% 2. 当是整数且大于1时按版本格式输出 \DeclareFieldFormat{edition}{\bibtitlefont%源来自biblatex.DEF -\ifnumgreater{#1}{1}{% \testCJKfirst{userd}% \iftoggle{ifCJKforgbt}% {\ifinteger{#1}% - {\printtext{#1\str@edition}}% + {\ifnumgreater{#1}{1}{\printtext{#1\str@edition}}{}}% {#1\isdot}}% {\ifinteger{#1}% - {\mkbibordedition{#1}~\bibstring{edition}}% - {#1\isdot}}}{}% + {\ifnumgreater{#1}{1}{\mkbibordedition{#1}~\bibstring{edition}}{}}% + {#1\isdot}}% } % @@ -3571,7 +3573,7 @@ incollection,proceedings,inproceedings]{number}{% and not test {\ifnameundef{translator}} } - {\renewcommand{\aftertransdelim}{\adddot\addspace}{\adddot\addspace}\printnames{translator}% + {\renewcommand{\aftertransdelim}{\adddot\addspace}\printnames{translator}% \clearname{translator}} {}} @@ -3685,6 +3687,7 @@ incollection,proceedings,inproceedings]{number}{% % 20190212,v1.0q,增加中英文区分,by hzz % % 原理方法:使用bibmacro{in:}改变了以前在driver中直接输出//的方式,同时也简化了标点控制。 +% 需要注意\bibstring命令会把首字母大写的。 \renewbibmacro*{in:}{% \iftoggle{bbx:gbpunctin}{\printtext{\allowbreak\texttt{//}\allowbreak}}%\addthinspace {\setunit{\adddot\addspace}% diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx index ecc1561155..af346dd719 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx @@ -10,7 +10,7 @@ % % 版本和时间信息 % -\def\versionofgbtstyle{2022/03/07 v1.1e} +\def\versionofgbtstyle{2022/03/13 v1.1f} \def\versionofbiblatex{\abx@version} \ProvidesFile{gb7714-2015ay.bbx}[\versionofgbtstyle biblatex bibliography style] %\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求 @@ -572,6 +572,7 @@ isbn=false, sorting=gb7714-2015, sortlocale=zh__pinyin,%zh__big5han,%zh__stroke,%zh__gb2312han,%zh__pinyin, + usetranslator=true, } % @@ -2221,7 +2222,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 \renewbibmacro*{bytranslator+others}{\bibauthorfont% \ifnameundef{translator} {} - {\iffieldequalstr{usere}{chinese}{}{\usebibmacro{bytranslator+othersstrg}} + {\iffieldequalstr{usere}{chinese}{}{\usebibmacro{bytranslator+othersstrg}}% %\setunit{\addspace}% \printnames[bytranslator]{translator}% \clearname{translator}% @@ -3147,17 +3148,18 @@ incollection,proceedings,inproceedings]{number}{% % % 对edition版本信息格式做出修改 -% +% 注意实现逻辑: +% 1. 不是整数时原样输出 +% 2. 当是整数且大于1时按版本格式输出 \DeclareFieldFormat{edition}{\bibtitlefont%源来自biblatex.DEF -\ifnumgreater{#1}{1}{% \testCJKfirst{userd}% \iftoggle{ifCJKforgbt}% {\ifinteger{#1}% - {\printtext{#1\str@edition}}% + {\ifnumgreater{#1}{1}{\printtext{#1\str@edition}}{}}% {#1\isdot}}% {\ifinteger{#1}% - {\mkbibordedition{#1}~\bibstring{edition}}% - {#1\isdot}}}{}% + {\ifnumgreater{#1}{1}{\mkbibordedition{#1}~\bibstring{edition}}{}}% + {#1\isdot}}% } diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx index adb65495b2..625cb35a20 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx @@ -11,7 +11,7 @@ % % 版本和时间信息 % -\def\versionofgbtstyle{2022/03/07 v1.1e} +\def\versionofgbtstyle{2022/03/13 v1.1f} \def\versionofbiblatex{\abx@version} \ProvidesFile{gb7714-2015ms.bbx}[\versionofgbtstyle biblatex bibliography style] %\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求 @@ -580,6 +580,7 @@ urldate =gb7714-2015, %iso,针对3.10<=biblatex版本的选项设置,比如texlive2018中的3.11版 eventdate =gb7714-2015, gblocal=gb7714-2015, + usetranslator=true, } @@ -1898,7 +1899,7 @@ togl{bbx:gbstyle} or test {\iffieldequalstr{userd}{chinese}}% \renewbibmacro*{bytranslator+others}{\bibauthorfont% \ifnameundef{translator} {} - {\iffieldequalstr{usere}{chinese}{}{\usebibmacro{bytranslator+othersstrg}} + {\iffieldequalstr{usere}{chinese}{}{\usebibmacro{bytranslator+othersstrg}}% %\setunit{\addspace}% \printnames[bytranslator]{translator}% \clearname{translator}% @@ -2199,17 +2200,18 @@ incollection,proceedings,inproceedings]{number}{% }% % % 对edition版本信息格式做出修改 -% +% 注意实现逻辑: +% 1. 不是整数时原样输出 +% 2. 当是整数且大于1时按版本格式输出 \DeclareFieldFormat{edition}{\bibtitlefont%源来自biblatex.DEF -\ifnumgreater{#1}{1}{% \testCJKfirst{userd}% \iftoggle{ifCJKforgbt}% - {\ifinteger{#1}% - {\printtext{#1\str@edition}}% - {#1\isdot}}% - {\ifinteger{#1}% - {\mkbibordedition{#1}~\bibstring{edition}}% - {#1\isdot}}}{}% + {\ifinteger{##1}% + {\ifnumgreater{##1}{1}{\printtext{##1\str@edition}}{}}% + {##1\isdot}}% + {\ifinteger{##1}% + {\ifnumgreater{##1}{1}{\mkbibordedition{##1}~\bibstring{edition}}{}}% + {##1\isdot}}% }% % % 对version的版本信息做出修改 diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx index aeb0ccccdc..7b4b33dd6a 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx @@ -11,7 +11,7 @@ % % 版本和时间信息 % -\def\versionofgbtstyle{2022/03/07 v1.1e} +\def\versionofgbtstyle{2022/03/13 v1.1f} \def\versionofbiblatex{\abx@version} \ProvidesFile{gb7714-2015mx.bbx}[\versionofgbtstyle biblatex bibliography style] %\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求 @@ -472,6 +472,7 @@ minitems = 1, %设置缩减后的列表最小数量 isbn=false, sortlocale=zh__pinyin,%zh__big5han,%zh__stroke,%zh__gb2312han,%zh__pinyin, + usetranslator=true, } % @@ -1831,7 +1832,7 @@ \renewbibmacro*{bytranslator+others}{\bibauthorfont% \ifnameundef{translator} {} - {\iffieldequalstr{usere}{chinese}{}{\usebibmacro{bytranslator+othersstrg}} + {\iffieldequalstr{usere}{chinese}{}{\usebibmacro{bytranslator+othersstrg}}% %\setunit{\addspace}% \printnames[bytranslator]{translator}% \clearname{translator}% @@ -2481,17 +2482,18 @@ incollection,proceedings,inproceedings]{number}{% % % 对edition版本信息格式做出修改 -% +% 注意实现逻辑: +% 1. 不是整数时原样输出 +% 2. 当是整数且大于1时按版本格式输出 \DeclareFieldFormat{edition}{\bibtitlefont%源来自biblatex.DEF -\ifnumgreater{#1}{1}{% \testCJKfirst{userd}% \iftoggle{ifCJKforgbt}% {\ifinteger{#1}% - {\printtext{#1\str@edition}}% + {\ifnumgreater{#1}{1}{\printtext{#1\str@edition}}{}}% {#1\isdot}}% {\ifinteger{#1}% - {\mkbibordedition{#1}~\bibstring{edition}}% - {#1\isdot}}}{}% + {\ifnumgreater{#1}{1}{\mkbibordedition{#1}~\bibstring{edition}}{}}% + {#1\isdot}}% } % diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-CCNU.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-CCNU.bbx new file mode 100644 index 0000000000..ba2d479971 --- /dev/null +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-CCNU.bbx @@ -0,0 +1,341 @@ +%% +%% --------------------------------------------------------------- +%% gb7714-CCNU.bbx --- A bibliography style for CCNUthesis template +%% --------------------------------------------------------------- +%% +%%用法:类似于标准的样式在biblatex加载时设置样式 +%%文献表正常处理,标注命令主要用cite和parencite +\ProvidesFile{gb7714-CCNU.bbx} + [2022/03/10 v0.1 a biblatex bibliography style for CCNUthesis] + + +%关于格式和bib文件的注意点 +%1. bib文件按照正常的模式写,除了patent将国别放到number里。 +%2. bib文件中会议文集和会议论文区分清楚,会议论文是带in的那种。若会议文集有附加的出版信息请一并放入publisher中。 +%3. 标识为J的都是article,不管是否有url,所以不是online。 +%4. 若inbook需要给出主编这种信息,需要给出editortype域,否则就当bookauthor处理。 + + +%================================================== +%加载gb样式 +%================================================== +\RequireBibliographyStyle{gb7714-2015} + + +% 增加一个控制标点是英文还是中文的选项 +\DeclareBibliographyOption{CCNUpunctcn}[true]{%biblatex低版本 + \ifstrequal{#1}{false}{\execpuncten}{} +} + + +%================================================== +%选项设置 +%================================================== +\ExecuteBibliographyOptions{ + gbpunctin = false, + gbfieldtype = true, % 输出type域,主要处理学位论文 + gbnamefmt=lowercase +} + +% 根据《通知》调整间距和缩进 +\setlength{\biblabelsep}{0.5em} +\setlength{\bibitemindent}{0em} % bibitemindent表示一条文献中第一行相对后面各行的缩进 +\setlength{\bibhang}{1.2ex} +\setlength{\bibparsep}{0em} + +%================================================== +% 定义一些标点为中文全角标点 +%================================================== +\def\erjpunctdot{.}% +\def\erjpunctdotlanen{\adddot\addspace}% +\def\erjpunctmark{、}% +\def\erjpunctcomma{,}% +\def\erjpunctcommalanen{\addcomma\addspace}% +\def\erjpunctcolon{:}% +\def\erjpunctcolonlanen{\addcolon\addspace}% +\def\erjpunctsemicolon{;}% +\def\erjpunctsemicolonlanen{\addsemicolon\addspace}% +\def\erjpunctparenl{(}% +\def\erjpunctparenr{)}% + +\def\execpuncten{% +\def\erjpunctdot{\adddot\addspace}% +\def\erjpunctdotlanen{\adddot\addspace}% +\def\erjpunctmark{\addcomma\addspace}% +\def\erjpunctcomma{\addcomma\addspace}% +\def\erjpunctcommalanen{\addcomma\addspace}% +\def\erjpunctcolon{\addcolon\addspace}% +\def\erjpunctcolonlanen{\addcolon\addspace}% +\def\erjpunctsemicolon{\addcolon\addspace}% +\def\erjpunctsemicolonlanen{\addsemicolon\addspace}% +\def\erjpunctparenl{(}% +\def\erjpunctparenr{)}% +} + + + +%================================================== +%为标注和文献表中标点格式,重设and本地化字符串 +%================================================== +\DefineBibliographyStrings{english}{ + and = {\addcomma}, + andcn = {\erjpunctcomma}, + andincitecn = {和}, %将标注中的分开,便于与文献表中的区分 + andincite = {\&}, + andothers = {et al.}, + andotherscn = {等}, + bytranslator = {\addcomma\ 译}, + editors = {\MakeLowercase{eds}\adddot\isdot}, + editor = {\MakeLowercase{ed}\adddot\isdot}, + in = {In:\addspace}, + incn = {见\iffieldequalstr{userd}{chinese}{\erjpunctcolon}{\erjpunctcolonlanen}}, + mathesis = {(Master dissertation)}, + mathesiscn = {[硕士学位论文]}, + phdthesis = {(Ph D dissertation)}, + phdthesiscn = {[博士学位论文]}, +} + + +%================================================== +%设置一些标点格式为中文的标点 +%================================================== +\DeclareFieldFormat*{title}{\iffieldequalstr{userd}{chinese}{#1}{#1\isdot}} +\def\gbcaselocalset{% +\renewrobustcmd*{\bibinitperiod}{}% +\renewcommand*{\revsdnamepunct}{}% +\renewrobustcmd*{\bibinitdelim}{}% +} +\renewcommand{\aftertransdelim}{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}} +\DeclareDelimFormat*{multinamedelim}{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}%\addcomma\addspace +\DeclareDelimFormat{finalnamedelim}{% + \edef\userfieldabcde{userd}% + \ifcurrentname{translator}{\edef\userfieldabcde{usere}}{}% + \ifcurrentname{editor}{\edef\userfieldabcde{userc}}{}% + \ifcurrentname{author}{\edef\userfieldabcde{userf}}{}% + \ifcurrentname{bookauthor}{\edef\userfieldabcde{userb}}{}% + \ifcase\value{gbcitelocalcase}% + \iffieldequalstr{\userfieldabcde}{chinese}{\bibstring{andincitecn}}{}% + \iffieldequalstr{\userfieldabcde}{korean}{\bibstring{andkr}}{}% + \iffieldequalstr{\userfieldabcde}{japanese}{\bibstring{andjp}}{}% + \iffieldequalstr{\userfieldabcde}{english}{\space\bibstring{andincite}\space}{}% + \iffieldequalstr{\userfieldabcde}{french}{\bibstring{and}}{}% + \iffieldequalstr{\userfieldabcde}{russian}{\bibstring{and}}{}% + \or% + \bibstring{andincitecn}% + \or% + \bibstring{andincite}% + \fi} +\DeclareDelimFormat[bib,biblist]{finalnamedelim}{% + \edef\userfieldabcde{userd}% + \ifcurrentname{translator}{\edef\userfieldabcde{usere}}{}% + \ifcurrentname{editor}{\edef\userfieldabcde{userc}}{}% + \ifcurrentname{author}{\edef\userfieldabcde{userf}}{}% + \ifcurrentname{bookauthor}{\edef\userfieldabcde{userb}}{}% + \ifcase\value{gbbiblocalcase}% + \iffieldequalstr{\userfieldabcde}{chinese}{\bibstring{andcn}}{}% + \iffieldequalstr{\userfieldabcde}{korean}{\bibstring{andkr}}{}% + \iffieldequalstr{\userfieldabcde}{japanese}{\bibstring{andjp}}{}% + \iffieldequalstr{\userfieldabcde}{english}{\bibstring{and}}{}% + \iffieldequalstr{\userfieldabcde}{french}{\bibstring{and}}{}% + \iffieldequalstr{\userfieldabcde}{russian}{\bibstring{and}}{}% + \or% + \bibstring{andcn}% + \or% + \bibstring{and}% + \fi} +\DeclareDelimFormat{nameyeardelim}{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}%\addcomma\addspace +\DeclareDelimFormat[bib,biblist]{nameyeardelim}{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}%\addcomma\addspace +\DeclareDelimFormat{bibpagespunct}{\iffieldequalstr{userd}{chinese}{\erjpunctcolon}{\erjpunctcolonlanen}}%\addcomma\addspace\mbox{} +\renewcommand*{\newunitpunct}{\iffieldequalstr{userd}{chinese}{\erjpunctdot}{\erjpunctdotlanen}}%\addcomma\space %, +\renewcommand*{\finentrypunct}{\iffieldequalstr{userd}{chinese}{\erjpunctdot}{\adddot}} +\renewcommand{\publocpunct}{\iffieldequalstr{userd}{chinese}{\erjpunctcolon}{\addcolon\addspace}}%出版项中:出版社地址后面的标点 + + +%================================================== +%调整部分域的输出格式 +%================================================== + +% +% 调整期刊名的格式 +% +% v1.0k,20180425,增加了字体控制命令,hzz +\renewbibmacro*{journal+issuetitle}{\bibpubfont%源来自standard.bbx + \usebibmacro{journal}% + \setunit*{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}%修改为增加一个逗号 + \iffieldundef{series} + {} + {\newunit + \printfield{series}% + \setunit{\addspace}}% + \usebibmacro{issue+date}% + %\setunit{\addcolon\space}% + \iffieldundef{volume}{}{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}% + %换成逗号和空格 + \usebibmacro{issue}% + \usebibmacro{volume+number+eid}%把卷期放到年份后面 + %\newunit + } + + +% +% 调整期刊卷和期的格式 +% +\renewbibmacro*{volume+number+eid}{%源来自standard.bbx +\iftoggle{bbx:gbfieldstd}{% + \printfield{volume}% + \setunit*{\adddot}% + \printfield{number}% + \setunit{\addcomma\space}% + \printfield{eid}}{% + \printfield{volume}% + %\setunit*{\adddot}%去掉点号 + %\printfield{number}% + \iffieldundef{number}{}{% + \iffieldequalstr{entrysubtype}{news}{\printtext{\mkbibparens{\printfield{number}}}}{% + \iffieldequalstr{userd}{chinese}{\printtext{\erjpunctparenl\printfield{number}\erjpunctparenr}}% + {\printtext{\mkbibparens{\printfield{number}}}}}% + }%增加一个圆括号 + \iffieldundef{eid}{}{% + \setunit{\addcomma\space}% + \printfield{eid}}}} + + +% 新增一个样式用于输出连续出版物的地址,单位,时间, +% 用于periodical连续出版物的出版社和地址的处理 +% +% v1.0k,20180425,为出版信息增加字体控制命令,hzz +% %类似\newbibmacro*{publisher+location+date} +\newbibmacro*{location+institution+date}{\bibpubfont% +\iftoggle{bbx:gbpub}% +{\testCJKfirst{userd}% +\ifboolexpr{% +test {\iflistundef{location}} and test {\iflistundef{institution}}% +}{\iftoggle{ifCJKforgbt}{\printtext{[\str@noaddress}\space :\space\str@nopublisher]}% +{\printtext{[S.l.\space :\space s.n.\adddot]}}% +}{% +\iflistundef{location}{\iftoggle{ifCJKforgbt}{\printtext{[\str@noaddress]}}{\printtext{[S.l.\adddot]}}}% + {\printlist{location}}% +\publocpunct% +\iflistundef{institution}{% +\iftoggle{ifCJKforgbt}{\printtext{[\str@nopublisher]}}{\printtext{\mkbibbrackets{s.n.}}}}% +{\printlist{institution}}}% +\setunit{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}% + %\usebibmacro{date}% + \printfield{year}% + \bibrangedash% + \iffieldundef{endyear}{}{\printfield{endyear}}% + \newunit}% +{\printlist{location}% + \iflistundef{institution}% + {\setunit*{\addcomma\space}} + {\setunit*{\publocpunct}}% + \printlist{institution}% + \setunit*{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}% + \usebibmacro{date}% + \newunit}% +} + + +% +% 通用的出版社和地址的处理 +% +% 原理方法:当没有出版社地址时,直接判断title的信息是否是中文,若为中文,则写出版地不详,否则用英文的字符表示。 +% 事实上title对于每个文献来说是必须的,所以用它判断是最快的,而且一般标题和出版社的语言是一样的。 +% 注意标准standard类型,因为当没有出版项时直接省略,所以做特殊处理 +\renewbibmacro*{publisher+location+date}{\bibpubfont% +\iftoggle{bbx:gbpub}% +{\testCJKfirst{userd}% + \ifboolexpr{ test {\iflistundef{location}} and test {\iflistundef{publisher}} }% + {\iffieldequalstr{entrysubtype}{standard}{}{\iftoggle{ifCJKforgbt}{\printtext{[\str@noaddress}\space :\space\str@nopublisher]}{\printtext{[S.l.\space :\space s.n.\adddot]}}}}% + {\iflistundef{location}{%\adddot + \iffieldequalstr{entrysubtype}{standard}{}%%从gbt7714-2015标准第19页看到,标准存在出版项时输出,没有时完全省略。 + {\iftoggle{ifCJKforgbt}{\printtext{[\str@noaddress]}\addcolon\addspace}{\printtext{[S.l.\adddot]}\publocpunct}}}% \bibstring{noaddress} + {\printlist{location}\publocpunct}%%\addcolon\addspace% + \iflistundef{publisher}{% + \iffieldequalstr{entrysubtype}{standard}{}% + {\iftoggle{ifCJKforgbt}{\printtext{[\str@nopublisher]}\setunit{\adddot\addspace}\setunit*{\addcomma\addspace}}% + {\printtext{\mkbibbrackets{s.n.}}\setunit{\adddot\addspace}\setunit*{\addcomma\addspace}}}}% + {\printlist{publisher}}}% +\setunit*{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}%\addcomma\addspace% +\ifentrytype{report}{\printtext{\blx@gbdate{}{}}}% +{\usebibmacro{date}}% +}% +{\printlist{location}% + \iflistundef{publisher} + {\setunit*{\addcomma\space}} + {\setunit*{\publocpunct}}% + \printlist{publisher}% + \setunit*{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}% +\ifentrytype{report}{\printtext{\blx@gbdate{}{}}}% +{\usebibmacro{date}}% + }% +} + +% +% 修改了一个institution+location+date用于manual、thesis等类型 +% +% 20180425,v1.0k,增加了字体控制命令,hzz +% 20190105,v1.0o,加了一个编组避免\usebibmacro{date}把month和day信息去掉 +\renewbibmacro*{institution+location+date}{\bibpubfont%当没有institution时不处理。 +{\printlist{location}%%加了一个编组避免\usebibmacro{date}把month和day信息去掉 + \iflistundef{institution} + {\setunit*{\addcomma\space}} + {\setunit*{\publocpunct}}% + \printlist{institution}% + \setunit*{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}% + \usebibmacro{date}% + %\newunit + }} + +% +% 编者的符号修改一下 +% v1.0 2016-07-01 +% v1.0q 2019-03-01 hzz 修改editortype前的标点 +% +\renewbibmacro*{editor}{%源来自biblatex.DEF + \ifboolexpr{ + test \ifuseeditor + and + not test {\ifnameundef{editor}} + } + {\printnames{editor}% + \iffieldundef{editortype}%增加一个类型判断,用于存在editortype的情况 + {\setunit{\iffieldequalstr{userd}{chinese}{\erjpunctdot}{\erjpunctdotlanen}}}%当没有editortype时,直接用句点 + {\usebibmacro{editorstrg}\setunit{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}}% + }% + {}} + + +% +% 增加inbook:parent用于辅助crossref传统功能的实现 +% 用在{crosscite}宏中 +% 20210216,v1.0w,hzz +\newbibmacro*{inbook:parent}{% +\usebibmacro{bybookauthor}% +%\ifnameundef{bookauthor}{% +% \ifnameundef{editor}{}{\newunit}% +%}{\newunit}%替换下一句 + %\newunit\newblock +\iffieldundef{series}{}{\usebibmacro{series+number}\setunit{\addcolon\addspace}}%为处理一些存在series的情况而增加 +\usebibmacro{maintitle+booktitle}% +\iffieldundef{volume}{}{\setunit{\addcolon\addspace}\printfield{volume}}% +\iffieldundef{number}{}{\setunit{\addcolon\addspace}\printfield{number}}%增加卷和册信息 + \newunit\newblock% + \printfield{edition}% + \newunit\newblock + \usebibmacro{publisher+location+date}} + + +% +% 修改in:用于inbook、incollection、inproceedings等类型 +% 2018.04.20,v1.0k,renewed marco,by hzz +% 20190212,v1.0q,增加中英文区分,by hzz +% +% 原理方法:使用bibmacro{in:}改变了以前在driver中直接输出//的方式,同时也简化了标点控制。 +\renewbibmacro*{in:}{% + \iftoggle{bbx:gbpunctin}{\printtext{\allowbreak\texttt{//}\allowbreak}}%\addthinspace + {\setunit{\iffieldequalstr{userd}{chinese}{\erjpunctdot}{\erjpunctdotlanen}}% + \iffieldequalstr{userd}{chinese}% + {\printtext{\bibstring{incn}}}% + {\printtext{\bibstring{in}}}% + }}%\newunit\newblock\intitlepunct diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-CCNU.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-CCNU.cbx new file mode 100644 index 0000000000..ba30741856 --- /dev/null +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-CCNU.cbx @@ -0,0 +1,30 @@ +%% +%% --------------------------------------------------------------- +%% gb7714-CCNU.cbx --- A bibliography style for CCNUthesis template +%% --------------------------------------------------------------- +%% +\ProvidesFile{gb7714-CCNU.cbx}[a biblatex citation style for CCNUthesis] + +% +% 加载样式 +% +\RequireCitationStyle{gb7714-2015} %numeric + + +\DeclareCiteCommand{\parencite}%[\mkbibbrackets] + {\mkbibleftborder\usebibmacro{cite:init}% + \usebibmacro{prenote}}% + {\usebibmacro{citeindex}% + \usebibmacro{cite:comp}} + {} + {\usebibmacro{cite:dump}\setunit{\addcomma\addspace}\printfield{postnote}\mkbibrightborder} + + +\DeclareCiteCommand{\cite}[\mkbibsuperscript]%利用mkbibsuperbracket添加方括号 + {\mkbibleftborder\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite:comp}} + {} + {\usebibmacro{cite:dump}\setunit{\addcomma\addspace}% + \printfield{postnote}\mkbibrightborder} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-NWAFU.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-NWAFU.bbx new file mode 100644 index 0000000000..917b71a761 --- /dev/null +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-NWAFU.bbx @@ -0,0 +1,384 @@ +%% +%% --------------------------------------------------------------- +%% NWAFUthesis.bbx --- A bibliography style for NWAFUthesis template +%% --------------------------------------------------------------- +%% +%%用法:类似于标准的样式在biblatex加载时设置样式 +%%文献表正常处理,标注命令主要用cite和parencite +\ProvidesFile{gb7714-NWAFU.bbx} + [2022/03/10 v0.1 a biblatex bibliography style for NWAFUthesis] + + +%================================================== +%加载gb样式 +%================================================== +\RequireBibliographyStyle{gb7714-2015ay} + + +%================================================== +%选项设置 +%================================================== +\ExecuteBibliographyOptions{ + sortlocale=zh__pinyin, + gbtype=false, + maxbibnames=99,% 著录所有作者 + minbibnames=1, + gbnamefmt=familyahead, + %url=false, + doi=false, + isbn=false, + gbfieldtype=true, + gbpunctin=false, + uniquename=false, + uniquelist=false, + nohashothers=false, +} + + +%================================================== +%一些字体设置 +%================================================== +%\def\bibrangedash{$\sim$}% 表示范围的波浪线符号 +\DefineBibliographyExtras{english}{\renewcommand*{\bibrangedash}{$\sim$}} +%\newcommand\nwafubibfont{\linespread{1.0}\zihao{-5}}% 字体 +\newcommand\nwafubibfont{\zihao{-5}}% 字体 +\renewcommand{\bibfont}{\nwafubibfont}% 全局字体设置 + +\setlength{\bibitemsep}{2pt}%0ex +\setlength{\bibnamesep}{0ex} +\setlength{\bibinitsep}{0ex} + +%================================================== +%为标注和文献表中标点格式,重设and本地化字符串 +%================================================== +\DefineBibliographyStrings{english}{ + andincitecn = {和},%将标注中的分开,便于与文献表中的区分 + andincite = {and}, + mathesiscn={[硕士学位论文]}, + phdthesiscn={[博士学位论文]}, + in={In:\addspace}, + incn={见:\addspace}, +} + +%================================================== +%设置一些标点格式为中文的标点 +%================================================== + +\renewcommand{\postnotedelim}{\addcolon\space} +\renewcommand*{\nameyeardelim}{\addspace} +\DeclareDelimFormat[bib,biblist]{nameyeardelim}{\addperiod\space} +\DeclareFieldFormat{postnote}{#1} + + +%================================================== +%调整部分域的输出格式 +%================================================== + +\DeclareFieldFormat[article]{journaltitle}{\iffieldequalstr{userd}{chinese}{#1}{\textit{#1}}\isdot}% 英文刊名用斜体 + + +% “和”与“and”前后的空格调整 +\DeclareDelimFormat{finalnamedelim}{% + \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}% + %\addspace% + \edef\userfieldabcde{userd}% + \ifcurrentname{translator}{\edef\userfieldabcde{usere}}{}% + \ifcurrentname{editor}{\edef\userfieldabcde{userc}}{}% + \ifcurrentname{author}{\edef\userfieldabcde{userf}}{}% + \ifcurrentname{bookauthor}{\edef\userfieldabcde{userb}}{}% + \ifcase\value{gbcitelocalcase}% + \iffieldequalstr{\userfieldabcde}{chinese}{\bibstring{andincitecn}}{}% + \iffieldequalstr{\userfieldabcde}{korean}{\bibstring{andkr}}{}% + \iffieldequalstr{\userfieldabcde}{japanese}{\bibstring{andjp}}{}% + \iffieldequalstr{\userfieldabcde}{english}{\addspace\bibstring{andincite}\addspace}{}% + \iffieldequalstr{\userfieldabcde}{french}{\addspace\bibstring{and}\addspace}{}% + \iffieldequalstr{\userfieldabcde}{russian}{\addspace\bibstring{and}\addspace}{}% + \or% + \bibstring{andincitecn}% + \or% + \addspace\bibstring{andincite}\addspace% + \fi +} + +\newbibmacro*{origdate+extradate}{% + \printtext{\printorigdate}% + } + + % +% 修改译者位置格式 +% +% 原理方法:修改来自biblatex.def文件的bytranslator+others宏的格式 +\renewbibmacro*{bytranslator+others}{% + \ifnameundef{translator} + {} + {%\usebibmacro{bytranslator+othersstrg} + %\setunit{\addspace}% + \printnames[bytranslator]{translator}% + %\clearname{translator}% + %从macro*{bytranslator+othersstrg}%中可以看到当地化字符串格式的引用前的代码处理 + %比如生成cotranslator等用于调用cotranslator所代表的当地化字符串 + \usebibmacro{bytranslator+othersstrg}%“译”的位置换到下面来,即放到译者后面。 + %\setunit{\addspace}% + \newunit}% + \usebibmacro{withothers}% + \ifboolexpr{% + test {\iffieldundef{origyear}} or test {\ifnameundef{translator}}%% + }{}{\printtext{\printdate}}% + } + +% +% url和url日期格式 +% +\renewbibmacro*{url+urldate}{% + %\usebibmacro{url}%%更换url的位置,放到下面 + \usebibmacro{url}% + \iffieldundef{urlyear}% + {}{%\setunit*{\addspace}% + \usebibmacro{urldate}}} + +\DeclareFieldFormat{addnumflag}{% +\ifentrytype{newspaper}{\setunit{\addcomma\addspace}\printtext{#1}} +{\nobreak\printtext{(}\nobreak #1\nobreak\printtext{)}}} + +% +% 重设专利title的输出,将文献类型标识符输出出去 +% +\newbibmacro*{patenttitle}{%原输出来自biblatex.def文件 + \ifboolexpr{% + test{\iffieldundef{title}}% + and% + test{\iffieldundef{subtitle}}% + }% + {}% + {\printtext[title]{\bibtitlefont% + \printfield[titlecase]{title}% + \ifboolexpr{test {\iffieldundef{subtitle}}}%这里增加了对子标题的判断,解决不判断多一个点的问题 + {}{\setunit{\subtitlepunct}% + \printfield[titlecase]{subtitle}}% + \iffieldundef{titleaddon}{}%判断一下titleaddon,否则直接加可能多一个空格 + {\setunit{\subtitlepunct}\printfield{titleaddon}}% + \setunit{\adddot\addspace}\printfield{number}%写专利号 + \iftoggle{bbx:gbtype}{\printfield[gbtypeflag]{usera}}{}% + %\iffieldundef{booktitle}{\newunit}{}%当title是析出时,不要标点 + %\newunit + }% +}% +} + +% +% 修改作者数量超过限定值,做省略时的处理格式 +% v1.0,20160701,hzz +% v1.0O,20190103,hzz,修改利用新定义的一个分隔符strandothersdelim +% +% 原理方法:判断作者或译者是否中文,若中文用字符等,否则用et al. 。 +\renewbibmacro*{name:andothers}{% + \ifboolexpr{ + test {\ifnumequal{\value{listcount}}{\value{liststop}}} + and + test \ifmorenames + }{\ifnumgreater{\value{liststop}}{1}% + {\finalandcomma}% + {}%biblatex作者要区别单作者加等的情况,这里为符合gbt7714-2015第7.2节的要求加上了逗号。 +\printdelim{andothersdelim}\printdelim{strandothersdelim}% +}{%当是译者的时候需要特殊处理:从7.2节看等,译前面加逗号,但从示例看等和译同时出现时,译前的逗号没有,比如: +%袁训来, 陈哲, 肖书海, 等. +%胡泳, 范海燕, 译. +%潘惠霞, 魏婧, 杨艳, 等译. +%\ifcurrentname{translator}{\addcomma}{}% +}} + + +% +% 对edition版本信息格式做出修改 +% +\DeclareFieldFormat{edition}{%源来自biblatex.DEF +\testCJKfirst{userd}% +\iftoggle{ifCJKforgbt}% +{\ifinteger{#1}% +{\printtext{\bibstring{serialcn}\zhnumber{#1}\str@edition}}% +{#1\isdot}}% +{\ifinteger{#1}% +{\mkbibordedition{#1}~\bibstring{edition}}% +{#1\isdot}}} + + +%注意这里当没有作者只有标题时在年份之前的标点是否需要标准并未涉及,所以未做处理。 +\renewbibmacro*{author}{%以前的date+extrayear变为date+extradate,所以对3.8以上版本重定义一下author + \ifboolexpr{ + test \ifuseauthor + and + not test {\ifnameundef{author}} + } + {\usebibmacro{bbx:dashcheck} + {%\bibnamedash %去掉相同作者用横线代替的处理 + \printnames{author}\setunit{\printdelim{nameyeardelim}}%把标点也带上 + } + {\usebibmacro{bbx:savehash}% + \printnames{author}% + \iffieldundef{authortype} + {\setunit{\printdelim{nameyeardelim}}} + {\setunit{\printdelim{authortypedelim}}}}% + \iffieldundef{authortype} + {} + {\usebibmacro{authorstrg}% + \setunit{\printdelim{nameyeardelim}}}}% + {\global\undef\bbx@lasthash + \usebibmacro{labeltitle}% + \setunit*{\printdelim{nonameyeardelim}}}% + \ifboolexpr{% + test {\iffieldundef{origyear}} or test {\ifnameundef{translator}}% + }{\usebibmacro{date+extradate}}% + {\usebibmacro{origdate+extradate}}% + } + +%================================================== +%调整部分类型驱动 +%================================================== + + +% +% book条目类的驱动 +% + \DeclareBibliographyDriver{book}{%源来自standard.bbx文件 + \usebibmacro{bibindex}% + \usebibmacro{begentry}% +\usebibmacro{author/editor+others/translator+others}% +\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 +\usebibmacro{maintitle+title}% +\iftoggle{bbx:gbstrict}{}{% +\newunit +\printlist{language}% +\newunit\newblock% +\usebibmacro{byauthor}% +\newunit\newblock}% +\newunit +\printfield{edition}% +\newunit +\usebibmacro{byeditor+others}% +\newunit\newblock%% +\iftoggle{bbx:gbstrict}{}{% +\iffieldundef{maintitle}% +{\printfield{volume}% +\printfield{part}}% +{}% +\newunit% +\printfield{volumes}% +\newunit\newblock% +\usebibmacro{series+number}}% +\newunit\newblock% +%\printfield{note}% +%\newunit\newblock% +\usebibmacro{publisher+location+date}% +%\newunit\newblock %这里标点去掉 +\usebibmacro{chapter+pages}% + \iffieldundef{url}{}{%当没有网址时也不输出 + \usebibmacro{modifydate}}%带括号的修改或更新日期, +\usebibmacro{doi+eprint+url}%从下面移动到上面来,因为gbt2015的url需直接放在页码后面。 + \newunit\newblock% + \printfield{pagetotal}% + \newunit\newblock% + \iftoggle{bbx:isbn} + {\printfield{isbn}} + {}% + \newunit\newblock + %\usebibmacro{doi+eprint+url}% + %\newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} + +% +% 在线文献驱动 +% +\DeclareBibliographyDriver{online}{%源来自standard.BBX + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author/editor+others/translator+others}% +\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 + \usebibmacro{title}% + \iftoggle{bbx:gbstrict}{}{% + \newunit% + \printlist{language}% + \newunit\newblock + \usebibmacro{byauthor}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock + \printfield{note}}% + \newunit + \printfield{version}% + \newunit\newblock +% \printlist{organization}% + \printlist{institution}% + \newunit\newblock +\ifboolexpr{% +test{\iffieldundef{day}} and test{\iffieldundef{endday}} and test{\iffieldundef{eventday}}% +}{\usebibmacro{date}}% +%{\usebibmacro{modifydate}}%修改或更新日期,为带括号的时间 + \usebibmacro{url+urldate}%从下面移上来 + \newunit\newblock + \iftoggle{bbx:eprint} + {\usebibmacro{eprint}} + {}% + \newunit\newblock + %\usebibmacro{url+urldate}% + %\newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} + + +% +% 专利文献驱动 +% + \DeclareBibliographyDriver{patent}{%源来自standard.BBX + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author}% +\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 + %\usebibmacro{title}% + \usebibmacro{patenttitle}%给出专利专用的标题输出 + \iftoggle{bbx:gbstrict}{}{% + \newunit% + \printlist{language}% + \newunit\newblock + \usebibmacro{byauthor}}% + \newunit\newblock + \printfield{type}% + \setunit*{\addspace}% + %\printfield{number}%已放到patenttitle中处理 + \iflistundef{location} + {} + {\setunit*{\addspace}% + \printtext{%[parens] + \printlist[][-\value{listtotal}]{location}}}% + \newunit\newblock + \usebibmacro{byholder}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + %\usebibmacro{newsdate}% + %\newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-NWAFU.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-NWAFU.cbx new file mode 100644 index 0000000000..a5f432ec91 --- /dev/null +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-NWAFU.cbx @@ -0,0 +1,52 @@ +%% +%% --------------------------------------------------------------- +%% NWAFUthesis.cbx --- A bibliography style for NWAFUthesis template +%% --------------------------------------------------------------- +%% +\ProvidesFile{gb7714-NWAFU.cbx}[a biblatex citation style for NWAFUthesis] + +% +% 加载样式 +% +\RequireCitationStyle{gb7714-2015ay} %numeric + +\ExecuteBibliographyOptions{ + maxcitenames=2,% 引用标注中最多显示2个作者 + mincitenames=1,% 3个及3个以上的作者截断为1个作者 +} + +\DeclareDelimFormat[textcite,cite,parencite,citet,citep]{nameyeardelim}{\addspace} + + +%之所以不用\DeclareDelimFormat{andothersdelim}{}这样的设置是因为gb7714-2015中为兼容老版本的biblatex做的处理就是这样的 +%所以用相同的方式 +\AtEveryCitekey{% +\iffieldequalstr{userf}{chinese}{\renewcommand*{\andothersdelim}{}}%\addthinspace + {\renewcommand*{\andothersdelim}{\addspace}}% +} + +%标注压缩时,直接用date+extradate代替extradate实现2006a,2006b的效果 +\newbibmacro*{cite:extradate}{% + \iffieldundef{extradate} + {} + {\printtext[bibhyperref]{\printlabeldateextra}}}%\printfield{extradate} + + +\renewbibmacro*{date+extradate}{% + \iffieldundef{labelyear} + {}% + {\ifboolexpr{% + test {\ifentrytype{patent}} + or + (test {\ifentrytype{newspaper}} )% + }% + {\printtext{\blx@isodate{}{}} + %\printtext{\blx@edtfdate{}{}}% + }% + {\printtext{% + \iflabeldateisdate + %\iffieldsequal{year}{labelyear}%for biblatex<=3.7 + {\printdateextra} + {\printlabeldateextra}}}% + }% +} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-SEU.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-SEU.bbx new file mode 100644 index 0000000000..728a2be5ef --- /dev/null +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-SEU.bbx @@ -0,0 +1,338 @@ +%% +%% --------------------------------------------------------------- +%% gb7714-SEU.bbx --- A bibliography style for SEUthesis template +%% --------------------------------------------------------------- +%% +%%用法:类似于标准的样式在biblatex加载时设置样式 +%%文献表正常处理,标注命令主要用cite和parencite +\ProvidesFile{gb7714-SEU.bbx} + [2022/03/10 v0.1 a biblatex bibliography style for SEUthesis] + + +%================================================== +%加载gb样式 +%================================================== +\RequireBibliographyStyle{gb7714-2015} + + +%================================================== +%选项设置 +%================================================== +\ExecuteBibliographyOptions{ + maxnames=3, + minnames=3, + %url=false, + doi=false, + gbfieldtype=true, + gbpunctin=false, + gbpub=false, + gbnamefmt=lowercase, + gbbiblabel=dot, +} + + +%================================================== +%为标注和文献表中标点格式,重设and本地化字符串 +%================================================== +\DefineBibliographyStrings{english}{ + mathesiscn={[硕士学位论文]}, + phdthesiscn={[博士学位论文]}, + in={In:\addthinspace}, + incn={见:\addthinspace}, +} + + +%================================================== +%设置一些标点格式为中文的标点 +%================================================== +\renewcommand*{\bibpagespunct}{% +\ifentrytype{article}{\addcolon\addthinspace}{\adddot\addthinspace}% +}% + + +%================================================== +%调整部分域的输出格式 +%================================================== + +\DeclareFieldFormat%将thesis的标题格式重设 + [thesis] + {title}{#1}%\mkbibquote{#1\isdot} + +% +% url和url日期格式 +% +\renewbibmacro*{url+urldate}{% + \usebibmacro{url}%%更换url的位置,放到下面 + \iffieldundef{urlyear}% + {}{%\setunit*{\addspace}% + \usebibmacro{urldate}}% + \setunit{\addperiod\addspace}% + } + \renewbibmacro*{urldate}{% + \setunit{\addcomma\addthinspace}\printtext{\printurldate}}%能用高层命令+选项尽量用命令(比如这里的\printurldate),而不用\blx@edtfdate这种更底层的命令 + + +% +% 修改作者数量超过限定值,做省略时的处理格式 +% v1.0,20160701,hzz +% v1.0O,20190103,hzz,修改利用新定义的一个分隔符strandothersdelim +% +% 原理方法:判断作者或译者是否中文,若中文用字符等,否则用et al. 。 +\renewbibmacro*{name:andothers}{% + \ifboolexpr{ + test {\ifnumequal{\value{listcount}}{\value{liststop}}} + and + test \ifmorenames + }{\ifnumgreater{\value{liststop}}{1}% + {\finalandcomma}% + {}%biblatex作者要区别单作者加等的情况,这里为符合gbt7714-2015第7.2节的要求加上了逗号。 +%\printdelim{andothersdelim} +\printdelim{strandothersdelim}% +}{%当是译者的时候需要特殊处理:从7.2节看等/译前面加逗号,但从示例看等和译同时出现时,译前的逗号没有,比如: +%袁训来, 陈哲, 肖书海, 等. +%胡泳, 范海燕, 译. +%潘惠霞, 魏婧, 杨艳, 等译. +%\ifcurrentname{translator}{\addcomma}{}% +}} + +% +% 修改省略作者后的本地化字符串,比如et al. +% v1.0o,20190103,hzz +% +% 原理方法:默认情况下判断作者或译者是否中文,若中文用字符andotherscn=“等”,否则用andothers=“et al.”。 +% 非默认情况,根据选项信息,选择选择强制中文或英文 +% 首先设置全局的,然后设置文献表中的,这一等价于将所有的cite命令环境都设置过了 +% 而不用对每一个引用命令单独设置,比如cite,parancite,textcite都设置 +\DeclareDelimFormat{strandothersdelim}{% + \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}% + %\addspace% + \edef\userfieldabcde{userd}% + \ifcurrentname{translator}{\edef\userfieldabcde{usere}}{}% + \ifcurrentname{editor}{\edef\userfieldabcde{userc}}{}% + \ifcurrentname{author}{\edef\userfieldabcde{userf}}{}% + \ifcurrentname{bookauthor}{\edef\userfieldabcde{userb}}{}% + \ifcase\value{gbbiblocalcase}% + \iffieldequalstr{\userfieldabcde}{chinese}{\bibstring{andotherscn}}{}% + \iffieldequalstr{\userfieldabcde}{korean}{\bibstring{andotherskr}}{}% + \iffieldequalstr{\userfieldabcde}{japnese}{\bibstring{andothersjp}}{}% + \iffieldequalstr{\userfieldabcde}{english}{\bibstring{andothers}}{}% + \iffieldequalstr{\userfieldabcde}{french}{\bibstring{andothers}}{}% + \iffieldequalstr{\userfieldabcde}{russian}{\bibstring{andothers}}{}% + \or% + \bibstring{andotherscn}% + \or% + \bibstring{andothers}% + \fi} + +% +% 重设专利title的输出,将文献类型标识符输出出去 +% +\newbibmacro*{patenttitle}{%原输出来自biblatex.def文件 + \ifboolexpr{% + test{\iffieldundef{title}}% + and% + test{\iffieldundef{subtitle}}% + }% + {}% + {\printtext[title]{\bibtitlefont% + \printfield[titlecase]{title}% + \ifboolexpr{test {\iffieldundef{subtitle}}}% + {}{\setunit{\subtitlepunct}% + \printfield[titlecase]{subtitle}}% + \iffieldundef{titleaddon}{}% + {\setunit{\subtitlepunct}\printfield{titleaddon}}% + \iftoggle{bbx:gbtype}{\printfield[gbtypeflag]{usera}}{}% + %\iffieldundef{booktitle}{\newunit}{}%当title是析出时,不要标点 + %\newunit + }% +}% +} + + +%================================================== +%调整部分类型驱动 +%================================================== + + +\DeclareBibliographyAlias{conference}{inproceedings}%会议论文文献类型驱动 +\DeclareBibliographyAlias{incollection}{inproceedings}%文集中析出文献类型驱动 + +% +%% +%% 专利文献驱动 +%% + \DeclareBibliographyDriver{patent}{%源来自standard.BBX + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author}% +\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 + %\usebibmacro{title}% + \usebibmacro{patenttitle}%给出专利专用的标题输出 + \iftoggle{bbx:gbstrict}{}{% + \newunit% + \printlist{language}% + \newunit\newblock + \usebibmacro{byauthor}}% + \newunit\newblock + \printfield{type}% + \setunit*{\addcomma\addspace}% + \printfield{number}%已放到patenttitle中处理 + \iflistundef{location} + {} + {\setunit*{\addspace}% + \printtext{%[parens] + \printlist[][-\value{listtotal}]{location}}}% + \newunit\newblock + \usebibmacro{byholder}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \usebibmacro{newsdate}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} + + + +\DeclareBibliographyDriver{thesis}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author}% +\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 + \usebibmacro{title}% + \newunit\newblock + \usebibmacro{byeditor+others}%增加的译者信息 + \newunit\newblock + \iftoggle{bbx:gbfieldtype}{% + \setunit{\addcolon\addspace} + \printfield{type}% + \setunit*{\addspace}}{}% + \printfield{number}% + \newunit\newblock + \printfield{version}% + \newunit + \printfield{note}% + \newunit\newblock + \usebibmacro{institution+location+date}% + %\newunit\newblock + \usebibmacro{chapter+pages}% + \iffieldundef{url}{}{%当没有网址时也不输出修改或更新日期 + \usebibmacro{modifydate}}%修改或更新日期为带括号的时间 + \usebibmacro{doi+eprint+url}% + \newunit + \printfield{pagetotal}% + \newunit\newblock + \iftoggle{bbx:isbn} + {\printfield{isrn}} + {}% + \newunit\newblock +% \usebibmacro{doi+eprint+url}% +% \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} + +% +% book条目类的驱动 +% + \DeclareBibliographyDriver{book}{%源来自standard.bbx文件 + \usebibmacro{bibindex}% + \usebibmacro{begentry}% +\usebibmacro{author/editor+others/translator+others}% +\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 +\usebibmacro{maintitle+title}% +\iftoggle{bbx:gbstrict}{}{% +\newunit +\printlist{language}% +\newunit\newblock% +\usebibmacro{byauthor}% +\newunit\newblock}% +\printfield{edition}% +\newunit +\usebibmacro{byeditor+others}% +\newunit\newblock%% +\iftoggle{bbx:gbstrict}{}{% +\iffieldundef{maintitle}% +{\printfield{volume}% +\printfield{part}}% +{}% +\newunit% +\printfield{volumes}% +\newunit\newblock% +\usebibmacro{series+number}}% +\newunit\newblock% +%\printfield{note}% +%\newunit\newblock% +\usebibmacro{publisher+location+date}% +%\newunit\newblock %这里标点去掉 +\usebibmacro{chapter+pages}% + \iffieldundef{url}{}{%当没有网址时也不输出 + \usebibmacro{modifydate}}%带括号的修改或更新日期, +\usebibmacro{doi+eprint+url}%从下面移动到上面来,因为gbt2015的url需直接放在页码后面。 + \newunit\newblock% + \printfield{pagetotal}% + \newunit\newblock% + \iftoggle{bbx:isbn} + {\printfield{isbn}} + {}% + \newunit\newblock + %\usebibmacro{doi+eprint+url}% + %\newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} + + +\DeclareBibliographyDriver{inproceedings}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author/translator+others}% + \setunit{\printdelim{nametitledelim}}\newblock + \usebibmacro{title}% + \newunit\newblock + \usebibmacro{in:}% + \usebibmacro{editor}% + \newunit\newblock + \usebibmacro{maintitle+booktitle}% + \newunit\newblock + \newunit + \usebibmacro{publisher+location+date}% + \newunit\newblock + \usebibmacro{chapter+pages}% + \newunit\newblock + \iftoggle{bbx:isbn} + {\printfield{isbn}} + {}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-SEU.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-SEU.cbx new file mode 100644 index 0000000000..df8ecd3f97 --- /dev/null +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-SEU.cbx @@ -0,0 +1,16 @@ +%% +%% --------------------------------------------------------------- +%% gb7714-SEU.bbx --- A bibliography style for SEUthesis template +%% --------------------------------------------------------------- +%% +\ProvidesFile{gb7714-SEU.cbx}[a biblatex citation style for SEUthesis] + +% +% 加载样式 +% +\RequireCitationStyle{gb7714-2015} %numeric + +\ExecuteBibliographyOptions{ + maxcitenames=3, + mincitenames=3, +} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/makeall.py b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/makeall.py index 7287e2bbbe..df45114a81 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/makeall.py +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/makeall.py @@ -19,7 +19,8 @@ def compileall(): pwd=os.getcwd() - filesneedcopy=['chinese-erj.bbx', 'chinese-erj.cbx','example.bib', 'gb7714-1987.bbx', 'gb7714-1987.cbx', + filesneedcopy=['CCNUthesis.bbx','CCNUthesis.cbx','NWAFUthesis.bbx','NWAFUthesis.cbx','SEUthesis.bbx','SEUthesis.cbx', + 'chinese-erj.bbx','chinese-erj.cbx','example.bib', 'gb7714-1987.bbx', 'gb7714-1987.cbx', 'gb7714-1987ay.bbx', 'gb7714-1987ay.cbx', 'gb7714-2005.bbx', 'gb7714-2005.cbx', 'gb7714-2005ay.bbx', 'gb7714-2005ay.cbx', 'gb7714-2015-gbk.def', 'gb7714-2015.bbx', 'gb7714-2015.cbx', 'gb7714-2015ay.bbx', 'gb7714-2015ay.cbx', 'gb7714-2015ms.bbx', 'gb7714-2015ms.cbx', 'gb7714-2015mx.bbx', 'gb7714-2015mx.cbx'] @@ -89,6 +90,7 @@ def compileall(): print('pf=',pf) if pf: for file in pf: + print('---------compile new file:---------') print('file=',file) print('file=',os.path.splitext(file)) jobname=os.path.splitext(file)[0] @@ -117,6 +119,8 @@ def compileall(): jobname="tngbcitationaynew" else: jobname="tngbcitationay" + print('---------compile new file:---------') + print('file=',jobname) subprocess.run(["xelatex", "-no-pdf",jobname]) subprocess.run(["biber",jobname]) subprocess.run(["xelatex",jobname]) diff --git a/macros/latex/contrib/bxorigcapt/LICENSE b/macros/latex/contrib/bxorigcapt/LICENSE index 3c57f37df6..b9164b46b1 100644 --- a/macros/latex/contrib/bxorigcapt/LICENSE +++ b/macros/latex/contrib/bxorigcapt/LICENSE @@ -1,6 +1,6 @@ The MIT License -Copyright (c) 2017-2018 Takayuki YATO (aka. "ZR") +Copyright (c) 2016-2022 Takayuki YATO (aka. "ZR") Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/macros/latex/contrib/bxorigcapt/README.md b/macros/latex/contrib/bxorigcapt/README.md index 2f2e9275db..577af79fa9 100644 --- a/macros/latex/contrib/bxorigcapt/README.md +++ b/macros/latex/contrib/bxorigcapt/README.md @@ -55,24 +55,31 @@ class treated as the caption names for a specific language. ### Package Loading - \usepackage[]{bxorigcapt} + \usepackage[