diff options
author | Norbert Preining <norbert@preining.info> | 2021-05-07 03:01:25 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2021-05-07 03:01:25 +0000 |
commit | c92d9953347e3bdebc5243c67cf012a2f7a60fb6 (patch) | |
tree | 808a0ad402713257a48445f97e662786d95207ee /macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx | |
parent | 25f20b6d8ccd4edcdfec23c1a3c908516076ee06 (diff) |
CTAN sync 202105070301
Diffstat (limited to 'macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx')
-rw-r--r-- | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx | 154 |
1 files changed, 142 insertions, 12 deletions
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 098e4b9462..2ecd604b01 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{2021/04/03 v1.0x} +\def\versionofgbtstyle{2021/05/06 v1.0y} \def\versionofbiblatex{\abx@version} \ProvidesFile{gb7714-2015ay.bbx}[\versionofgbtstyle biblatex bibliography style] %\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求 @@ -591,6 +591,17 @@ %为姓名格式选择增加的计数器 \newcounter{gbnamefmtcase} \def\thegbnamefmtcase{\the\c@gbnamefmtcase} + %为数字标签格式选择增加的计数器/命令 + \newcommand{\mkgbnumlabel}[1]{\mkbibbrackets{#1}} + \def\gbbiblabelopt@bracket{\renewcommand{\mkgbnumlabel}[1]{\mkbibbrackets{##1}}} + \def\gbbiblabelopt@parens{\renewcommand{\mkgbnumlabel}[1]{\mkbibparens{##1}}} + \def\gbbiblabelopt@dot{\renewcommand{\mkgbnumlabel}[1]{##1\adddot}} + \def\gbbiblabelopt@plain{\renewcommand{\mkgbnumlabel}[1]{##1}} + \def\gbbiblabelopt@box{\renewcommand{\mkgbnumlabel}[1]{\framebox{##1}}} + \def\gbbiblabelopt@circle{\renewcommand{\mkgbnumlabel}[1]{\textcircled{##1}}} + %为文献表中数字标签对齐方式选择增加的计数器/命令 + \newcounter{gbalignlabel} + \def\thegbalignlabel{\the\c@gbalignlabel} %为引用标签标注/文献表中本地化字符串中英文选择增加的计数器/命令 \newcounter{gbcitelocalcase} \newcounter{gbbiblocalcase} @@ -666,7 +677,10 @@ % 增加序号标签格式处理选项,作者年制不做处理,给出只为兼容选项考虑 % v1.0l,20180623,hzz % - \DeclareBibliographyOption[string]{gbbiblabel}[bracket]{} + \DeclareBibliographyOption[string]{gbbiblabel}[bracket]{% + \csuse{gbbiblabelopt@#1} + } + \ExecuteBibliographyOptions{gbbiblabel} % % 增加姓名大小写格式处理选项 @@ -686,7 +700,13 @@ % 增加标签对齐选项 % %因为在作者年制中,不需要使用,这里也增加,为了与顺序编码制的兼容性考虑。 - \DeclareBibliographyOption[string]{gbalign}[right]{}% + \DeclareBibliographyOption[string]{gbalign}[gb7714-2015ay]{ + \ifstrequal{#1}{right}{\setcounter{gbalignlabel}{0}\setaligngbnumeric}{} + \ifstrequal{#1}{left}{\setcounter{gbalignlabel}{1}\setaligngbnumeric}{} + \ifstrequal{#1}{center}{\setcounter{gbalignlabel}{2}\setaligngbnumeric}{} + \ifstrequal{#1}{gb7714-2015}{\setaligngbstyle}{} + \ifstrequal{#1}{gb7714-2015ay}{}{}%默认就是ay样式的 + }% @@ -704,7 +724,10 @@ % 增加序号标签格式处理选项,作者年制不做处理,给出只为兼容选项考虑 % v1.0l,20180623,hzz % - \DeclareBibliographyOption{gbbiblabel}[bracket]{} + \DeclareBibliographyOption{gbbiblabel}[bracket]{% + \csuse{gbbiblabelopt@#1} + } + \ExecuteBibliographyOptions{gbbiblabel} % % 增加姓名大小写格式处理选项 @@ -724,7 +747,13 @@ % 增加标签对齐选项 % %因为在作者年制中,不需要使用,这里也增加,为了与顺序年制的兼容性考虑。 - \DeclareBibliographyOption{gbalign}[right]{}% + \DeclareBibliographyOption{gbalign}[gb7714-2015ay]{% + \ifstrequal{#1}{right}{\setcounter{gbalignlabel}{0}\setaligngbnumeric}{} + \ifstrequal{#1}{left}{\setcounter{gbalignlabel}{1}\setaligngbnumeric}{} + \ifstrequal{#1}{center}{\setcounter{gbalignlabel}{2}\setaligngbnumeric}{} + \ifstrequal{#1}{gb7714-2015}{\setaligngbstyle}{} + \ifstrequal{#1}{gb7714-2015ay}{}{} + }% } @@ -1452,6 +1481,24 @@ % address,location,institution,organization}]{ % \step[fieldsource=\regexp{$MAPLOOP}, match=\regexp{([^\\])\x26}, replace=\regexp{$1\\\x26}] % } + \map[overwrite]{%bib中abstract和howpublished常出现特殊字符这里做一下预处理。 + \step[fieldsource={howpublished}, match=\regexp{([^\\])\%}, replace=\regexp{$1\\\%}] + } + \map[overwrite]{ + \step[fieldsource={abstract}, match=\regexp{([^\\])\%}, replace=\regexp{$1\\\%}] + } + \map[overwrite]{ + \step[fieldsource={howpublished}, match=\regexp{([^\\])\#}, replace=\regexp{$1\\\#}] + } + \map[overwrite]{ + \step[fieldsource={abstract}, match=\regexp{([^\\])\#}, replace=\regexp{$1\\\#}] + } + \map[overwrite]{%&符号处理 + \step[fieldsource={abstract}, match=\regexp{([^\\])\x26}, replace=\regexp{$1\\\x26}] + } + \map[overwrite]{%&符号处理 + \step[fieldsource={howpublished}, match=\regexp{([^\\])\x26}, replace=\regexp{$1\\\x26}] + } } } @@ -1849,8 +1896,8 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 % % 增加一个\bibitemindent尺寸用于控制list环境的itemindent % v1.0l,20180615,hzz -\setlength{\bibhang}{1em} \newlength{\bibitemindent} +\setlength{\bibhang}{1em} \setlength{\bibitemindent}{-\bibhang} \setlength{\bibitemsep}{4.5pt} \defbibenvironment{bibliography} @@ -1863,19 +1910,43 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 {\endlist} {\item} % -% 增加一个numerical环境用于自动显示数字 -% v1.0w,20210311,hzz -\newcounter{refnumerical} +% 增加一个numeric环境用于自动显示数字 +% v1.0w,20210311,hzz +% v1.0x,20210411,hzz,整合到gbalign选项中。 +\newcounter{refnumeric} \newlength{\biblabelextend} -\defbibenvironment{numerical} +\def\setaligngbnumeric{% +\defbibenvironment{bibliography} + {\setlength{\bibhang}{\biblabelsep}% + \setlength{\labelnumberwidth}{2em}% + \setlength{\bibitemindent}{0pt}% + \setlength{\biblabelextend}{0pt}% + \setlength{\biblabelextend}{0pt}% + \list + {\printtext[labelnumberwidth]{\arabic{refnumeric}}} + {\usecounter{refnumeric}% + \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} +} + +\defbibenvironment{numerical}%作者年制中数字标签的文献表环境 {\setlength{\bibhang}{\biblabelsep}% \setlength{\labelnumberwidth}{2em}% \setlength{\bibitemindent}{0pt}% \setlength{\biblabelextend}{0pt}% \setlength{\biblabelextend}{0pt}% \list - {\printtext[labelnumberwidth]{[\arabic{refnumerical}]}} - {\usecounter{refnumerical}% + {\printtext[labelnumberwidth]{\arabic{refnumeric}}} + {\usecounter{refnumeric}% \addtolength{\labelnumberwidth}{\biblabelextend}% \setlength{\labelwidth}{\labelnumberwidth}% \setlength{\labelsep}{\biblabelsep}% @@ -1888,6 +1959,65 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 {\endlist} {\item} +\DeclareFieldFormat{labelnumberwidth}{% +\ifcase\value{gbalignlabel}%右对齐,整个标签为右对齐 + \mkgbnumlabel{#1}% +\or%左对齐,整个标签为左对齐 + \mkgbnumlabel{#1}\hfill% +\or%中间对齐,比如:序号数字居于[]中间 + \hfil\mkgbnumlabel{\hfill#1\hfill}\hfil% +\fi} + +% +% 修改序号标签格式为以各条参文献为基础进行对齐的方式,即序号与条目内容间隔相等的方式。 +\def\setaligngbstyle{% +\def\blx@bibitem##1{% + \blx@ifdata{##1} + {\begingroup + \blx@getdata{##1}% + \blx@bibcheck + \iftoggle{blx@skipentry}{}{% + \blx@setdefaultrefcontext{##1}% + \global\let\blx@noitem\@empty + \blx@setoptions@type\abx@field@entrytype + \blx@setoptions@entry + \blx@thelabelnumber + \addtocounter{instcount}\@ne + \blx@initsep + \blx@namesep + \csuse{blx@item@\blx@theenv}\relax +% \blx@initsep %移动到上面去,恢复bibnamesep等的作用机制 +% \blx@namesep + \csuse{blx@hook@bibitem}% + \blx@execute + \blx@initunit + \blx@anchor + \blx@beglangbib + \bibsentence + \blx@pagetracker + \blx@driver\abx@field@entrytype + \blx@postpunct + \blx@endlangbib}% + \par\endgroup}%这里增加了一个\par + {}} +\newlength{\lengthid} +\newlength{\lengthlw} +\newcommand{\itemcmd}{% +\settowidth{\lengthid}{\mkgbnumlabel{\arabic{refnumeric}}} +\addtolength{\lengthid}{\biblabelsep} +\setlength{\lengthlw}{\textwidth} +\addtolength{\lengthlw}{-\lengthid} +\addvspace{\bibitemsep}%恢复\bibitemsep的作用 +%\parshape 2 0em \textwidth \lengthid \lengthlw +\hangindent\lengthid +\mkgbnumlabel{\arabic{refnumeric}}% +\hspace{\biblabelsep}} +% +% 简单的段落环境 +\defbibenvironment{bibliography} +{\begingroup\setcounter{refnumeric}{0}\setlength{\parindent}{0em}} +{\endgroup} +{\stepcounter{refnumeric}\itemcmd}} %===================================================================== |