diff options
Diffstat (limited to 'macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.cbx')
-rw-r--r-- | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.cbx | 104 |
1 files changed, 80 insertions, 24 deletions
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.cbx index ddc80006c2..8ce01ed872 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.cbx +++ b/macros/latex/contrib/biblatex-contrib/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{ |