summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/biblatex-contrib
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/biblatex-contrib')
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdfbin1685602 -> 1689051 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex23
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx122
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.cbx17
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx138
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.cbx14
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx120
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx113
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.cbx39
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-CCNU.bbx4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-NWAFU.bbx48
12 files changed, 416 insertions, 226 deletions
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 004f888587..1fd012bf04 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 @@
-<b>Date of last change: 2022-05-17 to version v1.1i</b>
+<b>Date of last change: 2022-08-29 to version v1.1j</b>
# biblatex-gb7714-2015: a biblatex style package
@@ -65,7 +65,6 @@ biblatex-gb7714-2015 宏包是中文参考文献著录/标注标准 `GB/T 7714-2
* [nputhesis(NPU 博士、硕士学位论文 \LaTeX 模板)](https://github.com/NPUSCG/nputhesis)
* [nuaa-thesis(南京航空航天大学本科、硕士和博士学位论文的样式模板)](https://github.com/nuaa803/nuaa-thesis)
* [nudtpaper(nudt学位论文模板)](https://github.com/liubenyuan/nudtpaper)
-* [nwafuthesis(西北农林科技大学学位论文LaTeX文档类)](https://github.com/registor/nwafuthesis)
* [shtthesis (ShangHaiTech university THESIS)](https://github.com/lirundong/shtthesis)
* [SHMTUThesis(上海海事大学 LaTeX 学位论文模板)](https://github.com/hellckt/SHMTUThesis)
* [SJTUThesis(上海交通大学学位论文模板)](https://github.com/sjtug/SJTUThesis) (母校的论文模板,不得不说缘分真的很神奇,16年一出来就用上)
@@ -1592,6 +1591,7 @@ please see the file 'biblatex-gb7714-2015.pdf' for further information!
* 2022/04/03 v1.1g,ctan,github
* 2022/04/16 v1.1h,ctan,github
* 2022/05/17 v1.1i,ctan,github
+* 2022/08/29 v1.1j,ctan,github
---------------------------------------------------------
## Update history:
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 eabdc8f03f..7c1e2439bd 100644
--- 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
Binary files 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 8895c17937..3de096d3f9 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
@@ -401,7 +401,8 @@ perl gb7714texttobib.pl in=textfilename out=bibfilename
\subsubsection{新增选项}\label{sec:added:opt}
-样式包新增了一些选项,用于标签对齐方式、出版项缺省处理、责任者(作者)缺省处理等功能的控制,其使用方式与biblatex宏包选项完全相同:
+样式包新增了一些选项和命令,新增选项更常用一些,所以在本节集中介绍,而新增命令往往涉及更细节的修改,所以在后面介绍各类格式调整的内容中介绍。
+新增选项用于标签对齐方式、出版项缺省处理、责任者(作者)缺省处理等功能的控制,其使用方式与biblatex宏包选项完全相同:
\begin{description}
\pdfbookmark[4]{gbalign}{gbalign}
@@ -965,6 +966,16 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
对于表格环境中的引用无法产生脚注文献表的问题,可以将其置于小页环境中实现或者采用前述图标标题中的类似处理方式。
注意:latex核心代码参考latex.ltx,而hyperref代码参考hyperref.STY。
+ \pdfbookmark[4]{gbfootbibfmt}{gbfootbibfmt}
+ \item[gbfootbibfmt]=true,\textbf{false}. \hfill default is false
+
+ 如果要实现脚注文献表,但不想要国标要求的脚注符号和缩进,但要求相同文献用标签替代,则可使用gbfootbibfmt代替上面的gbfootbib选项。
+ \begin{itemize}
+ \item gbfootbibfmt=true,处理使脚注文献表中的相同的文献用标签代替。
+ \item gbfootbibfmt=false,不做任何附加处理。
+ \end{itemize}
+
+
\pdfbookmark[4]{gbfnperpage}{gbfnperpage}
\item[gbfnperpage]=true,\textbf{false}. \hfill default is false
@@ -1348,7 +1359,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
\subsubsection{段落格式控制}
\paragraph{\heiti 文献表字体、颜色} 为方便用户改变文献表段落格式、内容字体和颜色等,在 biblatex 提供的 \verb|\bibfont| 命令基础上,
-增加了\verb|\bibauthorfont|、\verb|\bibtitlefont|、\verb|\bibpubfont| 等命令用于控制文献部分著录项的格式,比如作者,标题,出版项等。
+增加了\verb|\bibauthorfont|、\verb|\bibtitlefont|、\verb|\bibpubfont| 等命令用于控制文献部分著录项的格式,比如作者,标题,出版项等。增加了\verb|\SlashFont|
用法具体见例\ref{eg:biblist:fontset},结果如图\ref{fig:par:fmt}所示。
测试用例见\href{run:example/testfontinbiblio.tex}{testfontinbiblio.tex}。
@@ -1366,7 +1377,9 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
\renewcommand{\bibtitlefont}{\ttfamily\color{blue}}%
\renewcommand{\bibpubfont}{\itshape\color{violet}}%
% url和doi字体
-\def\UrlFont{\ttfamily} %\urlstyle{sf} %\def\UrlFont{\bfseries}
+\def\UrlFont{\ttfamily}%\rmfamily %\urlstyle{sf} %\def\UrlFont{\bfseries}
+ %斜杠的字体,比如[J/OL]中的斜杠
+\def\SlashFont{\ttfamily}%\rmfamily等
\end{texlist}
\end{example}
@@ -1382,7 +1395,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
\end{figure}
\paragraph{\heiti 文献表竖直间距控制}
-文献表各条目之间的竖直间距控制如例\ref{eg:biblist:vspace}所示:
+文献表各条目之间的竖直间距控制如例\ref{eg:biblist:vspace}所示,此外,还可以调整方括号和圆括号的竖直位置,使其与无基线以下部分的字体的文本相配合。
\begin{example}{文献表竖直间距控制}{eg:biblist:vspace}
\begin{texlist}
@@ -1390,6 +1403,8 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
\setlength{\bibitemsep}{0ex}
\setlength{\bibnamesep}{0ex}
\setlength{\bibinitsep}{0ex}
+% 调整方括号和圆括号的竖直位置
+\setlength{\BracketLift}{0ex}
\end{texlist}
\end{example}
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 cc70cc84ad..e7cd2c5000 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/05/17 v1.1i}
+\def\versionofgbtstyle{2022/08/29 v1.1j}
\def\versionofbiblatex{\abx@version}
\ProvidesFile{gb7714-2015.bbx}[\versionofgbtstyle biblatex bibliography style]
%\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求
@@ -200,6 +200,7 @@
\DeclareDatamodelFields[type=field,datatype=literal]{shortbooktitle}
\DeclareDatamodelFields[type=field,datatype=literal]{lansortorder}
\DeclareDatamodelFields[type=field,datatype=literal]{languageid}
+ \DeclareDatamodelFields[type=field,datatype=integer]{refnumber}
%因为biblatex更新3.14版本以后,biber对于为声明数据模型的条目类型
%不再默认读取,而是以空字符串作为条目类型名,自然在条目定义alias时
@@ -209,6 +210,19 @@
\DeclareDatamodelEntrytypes{newspaper}%
}{}
+%%
+%%符号的垂直位置调整一下
+%% 20220625,hzz,v1.1i
+\newlength{\BracketLift}
+\setlength{\BracketLift}{0.0ex}
+\renewcommand*{\bibleftparen}{\blx@postpunct\raise\BracketLift\hbox{(}}
+\renewcommand*{\bibrightparen}{\blx@postpunct\raise\BracketLift\hbox{)}\midsentence}
+\renewcommand*{\bibleftbracket}{\blx@postpunct\raise\BracketLift\hbox{[}}
+\renewcommand*{\bibrightbracket}{\blx@postpunct\raise\BracketLift\hbox{]}\midsentence}
+\newcommand*{\gbleftparen}{\raise\BracketLift\hbox{(}}
+\newcommand*{\gbrightparen}{\raise\BracketLift\hbox{)}}
+\newcommand*{\gbleftbracket}{\raise\BracketLift\hbox{[}}
+\newcommand*{\gbrightbracket}{\raise\BracketLift\hbox{]}}
%=====================================================================
@@ -282,7 +296,7 @@
%用于在文献条目后面输出注释信息的宏
%FieldFormat{annotation}用于设置注释信息的格式
\DeclareFieldFormat{annotation}{%
- \printtext{\addspace(#1)}%
+ \printtext{\addspace\gbleftparen#1\gbrightparen}%
}
\renewbibmacro*{annotation}{%
\iftoggle{bbx:gbannote}%
@@ -316,20 +330,25 @@
% 当前面的脚注中已经存在当前文献,那么当前文献内容不再输出而用同(4)这样的方式
% 需要注意的是由于小页环境和表格中的脚注本身的问题,可能会有一些问题
\DeclareBibliographyOption{gbfootbib}[false]{%
- \ifstrequal{#1}{false}{}{\execgbfootbib}}
+ \ifstrequal{#1}{false}{}{\execgbfootbib\execgbfootbibfmt}}
\ExecuteBibliographyOptions{gbfootbib}
+ %
+ % 增加一个选项,用于控制分离后的脚注的格式
+ % 20220829,v1.1j,hzz
+ % 将原来的一个gbfootbib选项控制所有格式分离为由两个选项gbfootbib和gbfootbibfmt控制
+ % 分离后,gbfootbibfmt实现同(4)这样的方式,gbfootbib则实现全部的格式
+ \DeclareBibliographyOption{gbfootbibfmt}[false]{%
+ \ifstrequal{#1}{false}{}{\execgbfootbib}}
+ \ExecuteBibliographyOptions{gbfootbibfmt}
%%
\newlength{\footbibmargin}
\newlength{\footbiblabelsep}
\setlength{\footbibmargin}{1em}%脚注的段落左侧缩进距离
\setlength{\footbiblabelsep}{0.5em}%脚注中标记号与脚注段落的间距
- \def\execgbfootbib%
- {%
- %开启引用跟踪计数器,为使用\ifciteseen等测试命令
- \ExecuteBibliographyOptions{citetracker=true}
- %
- %利用footmisc宏包来实现脚注文献的悬挂对齐
+
+ \def\execgbfootbibfmt%
+ {%利用footmisc宏包来实现脚注文献的悬挂对齐
\AtEndPreamble{
\@ifclassloaded{beamer}{}{
%beamer类因为其特殊性,为避免冲突不调footmisc。
@@ -345,7 +364,7 @@
\iftoggle{bbx:gbfnperpage}%
{\@addtoreset{footnote}{page}}{}%重设计数器
-\@ifpackageloaded{hyperref}{%加载hyperref则对\H@@footnotetext做重定义
+ \@ifpackageloaded{hyperref}{%加载hyperref则对\H@@footnotetext做重定义
\long\def\H@@footnotetext##1{\insert\footins{%
\reset@font\footnotesize
\interlinepenalty\interfootnotelinepenalty
@@ -422,6 +441,12 @@
}%
}{}{}
}
+ }
+
+ \def\execgbfootbib%
+ {%
+ %开启引用跟踪计数器,为使用\ifciteseen等测试命令
+ \ExecuteBibliographyOptions{citetracker=true}
%
%判断当前文献是否已经引用过且是做的footfullcite(即已经作为脚注输出文献内容)
@@ -461,7 +486,6 @@
}%
{\multicitedelim}%
{\usebibmacro{postnote}}
-
}
%
@@ -2190,7 +2214,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
\addvspace{\bibitemsep}%恢复\bibitemsep的作用
%\parshape 2 0em \textwidth \lengthid \lengthlw
\hangindent\lengthid
-\mkgbnumlabel{\printfield{labelnumber}}%
+\leavevmode\mkgbnumlabel{\printfield{labelnumber}}%
\hspace{\biblabelsep}}
%
% 简单的段落环境
@@ -2247,14 +2271,14 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
\iftoggle{bbx:gbmedium}%
{\iftoggle{bbx:url}%
{\iffieldundef{url}%当存在url时,增加一个OL标识符
- {\allowbreak\printtext{[}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}}%
- {\allowbreak\printtext{[}\nobreak#1\nobreak\printtext{\texttt{/}OL]}}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{{\SlashFont/}OL\gbrightbracket}}%
}%
{\ifentrytype{online}%
- {\allowbreak\printtext{[}\nobreak#1\nobreak\printtext{\texttt{/}OL]}}%
- {\allowbreak\printtext{[}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{{\SlashFont/}OL\gbrightbracket}}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}}%
}}%
- {\allowbreak\printtext{[}\nobreak#1\nobreak\printtext{]}}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{\gbrightbracket}}%
}
%
@@ -2264,11 +2288,11 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
\iftoggle{bbx:gbmedium}%
{\iftoggle{bbx:url}%
{\iffieldundef{url}%当存在url时,增加一个OL标识符
- {\allowbreak\printtext{[}\nobreak N\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
- {\allowbreak\printtext{[}\nobreak N\printtext{\texttt{/}OL]}\nobreak}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak N\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak N\printtext{{\SlashFont/}OL\gbrightbracket}\nobreak}%
}%
- {\allowbreak\printtext{[}\nobreak N\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
-}{\allowbreak\printtext{[}\nobreak N\printtext{]}\nobreak}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak N\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}%
+}{\allowbreak\printtext{\gbleftbracket}\nobreak N\printtext{\gbrightbracket}\nobreak}%
}
%
@@ -2278,11 +2302,11 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
\iftoggle{bbx:gbmedium}%
{\iftoggle{bbx:url}%
{\iffieldundef{url}%当存在url时,增加一个OL标识符
- {\allowbreak\printtext{[}\nobreak S\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
- {\allowbreak\printtext{[}\nobreak S\printtext{\texttt{/}OL]}\nobreak}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak S\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak S\printtext{{\SlashFont/}OL\gbrightbracket}\nobreak}%
}%
- {\allowbreak\printtext{[}\nobreak S\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
-}{\allowbreak\printtext{[}\nobreak S\printtext{]}\nobreak}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak S\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}%
+}{\allowbreak\printtext{\gbleftbracket}\nobreak S\printtext{\gbrightbracket}\nobreak}%
}
%
@@ -2306,6 +2330,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
{title}{#1}%\nopunct\unspace
\DeclareFieldFormat{url}{\url{#1}} %%url相关输出,url域修改如本行,源来自biblatex.def
\def\UrlFont{\rmfamily}%设置url字体为roman字体%\ttfamily
+\def\SlashFont{\ttfamily}%设置斜杠的字体,比如:[J/OL]中的斜杠;\rmfamily
%\urlstyle{rm} %使用这句也一样
\setcounter{biburlnumpenalty}{100} %让url可以在数字后断行
\setcounter{biburlucpenalty}{100} %让url可以在大写字母后断行
@@ -2971,9 +2996,9 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
%
\defversion{3.4}{date}{
\renewbibmacro*{urldate}{%
- \addthinspace\printtext{[}\printfield{urlyear}%
+ \addthinspace\printtext{\gbleftbracket}\printfield{urlyear}%
\iffieldundef{urlmonth}{}{\bibrangedash\printfield{urlmonth}}%
- \iffieldundef{urlday}{}{\bibrangedash\printfield{urlday}}\printtext{]}}
+ \iffieldundef{urlday}{}{\bibrangedash\printfield{urlday}}\printtext{\gbrightbracket}}
\newbibmacro*{newsdate}{%%新增加一个公告日期,公开日期或新闻日期
\iffieldundef{year}{}{\printfield{year}%
@@ -3014,7 +3039,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
\defversion{3.7}{date}{
\DeclareFieldFormat{urldate}{##1}
\renewbibmacro*{urldate}{%
- \addthinspace\printtext{[}\printurldate\printtext{]}}%能用高层命令+选项尽量用命令(比如这里的\printurldate),而不用\blx@edtfdate这种更底层的命令
+ \addthinspace\printtext{\gbleftbracket}\printurldate\printtext{\gbrightbracket}}%能用高层命令+选项尽量用命令(比如这里的\printurldate),而不用\blx@edtfdate这种更底层的命令
%
% 专利的公告日期、或报纸的日期的输出宏
@@ -3033,10 +3058,10 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
}%
{}%更新或修改日期通常有day信息
{\iffieldundef{year}{%
- \iffieldundef{endyear}{\iffieldundef{eventyear}{}{\printtext{(}\printeventdate\printtext{)}}}%
- {\printtext{(}\printenddate\printtext{)}}%
+ \iffieldundef{endyear}{\iffieldundef{eventyear}{}{\printtext{\gbleftparen}\printeventdate\printtext{\gbrightparen}}}%
+ {\printtext{\gbleftparen}\printenddate\printtext{\gbrightparen}}%
}{\iffieldequalstr{year}{}{%因为year存在,但为空
- }{\printtext{(}\blx@edtfdate{}{}\printtext{)}}%
+ }{\printtext{\gbleftparen}\blx@edtfdate{}{}\printtext{\gbrightparen}}%
}%
}}%
}
@@ -3047,7 +3072,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
\defversion{3.10}{date}{
\DeclareFieldFormat{urldate}{##1}
\renewbibmacro*{urldate}{%
- \addthinspace\printtext{[}\printurldate\printtext{]}}%能用高层命令+选项尽量用命令(比如这里的\printurldate),而不用\blx@edtfdate这种更底层的命令
+ \addthinspace\printtext{\gbleftbracket}\printurldate\printtext{\gbrightbracket}}%能用高层命令+选项尽量用命令(比如这里的\printurldate),而不用\blx@edtfdate这种更底层的命令
%
% 专利的公告日期、或报纸的日期的输出宏
@@ -3069,10 +3094,10 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
}%
{}%更新或修改日期通常有day信息
{\iffieldundef{year}{%
- \iffieldundef{endyear}{\iffieldundef{eventyear}{}{\printtext{(}\printeventdate\printtext{)}}}%
- {\printtext{(}\printenddate\printtext{)}}%
+ \iffieldundef{endyear}{\iffieldundef{eventyear}{}{\printtext{\gbleftparen}\printeventdate\printtext{\gbrightparen}}}%
+ {\printtext{\gbleftparen}\printenddate\printtext{\gbrightparen}}%
}{\iffieldequalstr{year}{}{%因为year存在,但为空
- }{\printtext{(}\blx@gbdate{}{}\printtext{)}}%
+ }{\printtext{\gbleftparen}\blx@gbdate{}{}\printtext{\gbrightparen}}%
}%
}}%
}
@@ -3240,14 +3265,15 @@ test{\iftoggle{iftlnine}}
{\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]}}%
+}{\iftoggle{ifCJKforgbt}{\printtext{\gbleftbracket\str@noaddress}\space :\space\str@nopublisher\gbrightbracket}%
+{\printtext{\gbleftbracket S.l.\space :\space s.n.\adddot\gbrightbracket}}%
}{%
-\iflistundef{location}{\iftoggle{ifCJKforgbt}{\printtext{[\str@noaddress]}}{\printtext{[S.l.\adddot]}}}%
+\iflistundef{location}{\iftoggle{ifCJKforgbt}{\printtext{\gbleftbracket\str@noaddress\gbrightbracket}}%
+ {\printtext{\gbleftbracket S.l.\adddot\gbrightbracket}}}%
{\printlist{location}}%
\publocpunct%
\iflistundef{institution}{%
-\iftoggle{ifCJKforgbt}{\printtext{[\str@nopublisher]}}{\printtext{\mkbibbrackets{s.n.}}}}%
+\iftoggle{ifCJKforgbt}{\printtext{\gbleftbracket\str@nopublisher\gbrightbracket}}{\printtext{\mkbibbrackets{s.n.}}}}%
{\printlist{institution}}}%
\setunit{\addcomma\addspace}%
%\usebibmacro{date}%
@@ -3274,14 +3300,17 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}%
\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]}}}}%
+ {\iffieldequalstr{entrysubtype}{standard}{}
+ {\iftoggle{ifCJKforgbt}{\printtext{\gbleftbracket\str@noaddress}\space :\space\str@nopublisher\gbrightbracket}
+ {\printtext{\gbleftbracket S.l.\space :\space s.n.\adddot\gbrightbracket}}}}%
{\iflistundef{location}{%\adddot
\iffieldequalstr{entrysubtype}{standard}{}%%从gbt7714-2015标准第19页看到,标准存在出版项时输出,没有时完全省略。
- {\iftoggle{ifCJKforgbt}{\printtext{[\str@noaddress]}\addcolon\addspace}{\printtext{[S.l.\adddot]}\publocpunct}}}% \bibstring{noaddress}
+ {\iftoggle{ifCJKforgbt}{\printtext{\gbleftbracket\str@noaddress\gbrightbracket}\addcolon\addspace}%
+ {\printtext{\gbleftbracket S.l.\adddot\gbrightbracket}\publocpunct}}}% \bibstring{noaddress}
{\printlist{location}\publocpunct}%%\addcolon\addspace%
\iflistundef{publisher}{%
\iffieldequalstr{entrysubtype}{standard}{}%
- {\iftoggle{ifCJKforgbt}{\printtext{[\str@nopublisher]}\setunit{\adddot\addspace}\setunit*{\addcomma\addspace}}%
+ {\iftoggle{ifCJKforgbt}{\printtext{\gbleftbracket\str@nopublisher\gbrightbracket}\setunit{\adddot\addspace}\setunit*{\addcomma\addspace}}%
{\printtext{\mkbibbrackets{s.n.}}\setunit{\adddot\addspace}\setunit*{\addcomma\addspace}}}}%
{\printlist{publisher}}}%
\setunit*{\addcomma\addspace}%\addcomma\addspace%
@@ -3387,10 +3416,11 @@ incollection,proceedings,inproceedings]{number}{%
% 调整期刊名的格式
%
% v1.0k,20180425,增加了字体控制命令,hzz
+% v1.1j,20220527,修复期刊名不存在时多余的标点
\renewbibmacro*{journal+issuetitle}{\bibpubfont%源来自standard.bbx
\usebibmacro{journal}%
%\setunit*{\addspace}%
- \setunit*{\addcomma\addspace}%修改为增加一个逗号
+ \iffieldundef{journaltitle}{}{\setunit*{\addcomma\addspace}}%修改为增加一个逗号
\iffieldundef{series}
{}
{\newunit
@@ -3398,9 +3428,9 @@ incollection,proceedings,inproceedings]{number}{%
\setunit{\addspace}}%
%\usebibmacro{volume+number+eid}%
%\setunit{\addspace}%
- \usebibmacro{issue+date}%
+ \printtext{\usebibmacro{issue+date}}%使用printtext配合后面的\setunit*来实现后面的逗号的自动处理
%\setunit{\addcolon\space}%
- \iffieldundef{volume}{}{\setunit{\addcomma\space}}%
+ \iffieldundef{volume}{}{\setunit*{\addcomma\space}}%
%换成逗号和空格
\usebibmacro{issue}%
\usebibmacro{volume+number+eid}%把卷期放到年份后面
@@ -3703,7 +3733,7 @@ incollection,proceedings,inproceedings]{number}{%
% 原理方法:使用bibmacro{in:}改变了以前在driver中直接输出//的方式,同时也简化了标点控制。
% 需要注意\bibstring命令会把首字母大写的。
\renewbibmacro*{in:}{%
- \iftoggle{bbx:gbpunctin}{\printtext{\allowbreak\texttt{//}\allowbreak}}%\addthinspace
+ \iftoggle{bbx:gbpunctin}{\printtext{\allowbreak{\SlashFont//}\allowbreak}}%\addthinspace
{\setunit{\adddot\addspace}%
\iffieldequalstr{userd}{chinese}%
{\printtext{\bibstring{incn}}}%
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 597820363a..6279c92567 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
@@ -35,8 +35,8 @@
% 增加标签包围符号格式处理选项
% 20211030,1.1a,hzz
%
-\newrobustcmd{\mkbibleftborder}{[}
-\newrobustcmd{\mkbibrightborder}{]}
+\newrobustcmd{\mkbibleftborder}{\gbleftbracket}
+\newrobustcmd{\mkbibrightborder}{\gbrightbracket}
\DeclareBibliographyOption[string]{gbcitelabel}[bracket]{%
\csuse{gbcitelabelopt@#1}
}
@@ -51,12 +51,12 @@
#1\endgroup}\kern\z@}%
\def\gbcitelabelopt@bracket{%
-\renewrobustcmd{\mkbibleftborder}{[}%
-\renewrobustcmd{\mkbibrightborder}{]}%
+\renewrobustcmd{\mkbibleftborder}{\gbleftbracket}%
+\renewrobustcmd{\mkbibrightborder}{\gbrightbracket}%
}
\def\gbcitelabelopt@parens{%
-\renewrobustcmd{\mkbibleftborder}{(}%
-\renewrobustcmd{\mkbibrightborder}{)}%
+\renewrobustcmd{\mkbibleftborder}{\gbleftparen}%
+\renewrobustcmd{\mkbibrightborder}{\gbrightparen}%
}
\def\gbcitelabelopt@dot{%
\renewrobustcmd{\mkbibleftborder}{}%
@@ -243,13 +243,12 @@
% 重定义parencite命令,以满足标签带页码的国标要求
%
\DeclareCiteCommand{\parencite}%[\mkbibbrackets]
- {\mkbibleftborder\usebibmacro{cite:init}%
+ {\addspace\mkbibleftborder\usebibmacro{cite:init}%
\usebibmacro{prenote}}%
{\usebibmacro{citeindex}%
\usebibmacro{cite:comp}}
{}
- {%[
- \usebibmacro{cite:dump}\mkbibrightborder%
+ {\usebibmacro{cite:dump}\mkbibrightborder%
\mkbibsuperscriptusp{\printfield{postnote}}}
%
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 1504d40265..c1aa141644 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/05/17 v1.1i}
+\def\versionofgbtstyle{2022/08/29 v1.1j}
\def\versionofbiblatex{\abx@version}
\ProvidesFile{gb7714-2015ay.bbx}[\versionofgbtstyle biblatex bibliography style]
%\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求
@@ -197,6 +197,7 @@
\DeclareDatamodelFields[type=field,datatype=literal]{shortbooktitle}
\DeclareDatamodelFields[type=field,datatype=literal]{lansortorder}
\DeclareDatamodelFields[type=field,datatype=literal]{languageid}
+ \DeclareDatamodelFields[type=field,datatype=integer]{refnumber}
%因为biblatex更新3.14版本以后,biber对于为声明数据模型的条目类型
%不再默认读取,而是以空字符串作为条目类型名,自然在条目定义alias时
@@ -206,6 +207,21 @@
\DeclareDatamodelEntrytypes{newspaper}%
}{}
+%%
+%%符号的垂直位置调整一下
+%% 20220625,hzz,v1.1i
+\newlength{\BracketLift}
+\setlength{\BracketLift}{0.0ex}
+\renewcommand*{\bibleftparen}{\blx@postpunct\raise\BracketLift\hbox{(}}
+\renewcommand*{\bibrightparen}{\blx@postpunct\raise\BracketLift\hbox{)}\midsentence}
+\renewcommand*{\bibleftbracket}{\blx@postpunct\raise\BracketLift\hbox{[}}
+\renewcommand*{\bibrightbracket}{\blx@postpunct\raise\BracketLift\hbox{]}\midsentence}
+\newcommand*{\gbleftparen}{\raise\BracketLift\hbox{(}}
+\newcommand*{\gbrightparen}{\raise\BracketLift\hbox{)}}
+\newcommand*{\gbleftbracket}{\raise\BracketLift\hbox{[}}
+\newcommand*{\gbrightbracket}{\raise\BracketLift\hbox{]}}
+
+
%=====================================================================
% 设置宏包选项
%=====================================================================
@@ -228,7 +244,7 @@
%用于在文献条目后面输出注释信息的宏
%FieldFormat{annotation}用于设置注释信息的格式
\DeclareFieldFormat{annotation}{%
- \printtext{\addspace(#1)}%
+ \printtext{\addspace\gbleftparen#1\gbrightparen}%
}
\renewbibmacro*{annotation}{%
\iftoggle{bbx:gbannote}%
@@ -262,20 +278,25 @@
% 当前面的脚注中已经存在当前文献,那么当前文献内容不再输出而用同(4)这样的方式
% 需要注意的是由于小页环境和表格中的脚注本身的问题,可能会有一些问题
\DeclareBibliographyOption{gbfootbib}[false]{%
- \ifstrequal{#1}{false}{}{\execgbfootbib}}
+ \ifstrequal{#1}{false}{}{\execgbfootbib\execgbfootbibfmt}}
\ExecuteBibliographyOptions{gbfootbib}
+ %
+ % 增加一个选项,用于控制分离后的脚注的格式
+ % 20220829,v1.1j,hzz
+ % 将原来的一个gbfootbib选项控制所有格式分离为由两个选项gbfootbib和gbfootbibfmt控制
+ % 分离后,gbfootbibfmt实现同(4)这样的方式,gbfootbib则实现全部的格式
+ \DeclareBibliographyOption{gbfootbibfmt}[false]{%
+ \ifstrequal{#1}{false}{}{\execgbfootbib}}
+ \ExecuteBibliographyOptions{gbfootbibfmt}
- %%
+ %%
\newlength{\footbibmargin}
\newlength{\footbiblabelsep}
\setlength{\footbibmargin}{1em}%脚注的段落左侧缩进距离
\setlength{\footbiblabelsep}{0.5em}%脚注中标记号与脚注段落的间距
- \def\execgbfootbib%
- {%
- %开启引用跟踪计数器,为使用\ifciteseen等测试命令
- \ExecuteBibliographyOptions{citetracker=true}
- %
- %利用footmisc宏包来实现脚注文献的悬挂对齐
+
+ \def\execgbfootbibfmt%
+ {%利用footmisc宏包来实现脚注文献的悬挂对齐
\AtEndPreamble{
\@ifclassloaded{beamer}{}{
%beamer类因为其特殊性,为避免冲突不调footmisc。
@@ -291,7 +312,7 @@
\iftoggle{bbx:gbfnperpage}%
{\@addtoreset{footnote}{page}}{}%重设计数器
-\@ifpackageloaded{hyperref}{%加载hyperref则对\H@@footnotetext做重定义
+ \@ifpackageloaded{hyperref}{%加载hyperref则对\H@@footnotetext做重定义
\long\def\H@@footnotetext##1{\insert\footins{%
\reset@font\footnotesize
\interlinepenalty\interfootnotelinepenalty
@@ -307,6 +328,7 @@
\rule\z@\footnotesep\ignorespaces##1\@finalstrut\strutbox%
}%
\color@endgroup}}%
+
\long\def\H@@mpfootnotetext##1{%
\global\setbox\@mpfootins\vbox{%
\unvbox\@mpfootins
@@ -367,6 +389,12 @@
}%
}{}{}
}
+ }
+
+ \def\execgbfootbib%
+ {%
+ %开启引用跟踪计数器,为使用\ifciteseen等测试命令
+ \ExecuteBibliographyOptions{citetracker=true}
%
%判断当前文献是否已经引用过且是做的footfullcite(即已经作为脚注输出文献内容)
@@ -395,7 +423,7 @@
{\defcounter{maxnames}{\blx@maxbibnames}%局部定义maxnames和minnames计数器
\defcounter{minnames}{\blx@minbibnames}%使footfullcite内的作者输出与正文文献表中的一致。
\usebibmacro{prenote}%
- \renewbibmacro*{postnote}{%
+ \renewbibmacro*{postnote}{%
\iffieldundef{postnote}%
{}{\setunit{\addcolon\addspace}\printtext{\thefield{postnote}}}}%由于ay样式中没有修改postnote域,此处因为格式需要不使用默认域格式
}%
@@ -406,9 +434,9 @@
}%
{\multicitedelim}%
{\usebibmacro{postnote}}
-
}
+
%
% 增加一个选项,用于控制gb7714的使用范围,即英文文献和中文文献使用不同的样式
% 20180814,v1.0m,hzz
@@ -2062,7 +2090,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
\addvspace{\bibitemsep}%恢复\bibitemsep的作用
%\parshape 2 0em \textwidth \lengthid \lengthlw
\hangindent\lengthid
-\mkgbnumlabel{\arabic{refnumeric}}%
+\leavevmode\mkgbnumlabel{\arabic{refnumeric}}%
\hspace{\biblabelsep}}
%
% 简单的段落环境
@@ -2102,14 +2130,14 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
\iftoggle{bbx:gbmedium}%
{\iftoggle{bbx:url}%
{\iffieldundef{url}%当存在url时,增加一个OL标识符
- {\allowbreak\printtext{[}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}}%
- {\allowbreak\printtext{[}\nobreak#1\nobreak\printtext{\texttt{/}OL]}}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{{\SlashFont/}OL\gbrightbracket}}%
}%
{\ifentrytype{online}%
- {\allowbreak\printtext{[}\nobreak#1\nobreak\printtext{\texttt{/}OL]}}%
- {\allowbreak\printtext{[}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{{\SlashFont/}OL\gbrightbracket}}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}}%
}}%
- {\allowbreak\printtext{[}\nobreak#1\nobreak\printtext{]}}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{\gbrightbracket}}%
}
%
@@ -2119,11 +2147,11 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
\iftoggle{bbx:gbmedium}%
{\iftoggle{bbx:url}%
{\iffieldundef{url}%当存在url时,增加一个OL标识符
- {\allowbreak\printtext{[}\nobreak N\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
- {\allowbreak\printtext{[}\nobreak N\printtext{\texttt{/}OL]}\nobreak}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak N\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak N\printtext{{\SlashFont/}OL\gbrightbracket}\nobreak}%
}%
- {\allowbreak\printtext{[}\nobreak N\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
-}{\allowbreak\printtext{[}\nobreak N\printtext{]}\nobreak}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak N\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}%
+}{\allowbreak\printtext{\gbleftbracket}\nobreak N\printtext{\gbrightbracket}\nobreak}%
}
%
@@ -2133,11 +2161,11 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
\iftoggle{bbx:gbmedium}%
{\iftoggle{bbx:url}%
{\iffieldundef{url}%当存在url时,增加一个OL标识符
- {\allowbreak\printtext{[}\nobreak S\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
- {\allowbreak\printtext{[}\nobreak S\printtext{\texttt{/}OL]}\nobreak}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak S\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak S\printtext{{\SlashFont/}OL\gbrightbracket}\nobreak}%
}%
- {\allowbreak\printtext{[}\nobreak S\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
-}{\allowbreak\printtext{[}\nobreak S\printtext{]}\nobreak}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak S\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}%
+}{\allowbreak\printtext{\gbleftbracket}\nobreak S\printtext{\gbrightbracket}\nobreak}%
}
%
@@ -2160,6 +2188,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
{title}{#1}%\nopunct\unspace
\DeclareFieldFormat{url}{\url{#1}} %url域修改如本行%url相关输出,源来自biblatex.def
\def\UrlFont{\rmfamily}%设置url字体为roman字体%\ttfamily
+\def\SlashFont{\ttfamily}%设置斜杠的字体,比如:[J/OL]中的斜杠;\rmfamily
%\urlstyle{rm} %使用这句也一样
\setcounter{biburlnumpenalty}{100} %让url可以在数字后断行
\setcounter{biburlucpenalty}{100} %让url可以在大写字母后断行
@@ -2820,9 +2849,9 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
%
\defversion{3.4}{date}{
\renewbibmacro*{urldate}{%
- \addthinspace\printtext{[}\printfield{urlyear}%
+ \addthinspace\printtext{\gbleftbracket}\printfield{urlyear}%
\iffieldundef{urlmonth}{}{\bibrangedash\printfield{urlmonth}}%
- \iffieldundef{urlday}{}{\bibrangedash\printfield{urlday}}\printtext{]}}
+ \iffieldundef{urlday}{}{\bibrangedash\printfield{urlday}}\printtext{\gbrightbracket}}
\newbibmacro*{newsdate}{%%新增加一个公告日期,公开日期或新闻日期
\iffieldundef{year}{}{\printfield{year}%
@@ -2863,7 +2892,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
\defversion{3.7}{date}{
\DeclareFieldFormat{urldate}{##1}
\renewbibmacro*{urldate}{%
- \addthinspace\printtext{[}\printurldate\printtext{]}}%能用高层命令+选项尽量用命令(比如这里的\printurldate),而不用\blx@edtfdate这种更底层的命令
+ \addthinspace\printtext{\gbleftbracket}\printurldate\printtext{\gbrightbracket}}%能用高层命令+选项尽量用命令(比如这里的\printurldate),而不用\blx@edtfdate这种更底层的命令
%
% 专利的公告日期、或报纸的日期的输出宏
@@ -2882,10 +2911,10 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
}%
{}%更新或修改日期通常有day信息
{\iffieldundef{year}{%
- \iffieldundef{endyear}{\iffieldundef{eventyear}{}{\printtext{(}\printeventdate\printtext{)}}}%
- {\printtext{(}\printenddate\printtext{)}}%
+ \iffieldundef{endyear}{\iffieldundef{eventyear}{}{\printtext{\gbleftparen}\printeventdate\printtext{\gbrightparen}}}%
+ {\printtext{\gbleftparen}\printenddate\printtext{\gbrightparen}}%
}{\iffieldequalstr{year}{}{%因为year存在,但为空
- }{\printtext{(}\blx@edtfdate{}{}\printtext{)}}%
+ }{\printtext{\gbleftparen}\blx@edtfdate{}{}\printtext{\gbrightparen}}%
}%
}}%
}
@@ -2896,7 +2925,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
\defversion{3.10}{date}{
\DeclareFieldFormat{urldate}{##1}
\renewbibmacro*{urldate}{%
- \addthinspace\printtext{[}\printurldate\printtext{]}}%能用高层命令+选项尽量用命令(比如这里的\printurldate),而不用\blx@edtfdate这种更底层的命令
+ \addthinspace\printtext{\gbleftbracket}\printurldate\printtext{\gbrightbracket}}%能用高层命令+选项尽量用命令(比如这里的\printurldate),而不用\blx@edtfdate这种更底层的命令
%
% 专利的公告日期、或报纸的日期的输出宏
@@ -2917,10 +2946,10 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
}%
{}%更新或修改日期通常有day信息
{\iffieldundef{year}{%
- \iffieldundef{endyear}{\iffieldundef{eventyear}{}{\printtext{(}\printeventdate\printtext{)}}}%
- {\printtext{(}\printenddate\printtext{)}}%
+ \iffieldundef{endyear}{\iffieldundef{eventyear}{}{\printtext{\gbleftparen}\printeventdate\printtext{\gbrightparen}}}%
+ {\printtext{\gbleftparen}\printenddate\printtext{\gbrightparen}}%
}{\iffieldequalstr{year}{}{%因为year存在,但为空
- }{\printtext{(}\blx@gbdate{}{}\printtext{)}}%
+ }{\printtext{\gbleftparen}\blx@gbdate{}{}\printtext{\gbrightparen}}%
}%
}}%
}
@@ -3061,14 +3090,15 @@ test{\iftoggle{iftlnine}}
{\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]}}%
+}{\iftoggle{ifCJKforgbt}{\printtext{\gbleftbracket\str@noaddress}\space :\space\str@nopublisher\gbrightbracket}%
+{\printtext{\gbleftbracket S.l.\space :\space s.n.\adddot\gbrightbracket}}%
}{%
-\iflistundef{location}{\iftoggle{ifCJKforgbt}{\printtext{[\str@noaddress]}}{\printtext{[S.l.\adddot]}}}%
+\iflistundef{location}{\iftoggle{ifCJKforgbt}{\printtext{\gbleftbracket\str@noaddress\gbrightbracket}}%
+ {\printtext{\gbleftbracket S.l.\adddot\gbrightbracket}}}%
{\printlist{location}}%
\publocpunct%
\iflistundef{institution}{%
-\iftoggle{ifCJKforgbt}{\printtext{[\str@nopublisher]}}{\printtext{\mkbibbrackets{s.n.}}}}% \bibstring{nopublisher}%[s.n.\adddot]
+\iftoggle{ifCJKforgbt}{\printtext{\gbleftbracket\str@nopublisher\gbrightbracket}}{\printtext{\mkbibbrackets{s.n.}}}}%
{\printlist{institution}}}%
\setunit{\addcomma\addspace}%
%\usebibmacro{date}%
@@ -3076,7 +3106,7 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}%
\bibrangedash%
\iffieldundef{endyear}{}{\printfield{endyear}}%
\newunit}%
-{ \printlist{location}%
+{\printlist{location}%
\iflistundef{institution}%
{\setunit*{\addcomma\space}}
{\setunit*{\publocpunct}}%
@@ -3095,14 +3125,17 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}%
\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]}}}}%
+ {\iffieldequalstr{entrysubtype}{standard}{}
+ {\iftoggle{ifCJKforgbt}{\printtext{\gbleftbracket\str@noaddress}\space :\space\str@nopublisher\gbrightbracket}
+ {\printtext{\gbleftbracket S.l.\space :\space s.n.\adddot\gbrightbracket}}}}%
{\iflistundef{location}{%\adddot
\iffieldequalstr{entrysubtype}{standard}{}%%从gbt7714-2015标准第19页看到,标准存在出版项时输出,没有时完全省略。
- {\iftoggle{ifCJKforgbt}{\printtext{[\str@noaddress]}\addcolon\addspace}{\printtext{[S.l.\adddot]}\publocpunct}}}% \bibstring{noaddress}
+ {\iftoggle{ifCJKforgbt}{\printtext{\gbleftbracket\str@noaddress\gbrightbracket}\addcolon\addspace}%
+ {\printtext{\gbleftbracket S.l.\adddot\gbrightbracket}\publocpunct}}}% \bibstring{noaddress}
{\printlist{location}\publocpunct}%%\addcolon\addspace%
\iflistundef{publisher}{%
\iffieldequalstr{entrysubtype}{standard}{}%
- {\iftoggle{ifCJKforgbt}{\printtext{[\str@nopublisher]}\setunit{\adddot\addspace}\setunit*{\addcomma\addspace}}%
+ {\iftoggle{ifCJKforgbt}{\printtext{\gbleftbracket\str@nopublisher\gbrightbracket}\setunit{\adddot\addspace}\setunit*{\addcomma\addspace}}%
{\printtext{\mkbibbrackets{s.n.}}\setunit{\adddot\addspace}\setunit*{\addcomma\addspace}}}}%
{\printlist{publisher}}}%
\setunit*{\addcomma\addspace}%\addcomma\addspace%
@@ -3314,7 +3347,6 @@ incollection,proceedings,inproceedings]{number}{%
\renewbibmacro*{bbx:ifmergeddate}{\@secondoftwo}%这一句用于3.12版本
\renewbibmacro*{date}{\printdate}%这一句用于biblatex3.11以下版本
\renewbibmacro*{issue+date}{%去掉括号
-\setunit{\addcomma\addspace}%
\printtext{%去掉了[parens]
\iffieldundef{issue}
{%\usebibmacro{date}
@@ -3363,10 +3395,11 @@ incollection,proceedings,inproceedings]{number}{%
%
% 原理方法:因为作者年制年份提到前面,因此涉及到期刊名与后面的卷期的关系。
% v1.0k,20180425,增加了字体控制命令,hzz
+% v1.1j,20220527,修复期刊名不存在时多余的标点
\renewbibmacro*{journal+issuetitle}{\bibpubfont%源来自standard.bbx
\usebibmacro{journal}%
%\setunit*{\addspace}%
- %\setunit*{\addcomma\addspace}%修改为增加一个逗号
+ \iffieldundef{journaltitle}{}{\setunit*{\addcomma\addspace}}%修改为增加一个逗号
\iffieldundef{series}%
{}%
{\newunit%
@@ -3374,11 +3407,11 @@ incollection,proceedings,inproceedings]{number}{%
\setunit{\addspace}}%
%\usebibmacro{volume+number+eid}%
%\setunit{\addspace}%
- \usebibmacro{issue+date}%
+ \printtext{\usebibmacro{issue+date}}%使用printtext配合后面的\setunit*来实现后面的逗号的自动处理
%\setunit{\addcolon\space}%
- \iffieldundef{volume}{}{\setunit{\addcomma\space}}%
+ \iffieldundef{volume}{}{\setunit*{\addcomma\space}}%
%换成逗号和空格
- \usebibmacro{issue}%
+ %\usebibmacro{issue}%
\usebibmacro{volume+number+eid}%把卷期放到年份后面
%\newunit
}
@@ -3387,7 +3420,7 @@ incollection,proceedings,inproceedings]{number}{%
% 增加一个number带括号的格式,避免使用mkbibparens而引入一个不必要的空格
%
\DeclareFieldFormat{addnumflag}{%
-\nobreak\printtext{(}\nobreak #1\nobreak\printtext{)}}
+\nobreak\printtext{\gbleftparen}\nobreak #1\nobreak\printtext{\gbrightparen}}
%
% 调整journal输出
@@ -3716,8 +3749,9 @@ test {\ifentrytype{conference}}
% 20190212,v1.0q,增加中英文区分,by hzz
%
% 原理方法:使用bibmacro{in:}改变了以前在driver中直接输出//的方式,同时也简化了标点控制。
+% 需要注意\bibstring命令会把首字母大写的。
\renewbibmacro*{in:}{%
- \iftoggle{bbx:gbpunctin}{\printtext{\allowbreak\texttt{//}\allowbreak}}%\addthinspace
+ \iftoggle{bbx:gbpunctin}{\printtext{\allowbreak{\SlashFont//}\allowbreak}}%\addthinspace
{\setunit{\adddot\addspace}%
\iffieldequalstr{userd}{chinese}%
{\printtext{\bibstring{incn}}}%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.cbx
index c0d9d4b985..454e5cc7e6 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.cbx
@@ -28,20 +28,20 @@
% 增加标签包围符号格式处理选项
% 20211030,1.1a,hzz
%
-\newrobustcmd{\mkbibleftborder}{(}
-\newrobustcmd{\mkbibrightborder}{)}
+\newrobustcmd{\mkbibleftborder}{\gbleftparen}
+\newrobustcmd{\mkbibrightborder}{\gbrightparen}
\DeclareBibliographyOption[string]{gbcitelabel}[bracket]{%
\csuse{gbcitelabelopt@#1}
}
\ExecuteBibliographyOptions{gbcitelabel}
\def\gbcitelabelopt@bracket{%
-\renewrobustcmd{\mkbibleftborder}{[}%
-\renewrobustcmd{\mkbibrightborder}{]}%
+\renewrobustcmd{\mkbibleftborder}{\gbleftbracket}%
+\renewrobustcmd{\mkbibrightborder}{\gbrightbracket}%
}
\def\gbcitelabelopt@parens{%
-\renewrobustcmd{\mkbibleftborder}{(}%
-\renewrobustcmd{\mkbibrightborder}{)}%
+\renewrobustcmd{\mkbibleftborder}{\gbleftparen}%
+\renewrobustcmd{\mkbibrightborder}{\gbrightparen}%
}
\def\gbcitelabelopt@dot{%
\renewrobustcmd{\mkbibleftborder}{}%
@@ -332,7 +332,7 @@ test {\iftoggle{iftlseven}}%3.7=biblatex
\savefield{labelyear}{\cbx@lastyear}}}
{\iftoggle{bbx:gblabelref}{\printtext[bibhyperref]{\printnames{labelname}}}{\printnames{labelname}}%%
%\setunit{\printdelim{nameyeardelim}}%
- (\usebibmacro{cite:labeldate+extradate})%
+ \gbleftparen\usebibmacro{cite:labeldate+extradate}\gbrightparen%
\savefield{namehash}{\cbx@lasthash}%
\savefield{labelyear}{\cbx@lastyear}}}}
{\usebibmacro{cite:shorthand}%
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 1ae850d363..d8fe13aa06 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/05/17 v1.1i}
+\def\versionofgbtstyle{2022/08/29 v1.1j}
\def\versionofbiblatex{\abx@version}
\ProvidesFile{gb7714-2015ms.bbx}[\versionofgbtstyle biblatex bibliography style]
%\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求
@@ -91,6 +91,7 @@
\DeclareDatamodelFields[type=field,datatype=literal]{shortbooktitle}
\DeclareDatamodelFields[type=field,datatype=literal]{lansortorder}
\DeclareDatamodelFields[type=field,datatype=literal]{languageid}
+ \DeclareDatamodelFields[type=field,datatype=integer]{refnumber}
%因为biblatex更新3.14版本以后,biber对于为声明数据模型的条目类型
%不再默认读取,而是以空字符串作为条目类型名,自然在条目定义alias时
@@ -100,6 +101,21 @@
\DeclareDatamodelEntrytypes{newspaper}%
}{}
+%%
+%%符号的垂直位置调整一下
+%% 20220625,hzz,v1.1i
+\newlength{\BracketLift}
+\setlength{\BracketLift}{0.0ex}
+\renewcommand*{\bibleftparen}{\blx@postpunct\raise\BracketLift\hbox{(}}
+\renewcommand*{\bibrightparen}{\blx@postpunct\raise\BracketLift\hbox{)}\midsentence}
+\renewcommand*{\bibleftbracket}{\blx@postpunct\raise\BracketLift\hbox{[}}
+\renewcommand*{\bibrightbracket}{\blx@postpunct\raise\BracketLift\hbox{]}\midsentence}
+\newcommand*{\gbleftparen}{\raise\BracketLift\hbox{(}}
+\newcommand*{\gbrightparen}{\raise\BracketLift\hbox{)}}
+\newcommand*{\gbleftbracket}{\raise\BracketLift\hbox{[}}
+\newcommand*{\gbrightbracket}{\raise\BracketLift\hbox{]}}
+
+
%=====================================================================
% 设置宏包选项
%=====================================================================
@@ -122,7 +138,7 @@
%用于在文献条目后面输出注释信息的宏
%FieldFormat{annotation}用于设置注释信息的格式
\DeclareFieldFormat{annotation}{%
- \printtext{\addspace(#1)}%
+ \printtext{\addspace\gbleftparen#1\gbrightparen}%
}
\renewbibmacro*{annotation}{%
\iftoggle{bbx:gbannote}%
@@ -156,20 +172,25 @@
% 当前面的脚注中已经存在当前文献,那么当前文献内容不再输出而用同(4)这样的方式
% 需要注意的是由于小页环境和表格中的脚注本身的问题,可能会有一些问题
\DeclareBibliographyOption{gbfootbib}[false]{%
- \ifstrequal{#1}{false}{}{\execgbfootbib}}
+ \ifstrequal{#1}{false}{}{\execgbfootbib\execgbfootbibfmt}}
\ExecuteBibliographyOptions{gbfootbib}
+ %
+ % 增加一个选项,用于控制分离后的脚注的格式
+ % 20220829,v1.1j,hzz
+ % 将原来的一个gbfootbib选项控制所有格式分离为由两个选项gbfootbib和gbfootbibfmt控制
+ % 分离后,gbfootbibfmt实现同(4)这样的方式,gbfootbib则实现全部的格式
+ \DeclareBibliographyOption{gbfootbibfmt}[false]{%
+ \ifstrequal{#1}{false}{}{\execgbfootbib}}
+ \ExecuteBibliographyOptions{gbfootbibfmt}
- %%
+ %%
\newlength{\footbibmargin}
\newlength{\footbiblabelsep}
\setlength{\footbibmargin}{1em}%脚注的段落左侧缩进距离
\setlength{\footbiblabelsep}{0.5em}%脚注中标记号与脚注段落的间距
- \def\execgbfootbib%
- {%
- %开启引用跟踪计数器,为使用\ifciteseen等测试命令
- \ExecuteBibliographyOptions{citetracker=true}
- %
- %利用footmisc宏包来实现脚注文献的悬挂对齐
+
+ \def\execgbfootbibfmt%
+ {%利用footmisc宏包来实现脚注文献的悬挂对齐
\AtEndPreamble{
\@ifclassloaded{beamer}{}{
%beamer类因为其特殊性,为避免冲突不调footmisc。
@@ -185,7 +206,7 @@
\iftoggle{bbx:gbfnperpage}%
{\@addtoreset{footnote}{page}}{}%重设计数器
-\@ifpackageloaded{hyperref}{%加载hyperref则对\H@@footnotetext做重定义
+ \@ifpackageloaded{hyperref}{%加载hyperref则对\H@@footnotetext做重定义
\long\def\H@@footnotetext##1{\insert\footins{%
\reset@font\footnotesize
\interlinepenalty\interfootnotelinepenalty
@@ -202,8 +223,8 @@
}%
\color@endgroup}}%
- \long\def\H@@mpfootnotetext##1{%
- \global\setbox\@mpfootins\vbox{%
+ \long\def\H@@mpfootnotetext##1{%
+ \global\setbox\@mpfootins\vbox{%
\unvbox\@mpfootins
\reset@font\footnotesize
\hsize\columnwidth
@@ -262,6 +283,12 @@
}%
}{}{}
}
+ }
+
+ \def\execgbfootbib%
+ {%
+ %开启引用跟踪计数器,为使用\ifciteseen等测试命令
+ \ExecuteBibliographyOptions{citetracker=true}
%
%判断当前文献是否已经引用过且是做的footfullcite(即已经作为脚注输出文献内容)
@@ -296,12 +323,11 @@
}%
{\usebibmacro{citesavefn}%
\ifcsdef{labelsec\arabic{refsection}\arabic{page}et\thefield{entrykey}}%
- {\csuse{labelsec\arabic{refsection}\arabic{page}et\thefield{entrykey}}\nopunct}%
+ {\csuse{labelsec\arabic{refsection}\arabic{page}et\thefield{entrykey}}}%\nopunct
{\usedriver{\DeclareNameAlias{sortname}{default}}{\thefield{entrytype}}}%
}%
{\multicitedelim}%
{\usebibmacro{postnote}}
-
}
%
@@ -344,6 +370,7 @@
\def\str@references{参考文献}
\def\str@bytranslator{译}
\def\str@andotherscn{等}
+ \def\str@andcn{和}
\def\str@backrefpage{引用页}
\def\str@backrefpages{引用页}
\def\str@noaddress{出版地不详}
@@ -1350,7 +1377,7 @@
\addvspace{\bibitemsep}%恢复\bibitemsep的作用
%\parshape 2 0em \textwidth \lengthid \lengthlw
\hangindent\lengthid%
-\mkgbnumlabel{\printfield{labelnumber}}%
+\leavevmode\mkgbnumlabel{\printfield{labelnumber}}%
\hspace{\biblabelsep}}
%
% 简单的段落环境
@@ -1409,14 +1436,14 @@
\iftoggle{bbx:gbmedium}%
{\iftoggle{bbx:url}%
{\iffieldundef{url}%当存在url时,增加一个OL标识符
- {\allowbreak\printtext{[}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}}%
- {\allowbreak\printtext{[}\nobreak#1\nobreak\printtext{\texttt{/}OL]}}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{{\SlashFont/}OL\gbrightbracket}}%
}%
{\ifentrytype{online}%
- {\allowbreak\printtext{[}\nobreak#1\nobreak\printtext{\texttt{/}OL]}}%
- {\allowbreak\printtext{[}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{{\SlashFont/}OL\gbrightbracket}}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}}%
}}%
- {\allowbreak\printtext{[}\nobreak#1\nobreak\printtext{]}}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{\gbrightbracket}}%
}
%
@@ -1426,11 +1453,11 @@
\iftoggle{bbx:gbmedium}%
{\iftoggle{bbx:url}%
{\iffieldundef{url}%当存在url时,增加一个OL标识符
- {\allowbreak\printtext{[}\nobreak N\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
- {\allowbreak\printtext{[}\nobreak N\printtext{\texttt{/}OL]}\nobreak}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak N\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak N\printtext{{\SlashFont/}OL\gbrightbracket}\nobreak}%
}%
- {\allowbreak\printtext{[}\nobreak N\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
-}{\allowbreak\printtext{[}\nobreak N\printtext{]}\nobreak}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak N\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}%
+}{\allowbreak\printtext{\gbleftbracket}\nobreak N\printtext{\gbrightbracket}\nobreak}%
}
%
@@ -1440,11 +1467,11 @@
\iftoggle{bbx:gbmedium}%
{\iftoggle{bbx:url}%
{\iffieldundef{url}%当存在url时,增加一个OL标识符
- {\allowbreak\printtext{[}\nobreak S\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
- {\allowbreak\printtext{[}\nobreak S\printtext{\texttt{/}OL]}\nobreak}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak S\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak S\printtext{{\SlashFont/}OL\gbrightbracket}\nobreak}%
}%
- {\allowbreak\printtext{[}\nobreak S\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
-}{\allowbreak\printtext{[}\nobreak S\printtext{]}\nobreak}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak S\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}%
+}{\allowbreak\printtext{\gbleftbracket}\nobreak S\printtext{\gbrightbracket}\nobreak}%
}
%
@@ -1684,6 +1711,7 @@
\def\UrlFont{\rmfamily}%设置url字体为roman字体%\ttfamily
+\def\SlashFont{\ttfamily}%设置斜杠的字体,比如:[J/OL]中的斜杠;\rmfamily
%\urlstyle{rm} %使用这句也一样
\setcounter{biburlnumpenalty}{100} %让url可以在数字后断行
\setcounter{biburlucpenalty}{100} %让url可以在大写字母后断行
@@ -1730,10 +1758,10 @@
}%
{}%更新或修改日期通常有day信息
{\iffieldundef{year}{%
- \iffieldundef{endyear}{\iffieldundef{eventyear}{}{\printtext{(}\printeventdate\printtext{)}}}%
- {\printtext{(}\printenddate\printtext{)}}%
+ \iffieldundef{endyear}{\iffieldundef{eventyear}{}{\printtext{\gbleftparen}\printeventdate\printtext{\gbrightparen}}}%
+ {\printtext{\gbleftparen}\printenddate\printtext{\gbrightparen}}%
}{\iffieldequalstr{year}{}{%因为year存在,但为空
- }{\printtext{(}\blx@gbdate{}{}\printtext{)}}%
+ }{\printtext{\gbleftparen}\blx@gbdate{}{}\printtext{\gbrightparen}}%
}%
}}%
@@ -2066,7 +2094,7 @@ togl{bbx:gbstyle} or test {\iffieldequalstr{userd}{chinese}}%
%
\DeclareFieldFormat{urldate}{##1}%
\renewbibmacro*{urldate}{%
-\addthinspace\printtext{[}\printurldate\printtext{]}}%能用高层命令+选项尽量用命令(比如这里的\printurldate),而不用\blx@edtfdate这种更底层的命令
+\addthinspace\printtext{\gbleftbracket}\printurldate\printtext{\gbrightbracket}}%能用高层命令+选项尽量用命令(比如这里的\printurldate),而不用\blx@edtfdate这种更底层的命令
%
% 调整doi+eprint+url格式
%
@@ -2116,14 +2144,14 @@ togl{bbx:gbstyle} or test {\iffieldequalstr{userd}{chinese}}%
{\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]}}%
+}{\iftoggle{ifCJKforgbt}{\printtext{\gbleftbracket\str@noaddress}\space :\space\str@nopublisher\gbrightbracket}%
+{\printtext{\gbleftbracket S.l.\space :\space s.n.\adddot\gbrightbracket}}%
}{%
-\iflistundef{location}{\iftoggle{ifCJKforgbt}{\printtext{[\str@noaddress]}}{\printtext{[S.l.\adddot]}}}%
+\iflistundef{location}{\iftoggle{ifCJKforgbt}{\printtext{\gbleftbracket\str@noaddress\gbrightbracket}}{\printtext{\gbleftbracket S.l.\adddot\gbrightbracket}}}%
{\printlist{location}}%
\publocpunct%
\iflistundef{institution}{%
-\iftoggle{ifCJKforgbt}{\printtext{[\str@nopublisher]}}{\printtext{\mkbibbrackets{s.n.}}}}% \bibstring{nopublisher}%[s.n.\adddot]
+\iftoggle{ifCJKforgbt}{\printtext{\gbleftbracket\str@nopublisher\gbrightbracket}}{\printtext{\mkbibbrackets{s.n.}}}}% \bibstring{nopublisher}%[s.n.\adddot]
{\printlist{institution}}}%
\setunit{\addcomma\addspace}%
%\usebibmacro{date}%
@@ -2150,14 +2178,16 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}%
\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]}}}}%
+ {\iffieldequalstr{entrysubtype}{standard}{}%
+ {\iftoggle{ifCJKforgbt}{\printtext{\gbleftbracket\str@noaddress}\space :\space\str@nopublisher\gbrighttbracket}%
+ {\printtext{\gbleftbracket S.l.\space :\space s.n.\adddot\gbrightbracket}}}}%
{\iflistundef{location}{%\adddot
\iffieldequalstr{entrysubtype}{standard}{}%%从gbt7714-2015标准第19页看到,标准存在出版项时输出,没有时完全省略。
- {\iftoggle{ifCJKforgbt}{\printtext{[\str@noaddress]}\addcolon\addspace}{\printtext{[S.l.\adddot]}\publocpunct}}}% \bibstring{noaddress}
+ {\iftoggle{ifCJKforgbt}{\printtext{\gbleftbracket\str@noaddress\gbrightbracket}\addcolon\addspace}{\printtext{\gbleftbracket S.l.\adddot\gbrightbracket}\publocpunct}}}% \bibstring{noaddress}
{\printlist{location}\publocpunct}%%\addcolon\addspace%
\iflistundef{publisher}{%
\iffieldequalstr{entrysubtype}{standard}{}%
- {\iftoggle{ifCJKforgbt}{\printtext{[\str@nopublisher]}\setunit{\adddot\addspace}\setunit*{\addcomma\addspace}}%
+ {\iftoggle{ifCJKforgbt}{\printtext{\gbleftbracket\str@nopublisher\gbrightbracket}\setunit{\adddot\addspace}\setunit*{\addcomma\addspace}}%
{\printtext{\mkbibbrackets{s.n.}}\setunit{\adddot\addspace}\setunit*{\addcomma\addspace}}}}%
{\printlist{publisher}}}%
\setunit*{\addcomma\addspace}%\addcomma\addspace%
@@ -2255,10 +2285,11 @@ incollection,proceedings,inproceedings]{number}{%
% 调整期刊名的格式
%
% v1.0k,20180425,增加了字体控制命令,hzz
+% v1.1j,20220527,修复期刊名不存在时多余的标点
\renewbibmacro*{journal+issuetitle}{\bibpubfont%源来自standard.bbx
\usebibmacro{journal}%
%\setunit*{\addspace}%
- \setunit*{\addcomma\addspace}%修改为增加一个逗号
+ \iffieldundef{journaltitle}{}{\setunit*{\addcomma\addspace}}%修改为增加一个逗号
\iffieldundef{series}
{}
{\newunit
@@ -2266,9 +2297,9 @@ incollection,proceedings,inproceedings]{number}{%
\setunit{\addspace}}%
%\usebibmacro{volume+number+eid}%
%\setunit{\addspace}%
- \usebibmacro{issue+date}%
+ \printtext{\usebibmacro{issue+date}}%使用printtext配合后面的\setunit*来实现后面的逗号的自动处理
%\setunit{\addcolon\space}%
- \iffieldundef{volume}{}{\setunit{\addcomma\space}}%
+ \iffieldundef{volume}{}{\setunit*{\addcomma\space}}%
%换成逗号和空格
\usebibmacro{issue}%
\usebibmacro{volume+number+eid}%把卷期放到年份后面
@@ -2470,8 +2501,9 @@ incollection,proceedings,inproceedings]{number}{%
% 20190212,v1.0q,增加中英文区分,by hzz
%
% 原理方法:使用bibmacro{in:}改变了以前在driver中直接输出//的方式,同时也简化了标点控制。
+% 需要注意\bibstring命令会把首字母大写的。
\renewbibmacro*{in:}{%
- \iftoggle{bbx:gbpunctin}{\printtext{\allowbreak\texttt{//}\allowbreak}}%\addthinspace
+ \iftoggle{bbx:gbpunctin}{\printtext{\allowbreak{\SlashFont//}\allowbreak}}%\addthinspace
{\setunit{\adddot\addspace}%
\iffieldequalstr{userd}{chinese}%
{\printtext{\bibstring{incn}}}%
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 62bdf65054..84729ef0fd 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/05/17 v1.1i}
+\def\versionofgbtstyle{2022/08/29 v1.1j}
\def\versionofbiblatex{\abx@version}
\ProvidesFile{gb7714-2015mx.bbx}[\versionofgbtstyle biblatex bibliography style]
%\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求
@@ -118,6 +118,7 @@
%为多样式文献表增加的stylesections、styleaysection域:
\DeclareDatamodelFields[type=field,datatype=integer]{aysections}
\DeclareDatamodelFields[type=field,datatype=literal]{styleaysection}
+ \DeclareDatamodelFields[type=field,datatype=integer]{refnumber}
%因为biblatex更新3.14版本以后,biber对于为声明数据模型的条目类型
%不再默认读取,而是以空字符串作为条目类型名,自然在条目定义alias时
@@ -127,6 +128,19 @@
\DeclareDatamodelEntrytypes{newspaper}%
}{}
+%%
+%%符号的垂直位置调整一下
+%% 20220625,hzz,v1.1i
+\newlength{\BracketLift}
+\setlength{\BracketLift}{0.0ex}
+\renewcommand*{\bibleftparen}{\blx@postpunct\raise\BracketLift\hbox{(}}
+\renewcommand*{\bibrightparen}{\blx@postpunct\raise\BracketLift\hbox{)}\midsentence}
+\renewcommand*{\bibleftbracket}{\blx@postpunct\raise\BracketLift\hbox{[}}
+\renewcommand*{\bibrightbracket}{\blx@postpunct\raise\BracketLift\hbox{]}\midsentence}
+\newcommand*{\gbleftparen}{\raise\BracketLift\hbox{(}}
+\newcommand*{\gbrightparen}{\raise\BracketLift\hbox{)}}
+\newcommand*{\gbleftbracket}{\raise\BracketLift\hbox{[}}
+\newcommand*{\gbrightbracket}{\raise\BracketLift\hbox{]}}
%=====================================================================
@@ -155,20 +169,25 @@
% 当前面的脚注中已经存在当前文献,那么当前文献内容不再输出而用同(4)这样的方式
% 需要注意的是由于小页环境和表格中的脚注本身的问题,可能会有一些问题
\DeclareBibliographyOption{gbfootbib}[false]{%
- \ifstrequal{#1}{false}{}{\execgbfootbib}}
+ \ifstrequal{#1}{false}{}{\execgbfootbib\execgbfootbibfmt}}
\ExecuteBibliographyOptions{gbfootbib}
+ %
+ % 增加一个选项,用于控制分离后的脚注的格式
+ % 20220829,v1.1j,hzz
+ % 将原来的一个gbfootbib选项控制所有格式分离为由两个选项gbfootbib和gbfootbibfmt控制
+ % 分离后,gbfootbibfmt实现同(4)这样的方式,gbfootbib则实现全部的格式
+ \DeclareBibliographyOption{gbfootbibfmt}[false]{%
+ \ifstrequal{#1}{false}{}{\execgbfootbib}}
+ \ExecuteBibliographyOptions{gbfootbibfmt}
%%
\newlength{\footbibmargin}
\newlength{\footbiblabelsep}
\setlength{\footbibmargin}{1em}%脚注的段落左侧缩进距离
\setlength{\footbiblabelsep}{0.5em}%脚注中标记号与脚注段落的间距
- \def\execgbfootbib%
- {%
- %开启引用跟踪计数器,为使用\ifciteseen等测试命令
- \ExecuteBibliographyOptions{citetracker=true}
- %
- %利用footmisc宏包来实现脚注文献的悬挂对齐
+
+ \def\execgbfootbibfmt%
+ {%利用footmisc宏包来实现脚注文献的悬挂对齐
\AtEndPreamble{
\@ifclassloaded{beamer}{}{
%beamer类因为其特殊性,为避免冲突不调footmisc。
@@ -261,6 +280,12 @@
}%
}{}{}
}
+ }
+
+ \def\execgbfootbib%
+ {%
+ %开启引用跟踪计数器,为使用\ifciteseen等测试命令
+ \ExecuteBibliographyOptions{citetracker=true}
%
%判断当前文献是否已经引用过且是做的footfullcite(即已经作为脚注输出文献内容)
@@ -295,14 +320,14 @@
}%
{\usebibmacro{citesavefn}%
\ifcsdef{labelsec\arabic{refsection}\arabic{page}et\thefield{entrykey}}%
- {\csuse{labelsec\arabic{refsection}\arabic{page}et\thefield{entrykey}}}%\nopunct
+ {\csuse{labelsec\arabic{refsection}\arabic{page}et\thefield{entrykey}}\nopunct}%
{\usedriver{\DeclareNameAlias{sortname}{default}}{\thefield{entrytype}}}%
}%
{\multicitedelim}%
{\usebibmacro{postnote}}
-
}
+
%
% 增加一个选项,用于控制gb7714的使用范围,即英文文献和中文文献使用不同的样式
% 20180814,v1.0m,hzz
@@ -344,6 +369,7 @@
\def\str@references{参考文献}
\def\str@bytranslator{译}
\def\str@andotherscn{等}
+ \def\str@andcn{和}
\def\str@backrefpage{引用页}
\def\str@backrefpages{引用页}
\def\str@noaddress{出版地不详}
@@ -1639,7 +1665,7 @@
\addvspace{\bibitemsep}%恢复\bibitemsep的作用
%\parshape 2 0em \textwidth \lengthid \lengthlw
\hangindent\lengthid
-\mkgbnumlabel{\printfield{labelnumber}}%
+\leavevmode\mkgbnumlabel{\printfield{labelnumber}}%
\hspace{\biblabelsep}}
%
% 简单的段落环境
@@ -1717,14 +1743,14 @@
\iftoggle{bbx:gbmedium}%
{\iftoggle{bbx:url}%
{\iffieldundef{url}%当存在url时,增加一个OL标识符
- {\allowbreak\printtext{[}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}}%
- {\allowbreak\printtext{[}\nobreak#1\nobreak\printtext{\texttt{/}OL]}}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{{\SlashFont/}OL\gbrightbracket}}%
}%
{\ifentrytype{online}%
- {\allowbreak\printtext{[}\nobreak#1\nobreak\printtext{\texttt{/}OL]}}%
- {\allowbreak\printtext{[}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{{\SlashFont/}OL\gbrightbracket}}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}}%
}}%
- {\allowbreak\printtext{[}\nobreak#1\nobreak\printtext{]}}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{\gbrightbracket}}%
}
%
@@ -1734,11 +1760,11 @@
\iftoggle{bbx:gbmedium}%
{\iftoggle{bbx:url}%
{\iffieldundef{url}%当存在url时,增加一个OL标识符
- {\allowbreak\printtext{[}\nobreak N\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
- {\allowbreak\printtext{[}\nobreak N\printtext{\texttt{/}OL]}\nobreak}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak N\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak N\printtext{{\SlashFont/}OL\gbrightbracket}\nobreak}%
}%
- {\allowbreak\printtext{[}\nobreak N\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
-}{\allowbreak\printtext{[}\nobreak N\printtext{]}\nobreak}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak N\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}%
+}{\allowbreak\printtext{\gbleftbracket}\nobreak N\printtext{\gbrightbracket}\nobreak}%
}
%
@@ -1748,11 +1774,11 @@
\iftoggle{bbx:gbmedium}%
{\iftoggle{bbx:url}%
{\iffieldundef{url}%当存在url时,增加一个OL标识符
- {\allowbreak\printtext{[}\nobreak S\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
- {\allowbreak\printtext{[}\nobreak S\printtext{\texttt{/}OL]}\nobreak}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak S\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak S\printtext{{\SlashFont/}OL\gbrightbracket}\nobreak}%
}%
- {\allowbreak\printtext{[}\nobreak S\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
-}{\allowbreak\printtext{[}\nobreak S\printtext{]}\nobreak}%
+ {\allowbreak\printtext{\gbleftbracket}\nobreak S\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}\nobreak}%
+}{\allowbreak\printtext{\gbleftbracket}\nobreak S\printtext{\gbrightbracket}\nobreak}%
}
%
@@ -1776,6 +1802,7 @@
{title}{#1}%\nopunct\unspace
\DeclareFieldFormat{url}{\url{#1}} %%url相关输出,url域修改如本行,源来自biblatex.def
\def\UrlFont{\rmfamily}%设置url字体为roman字体%\ttfamily
+\def\SlashFont{\ttfamily}%设置斜杠的字体,比如:[J/OL]中的斜杠;\rmfamily
%\urlstyle{rm} %使用这句也一样
\setcounter{biburlnumpenalty}{100} %让url可以在数字后断行
\setcounter{biburlucpenalty}{100} %让url可以在大写字母后断行
@@ -2283,7 +2310,7 @@
%
\DeclareFieldFormat{urldate}{#1}
\renewbibmacro*{urldate}{%
- \addthinspace\printtext{[}\printurldate\printtext{]}}%能用高层命令+选项尽量用命令(比如这里的\printurldate),而不用\blx@edtfdate这种更底层的命令
+ \addthinspace\printtext{\gbleftbracket}\printurldate\printtext{\gbrightbracket}}%能用高层命令+选项尽量用命令(比如这里的\printurldate),而不用\blx@edtfdate这种更底层的命令
%
% 专利的公告日期、或报纸的日期的输出宏
@@ -2305,10 +2332,10 @@
}%
{}%更新或修改日期通常有day信息
{\iffieldundef{year}{%
- \iffieldundef{endyear}{\iffieldundef{eventyear}{}{\printtext{(}\printeventdate\printtext{)}}}%
- {\printtext{(}\printenddate\printtext{)}}%
+ \iffieldundef{endyear}{\iffieldundef{eventyear}{}{\printtext{\gbleftparen}\printeventdate\printtext{\gbrightparen}}}%
+ {\printtext{\gbleftparen}\printenddate\printtext{\gbrightparen}}%
}{\iffieldequalstr{year}{}{%因为year存在,但为空
- }{\printtext{(}\blx@gbdate{}{}\printtext{)}}%
+ }{\printtext{\gbleftparen}\blx@gbdate{}{}\printtext{\gbrightparen}}%
}%
}}%
@@ -2396,14 +2423,15 @@
{\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]}}%
+}{\iftoggle{ifCJKforgbt}{\printtext{\gbleftbracket\str@noaddress}\space :\space\str@nopublisher\gbrightbracket}%
+ {\printtext{\gbleftbracket S.l.\space :\space s.n.\adddot\gbrightbracket}}%
}{%
-\iflistundef{location}{\iftoggle{ifCJKforgbt}{\printtext{[\str@noaddress]}}{\printtext{[S.l.\adddot]}}}%
+\iflistundef{location}{\iftoggle{ifCJKforgbt}{\printtext{\gbleftbracket\str@noaddress\gbrightbracket}}
+ {\printtext{\gbleftbracket S.l.\adddot\gbrightbracket}}}%
{\printlist{location}}%
\publocpunct%
\iflistundef{institution}{%
-\iftoggle{ifCJKforgbt}{\printtext{[\str@nopublisher]}}{\printtext{\mkbibbrackets{s.n.}}}}%
+\iftoggle{ifCJKforgbt}{\printtext{\gbleftbracket\str@nopublisher\gbrightbracket}}{\printtext{\mkbibbrackets{s.n.}}}}%
{\printlist{institution}}}%
\setunit{\addcomma\addspace}%
%\usebibmacro{date}%
@@ -2430,14 +2458,17 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}%
\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]}}}}%
+ {\iffieldequalstr{entrysubtype}{standard}{}
+ {\iftoggle{ifCJKforgbt}{\printtext{\gbleftbracket\str@noaddress}\space :\space\str@nopublisher\gbrightbracket}%
+ {\printtext{\gbleftbracket S.l.\space :\space s.n.\adddot\gbrightbracket}}}}%
{\iflistundef{location}{%\adddot
\iffieldequalstr{entrysubtype}{standard}{}%%从gbt7714-2015标准第19页看到,标准存在出版项时输出,没有时完全省略。
- {\iftoggle{ifCJKforgbt}{\printtext{[\str@noaddress]}\addcolon\addspace}{\printtext{[S.l.\adddot]}\publocpunct}}}% \bibstring{noaddress}
+ {\iftoggle{ifCJKforgbt}{\printtext{\gbleftbracket\str@noaddress\gbrightbracket}\addcolon\addspace}
+ {\printtext{\gbleftbracket S.l.\adddot\gbrightbracket}\publocpunct}}}% \bibstring{noaddress}
{\printlist{location}\publocpunct}%%\addcolon\addspace%
\iflistundef{publisher}{%
\iffieldequalstr{entrysubtype}{standard}{}%
- {\iftoggle{ifCJKforgbt}{\printtext{[\str@nopublisher]}\setunit{\adddot\addspace}\setunit*{\addcomma\addspace}}%
+ {\iftoggle{ifCJKforgbt}{\printtext{\gbleftbracket\str@nopublisher\gbrightbracket}\setunit{\adddot\addspace}\setunit*{\addcomma\addspace}}%
{\printtext{\mkbibbrackets{s.n.}}\setunit{\adddot\addspace}\setunit*{\addcomma\addspace}}}}%
{\printlist{publisher}}}%
\setunit*{\addcomma\addspace}%\addcomma\addspace%
@@ -2513,7 +2544,7 @@ incollection,proceedings,inproceedings]{number}{%
%
% 对version的版本信息做出修改
%
-\DeclareFieldFormat{version}{%源来自biblatex.DEF
+\DeclareFieldFormat{version}{\bibtitlefont%源来自biblatex.DEF
\testCJKfirst{userd}%
\ifinteger{#1}%
{\iftoggle{ifCJKforgbt}{\printtext{#1\str@edition}}%
@@ -2543,10 +2574,11 @@ incollection,proceedings,inproceedings]{number}{%
% 调整期刊名的格式
%
% v1.0k,20180425,增加了字体控制命令,hzz
+% v1.1j,20220527,修复期刊名不存在时多余的标点
\renewbibmacro*{journal+issuetitle}{\bibpubfont%源来自standard.bbx
\usebibmacro{journal}%
%\setunit*{\addspace}%
- \setunit*{\addcomma\addspace}%修改为增加一个逗号
+ \iffieldundef{journaltitle}{}{\setunit*{\addcomma\addspace}}%修改为增加一个逗号
\iffieldundef{series}
{}
{\newunit
@@ -2554,9 +2586,9 @@ incollection,proceedings,inproceedings]{number}{%
\setunit{\addspace}}%
%\usebibmacro{volume+number+eid}%
%\setunit{\addspace}%
- \usebibmacro{issue+date}%
+ \printtext{\usebibmacro{issue+date}}%使用printtext配合后面的\setunit*来实现后面的逗号的自动处理
%\setunit{\addcolon\space}%
- \iffieldundef{volume}{}{\setunit{\addcomma\space}}%
+ \iffieldundef{volume}{}{\setunit*{\addcomma\space}}%
%换成逗号和空格
\usebibmacro{issue}%
\usebibmacro{volume+number+eid}%把卷期放到年份后面
@@ -2858,8 +2890,9 @@ incollection,proceedings,inproceedings]{number}{%
% 20190212,v1.0q,增加中英文区分,by hzz
%
% 原理方法:使用bibmacro{in:}改变了以前在driver中直接输出//的方式,同时也简化了标点控制。
+% 需要注意\bibstring命令会把首字母大写的。
\renewbibmacro*{in:}{%
- \iftoggle{bbx:gbpunctin}{\printtext{\allowbreak\texttt{//}\allowbreak}}%\addthinspace
+ \iftoggle{bbx:gbpunctin}{\printtext{\allowbreak{\SlashFont//}\allowbreak}}%\addthinspace
{\setunit{\adddot\addspace}%
\iffieldequalstr{userd}{chinese}%
{\printtext{\bibstring{incn}}}%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.cbx
index 7eacc808dd..1beb8d05ca 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.cbx
@@ -30,6 +30,9 @@
sortcites,
}
+\newrobustcmd{\mkbibleftborder}{\gbleftbracket}
+\newrobustcmd{\mkbibrightborder}{\gbrightbracket}
+
%修改\mkbibsuperscript宏在最后加上一个空白使得xeCJK不会自动在引用标签后面加上中英文之间的空白
%hzz,v1.0w,2021-0401
\renewrobustcmd{\mkbibsuperscript}[1]{%
@@ -56,12 +59,12 @@
% 方法:\DeclareCiteCommand{\cite}[\mkbibparens]{precode}{loopcode}{sepcode}{postcode}
% v1.0p版后将cite的处理方式修改为类似pagescite,而不再使用biblatex的标准方式
\DeclareCiteCommand{\cite}[\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}}
% v1.0p 以前用的方式
%\DeclareCiteCommand{\cite}[\mkbibsuperbracket]%利用mkbibsuperbracket添加方括号
@@ -85,13 +88,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%
\mkbibsuperscript{\printfield{postnote}}}
%
@@ -105,26 +108,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}}
%
@@ -132,13 +135,13 @@
%
% 原理方法:等同于\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命令,输出作者信息,然后在后面带上顺序编码
@@ -180,12 +183,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}%
@@ -375,12 +378,11 @@
\iffieldundef{postnote}%
{}%
{\thefield{postnote}}}%
- (\usebibmacro{prenote}}%)
+ \gbleftparen\usebibmacro{prenote}}%)
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{}
- {%(
- )\mkbibsuperscript{\usebibmacro{postnote}}%\usebibmacro{postnote}
+ {\gbrightparen\mkbibsuperscript{\usebibmacro{postnote}}%\usebibmacro{postnote}
}
\DeclareCiteCommand{\parencite}[\mkbibparens]
@@ -413,7 +415,7 @@
\savefield{labelyear}{\cbx@lastyear}}}
{\printnames{labelname}%
%\setunit{\printdelim{nameyeardelim}}%
- (\usebibmacro{cite:labeldate+extradate})%
+ \gbleftparen\usebibmacro{cite:labeldate+extradate}\gbrightparen%
\savefield{namehash}{\cbx@lasthash}%
\savefield{labelyear}{\cbx@lastyear}}}}
{\usebibmacro{cite:shorthand}%
@@ -460,12 +462,11 @@
\iffieldundef{postnote}%
{}%
{\thefield{postnote}}}%
- (\usebibmacro{prenote}}%)
+ \gbleftparen\usebibmacro{prenote}}%
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{}
- {%(
- )\mkbibsuperscript{\usebibmacro{postnote}}%\usebibmacro{postnote}
+ {\gbrightparen\mkbibsuperscript{\usebibmacro{postnote}}%\usebibmacro{postnote}
}
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
index 0515a3b152..bd1edb0f05 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-CCNU.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-CCNU.bbx
@@ -192,17 +192,15 @@
% v1.0k,20180425,增加了字体控制命令,hzz
\renewbibmacro*{journal+issuetitle}{\bibpubfont%源来自standard.bbx
\usebibmacro{journal}%
- \setunit*{\iffieldequalstr{userd}{chinese}{\gbpunctcomma}{\gbpunctcommalanen}}%修改为增加一个逗号
+ \iffieldundef{journaltitle}{}{\setunit*{\iffieldequalstr{userd}{chinese}{\gbpunctcomma}{\gbpunctcommalanen}}}%修改为增加一个逗号
\iffieldundef{series}
{}
{\newunit
\printfield{series}%
\setunit{\addspace}}%
\usebibmacro{issue+date}%
- %\setunit{\addcolon\space}%
\iffieldundef{volume}{}{\iffieldequalstr{userd}{chinese}{\gbpunctcomma}{\gbpunctcommalanen}}%
%换成逗号和空格
- \usebibmacro{issue}%
\usebibmacro{volume+number+eid}%把卷期放到年份后面
%\newunit
}
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
index 6d49208e42..e1aba48494 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-NWAFU.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-NWAFU.bbx
@@ -71,6 +71,54 @@
\DeclareDelimFormat[bib,biblist]{nameyeardelim}{\addperiod\space}
\DeclareFieldFormat{postnote}{#1}
+\def\gbcaselocalset{%
+ \renewrobustcmd*{\bibinitperiod}{}%
+ \renewcommand*{\revsdnamepunct}{}%
+ %\renewrobustcmd*{\bibinitdelim}{}%
+}
+
+
+\renewbibmacro*{name:family-given}[4]{%
+ \gbcaselocalset%
+ \ifuseprefix
+ {\usebibmacro{name:delim}{#3#1}%
+ \usebibmacro{name:hook}{#3#1}%
+ \mkbibcompletenamefamilygiven{%
+ \ifdefvoid{#3}
+ {}
+ {\ifcapital
+ {\mkbibnameprefix{\MakeCapital{#3}}\isdot}
+ {\mkbibnameprefix{#3}\isdot}%
+ \ifprefchar{}{\bibnamedelimc}}%
+ \mkbibnamefamily{#1}\isdot
+ \ifdefvoid{#4}
+ {}
+ {\bibnamedelimd\mkbibnamesuffix{#4}\isdot}%
+ \ifdefvoid{#2}
+ {}
+ {\revsdnamepunct\bibnamedelimd\mkbibnamegiven{#2}\isdot}}}
+ {\usebibmacro{name:delim}{#1}%
+ \usebibmacro{name:hook}{#1}%
+ \mkbibcompletenamefamilygiven{%
+ \mkbibnamefamily{#1}\isdot
+ \ifdefvoid{#4}
+ {}
+ {\bibnamedelimd\mkbibnamesuffix{#4}\isdot}%
+ \ifboolexpe{%
+ test {\ifdefvoid{#2}}
+ and
+ test {\ifdefvoid{#3}}}
+ {}
+ {\revsdnamepunct}%
+ \ifdefvoid{#2}
+ {}
+ {\bibnamedelimd\mkbibnamegiven{#2}\isdot}%
+ \ifdefvoid{#3}
+ {}
+ {\bibnamedelimd\mkbibnameprefix{#3}\isdot}}}}
+
+
+
%==================================================
%调整部分域的输出格式