From 7a57fbcb22256ac540317f8969ee1cc0f8e47a5a Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 11 Dec 2021 21:18:04 +0000 Subject: biblatex-gb7714-2015 (11dec21) git-svn-id: svn://tug.org/texlive/trunk@61274 c570f23f-e606-0410-a88d-b1316a301751 --- .../tex/latex/biblatex-gb7714-2015/gb7714-2005.bbx | 31 ++++++ .../latex/biblatex-gb7714-2015/gb7714-2005ay.bbx | 33 +++++++ .../tex/latex/biblatex-gb7714-2015/gb7714-2015.bbx | 18 +++- .../tex/latex/biblatex-gb7714-2015/gb7714-2015.cbx | 104 ++++++++++++++----- .../latex/biblatex-gb7714-2015/gb7714-2015ay.bbx | 18 +++- .../latex/biblatex-gb7714-2015/gb7714-2015ay.cbx | 110 +++++++++++++++------ .../latex/biblatex-gb7714-2015/gb7714-2015ms.bbx | 14 ++- .../latex/biblatex-gb7714-2015/gb7714-2015mx.bbx | 14 ++- 8 files changed, 274 insertions(+), 68 deletions(-) (limited to 'Master/texmf-dist/tex/latex/biblatex-gb7714-2015') diff --git a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2005.bbx b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2005.bbx index 12271aa8a82..825dd92b756 100644 --- a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2005.bbx +++ b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2005.bbx @@ -52,3 +52,34 @@ } } } + +%================================================== +%输出格式调整 +%================================================== +% +% 重设专利title的输出,将文献类型标识符输出出去,并将国别加入进来 +% +\renewbibmacro*{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}}% + {\setunit{\subtitlepunct}\printfield{titleaddon}\setunit{\addcomma\space}}% + \iflistundef{location}{}% + {\setunit{\subtitlepunct}\printlist{location}\setunit{\addcomma\space}}% + \printfield{number}% + \iftoggle{bbx:gbtype}{\printfield[gbtypeflag]{usera}}{}% + %\iffieldundef{booktitle}{\newunit}{}%当title是析出时,不要标点 + %\newunit + }% +}% +\clearlist{location}\clearlist{address}% +} diff --git a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2005ay.bbx b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2005ay.bbx index 44d089fdddd..a3c3059832c 100644 --- a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2005ay.bbx +++ b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2005ay.bbx @@ -50,3 +50,36 @@ } } } + + + +%================================================== +%输出格式调整 +%================================================== +% +% 重设专利title的输出,将文献类型标识符输出出去,并将国别加入进来 +% +\renewbibmacro*{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}}% + {\setunit{\subtitlepunct}\printfield{titleaddon}\setunit{\addcomma\space}}% + \iflistundef{location}{}% + {\setunit{\subtitlepunct}\printlist{location}\setunit{\addcomma\space}}% + \printfield{number}% + \iftoggle{bbx:gbtype}{\printfield[gbtypeflag]{usera}}{}% + %\iffieldundef{booktitle}{\newunit}{}%当title是析出时,不要标点 + %\newunit + }% +}% +\clearlist{location}\clearlist{address}% +} 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 f383483dd43..a61fde5bd62 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{2021/09/11 v1.1a} +\def\versionofgbtstyle{2021/12/11 v1.1b} \def\versionofbiblatex{\abx@version} \ProvidesFile{gb7714-2015.bbx}[\versionofgbtstyle biblatex bibliography style] %\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求 @@ -194,10 +194,12 @@ %为单个条目的姓名格式控制增加nameformat和namefmtid两个域 %为缩略信息文献表增加了shortbooktitle域 %为多语言排序增加了lansortorder域 + %因为language域会被clearlang选项清除,增加languageid域,类型设为field而不是list \DeclareDatamodelFields[type=field,datatype=literal]{mark,medium,nameformat} \DeclareDatamodelFields[type=field,datatype=integer]{namefmtid} \DeclareDatamodelFields[type=field,datatype=literal]{shortbooktitle} \DeclareDatamodelFields[type=field,datatype=literal]{lansortorder} + \DeclareDatamodelFields[type=field,datatype=literal]{languageid} %因为biblatex更新3.14版本以后,biber对于为声明数据模型的条目类型 %不再默认读取,而是以空字符串作为条目类型名,自然在条目定义alias时 @@ -1343,31 +1345,37 @@ %这里为兼容3.11及以下版本,所以用一个复杂一点的正则表达式 \step[fieldsource=language,match=\regexp{(e|E)(n|N)(g|G)(l|L)(i|I)(s|S)(h|H)},final] \step[fieldset=langid,fieldvalue={english}] + \step[fieldset=languageid,fieldvalue={english}] \step[fieldset=lansortorder,fieldvalue=\lanenorder] } \map{ \step[fieldsource=language,match=\regexp{(r|R)(u|U)(s|S)(s|S)(i|I)(a|A)(n|N)},final] \step[fieldset=langid,fieldvalue={russian}] + \step[fieldset=languageid,fieldvalue={russian}] \step[fieldset=lansortorder,fieldvalue=\lanruorder] } \map{% \step[fieldsource=language,match=\regexp{(f|F)(r|R)(e|E)(n|N)(c|C)(h|H)},final] \step[fieldset=langid,fieldvalue={french}] + \step[fieldset=languageid,fieldvalue={french}] \step[fieldset=lansortorder,fieldvalue=\lanfrorder] } \map{% \step[fieldsource=language,match=\regexp{(c|C)(h|H)(i|I)(n|N)(e|E)(s|S)(e|E)},final]%中日韩语目前都用english, \step[fieldset=langid,fieldvalue={english}] + \step[fieldset=languageid,fieldvalue={chinese}] \step[fieldset=lansortorder,fieldvalue=\lancnorder] } \map{% \step[fieldsource=language,match=\regexp{(j|J)(a|A)(p|P)(a|A)(n|N)(e|E)(s|S)(e|E)},final]%中日韩语目前都用english, \step[fieldset=langid,fieldvalue={english}] + \step[fieldset=languageid,fieldvalue={japanese}] \step[fieldset=lansortorder,fieldvalue=\lanjporder] } \map{% \step[fieldsource=language,match=\regexp{(k|K)(o|O)(r|R)(e|E)(a|A)(n|N)},final]%中日韩语目前都用english, \step[fieldset=langid,fieldvalue={english}] + \step[fieldset=languageid,fieldvalue={korean}] \step[fieldset=lansortorder,fieldvalue=\lankrorder] } \map[overwrite]{%bib中abstract和howpublished常出现特殊字符这里做一下预处理。 @@ -2690,7 +2698,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 {\mkbibnameprefix{#3}\isdot}% \ifprefchar{}{\bibnamedelimc}}% \ifdefvoid{#2}{\mkbibnamefamily{\MakeCapital{#1}}}{\mkbibnamefamily{\MakeUppercase{#1}}}\isdot% - \ifdefvoid{#2}{}{\revsdnamepunct\bibnamedelimd\MakeSentenceCase{\mkbibnamegiven{#2}}\isdot}%\MakeCapital + \ifdefvoid{#2}{}{\revsdnamepunct\bibnamedelimd\mkbibnamegiven{\MakeSentenceCase{#2}}\isdot}%\MakeCapital \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}} {\usebibmacro{name:delim}{#1}% \usebibmacro{name:hook}{#1}% @@ -2720,7 +2728,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 {\mkbibnameprefix{#3}\isdot}% \ifprefchar{}{\bibnamedelimc}}% \ifdefvoid{#2}{\mkbibnamefamily{\MakeCapital{#1}}}{\mkbibnamefamily{\MakeCapital{#1}}}\isdot% - \ifdefvoid{#2}{}{\revsdnamepunct\bibnamedelimd\MakeSentenceCase{\mkbibnamegiven{#2}}\isdot}%\MakeCapital + \ifdefvoid{#2}{}{\revsdnamepunct\bibnamedelimd\mkbibnamegiven{\MakeSentenceCase{#2}}\isdot}%\MakeCapital \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}} {\usebibmacro{name:delim}{#1}% \usebibmacro{name:hook}{#1}% @@ -2809,7 +2817,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 {\mkbibnameprefix{#3}\isdot}% \ifpunctmark{'}{}{\bibnamedelimc}}% \ifblank{#2}{\MakeCapital#1}{\mkbibnamelast{\MakeUppercase{#1}}}\isdot%\MakeUppercase %\mkbibnamelast{\MakeUppercase{#1}} %\MakeSentenceCase - \ifblank{#2}{}{\revsdnamepunct\bibnamedelimd\MakeSentenceCase{\mkbibnamefirst{#2}}\isdot}% + \ifblank{#2}{}{\revsdnamepunct\bibnamedelimd\mkbibnamefirst{\MakeSentenceCase{#2}}\isdot}% \ifblank{#4}{}{\addcomma\addspace\bibnamedelimd\mkbibnameaffix{#4}\isdot}} {\usebibmacro{name:delim}{#1}% \usebibmacro{name:hook}{#1}% @@ -2833,7 +2841,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 {\mkbibnameprefix{#3}\isdot}% \ifpunctmark{'}{}{\bibnamedelimc}}% \ifblank{#2}{\MakeCapital#1}{\mkbibnamelast{\MakeCapital{#1}}}\isdot%\MakeUppercase %\mkbibnamelast{\MakeUppercase{#1}} %\MakeSentenceCase - \ifblank{#2}{}{\revsdnamepunct\bibnamedelimd\MakeSentenceCase{\mkbibnamefirst{#2}}\isdot}% + \ifblank{#2}{}{\revsdnamepunct\bibnamedelimd\mkbibnamefirst{\MakeSentenceCase{#2}}\isdot}% \ifblank{#4}{}{\addcomma\addspace\bibnamedelimd\mkbibnameaffix{#4}\isdot}} {\usebibmacro{name:delim}{#1}% \usebibmacro{name:hook}{#1}% diff --git a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015.cbx b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015.cbx index ddc80006c23..8ce01ed8729 100644 --- a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015.cbx +++ b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015.cbx @@ -22,6 +22,58 @@ \settoggle{bbx:gblabelref}{#1}} \ExecuteBibliographyOptions{gblabelref} +% +% 增加标签包围符号格式处理选项 +% 20211030,1.1a,hzz +% +\newrobustcmd{\mkbibleftborder}{[} +\newrobustcmd{\mkbibrightborder}{]} +\DeclareBibliographyOption[string]{gbcitelabel}[bracket]{% + \csuse{gbcitelabelopt@#1} +} +\ExecuteBibliographyOptions{gbcitelabel} + +\renewrobustcmd{\mkbibsuperscript}[1]{% + \unspace\allowhyphens\textsuperscript{% + \begingroup + \protected\long\def\mkbibsuperscript##1{% + \blx@warning{Nested superscript}% + \mkbibbrackets{##1}}%嵌套的这里没有动 + #1\endgroup}\kern\z@}% + +\def\gbcitelabelopt@bracket{% +\renewrobustcmd{\mkbibleftborder}{[}% +\renewrobustcmd{\mkbibrightborder}{]}% +} +\def\gbcitelabelopt@parens{% +\renewrobustcmd{\mkbibleftborder}{(}% +\renewrobustcmd{\mkbibrightborder}{)}% +} +\def\gbcitelabelopt@dot{% +\renewrobustcmd{\mkbibleftborder}{}% +\renewrobustcmd{\mkbibrightborder}{.}% +} +\def\gbcitelabelopt@plain{% +\renewrobustcmd{\mkbibleftborder}{}% +\renewrobustcmd{\mkbibrightborder}{}% +} +\def\gbcitelabelopt@box{% +\renewrobustcmd{\mkbibleftborder}{}% +\renewrobustcmd{\mkbibrightborder}{}% +\renewrobustcmd{\mkbibsuperscript}[1]{% + \unspace\allowhyphens\textsuperscript{% + \begingroup +\framebox{##1}\endgroup}\kern\z@}% +} +\def\gbcitelabelopt@circle{% +\renewrobustcmd{\mkbibleftborder}{}% +\renewrobustcmd{\mkbibrightborder}{}% +\renewrobustcmd{\mkbibsuperscript}[1]{% + \unspace\allowhyphens\textsuperscript{% + \begingroup +\textcircled{##1}\endgroup}\kern\z@}% +} + % % 选项设置 @@ -125,14 +177,15 @@ %修改\mkbibsuperscript宏在最后加上一个空白使得xeCJK不会自动在引用标签后面加上中英文之间的空白 -%hzz,v1.0w,2021-0401 -\renewrobustcmd{\mkbibsuperscript}[1]{% - \unspace\allowhyphens\textsuperscript{% - \begingroup - \protected\long\def\mkbibsuperscript##1{% - \blx@warning{Nested superscript}% - \mkbibbrackets{##1}}% - #1\endgroup}\kern\z@} +%20210401,v1.0w,hzz +%20211030,v1.1a,hzz,调整到选项中去 +%\renewrobustcmd{\mkbibsuperscript}[1]{% +% \unspace\allowhyphens\textsuperscript{% +% \begingroup +% \protected\long\def\mkbibsuperscript##1{% +% \blx@warning{Nested superscript}% +% \mkbibbrackets{##1}}% +% #1\endgroup}\kern\z@} \newrobustcmd{\mkbibsuperscriptusp}[1]{% \unspace\allowhyphens\textsuperscript{% @@ -142,19 +195,20 @@ \mkbibbrackets{##1}}% #1\endgroup}} + + % % 重定义cite命令 % % 方法:\DeclareCiteCommand{\cite}[\mkbibparens]{precode}{loopcode}{sepcode}{postcode} % v1.0p版后将cite的处理方式修改为类似pagescite,而不再使用biblatex的标准方式 \DeclareCiteCommand{\cite}[\mkbibsuperscript]%利用mkbibsuperbracket添加方括号 \textsuperscript - {[\usebibmacro{cite:init}%] + {\mkbibleftborder\usebibmacro{cite:init}% \usebibmacro{prenote}} {\usebibmacro{citeindex}% \usebibmacro{cite:comp}} {} - {%[ - \usebibmacro{cite:dump}]% + {\usebibmacro{cite:dump}\mkbibrightborder% \printfield{postnote}}%\kern\p@ \kern\z@ %\renewcommand{\cite}[1]{\textsuperscript{[\supercite{#1}]}\kern\z@} @@ -180,13 +234,13 @@ % 重定义parencite命令,以满足标签带页码的国标要求 % \DeclareCiteCommand{\parencite}%[\mkbibbrackets] - {[\usebibmacro{cite:init}%] + {\mkbibleftborder\usebibmacro{cite:init}% \usebibmacro{prenote}}% {\usebibmacro{citeindex}% \usebibmacro{cite:comp}} {} {%[ - \usebibmacro{cite:dump}]% + \usebibmacro{cite:dump}\mkbibrightborder% \mkbibsuperscriptusp{\printfield{postnote}}} % @@ -200,26 +254,26 @@ {\printfield{postnote}}} % 2.新增\pagescite引用命令 \DeclareCiteCommand{\pagescite}[\mkbibsuperscript]%\mkbibbrackets,仍然用上标 - {[\usebibmacro{cite:init}%]直接添加方括号 + {\mkbibleftborder\usebibmacro{cite:init}%]直接添加方括号 \usebibmacro{prenote}% } {\usebibmacro{citeindex}% \usebibmacro{cite:comp}} {} - {\usebibmacro{cite:dump}]% + {\usebibmacro{cite:dump}\mkbibrightborder% \usebibmacro{postpages}} % % 定义yearpagescite,为与ay样式兼容,等同于\pagescite % \DeclareCiteCommand{\yearpagescite}[\mkbibsuperscript]%\mkbibbrackets,仍然用上标 - {[\usebibmacro{cite:init}%]直接添加方括号 + {\mkbibleftborder\usebibmacro{cite:init}%直接添加方括号 \usebibmacro{prenote}% } {\usebibmacro{citeindex}% \usebibmacro{cite:comp}} {} - {\usebibmacro{cite:dump}]% + {\usebibmacro{cite:dump}\mkbibrightborder% \usebibmacro{postpages}} % @@ -227,13 +281,14 @@ % % 原理方法:等同于\pagescite,但不要页码 \DeclareCiteCommand{\yearcite}[\mkbibsuperscript]%\mkbibbrackets,仍然用上标 - {[\usebibmacro{cite:init}%]直接添加方括号 + {\mkbibleftborder\usebibmacro{cite:init}%直接添加方括号 \usebibmacro{prenote}% } {\usebibmacro{citeindex}% \usebibmacro{cite:comp}} {} - {\usebibmacro{cite:dump}]} + {\usebibmacro{cite:dump}\mkbibrightborder} + % % 定义\authornumcite命令,输出作者信息,然后在后面带上顺序编码 @@ -254,8 +309,8 @@ {\iffieldequalstr{userf}{cn}{\renewcommand*{\andothersdelim}{\addthinspace}}%\addthinspace {\renewcommand*{\andothersdelim}{\addspace}}% \iftoggle{bbx:gblabelref}{\printtext[bibhyperref]{\printnames{labelname}}}{\printnames{labelname}}% - \mkbibsuperscript{\mkbibbrackets{\usebibmacro{citeindex}% - \usebibmacro{citeathn}}}} + \mkbibsuperscript{\mkbibleftborder\usebibmacro{citeindex}% + \usebibmacro{citeathn}\mkbibrightborder}} {\multicitedelim} {\mkbibsuperscript{\printfield{postnote}}} @@ -354,12 +409,12 @@ \DeclareCiteCommand{\citep}[\mkbibsuperscript]%利用mkbibsuperbracket添加方括号 - {[\usebibmacro{cite:init}% + {\mkbibleftborder\usebibmacro{cite:init}% \usebibmacro{prenote}} {\usebibmacro{citeindex}% \usebibmacro{cite:comp}} {} - {\usebibmacro{cite:dump}]% + {\usebibmacro{cite:dump}\mkbibrightborder% \printfield{postnote}} \newrobustcmd*{\citetns}% @@ -376,7 +431,8 @@ % 20190430,v1.0r,hzz % citec和citecs命令是实现了[1]-[3]这样的压缩形式。 % authornumcites是常用命令authornumcite的复数形式 -\DeclareFieldFormat{labelbracket}{\mkbibbrackets{#1}} +%\DeclareFieldFormat{labelbracket}{\mkbibbrackets{#1}} +\DeclareFieldFormat{labelbracket}{\mkbibleftborder{#1}\mkbibrightborder} \newbibmacro*{citec:comp:comp}{% \ifboolexpr{ 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 25455abe4a6..2e38ec22c49 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{2021/09/11 v1.1a} +\def\versionofgbtstyle{2021/12/11 v1.1b} \def\versionofbiblatex{\abx@version} \ProvidesFile{gb7714-2015ay.bbx}[\versionofgbtstyle biblatex bibliography style] %\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求 @@ -191,10 +191,12 @@ %为单个条目的姓名格式控制增加nameformat和namefmtid两个域 %为缩略信息文献表增加了shortbooktitle域 %为多语言排序增加了lansortorder域 + %因为language域会被clearlang选项清除,增加languageid域,类型设为field而不是list \DeclareDatamodelFields[type=field,datatype=literal]{mark,medium,nameformat} \DeclareDatamodelFields[type=field,datatype=integer]{namefmtid} \DeclareDatamodelFields[type=field,datatype=literal]{shortbooktitle} \DeclareDatamodelFields[type=field,datatype=literal]{lansortorder} + \DeclareDatamodelFields[type=field,datatype=literal]{languageid} %因为biblatex更新3.14版本以后,biber对于为声明数据模型的条目类型 %不再默认读取,而是以空字符串作为条目类型名,自然在条目定义alias时 @@ -1292,31 +1294,37 @@ %这里为兼容3.11及以下版本,所以用一个复杂一点的正则表达式 \step[fieldsource=language,match=\regexp{(e|E)(n|N)(g|G)(l|L)(i|I)(s|S)(h|H)},final] \step[fieldset=langid,fieldvalue={english}] + \step[fieldset=languageid,fieldvalue={english}] \step[fieldset=lansortorder,fieldvalue=\lanenorder] } \map{ \step[fieldsource=language,match=\regexp{(r|R)(u|U)(s|S)(s|S)(i|I)(a|A)(n|N)},final] \step[fieldset=langid,fieldvalue={russian}] + \step[fieldset=languageid,fieldvalue={russian}] \step[fieldset=lansortorder,fieldvalue=\lanruorder] } \map{% \step[fieldsource=language,match=\regexp{(f|F)(r|R)(e|E)(n|N)(c|C)(h|H)},final] \step[fieldset=langid,fieldvalue={french}] + \step[fieldset=languageid,fieldvalue={french}] \step[fieldset=lansortorder,fieldvalue=\lanfrorder] } \map{% \step[fieldsource=language,match=\regexp{(c|C)(h|H)(i|I)(n|N)(e|E)(s|S)(e|E)},final]%中日韩语目前都用english, \step[fieldset=langid,fieldvalue={english}] + \step[fieldset=languageid,fieldvalue={chinese}] \step[fieldset=lansortorder,fieldvalue=\lancnorder] } \map{% \step[fieldsource=language,match=\regexp{(j|J)(a|A)(p|P)(a|A)(n|N)(e|E)(s|S)(e|E)},final]%中日韩语目前都用english, \step[fieldset=langid,fieldvalue={english}] + \step[fieldset=languageid,fieldvalue={japanese}] \step[fieldset=lansortorder,fieldvalue=\lanjporder] } \map{% \step[fieldsource=language,match=\regexp{(k|K)(o|O)(r|R)(e|E)(a|A)(n|N)},final]%中日韩语目前都用english, \step[fieldset=langid,fieldvalue={english}] + \step[fieldset=languageid,fieldvalue={korean}] \step[fieldset=lansortorder,fieldvalue=\lankrorder] } \map{%尝试未定义数据模型的standard类型映射为其他类型book或inbook, @@ -2543,7 +2551,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 {\mkbibnameprefix{#3}\isdot}% \ifprefchar{}{\bibnamedelimc}}% \ifdefvoid{#2}{\mkbibnamefamily{\MakeCapital{#1}}}{\mkbibnamefamily{\MakeUppercase{#1}}}\isdot% - \ifdefvoid{#2}{}{\revsdnamepunct\bibnamedelimd\MakeSentenceCase{\mkbibnamegiven{#2}}\isdot}%\MakeCapital + \ifdefvoid{#2}{}{\revsdnamepunct\bibnamedelimd\mkbibnamegiven{\MakeSentenceCase{#2}}\isdot}%\MakeCapital \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}} {\usebibmacro{name:delim}{#1}% \usebibmacro{name:hook}{#1}% @@ -2573,7 +2581,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 {\mkbibnameprefix{#3}\isdot}% \ifprefchar{}{\bibnamedelimc}}% \ifdefvoid{#2}{\mkbibnamefamily{\MakeCapital{#1}}}{\mkbibnamefamily{\MakeCapital{#1}}}\isdot% - \ifdefvoid{#2}{}{\revsdnamepunct\bibnamedelimd\MakeSentenceCase{\mkbibnamegiven{#2}}\isdot}%\MakeCapital + \ifdefvoid{#2}{}{\revsdnamepunct\bibnamedelimd\mkbibnamegiven{\MakeSentenceCase{#2}}\isdot}%\MakeCapital \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}} {\usebibmacro{name:delim}{#1}% \usebibmacro{name:hook}{#1}% @@ -2662,7 +2670,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 {\mkbibnameprefix{#3}\isdot}% \ifpunctmark{'}{}{\bibnamedelimc}}% \ifblank{#2}{\MakeCapital#1}{\mkbibnamelast{\MakeUppercase{#1}}}\isdot%\MakeUppercase %\mkbibnamelast{\MakeUppercase{#1}} %\MakeSentenceCase - \ifblank{#2}{}{\revsdnamepunct\bibnamedelimd\MakeSentenceCase{\mkbibnamefirst{#2}}\isdot}% + \ifblank{#2}{}{\revsdnamepunct\bibnamedelimd\mkbibnamefirst{\MakeSentenceCase{#2}}\isdot}% \ifblank{#4}{}{\addcomma\addspace\bibnamedelimd\mkbibnameaffix{#4}\isdot}} {\usebibmacro{name:delim}{#1}% \usebibmacro{name:hook}{#1}% @@ -2686,7 +2694,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 {\mkbibnameprefix{#3}\isdot}% \ifpunctmark{'}{}{\bibnamedelimc}}% \ifblank{#2}{\MakeCapital#1}{\mkbibnamelast{\MakeCapital{#1}}}\isdot%\MakeUppercase %\mkbibnamelast{\MakeUppercase{#1}} %\MakeSentenceCase - \ifblank{#2}{}{\revsdnamepunct\bibnamedelimd\MakeSentenceCase{\mkbibnamefirst{#2}}\isdot}% + \ifblank{#2}{}{\revsdnamepunct\bibnamedelimd\mkbibnamefirst{\MakeSentenceCase{#2}}\isdot}% \ifblank{#4}{}{\addcomma\addspace\bibnamedelimd\mkbibnameaffix{#4}\isdot}} {\usebibmacro{name:delim}{#1}% \usebibmacro{name:hook}{#1}% 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 e6540216ba4..19a92bceed4 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 @@ -24,6 +24,43 @@ \ExecuteBibliographyOptions{gblabelref} +% +% 增加标签包围符号格式处理选项 +% 20211030,1.1a,hzz +% +\newrobustcmd{\mkbibleftborder}{(} +\newrobustcmd{\mkbibrightborder}{)} +\DeclareBibliographyOption[string]{gbcitelabel}[bracket]{% + \csuse{gbcitelabelopt@#1} +} +\ExecuteBibliographyOptions{gbcitelabel} + +\def\gbcitelabelopt@bracket{% +\renewrobustcmd{\mkbibleftborder}{[}% +\renewrobustcmd{\mkbibrightborder}{]}% +} +\def\gbcitelabelopt@parens{% +\renewrobustcmd{\mkbibleftborder}{(}% +\renewrobustcmd{\mkbibrightborder}{)}% +} +\def\gbcitelabelopt@dot{% +\renewrobustcmd{\mkbibleftborder}{}% +\renewrobustcmd{\mkbibrightborder}{.}% +} +\def\gbcitelabelopt@plain{% +\renewrobustcmd{\mkbibleftborder}{}% +\renewrobustcmd{\mkbibrightborder}{}% +} +\def\gbcitelabelopt@box{% +\renewrobustcmd{\mkbibleftborder}{}% +\renewrobustcmd{\mkbibrightborder}{}% +} +\def\gbcitelabelopt@circle{% +\renewrobustcmd{\mkbibleftborder}{}% +\renewrobustcmd{\mkbibrightborder}{}% +} + + \ExecuteBibliographyOptions{ %autocite = superscript , %autopunct = true , @@ -69,6 +106,11 @@ or test {\iftoggle{iftlseven}}%3.7=biblatex }{\newbibmacro{cite:labeldate+extradate}{\usebibmacro{cite:labelyear+extrayear}}}{}%else: biblatex>3.7 +%标注中biblatex专门定义了labelname来控制格式 +%所以如果要让标注的格式也同著录表一样的话 +%就可以使用下面这一个定义,当然通常情况下我们使用默认的定义即可。 +%\DeclareNameAlias{labelname}{namefmtselected} + %textcite标注命令中的标点设置,注意只针对textcite命令。 % v-old % v1.0t,20200320,hzz,修改如下 @@ -179,12 +221,11 @@ test {\iftoggle{iftlseven}}%3.7=biblatex \iffieldundef{postnote}% {}% {\thefield{postnote}}}% - (\usebibmacro{prenote}}%) + \mkbibleftborder\usebibmacro{prenote}}% {\usebibmacro{citeindex}% \usebibmacro{cite}} {} - {%( - )\mkbibsuperscript{\usebibmacro{postnote}}%\usebibmacro{postnote} + {\mkbibrightborder\mkbibsuperscript{\usebibmacro{postnote}}%\usebibmacro{postnote} } % @@ -198,19 +239,34 @@ test {\iftoggle{iftlseven}}%3.7=biblatex % % 重定义parencite命令 % -%\DeclareCiteCommand{\parencite} -% {\usebibmacro{cite:init}% -% \renewbibmacro*{postnote}{% -% \iffieldundef{postnote}% -% {}% -% {\nopunct% -% \printfield{postnote}}}% -% (\usebibmacro{prenote}}%) -% {\usebibmacro{citeindex}% -% \usebibmacro{cite}} -% {} -% {%( -% )\mkbibsuperscript{\usebibmacro{postnote}}} +\DeclareCiteCommand{\parencite}%[\mkbibparens] + {\usebibmacro{cite:init}% + \renewbibmacro*{postnote}{% + \iffieldundef{postnote}% + {}% + {\nopunct% + \printfield{postnote}}}% + \mkbibleftborder\usebibmacro{prenote}}% + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {} + {\mkbibrightborder\mkbibsuperscript{\usebibmacro{postnote}}} + +% +% 重定义footcite需要使用的命令 +% +\renewrobustcmd{\blx@mkbibfootnote}[2]{% + \iftoggle{blx@footnote} + {\blx@warning{Nested notes}% + \addspace\mkbibleftborder{#2}\mkbibrightborder} + {\unspace + \ifnum\blx@notetype=\tw@ + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi + {\csuse{blx@theendnote#1}{\protecting{\blxmkbibnote{end}{#2}}}} + {\csuse{footnote#1}{\protecting{\blxmkbibnote{foot}{#2}}}}}} % @@ -224,13 +280,12 @@ test {\iftoggle{iftlseven}}%3.7=biblatex \iffieldundef{postnote}% {\thefield{pages}}% {\thefield{postnote}}}% - (\usebibmacro{prenote}%) + \mkbibleftborder\usebibmacro{prenote}% }% {\usebibmacro{citeindex}% \usebibmacro{cite}} {} - {%( - )\mkbibsuperscript{\usebibmacro{postnote}}} + {\mkbibrightborder\mkbibsuperscript{\usebibmacro{postnote}}} % % 定义yearpagescite,用于当文中作者已经存在,需要页码和年份的情况 @@ -243,10 +298,10 @@ test {\iftoggle{iftlseven}}%3.7=biblatex \iffieldundef{postnote}% {\thefield{pages}}% {\thefield{postnote}}}% - \printtext{(}\usebibmacro{prenote}}% + \printtext{\mkbibleftborder}\usebibmacro{prenote}}% {\usebibmacro{cite:labeldate+extradate}}%\printfield{year}\printfield{extrayear} {\multicitedelim}% - {\printtext{)}\textsuperscript{\usebibmacro{postnote}}} + {\printtext{\mkbibrightborder}\textsuperscript{\usebibmacro{postnote}}} % % 定义yearcite,用于当文中作者已经存在,仅需要年份的情况 @@ -254,10 +309,10 @@ test {\iftoggle{iftlseven}}%3.7=biblatex % 原理:增加一个命令yearcite \DeclareCiteCommand{\yearcite}%仅输出年份,不要页码 {\usebibmacro{cite:init}% - \printtext{(}\usebibmacro{prenote}}% + \printtext{\mkbibleftborder}\usebibmacro{prenote}}% {\usebibmacro{cite:labeldate+extradate}}%\printfield{year}\printfield{extrayear} {\multicitedelim}% - {\printtext{)}} + {\printtext{\mkbibrightborder}} % % 定义\authornumcite命令,输出作者信息,然后在后面带上顺序编码 @@ -355,13 +410,13 @@ test {\iftoggle{iftlseven}}%3.7=biblatex {} {\ifbool{cbx:incitet}{\usebibmacro{citet:postnote}}{\usebibmacro{textcite:postnote}}} - \newrobustcmd{\cbx@citet@init}[2]{% +\newrobustcmd{\cbx@citet@init}[2]{% \global\booltrue{cbx:incitet}% \setcounter{textcitetotal}{0}% \setcounter{textcitecount}{0}% \def\cbx@savedcites{#1}#2\cbx@savedcites\empty} - \renewrobustcmd{\cbx@textcite@init}[2]{% +\renewrobustcmd{\cbx@textcite@init}[2]{% \global\boolfalse{cbx:incitet}% \setcounter{textcitetotal}{0}% \setcounter{textcitecount}{0}% @@ -397,12 +452,11 @@ test {\iftoggle{iftlseven}}%3.7=biblatex \iffieldundef{postnote}% {}% {\thefield{postnote}}}% - (\usebibmacro{prenote}}%) + \mkbibleftborder\usebibmacro{prenote}}% {\usebibmacro{citeindex}% \usebibmacro{cite}} {} - {%( - )\mkbibsuperscript{\usebibmacro{postnote}}%\usebibmacro{postnote} + {\mkbibrightborder\mkbibsuperscript{\usebibmacro{postnote}}%\usebibmacro{postnote} } \newrobustcmd*{\citetns}% 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 3044440ca21..218823ac907 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{2021/09/11 v1.1a} +\def\versionofgbtstyle{2021/12/11 v1.1b} \def\versionofbiblatex{\abx@version} \ProvidesFile{gb7714-2015ms.bbx}[\versionofgbtstyle biblatex bibliography style] %\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求 @@ -85,10 +85,12 @@ %为单个条目的姓名格式控制增加nameformat和namefmtid两个域 %为缩略信息文献表增加了shortbooktitle域 %为多语言排序增加了lansortorder域 + %因为language域会被clearlang选项清除,增加languageid域,类型设为field而不是list \DeclareDatamodelFields[type=field,datatype=literal]{mark,medium,nameformat} \DeclareDatamodelFields[type=field,datatype=integer]{namefmtid} \DeclareDatamodelFields[type=field,datatype=literal]{shortbooktitle} \DeclareDatamodelFields[type=field,datatype=literal]{lansortorder} + \DeclareDatamodelFields[type=field,datatype=literal]{languageid} %因为biblatex更新3.14版本以后,biber对于为声明数据模型的条目类型 %不再默认读取,而是以空字符串作为条目类型名,自然在条目定义alias时 @@ -1052,26 +1054,32 @@ \map{%当文献给出language域时,设置文献要使用的本地化字符串的语言 \step[fieldsource=language,match=\regexp{(e|E)(n|N)(g|G)(l|L)(i|I)(s|S)(h|H)},final] \step[fieldset=langid,fieldvalue={english}] + \step[fieldset=languageid,fieldvalue={english}] } \map{ \step[fieldsource=language,match=\regexp{(r|R)(u|U)(s|S)(s|S)(i|I)(a|A)(n|N)},final] \step[fieldset=langid,fieldvalue={russian}] + \step[fieldset=languageid,fieldvalue={russian}] } \map{% \step[fieldsource=language,match=\regexp{(f|F)(r|R)(e|E)(n|N)(c|C)(h|H)},final] \step[fieldset=langid,fieldvalue={french}] + \step[fieldset=languageid,fieldvalue={french}] } \map{% \step[fieldsource=language,match=\regexp{(c|C)(h|H)(i|I)(n|N)(e|E)(s|S)(e|E)},final]%中日韩语目前都用english, \step[fieldset=langid,fieldvalue={english}] + \step[fieldset=languageid,fieldvalue={chinese}] } \map{% \step[fieldsource=language,match=\regexp{(j|J)(a|A)(p|P)(a|A)(n|N)(e|E)(s|S)(e|E)},final]%中日韩语目前都用english, \step[fieldset=langid,fieldvalue={english}] + \step[fieldset=languageid,fieldvalue={japanese}] } \map{% \step[fieldsource=language,match=\regexp{(k|K)(o|O)(r|R)(e|E)(a|A)(n|N)},final]%中日韩语目前都用english, \step[fieldset=langid,fieldvalue={english}] + \step[fieldset=languageid,fieldvalue={korean}] } } } @@ -1578,7 +1586,7 @@ {\mkbibnameprefix{#3}\isdot}% \ifprefchar{}{\bibnamedelimc}}% \ifdefvoid{#2}{\mkbibnamefamily{\MakeCapital{#1}}}{\mkbibnamefamily{\MakeUppercase{#1}}}\isdot% - \ifdefvoid{#2}{}{\revsdnamepunct\bibnamedelimd\MakeSentenceCase{\mkbibnamegiven{#2}}\isdot}%\MakeCapital + \ifdefvoid{#2}{}{\revsdnamepunct\bibnamedelimd\mkbibnamegiven{\MakeSentenceCase{#2}}\isdot}%\MakeCapital \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}} {\usebibmacro{name:delim}{#1}% \usebibmacro{name:hook}{#1}% @@ -1609,7 +1617,7 @@ {\mkbibnameprefix{#3}\isdot}% \ifprefchar{}{\bibnamedelimc}}% \ifdefvoid{#2}{\mkbibnamefamily{\MakeCapital{#1}}}{\mkbibnamefamily{\MakeCapital{#1}}}\isdot% - \ifdefvoid{#2}{}{\revsdnamepunct\bibnamedelimd\MakeSentenceCase{\mkbibnamegiven{#2}}\isdot}%\MakeCapital + \ifdefvoid{#2}{}{\revsdnamepunct\bibnamedelimd\mkbibnamegiven{\MakeSentenceCase{#2}}\isdot}%\MakeCapital \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}} {\usebibmacro{name:delim}{#1}% \usebibmacro{name:hook}{#1}% 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 e622a03e495..9266b481a56 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{2021/09/11 v1.1a} +\def\versionofgbtstyle{2021/12/11 v1.1b} \def\versionofbiblatex{\abx@version} \ProvidesFile{gb7714-2015mx.bbx}[\versionofgbtstyle biblatex bibliography style] %\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求 @@ -109,10 +109,12 @@ %为单个条目的姓名格式控制增加nameformat和namefmtid两个域 %为缩略信息文献表增加了shortbooktitle域 %为多语言排序增加了lansortorder域 + %因为language域会被clearlang选项清除,增加languageid域,类型设为field而不是list \DeclareDatamodelFields[type=field,datatype=literal]{mark,medium,nameformat} \DeclareDatamodelFields[type=field,datatype=integer]{namefmtid} \DeclareDatamodelFields[type=field,datatype=literal]{shortbooktitle} \DeclareDatamodelFields[type=field,datatype=literal]{lansortorder} + \DeclareDatamodelFields[type=field,datatype=literal]{languageid} %为多样式文献表增加的stylesections、styleaysection域: \DeclareDatamodelFields[type=field,datatype=integer]{aysections} \DeclareDatamodelFields[type=field,datatype=literal]{styleaysection} @@ -1102,31 +1104,37 @@ %这里为兼容3.11及以下版本,所以用一个复杂一点的正则表达式 \step[fieldsource=language,match=\regexp{(e|E)(n|N)(g|G)(l|L)(i|I)(s|S)(h|H)},final] \step[fieldset=langid,fieldvalue={english}] + \step[fieldset=languageid,fieldvalue={english}] \step[fieldset=lansortorder,fieldvalue=\lanenorder] } \map{ \step[fieldsource=language,match=\regexp{(r|R)(u|U)(s|S)(s|S)(i|I)(a|A)(n|N)},final] \step[fieldset=langid,fieldvalue={russian}] + \step[fieldset=languageid,fieldvalue={russian}] \step[fieldset=lansortorder,fieldvalue=\lanruorder] } \map{% \step[fieldsource=language,match=\regexp{(f|F)(r|R)(e|E)(n|N)(c|C)(h|H)},final] \step[fieldset=langid,fieldvalue={french}] + \step[fieldset=languageid,fieldvalue={french}] \step[fieldset=lansortorder,fieldvalue=\lanfrorder] } \map{% \step[fieldsource=language,match=\regexp{(c|C)(h|H)(i|I)(n|N)(e|E)(s|S)(e|E)},final]%中日韩语目前都用english, \step[fieldset=langid,fieldvalue={english}] + \step[fieldset=languageid,fieldvalue={chinese}] \step[fieldset=lansortorder,fieldvalue=\lancnorder] } \map{% \step[fieldsource=language,match=\regexp{(j|J)(a|A)(p|P)(a|A)(n|N)(e|E)(s|S)(e|E)},final]%中日韩语目前都用english, \step[fieldset=langid,fieldvalue={english}] + \step[fieldset=languageid,fieldvalue={japanese}] \step[fieldset=lansortorder,fieldvalue=\lanjporder] } \map{% \step[fieldsource=language,match=\regexp{(k|K)(o|O)(r|R)(e|E)(a|A)(n|N)},final]%中日韩语目前都用english, \step[fieldset=langid,fieldvalue={english}] + \step[fieldset=languageid,fieldvalue={korean}] \step[fieldset=lansortorder,fieldvalue=\lankrorder] } } @@ -2153,7 +2161,7 @@ {\mkbibnameprefix{#3}\isdot}% \ifprefchar{}{\bibnamedelimc}}% \ifdefvoid{#2}{\mkbibnamefamily{\MakeCapital{#1}}}{\mkbibnamefamily{\MakeUppercase{#1}}}\isdot% - \ifdefvoid{#2}{}{\revsdnamepunct\bibnamedelimd\MakeSentenceCase{\mkbibnamegiven{#2}}\isdot}%\MakeCapital + \ifdefvoid{#2}{}{\revsdnamepunct\bibnamedelimd\mkbibnamegiven{\MakeSentenceCase{#2}}\isdot}%\MakeCapital \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}} {\usebibmacro{name:delim}{#1}% \usebibmacro{name:hook}{#1}% @@ -2184,7 +2192,7 @@ {\mkbibnameprefix{#3}\isdot}% \ifprefchar{}{\bibnamedelimc}}% \ifdefvoid{#2}{\mkbibnamefamily{\MakeCapital{#1}}}{\mkbibnamefamily{\MakeCapital{#1}}}\isdot% - \ifdefvoid{#2}{}{\revsdnamepunct\bibnamedelimd\MakeSentenceCase{\mkbibnamegiven{#2}}\isdot}%\MakeCapital + \ifdefvoid{#2}{}{\revsdnamepunct\bibnamedelimd\mkbibnamegiven{\MakeSentenceCase{#2}}\isdot}%\MakeCapital \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}} {\usebibmacro{name:delim}{#1}% \usebibmacro{name:hook}{#1}% -- cgit v1.2.3