diff options
author | Karl Berry <karl@freefriends.org> | 2022-05-17 20:10:44 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-05-17 20:10:44 +0000 |
commit | c5afa218a259da04240dced0cd75453540d88556 (patch) | |
tree | fbb0ae6145e6add0fc3c6c80a5fad89e69c570dd /Master/texmf-dist/tex/latex | |
parent | da8cfe6a9657c7273bc3b57ee20a83fa37036e2d (diff) |
biblatex-gb7714-2015 (17may22)
git-svn-id: svn://tug.org/texlive/trunk@63322 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
8 files changed, 208 insertions, 151 deletions
diff --git a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/chinese-erj.bbx b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/chinese-erj.bbx index dee66e80aef..98a744005ab 100644 --- a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/chinese-erj.bbx +++ b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/chinese-erj.bbx @@ -83,27 +83,27 @@ %================================================== %定义一些标点为中文全角标点 %================================================== -\def\erjpunctdot{。}% -\def\erjpunctmark{、}% -\def\erjpunctcomma{,}% -\def\erjpunctcommalanen{,}% -\def\erjpunctcolon{:}% -\def\erjpunctcolonlanen{:}% -\def\erjpunctsemicolon{;}% -\def\erjpunctttl{《}% -\def\erjpunctttr{》} +\def\gbpunctdot{。}% +\def\gbpunctmark{、}% +\def\gbpunctcomma{,}% +\def\gbpunctcommalanen{,}% +\def\gbpunctcolon{:}% +\def\gbpunctcolonlanen{:}% +\def\gbpunctsemicolon{;}% +\def\gbpunctttl{《}% +\def\gbpunctttr{》} \def\execerjpuncten{% -\def\erjpunctdot{\adddot}% -\def\erjpunctmark{\addcomma\addspace}% -\def\erjpunctcomma{\addcomma\addspace}% -\def\erjpunctcommalanen{\addcomma\addspace}% -\def\erjpunctcolon{\addcolon\addspace}% -\def\erjpunctcolonlanen{\addcolon\addspace}% -\def\erjpunctsemicolon{\addsemicolon\addspace}% -\def\erjpunctttl{《}% -\def\erjpunctttr{》}% +\def\gbpunctdot{\adddot}% +\def\gbpunctmark{\addcomma\addspace}% +\def\gbpunctcomma{\addcomma\addspace}% +\def\gbpunctcommalanen{\addcomma\addspace}% +\def\gbpunctcolon{\addcolon\addspace}% +\def\gbpunctcolonlanen{\addcolon\addspace}% +\def\gbpunctsemicolon{\addsemicolon\addspace}% +\def\gbpunctttl{《}% +\def\gbpunctttr{》}% } %================================================== @@ -111,7 +111,7 @@ %================================================== \DefineBibliographyStrings{english}{ and = { and},%and后面的空格在finalnamedelim已经加过了,所以这里去掉20191009 - andcn = {\erjpunctmark\unspace},%\erjpunctmark + andcn = {\gbpunctmark\unspace},%\gbpunctmark andincitecn = {和},%将标注中的分开,便于与文献表中的区分 andincite = {\&}, %andotherscn={等}, @@ -124,12 +124,12 @@ %设置一些标点格式为中文的标点 %================================================== \DeclareFieldFormat{titlecase}{\iffieldequalstr{userd}{chinese}{#1}{\capitalisewords{#1}}} -\DeclareFieldFormat*{title}{\iffieldequalstr{userd}{chinese}{\erjpunctttl#1\erjpunctttr}{#1\isdot}} -\DeclareFieldFormat[article]{title}{\iffieldequalstr{userd}{chinese}{\erjpunctttl#1\erjpunctttr}{\mkbibquote{#1}\isdot}} -\DeclareFieldFormat*{journaltitle}{\iffieldequalstr{userd}{chinese}{\erjpunctttl#1\erjpunctttr}{\textit{#1}}}% -%\DeclareFieldFormat*{booktitle}{\erjpunctttl#1\erjpunctttr} -\renewcommand*{\revsdnamepunct}{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}%%来源biblatex.def -\DeclareDelimFormat*{multinamedelim}{\iffieldequalstr{userd}{chinese}{\erjpunctmark}{\erjpunctcommalanen}}%\addcomma\addspace +\DeclareFieldFormat*{title}{\iffieldequalstr{userd}{chinese}{\gbpunctttl#1\gbpunctttr}{#1\isdot}} +\DeclareFieldFormat[article]{title}{\iffieldequalstr{userd}{chinese}{\gbpunctttl#1\gbpunctttr}{\mkbibquote{#1}\isdot}} +\DeclareFieldFormat*{journaltitle}{\iffieldequalstr{userd}{chinese}{\gbpunctttl#1\gbpunctttr}{\textit{#1}}}% +%\DeclareFieldFormat*{booktitle}{\gbpunctttl#1\gbpunctttr} +\renewcommand*{\revsdnamepunct}{\iffieldequalstr{userd}{chinese}{\gbpunctcomma}{\gbpunctcommalanen}}%%来源biblatex.def +\DeclareDelimFormat*{multinamedelim}{\iffieldequalstr{userd}{chinese}{\gbpunctmark}{\gbpunctcommalanen}}%\addcomma\addspace \DeclareDelimFormat{finalnamedelim}{% %\ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}% %\addspace% @@ -172,11 +172,11 @@ \or% \bibstring{and}\space% \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}{}{\unspace\erjpunctcommalanen}}%\addcomma\addspace\mbox{} -\renewcommand*{\newunitpunct}{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}%\addcomma\space %, -\renewcommand*{\finentrypunct}{\iffieldequalstr{userd}{chinese}{\erjpunctdot}{\adddot}} +\DeclareDelimFormat{nameyeardelim}{\iffieldequalstr{userd}{chinese}{\gbpunctcomma}{\gbpunctcommalanen}}%\addcomma\addspace +\DeclareDelimFormat[bib,biblist]{nameyeardelim}{\iffieldequalstr{userd}{chinese}{\gbpunctcomma}{\gbpunctcommalanen}}%\addcomma\addspace +\DeclareDelimFormat{bibpagespunct}{\iffieldequalstr{userd}{chinese}{}{\unspace\gbpunctcommalanen}}%\addcomma\addspace\mbox{} +\renewcommand*{\newunitpunct}{\iffieldequalstr{userd}{chinese}{\gbpunctcomma}{\gbpunctcommalanen}}%\addcomma\space %, +\renewcommand*{\finentrypunct}{\iffieldequalstr{userd}{chinese}{\gbpunctdot}{\adddot}} %================================================== @@ -246,7 +246,7 @@ test{\iffieldundef{subtitle}}% }% {}% - {\setunit{\iffieldequalstr{userd}{chinese}{\erjpunctcolon}{\erjpunctcolonlanen}}\printtext[title]{\bibtitlefont%增加字体控制命令%增加了标点: + {\setunit{\iffieldequalstr{userd}{chinese}{\gbpunctcolon}{\gbpunctcolonlanen}}\printtext[title]{\bibtitlefont%增加字体控制命令%增加了标点: \printfield[titlecase]{title}% \ifboolexpr{test {\iffieldundef{subtitle}}}%这里增加了对子标题的判断,解决不判断多一个点的问题 {}{\setunit{\subtitlepunct}% diff --git a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015.bbx b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015.bbx index 496fe5d98b4..cc70cc84ade 100644 --- a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015.bbx +++ b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015.bbx @@ -11,7 +11,7 @@ % % 版本和时间信息 % -\def\versionofgbtstyle{2022/04/16 v1.1h} +\def\versionofgbtstyle{2022/05/17 v1.1i} \def\versionofbiblatex{\abx@version} \ProvidesFile{gb7714-2015.bbx}[\versionofgbtstyle biblatex bibliography style] %\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求 @@ -2414,24 +2414,32 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 % v1.0,20160701,hzz % v1.0O,20190103,hzz,修改利用新定义的一个分隔符strandothersdelim % v1.0w,20210401,hzz,针对其它语言的译者后的标点与中文不同做处理 +% v1.1h,20220416,hzz,修正远古bug:在使用中文标点时会在译者中输出多个标点 % 原理方法:判断作者或译者是否中文,若中文用字符等,否则用et al. 。 % \printnames由start-stop控制项数,默认是1和maxnames/minnames +%说明:multinamedelim是各姓名之间的标点 +% finalnamedelim是最后一个姓名前的取代multinamedelim的标点 +% 这两个标点是由printnames固定输出的。 +% 而且name:andothers在namefmtselected中是针对每个姓名都做的处理,所以其内容的输出要根据姓名列表的计数来做判断 +% 而finalandcomma 只是习惯用于最后一个and前输出的标点,但与前两个固定输出不同 +% finalandcomma 只是在宏中判断并输出的,修改宏去掉它即可使其不输出 \newcommand{\aftertransdelim}{\addcomma\addthinspace} \renewbibmacro*{name:andothers}{\bibauthorfont% - \ifboolexpr{ - test {\ifnumequal{\value{listcount}}{\value{liststop}}} - and - test \ifmorenames - }{\ifnumgreater{\value{liststop}}{1}%注意这里试图去区分姓名总数大于1的情况,当姓名总数大于1时,最后一个姓名后面先加入一个\finalandcomma - {\finalandcomma}%目前国标没有这样的区分要求,如果有需要也是可以这么去做的。 - {}% -\printdelim{andothersdelim}\printdelim{strandothersdelim}% -}{%当是译者的时候需要特殊处理:从7.2节看等,译前面加逗号,但从示例看等和译同时出现时,译前的逗号没有,比如: -%袁训来, 陈哲, 肖书海, 等. -%胡泳, 范海燕, 译. -%潘惠霞, 魏婧, 杨艳, 等译. -\ifcurrentname{translator}{\iffieldequalstr{usere}{chinese}{\aftertransdelim}{}}{}%为了实现上述第二个示例情况做的处理 -}} +\ifboolexpr{test {\ifnumequal{\value{listcount}}{\value{liststop}}} + and test \ifmorenames} + {\ifnumgreater{\value{liststop}}{1}%注意这里试图去区分姓名总数大于1的情况,当姓名总数大于1时,最后一个姓名后面先加入一个\finalandcomma + {}%\finalandcomma,目前国标没有这样的区分要求,如果有需要也是可以这么去做的。 + {}% + \printdelim{andothersdelim}\printdelim{strandothersdelim}% + }% + {%当是译者的时候需要特殊处理:从7.2节看等,译前面加逗号,但从示例看等和译同时出现时,译前的逗号没有,比如: + %袁训来, 陈哲, 肖书海, 等. + %胡泳, 范海燕, 译. + %潘惠霞, 魏婧, 杨艳, 等译. + \ifnumequal{\value{listcount}}{\value{liststop}}% + {\ifcurrentname{translator}{\iffieldequalstr{usere}{chinese}{\aftertransdelim}{}}{}}{}%为了实现上述第二个示例情况做的处理 + }% +} @@ -2668,6 +2676,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 \DeclareNameAlias{default}{namefmtselected}%姓名的默认格式采用可选的模式 \DeclareNameAlias{sortname}{default}% Used in the bibliography %family-given/given-family \DeclareNameAlias{citename}{default}% Default used by \citename +\DeclareNameAlias{bytranslator}{default} \DeclareDelimFormat[bib,biblist]{andothersdelim}{\addcomma\addspace} %\DeclareDelimFormat[textcite]{andothersdelim}{\addspace}% diff --git a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015ay.bbx b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015ay.bbx index deee0fd76fb..1504d40265a 100644 --- a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015ay.bbx +++ b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015ay.bbx @@ -10,7 +10,7 @@ % % 版本和时间信息 % -\def\versionofgbtstyle{2022/04/16 v1.1h} +\def\versionofgbtstyle{2022/05/17 v1.1i} \def\versionofbiblatex{\abx@version} \ProvidesFile{gb7714-2015ay.bbx}[\versionofgbtstyle biblatex bibliography style] %\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求 @@ -2267,24 +2267,32 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 % v1.0,20160701,hzz % v1.0O,20190103,hzz,修改利用新定义的一个分隔符strandothersdelim % v1.0w,20210401,hzz,针对其它语言的译者后的标点与中文不同做处理 +% v1.1h,20220416,hzz,修正远古bug:在使用中文标点时会在译者中输出多个标点 % 原理方法:判断作者或译者是否中文,若中文用字符等,否则用et al. 。 % \printnames由start-stop控制项数,默认是1和maxnames/minnames +%说明:multinamedelim是各姓名之间的标点 +% finalnamedelim是最后一个姓名前的取代multinamedelim的标点 +% 这两个标点是由printnames固定输出的。 +% 而且name:andothers在namefmtselected中是针对每个姓名都做的处理,所以其内容的输出要根据姓名列表的计数来做判断 +% 而finalandcomma 只是习惯用于最后一个and前输出的标点,但与前两个固定输出不同 +% finalandcomma 只是在宏中判断并输出的,修改宏去掉它即可使其不输出 \newcommand{\aftertransdelim}{\addcomma\addthinspace} \renewbibmacro*{name:andothers}{\bibauthorfont% - \ifboolexpr{ - test {\ifnumequal{\value{listcount}}{\value{liststop}}} - and - test \ifmorenames - }{\ifnumgreater{\value{liststop}}{1}%注意这里试图去区分姓名总数大于1的情况,当姓名总数大于1时,最后一个姓名后面先加入一个\finalandcomma - {\finalandcomma}%目前国标没有这样的区分要求,如果有需要也是可以这么去做的。 - {}% -\printdelim{andothersdelim}\printdelim{strandothersdelim}% -}{%当是译者的时候需要特殊处理:从7.2节看等,译前面加逗号,但从示例看等和译同时出现时,译前的逗号没有,比如: -%袁训来, 陈哲, 肖书海, 等. -%胡泳, 范海燕, 译. -%潘惠霞, 魏婧, 杨艳, 等译. -\ifcurrentname{translator}{\iffieldequalstr{usere}{chinese}{\aftertransdelim}{}}{}%为了实现上述第二个示例情况做的处理 -}} +\ifboolexpr{test {\ifnumequal{\value{listcount}}{\value{liststop}}} + and test \ifmorenames} + {\ifnumgreater{\value{liststop}}{1}%注意这里试图去区分姓名总数大于1的情况,当姓名总数大于1时,最后一个姓名后面先加入一个\finalandcomma + {}%\finalandcomma,目前国标没有这样的区分要求,如果有需要也是可以这么去做的。 + {}% + \printdelim{andothersdelim}\printdelim{strandothersdelim}% + }% + {%当是译者的时候需要特殊处理:从7.2节看等,译前面加逗号,但从示例看等和译同时出现时,译前的逗号没有,比如: + %袁训来, 陈哲, 肖书海, 等. + %胡泳, 范海燕, 译. + %潘惠霞, 魏婧, 杨艳, 等译. + \ifnumequal{\value{listcount}}{\value{liststop}}% + {\ifcurrentname{translator}{\iffieldequalstr{usere}{chinese}{\aftertransdelim}{}}{}}{}%为了实现上述第二个示例情况做的处理 + }% +} % 修改省略作者后的本地化字符串,比如et al. % v1.0o,20190103,hzz diff --git a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015ay.cbx b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015ay.cbx index 19a92bceed4..c0d9d4b9850 100644 --- a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015ay.cbx +++ b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015ay.cbx @@ -67,7 +67,7 @@ %sorting = none , maxcitenames=1, mincitenames=1, - uniquename=init,%因为使用了名字缩写选项,所以需要设置uniquename=init而不是full避免冲突 + uniquename=false,%uniquename=init uniquelist=minyear } @@ -123,6 +123,7 @@ test {\iftoggle{iftlseven}}%3.7=biblatex \iffieldequalstr{userf}{chinese}{\renewcommand*{\andothersdelim}{\addthinspace}}%\addthinspace {\renewcommand*{\andothersdelim}{\addspace}}% } +\newcommand{\compextradelim}{\addcomma\addthinspace} %标注中压缩后相同年份后附加标签a、b之间的标点 % % 修订使可用选项gblabelref来控制是否将标准标签中的作者加上超链接 @@ -138,7 +139,7 @@ test {\iftoggle{iftlseven}}%3.7=biblatex {\iffieldequals{namehash}{\cbx@lasthash} {\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND \(\value{multicitecount}=0\OR\iffieldundef{postnote}\)} - {\setunit{\addcomma\addthinspace}%同一作者的年份之间的标点,示例见thesis-nwafu-ay + {\setunit{\compextradelim}%同一作者的年份之间的标点,示例见thesis-nwafu-ay%\addcomma\addthinspace \usebibmacro{cite:extradate}} {\setunit{\compcitedelim}% \usebibmacro{cite:labeldate+extradate}% @@ -156,7 +157,7 @@ test {\iftoggle{iftlseven}}%3.7=biblatex {\iffieldundef{shorthand} {\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND \(\value{multicitecount}=0\OR\iffieldundef{postnote}\)} - {\setunit{\addcomma}% + {\setunit{\compextradelim}% \usebibmacro{cite:extradate}} {\setunit{\compcitedelim}% \usebibmacro{cite:labeldate+extradate}% @@ -241,16 +242,11 @@ test {\iftoggle{iftlseven}}%3.7=biblatex % \DeclareCiteCommand{\parencite}%[\mkbibparens] {\usebibmacro{cite:init}% - \renewbibmacro*{postnote}{% - \iffieldundef{postnote}% - {}% - {\nopunct% - \printfield{postnote}}}% \mkbibleftborder\usebibmacro{prenote}}% {\usebibmacro{citeindex}% \usebibmacro{cite}} {} - {\mkbibrightborder\mkbibsuperscript{\usebibmacro{postnote}}} + {\usebibmacro{postnote}\mkbibrightborder} % % 重定义footcite需要使用的命令 diff --git a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015ms.bbx b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015ms.bbx index b5587607bd7..1ae850d3630 100644 --- a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015ms.bbx +++ b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015ms.bbx @@ -11,7 +11,7 @@ % % 版本和时间信息 % -\def\versionofgbtstyle{2022/04/16 v1.1h} +\def\versionofgbtstyle{2022/05/17 v1.1i} \def\versionofbiblatex{\abx@version} \ProvidesFile{gb7714-2015ms.bbx}[\versionofgbtstyle biblatex bibliography style] %\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求 @@ -1866,9 +1866,6 @@ %===================================================================== %设置驱动格式 %===================================================================== -%定义译者后面的标点,便于在不同环境下修改。 -\newcommand{\aftertransdelim}{\addcomma\addthinspace}% - %中文环境的局部化代码 \def\localsetchinesecode{% \ifboolexpr{% @@ -1944,23 +1941,32 @@ togl{bbx:gbstyle} or test {\iffieldequalstr{userd}{chinese}}% % v1.0,20160701,hzz % v1.0O,20190103,hzz,修改利用新定义的一个分隔符strandothersdelim % v1.0w,20210401,hzz,针对其它语言的译者后的标点与中文不同做处理 +% v1.1h,20220416,hzz,修正远古bug:在使用中文标点时会在译者中输出多个标点 % 原理方法:判断作者或译者是否中文,若中文用字符等,否则用et al. 。 % \printnames由start-stop控制项数,默认是1和maxnames/minnames +%说明:multinamedelim是各姓名之间的标点 +% finalnamedelim是最后一个姓名前的取代multinamedelim的标点 +% 这两个标点是由printnames固定输出的。 +% 而且name:andothers在namefmtselected中是针对每个姓名都做的处理,所以其内容的输出要根据姓名列表的计数来做判断 +% 而finalandcomma 只是习惯用于最后一个and前输出的标点,但与前两个固定输出不同 +% finalandcomma 只是在宏中判断并输出的,修改宏去掉它即可使其不输出 +\newcommand{\aftertransdelim}{\addcomma\addthinspace}%%定义译者后面的标点,便于在不同环境下修改。 \renewbibmacro*{name:andothers}{\bibauthorfont% - \ifboolexpr{ - test {\ifnumequal{\value{listcount}}{\value{liststop}}} - and - test \ifmorenames - }{\ifnumgreater{\value{liststop}}{1}%注意这里试图去区分姓名总数大于1的情况,当姓名总数大于1时,最后一个姓名后面先加入一个\finalandcomma - {\finalandcomma}%目前国标没有这样的区分要求,如果有需要也是可以这么去做的。 - {}% -\printdelim{andothersdelim}\printdelim{strandothersdelim}% -}{%当是译者的时候需要特殊处理:从7.2节看等,译前面加逗号,但从示例看等和译同时出现时,译前的逗号没有,比如: -%袁训来, 陈哲, 肖书海, 等. -%胡泳, 范海燕, 译. -%潘惠霞, 魏婧, 杨艳, 等译. -\ifcurrentname{translator}{\iffieldequalstr{usere}{chinese}{\aftertransdelim}{}}{}%为了实现上述第二个示例情况做的处理 -}}% +\ifboolexpr{test {\ifnumequal{\value{listcount}}{\value{liststop}}} % + and test \ifmorenames} % + {\ifnumgreater{\value{liststop}}{1}%注意这里试图去区分姓名总数大于1的情况,当姓名总数大于1时,最后一个姓名后面先加入一个\finalandcomma + {}%\finalandcomma,目前国标没有这样的区分要求,如果有需要也是可以这么去做的。 + {}% + \printdelim{andothersdelim}\printdelim{strandothersdelim}% + }% + {%当是译者的时候需要特殊处理:从7.2节看等,译前面加逗号,但从示例看等和译同时出现时,译前的逗号没有,比如: + %袁训来, 陈哲, 肖书海, 等. + %胡泳, 范海燕, 译. + %潘惠霞, 魏婧, 杨艳, 等译. + \ifnumequal{\value{listcount}}{\value{liststop}}% + {\ifcurrentname{translator}{\iffieldequalstr{usere}{chinese}{\aftertransdelim}{}}{}}{}%为了实现上述第二个示例情况做的处理 + }% +}% % % 修改省略作者后的本地化字符串,比如et al. % v1.0o,20190103,hzz diff --git a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015mx.bbx b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015mx.bbx index 4879b4221d5..62bdf65054c 100644 --- a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015mx.bbx +++ b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015mx.bbx @@ -11,7 +11,7 @@ % % 版本和时间信息 % -\def\versionofgbtstyle{2022/04/16 v1.1h} +\def\versionofgbtstyle{2022/05/17 v1.1i} \def\versionofbiblatex{\abx@version} \ProvidesFile{gb7714-2015mx.bbx}[\versionofgbtstyle biblatex bibliography style] %\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求 @@ -1878,24 +1878,32 @@ % v1.0,20160701,hzz % v1.0O,20190103,hzz,修改利用新定义的一个分隔符strandothersdelim % v1.0w,20210401,hzz,针对其它语言的译者后的标点与中文不同做处理 +% v1.1h,20220416,hzz,修正远古bug:在使用中文标点时会在译者中输出多个标点 % 原理方法:判断作者或译者是否中文,若中文用字符等,否则用et al. 。 % \printnames由start-stop控制项数,默认是1和maxnames/minnames +%说明:multinamedelim是各姓名之间的标点 +% finalnamedelim是最后一个姓名前的取代multinamedelim的标点 +% 这两个标点是由printnames固定输出的。 +% 而且name:andothers在namefmtselected中是针对每个姓名都做的处理,所以其内容的输出要根据姓名列表的计数来做判断 +% 而finalandcomma 只是习惯用于最后一个and前输出的标点,但与前两个固定输出不同 +% finalandcomma 只是在宏中判断并输出的,修改宏去掉它即可使其不输出 \newcommand{\aftertransdelim}{\addcomma\addthinspace} \renewbibmacro*{name:andothers}{\bibauthorfont% - \ifboolexpr{ - test {\ifnumequal{\value{listcount}}{\value{liststop}}} - and - test \ifmorenames - }{\ifnumgreater{\value{liststop}}{1}%注意这里试图去区分姓名总数大于1的情况,当姓名总数大于1时,最后一个姓名后面先加入一个\finalandcomma - {\finalandcomma}%目前国标没有这样的区分要求,如果有需要也是可以这么去做的。 - {}% -\printdelim{andothersdelim}\printdelim{strandothersdelim}% -}{%当是译者的时候需要特殊处理:从7.2节看等,译前面加逗号,但从示例看等和译同时出现时,译前的逗号没有,比如: -%袁训来, 陈哲, 肖书海, 等. -%胡泳, 范海燕, 译. -%潘惠霞, 魏婧, 杨艳, 等译. -\ifcurrentname{translator}{\iffieldequalstr{usere}{chinese}{\aftertransdelim}{}}{}%为了实现上述第二个示例情况做的处理 -}} +\ifboolexpr{test {\ifnumequal{\value{listcount}}{\value{liststop}}} + and test \ifmorenames} + {\ifnumgreater{\value{liststop}}{1}%注意这里试图去区分姓名总数大于1的情况,当姓名总数大于1时,最后一个姓名后面先加入一个\finalandcomma + {}%\finalandcomma,目前国标没有这样的区分要求,如果有需要也是可以这么去做的。 + {}% + \printdelim{andothersdelim}\printdelim{strandothersdelim}% + }% + {%当是译者的时候需要特殊处理:从7.2节看等,译前面加逗号,但从示例看等和译同时出现时,译前的逗号没有,比如: + %袁训来, 陈哲, 肖书海, 等. + %胡泳, 范海燕, 译. + %潘惠霞, 魏婧, 杨艳, 等译. + \ifnumequal{\value{listcount}}{\value{liststop}}% + {\ifcurrentname{translator}{\iffieldequalstr{usere}{chinese}{\aftertransdelim}{}}{}}{}%为了实现上述第二个示例情况做的处理 + }% +} @@ -3554,7 +3562,6 @@ test{\iffieldundef{day}} and test{\iffieldundef{endday}} and test{\iffieldundef{ }{} - } diff --git a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-CCNU.bbx b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-CCNU.bbx index 50840d2dd4c..0515a3b152c 100644 --- a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-CCNU.bbx +++ b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-CCNU.bbx @@ -43,33 +43,55 @@ \setlength{\bibhang}{1.2ex} \setlength{\bibparsep}{0em} +%这里把\bibhang放外面设置的方式也有其优势 +%这里使用\bibhang+\labelnumberwidth来控制文献内容左边界与页边的间距 +%然后用\biblabelsep来设置标签域文献内容左边界的间距 +%gb7714-2015中则直接用\bibhang=\biblabelsep+\labelnumberwidth来控制文献内容左边界与页边的间距 +%这其实是两种控制方式,CCNU这里用下面重定义的方式 +\defbibenvironment{bibliography} + {\list + {\printtext[labelnumberwidth]{% + \printfield{labelprefix}% + \printfield{labelnumber}}} + {\addtolength{\labelnumberwidth}{\biblabelextend}% + \setlength{\labelwidth}{\labelnumberwidth}% + \setlength{\labelsep}{\biblabelsep}% + \setlength{\leftmargin}{\bibhang}% + \addtolength{\leftmargin}{\labelnumberwidth}% + \setlength{\itemindent}{\bibitemindent}% + \setlength{\itemsep}{\bibitemsep}% + \setlength{\parsep}{\bibparsep}}% + \renewcommand*{\makelabel}[1]{\hss##1}} + {\endlist} + {\item} + %================================================== % 定义一些标点为中文全角标点 %================================================== -\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\gbpunctdot{.}% +\def\gbpunctdotlanen{\adddot\addspace}% +\def\gbpunctmark{、}% +\def\gbpunctcomma{,}% +\def\gbpunctcommalanen{\addcomma\addspace}% +\def\gbpunctcolon{:}% +\def\gbpunctcolonlanen{\addcolon\addspace}% +\def\gbpunctsemicolon{;}% +\def\gbpunctsemicolonlanen{\addsemicolon\addspace}% +\def\gbpunctparenl{(}% +\def\gbpunctparenr{)}% \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{)}% +\def\gbpunctdot{\adddot\addspace}% +\def\gbpunctdotlanen{\adddot\addspace}% +\def\gbpunctmark{\addcomma\addspace}% +\def\gbpunctcomma{\addcomma\addspace}% +\def\gbpunctcommalanen{\addcomma\addspace}% +\def\gbpunctcolon{\addcolon\addspace}% +\def\gbpunctcolonlanen{\addcolon\addspace}% +\def\gbpunctsemicolon{\addcolon\addspace}% +\def\gbpunctsemicolonlanen{\addsemicolon\addspace}% +\def\gbpunctparenl{(}% +\def\gbpunctparenr{)}% } @@ -78,17 +100,18 @@ %为标注和文献表中标点格式,重设and本地化字符串 %================================================== \DefineBibliographyStrings{english}{ - and = {\addcomma}, - andcn = {\erjpunctcomma}, + and = {\addcomma\space}, + andcn = {\gbpunctcomma}, andincitecn = {和}, %将标注中的分开,便于与文献表中的区分 andincite = {\&}, andothers = {et al.}, andotherscn = {等}, bytranslator = {\addcomma\ 译}, + bytranslatorcn = {译}, editors = {\MakeLowercase{eds}\adddot\isdot}, editor = {\MakeLowercase{ed}\adddot\isdot}, in = {In:\addspace}, - incn = {见\iffieldequalstr{userd}{chinese}{\erjpunctcolon}{\erjpunctcolonlanen}}, + incn = {见\iffieldequalstr{userd}{chinese}{\gbpunctcolon}{\gbpunctcolonlanen}}, mathesis = {(Master dissertation)}, mathesiscn = {[硕士学位论文]}, phdthesis = {(Ph D dissertation)}, @@ -104,10 +127,11 @@ \def\gbcaselocalset{% \renewrobustcmd*{\bibinitperiod}{}% \renewcommand*{\revsdnamepunct}{}% -\renewrobustcmd*{\bibinitdelim}{}% +%\renewrobustcmd*{\bibinitdelim}{}% } -\renewcommand{\aftertransdelim}{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}} -\DeclareDelimFormat*{multinamedelim}{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}%\addcomma\addspace + +\renewcommand{\aftertransdelim}{\iffieldequalstr{userd}{chinese}{\gbpunctcomma}{\gbpunctcommalanen}} +\DeclareDelimFormat{multinamedelim}{\iffieldequalstr{userd}{chinese}{\gbpunctcomma}{\gbpunctcommalanen}}%\addcomma\addspace \DeclareDelimFormat{finalnamedelim}{% \edef\userfieldabcde{userd}% \ifcurrentname{translator}{\edef\userfieldabcde{usere}}{}% @@ -143,13 +167,19 @@ \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}}%出版项中:出版社地址后面的标点 + \fi% + } +\DeclareDelimFormat[bib,biblist]{andothersdelim}{% +\ifcurrentname{translator}{\iffieldequalstr{usere}{chinese}{\gbpunctcomma}{\gbpunctcommalanen}}{}% +\ifcurrentname{author}{\iffieldequalstr{userf}{chinese}{\gbpunctcomma}{\gbpunctcommalanen}}{}% +\ifcurrentname{editor}{\iffieldequalstr{userc}{chinese}{\gbpunctcomma}{\gbpunctcommalanen}}{}% +} +\DeclareDelimFormat{nameyeardelim}{\iffieldequalstr{userd}{chinese}{\gbpunctcomma}{\gbpunctcommalanen}}%\addcomma\addspace +\DeclareDelimFormat[bib,biblist]{nameyeardelim}{\iffieldequalstr{userd}{chinese}{\gbpunctcomma}{\gbpunctcommalanen}}%\addcomma\addspace +\DeclareDelimFormat{bibpagespunct}{\iffieldequalstr{userd}{chinese}{\gbpunctcolon}{\gbpunctcolonlanen}}%\addcomma\addspace\mbox{} +\renewcommand*{\newunitpunct}{\iffieldequalstr{userd}{chinese}{\gbpunctdot}{\gbpunctdotlanen}}%\addcomma\space %, +\renewcommand*{\finentrypunct}{\iffieldequalstr{userd}{chinese}{\gbpunctdot}{\adddot}} +\renewcommand{\publocpunct}{\iffieldequalstr{userd}{chinese}{\gbpunctcolon}{\addcolon\addspace}}%出版项中:出版社地址后面的标点 %================================================== @@ -162,7 +192,7 @@ % v1.0k,20180425,增加了字体控制命令,hzz \renewbibmacro*{journal+issuetitle}{\bibpubfont%源来自standard.bbx \usebibmacro{journal}% - \setunit*{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}%修改为增加一个逗号 + \setunit*{\iffieldequalstr{userd}{chinese}{\gbpunctcomma}{\gbpunctcommalanen}}%修改为增加一个逗号 \iffieldundef{series} {} {\newunit @@ -170,7 +200,7 @@ \setunit{\addspace}}% \usebibmacro{issue+date}% %\setunit{\addcolon\space}% - \iffieldundef{volume}{}{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}% + \iffieldundef{volume}{}{\iffieldequalstr{userd}{chinese}{\gbpunctcomma}{\gbpunctcommalanen}}% %换成逗号和空格 \usebibmacro{issue}% \usebibmacro{volume+number+eid}%把卷期放到年份后面 @@ -193,7 +223,7 @@ %\printfield{number}% \iffieldundef{number}{}{% \iffieldequalstr{entrysubtype}{news}{\printtext{\mkbibparens{\printfield{number}}}}{% - \iffieldequalstr{userd}{chinese}{\printtext{\erjpunctparenl\printfield{number}\erjpunctparenr}}% + \iffieldequalstr{userd}{chinese}{\printtext{\gbpunctparenl\printfield{number}\gbpunctparenr}}% {\printtext{\mkbibparens{\printfield{number}}}}}% }%增加一个圆括号 \iffieldundef{eid}{}{% @@ -220,7 +250,7 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}% \iflistundef{institution}{% \iftoggle{ifCJKforgbt}{\printtext{[\str@nopublisher]}}{\printtext{\mkbibbrackets{s.n.}}}}% {\printlist{institution}}}% -\setunit{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}% +\setunit{\iffieldequalstr{userd}{chinese}{\gbpunctcomma}{\gbpunctcommalanen}}% %\usebibmacro{date}% \printfield{year}% \bibrangedash% @@ -231,7 +261,7 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}% {\setunit*{\addcomma\space}} {\setunit*{\publocpunct}}% \printlist{institution}% - \setunit*{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}% + \setunit*{\iffieldequalstr{userd}{chinese}{\gbpunctcomma}{\gbpunctcommalanen}}% \usebibmacro{date}% \newunit}% } @@ -257,7 +287,7 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}% {\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% +\setunit*{\iffieldequalstr{userd}{chinese}{\gbpunctcomma}{\gbpunctcommalanen}}%\addcomma\addspace% \ifentrytype{report}{\printtext{\blx@gbdate{}{}}}% {\usebibmacro{date}}% }% @@ -266,7 +296,7 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}% {\setunit*{\addcomma\space}} {\setunit*{\publocpunct}}% \printlist{publisher}% - \setunit*{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}% + \setunit*{\iffieldequalstr{userd}{chinese}{\gbpunctcomma}{\gbpunctcommalanen}}% \ifentrytype{report}{\printtext{\blx@gbdate{}{}}}% {\usebibmacro{date}}% }% @@ -283,7 +313,7 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}% {\setunit*{\addcomma\space}} {\setunit*{\publocpunct}}% \printlist{institution}% - \setunit*{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}% + \setunit*{\iffieldequalstr{userd}{chinese}{\gbpunctcomma}{\gbpunctcommalanen}}% \usebibmacro{date}% %\newunit }} @@ -301,8 +331,8 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}% } {\printnames{editor}% \iffieldundef{editortype}%增加一个类型判断,用于存在editortype的情况 - {\setunit{\iffieldequalstr{userd}{chinese}{\erjpunctdot}{\erjpunctdotlanen}}}%当没有editortype时,直接用句点 - {\usebibmacro{editorstrg}\setunit{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}}% + {\setunit{\iffieldequalstr{userd}{chinese}{\gbpunctdot}{\gbpunctdotlanen}}}%当没有editortype时,直接用句点 + {\usebibmacro{editorstrg}\setunit{\iffieldequalstr{userd}{chinese}{\gbpunctcomma}{\gbpunctcommalanen}}}% }% {}} @@ -335,7 +365,7 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}% % 原理方法:使用bibmacro{in:}改变了以前在driver中直接输出//的方式,同时也简化了标点控制。 \renewbibmacro*{in:}{% \iftoggle{bbx:gbpunctin}{\printtext{\allowbreak\texttt{//}\allowbreak}}%\addthinspace - {\setunit{\iffieldequalstr{userd}{chinese}{\erjpunctdot}{\erjpunctdotlanen}}% + {\setunit{\iffieldequalstr{userd}{chinese}{\gbpunctdot}{\gbpunctdotlanen}}% \iffieldequalstr{userd}{chinese}% {\printtext{\bibstring{incn}}}% {\printtext{\bibstring{in}}}% diff --git a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-NWAFU.bbx b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-NWAFU.bbx index 124751c3d63..6d49208e424 100644 --- a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-NWAFU.bbx +++ b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-NWAFU.bbx @@ -40,7 +40,8 @@ %一些字体设置 %================================================== %\def\bibrangedash{$\sim$}% 表示范围的波浪线符号 -\DefineBibliographyExtras{english}{\renewcommand*{\bibrangedash}{$\sim$}} +\DefineBibliographyExtras{english}{\renewcommand*{\bibrangedash}{\iffieldequalstr{userd}{chinese}% +{$\sim$}{\textendash\penalty\hyphenpenalty}}} %\newcommand\nwafubibfont{\linespread{1.0}\zihao{-5}}% 字体 \newcommand\nwafubibfont{\zihao{5}}% 字体 \renewcommand{\bibfont}{\nwafubibfont}% 全局字体设置 |