diff options
author | Karl Berry <karl@freefriends.org> | 2022-03-14 20:14:37 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-03-14 20:14:37 +0000 |
commit | 766cbef9e0639e7e57411695c2ac8c56d650944b (patch) | |
tree | 21decc8e246297697be4941a4a6b3223337d48f9 /Master/texmf-dist/tex/latex | |
parent | 4c542f5a3c8da240c54af507ddffa81241d476e4 (diff) |
biblatex-gb7714-2015 (14mar22)
git-svn-id: svn://tug.org/texlive/trunk@62704 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
10 files changed, 1202 insertions, 32 deletions
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 46dd2633fbf..c0ff2bb90ea 100644 --- a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015.bbx +++ b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015.bbx @@ -11,7 +11,7 @@ % % 版本和时间信息 % -\def\versionofgbtstyle{2022/03/07 v1.1e} +\def\versionofgbtstyle{2022/03/13 v1.1f} \def\versionofbiblatex{\abx@version} \ProvidesFile{gb7714-2015.bbx}[\versionofgbtstyle biblatex bibliography style] %\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求 @@ -630,6 +630,7 @@ maxitems = 1,%设置列表最大数量 minitems = 1, %设置缩减后的列表最小数量 isbn=false, + usetranslator=true, } % @@ -2367,7 +2368,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 \renewbibmacro*{bytranslator+others}{\bibauthorfont% \ifnameundef{translator} {} - {\iffieldequalstr{usere}{chinese}{}{\usebibmacro{bytranslator+othersstrg}} + {\iffieldequalstr{usere}{chinese}{}{\usebibmacro{bytranslator+othersstrg}}% %\setunit{\addspace}% \printnames[bytranslator]{translator}% \clearname{translator}% @@ -3325,17 +3326,18 @@ incollection,proceedings,inproceedings]{number}{% % % 对edition版本信息格式做出修改 -% +% 注意实现逻辑: +% 1. 不是整数时原样输出 +% 2. 当是整数且大于1时按版本格式输出 \DeclareFieldFormat{edition}{\bibtitlefont%源来自biblatex.DEF -\ifnumgreater{#1}{1}{% \testCJKfirst{userd}% \iftoggle{ifCJKforgbt}% {\ifinteger{#1}% - {\printtext{#1\str@edition}}% + {\ifnumgreater{#1}{1}{\printtext{#1\str@edition}}{}}% {#1\isdot}}% {\ifinteger{#1}% - {\mkbibordedition{#1}~\bibstring{edition}}% - {#1\isdot}}}{}% + {\ifnumgreater{#1}{1}{\mkbibordedition{#1}~\bibstring{edition}}{}}% + {#1\isdot}}% } % @@ -3571,7 +3573,7 @@ incollection,proceedings,inproceedings]{number}{% and not test {\ifnameundef{translator}} } - {\renewcommand{\aftertransdelim}{\adddot\addspace}{\adddot\addspace}\printnames{translator}% + {\renewcommand{\aftertransdelim}{\adddot\addspace}\printnames{translator}% \clearname{translator}} {}} @@ -3685,6 +3687,7 @@ incollection,proceedings,inproceedings]{number}{% % 20190212,v1.0q,增加中英文区分,by hzz % % 原理方法:使用bibmacro{in:}改变了以前在driver中直接输出//的方式,同时也简化了标点控制。 +% 需要注意\bibstring命令会把首字母大写的。 \renewbibmacro*{in:}{% \iftoggle{bbx:gbpunctin}{\printtext{\allowbreak\texttt{//}\allowbreak}}%\addthinspace {\setunit{\adddot\addspace}% diff --git a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015ay.bbx b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015ay.bbx index ecc1561155a..af346dd7193 100644 --- a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015ay.bbx +++ b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015ay.bbx @@ -10,7 +10,7 @@ % % 版本和时间信息 % -\def\versionofgbtstyle{2022/03/07 v1.1e} +\def\versionofgbtstyle{2022/03/13 v1.1f} \def\versionofbiblatex{\abx@version} \ProvidesFile{gb7714-2015ay.bbx}[\versionofgbtstyle biblatex bibliography style] %\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求 @@ -572,6 +572,7 @@ isbn=false, sorting=gb7714-2015, sortlocale=zh__pinyin,%zh__big5han,%zh__stroke,%zh__gb2312han,%zh__pinyin, + usetranslator=true, } % @@ -2221,7 +2222,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 \renewbibmacro*{bytranslator+others}{\bibauthorfont% \ifnameundef{translator} {} - {\iffieldequalstr{usere}{chinese}{}{\usebibmacro{bytranslator+othersstrg}} + {\iffieldequalstr{usere}{chinese}{}{\usebibmacro{bytranslator+othersstrg}}% %\setunit{\addspace}% \printnames[bytranslator]{translator}% \clearname{translator}% @@ -3147,17 +3148,18 @@ incollection,proceedings,inproceedings]{number}{% % % 对edition版本信息格式做出修改 -% +% 注意实现逻辑: +% 1. 不是整数时原样输出 +% 2. 当是整数且大于1时按版本格式输出 \DeclareFieldFormat{edition}{\bibtitlefont%源来自biblatex.DEF -\ifnumgreater{#1}{1}{% \testCJKfirst{userd}% \iftoggle{ifCJKforgbt}% {\ifinteger{#1}% - {\printtext{#1\str@edition}}% + {\ifnumgreater{#1}{1}{\printtext{#1\str@edition}}{}}% {#1\isdot}}% {\ifinteger{#1}% - {\mkbibordedition{#1}~\bibstring{edition}}% - {#1\isdot}}}{}% + {\ifnumgreater{#1}{1}{\mkbibordedition{#1}~\bibstring{edition}}{}}% + {#1\isdot}}% } 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 adb65495b23..625cb35a20c 100644 --- a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015ms.bbx +++ b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015ms.bbx @@ -11,7 +11,7 @@ % % 版本和时间信息 % -\def\versionofgbtstyle{2022/03/07 v1.1e} +\def\versionofgbtstyle{2022/03/13 v1.1f} \def\versionofbiblatex{\abx@version} \ProvidesFile{gb7714-2015ms.bbx}[\versionofgbtstyle biblatex bibliography style] %\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求 @@ -580,6 +580,7 @@ urldate =gb7714-2015, %iso,针对3.10<=biblatex版本的选项设置,比如texlive2018中的3.11版 eventdate =gb7714-2015, gblocal=gb7714-2015, + usetranslator=true, } @@ -1898,7 +1899,7 @@ togl{bbx:gbstyle} or test {\iffieldequalstr{userd}{chinese}}% \renewbibmacro*{bytranslator+others}{\bibauthorfont% \ifnameundef{translator} {} - {\iffieldequalstr{usere}{chinese}{}{\usebibmacro{bytranslator+othersstrg}} + {\iffieldequalstr{usere}{chinese}{}{\usebibmacro{bytranslator+othersstrg}}% %\setunit{\addspace}% \printnames[bytranslator]{translator}% \clearname{translator}% @@ -2199,17 +2200,18 @@ incollection,proceedings,inproceedings]{number}{% }% % % 对edition版本信息格式做出修改 -% +% 注意实现逻辑: +% 1. 不是整数时原样输出 +% 2. 当是整数且大于1时按版本格式输出 \DeclareFieldFormat{edition}{\bibtitlefont%源来自biblatex.DEF -\ifnumgreater{#1}{1}{% \testCJKfirst{userd}% \iftoggle{ifCJKforgbt}% - {\ifinteger{#1}% - {\printtext{#1\str@edition}}% - {#1\isdot}}% - {\ifinteger{#1}% - {\mkbibordedition{#1}~\bibstring{edition}}% - {#1\isdot}}}{}% + {\ifinteger{##1}% + {\ifnumgreater{##1}{1}{\printtext{##1\str@edition}}{}}% + {##1\isdot}}% + {\ifinteger{##1}% + {\ifnumgreater{##1}{1}{\mkbibordedition{##1}~\bibstring{edition}}{}}% + {##1\isdot}}% }% % % 对version的版本信息做出修改 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 aeb0ccccdc3..7b4b33dd6a8 100644 --- a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015mx.bbx +++ b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015mx.bbx @@ -11,7 +11,7 @@ % % 版本和时间信息 % -\def\versionofgbtstyle{2022/03/07 v1.1e} +\def\versionofgbtstyle{2022/03/13 v1.1f} \def\versionofbiblatex{\abx@version} \ProvidesFile{gb7714-2015mx.bbx}[\versionofgbtstyle biblatex bibliography style] %\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求 @@ -472,6 +472,7 @@ minitems = 1, %设置缩减后的列表最小数量 isbn=false, sortlocale=zh__pinyin,%zh__big5han,%zh__stroke,%zh__gb2312han,%zh__pinyin, + usetranslator=true, } % @@ -1831,7 +1832,7 @@ \renewbibmacro*{bytranslator+others}{\bibauthorfont% \ifnameundef{translator} {} - {\iffieldequalstr{usere}{chinese}{}{\usebibmacro{bytranslator+othersstrg}} + {\iffieldequalstr{usere}{chinese}{}{\usebibmacro{bytranslator+othersstrg}}% %\setunit{\addspace}% \printnames[bytranslator]{translator}% \clearname{translator}% @@ -2481,17 +2482,18 @@ incollection,proceedings,inproceedings]{number}{% % % 对edition版本信息格式做出修改 -% +% 注意实现逻辑: +% 1. 不是整数时原样输出 +% 2. 当是整数且大于1时按版本格式输出 \DeclareFieldFormat{edition}{\bibtitlefont%源来自biblatex.DEF -\ifnumgreater{#1}{1}{% \testCJKfirst{userd}% \iftoggle{ifCJKforgbt}% {\ifinteger{#1}% - {\printtext{#1\str@edition}}% + {\ifnumgreater{#1}{1}{\printtext{#1\str@edition}}{}}% {#1\isdot}}% {\ifinteger{#1}% - {\mkbibordedition{#1}~\bibstring{edition}}% - {#1\isdot}}}{}% + {\ifnumgreater{#1}{1}{\mkbibordedition{#1}~\bibstring{edition}}{}}% + {#1\isdot}}% } % diff --git a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-CCNU.bbx b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-CCNU.bbx new file mode 100644 index 00000000000..ba2d4799716 --- /dev/null +++ b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-CCNU.bbx @@ -0,0 +1,341 @@ +%% +%% --------------------------------------------------------------- +%% gb7714-CCNU.bbx --- A bibliography style for CCNUthesis template +%% --------------------------------------------------------------- +%% +%%用法:类似于标准的样式在biblatex加载时设置样式 +%%文献表正常处理,标注命令主要用cite和parencite +\ProvidesFile{gb7714-CCNU.bbx} + [2022/03/10 v0.1 a biblatex bibliography style for CCNUthesis] + + +%关于格式和bib文件的注意点 +%1. bib文件按照正常的模式写,除了patent将国别放到number里。 +%2. bib文件中会议文集和会议论文区分清楚,会议论文是带in的那种。若会议文集有附加的出版信息请一并放入publisher中。 +%3. 标识为J的都是article,不管是否有url,所以不是online。 +%4. 若inbook需要给出主编这种信息,需要给出editortype域,否则就当bookauthor处理。 + + +%================================================== +%加载gb样式 +%================================================== +\RequireBibliographyStyle{gb7714-2015} + + +% 增加一个控制标点是英文还是中文的选项 +\DeclareBibliographyOption{CCNUpunctcn}[true]{%biblatex低版本 + \ifstrequal{#1}{false}{\execpuncten}{} +} + + +%================================================== +%选项设置 +%================================================== +\ExecuteBibliographyOptions{ + gbpunctin = false, + gbfieldtype = true, % 输出type域,主要处理学位论文 + gbnamefmt=lowercase +} + +% 根据《通知》调整间距和缩进 +\setlength{\biblabelsep}{0.5em} +\setlength{\bibitemindent}{0em} % bibitemindent表示一条文献中第一行相对后面各行的缩进 +\setlength{\bibhang}{1.2ex} +\setlength{\bibparsep}{0em} + +%================================================== +% 定义一些标点为中文全角标点 +%================================================== +\def\erjpunctdot{.}% +\def\erjpunctdotlanen{\adddot\addspace}% +\def\erjpunctmark{、}% +\def\erjpunctcomma{,}% +\def\erjpunctcommalanen{\addcomma\addspace}% +\def\erjpunctcolon{:}% +\def\erjpunctcolonlanen{\addcolon\addspace}% +\def\erjpunctsemicolon{;}% +\def\erjpunctsemicolonlanen{\addsemicolon\addspace}% +\def\erjpunctparenl{(}% +\def\erjpunctparenr{)}% + +\def\execpuncten{% +\def\erjpunctdot{\adddot\addspace}% +\def\erjpunctdotlanen{\adddot\addspace}% +\def\erjpunctmark{\addcomma\addspace}% +\def\erjpunctcomma{\addcomma\addspace}% +\def\erjpunctcommalanen{\addcomma\addspace}% +\def\erjpunctcolon{\addcolon\addspace}% +\def\erjpunctcolonlanen{\addcolon\addspace}% +\def\erjpunctsemicolon{\addcolon\addspace}% +\def\erjpunctsemicolonlanen{\addsemicolon\addspace}% +\def\erjpunctparenl{(}% +\def\erjpunctparenr{)}% +} + + + +%================================================== +%为标注和文献表中标点格式,重设and本地化字符串 +%================================================== +\DefineBibliographyStrings{english}{ + and = {\addcomma}, + andcn = {\erjpunctcomma}, + andincitecn = {和}, %将标注中的分开,便于与文献表中的区分 + andincite = {\&}, + andothers = {et al.}, + andotherscn = {等}, + bytranslator = {\addcomma\ 译}, + editors = {\MakeLowercase{eds}\adddot\isdot}, + editor = {\MakeLowercase{ed}\adddot\isdot}, + in = {In:\addspace}, + incn = {见\iffieldequalstr{userd}{chinese}{\erjpunctcolon}{\erjpunctcolonlanen}}, + mathesis = {(Master dissertation)}, + mathesiscn = {[硕士学位论文]}, + phdthesis = {(Ph D dissertation)}, + phdthesiscn = {[博士学位论文]}, +} + + +%================================================== +%设置一些标点格式为中文的标点 +%================================================== +\DeclareFieldFormat*{title}{\iffieldequalstr{userd}{chinese}{#1}{#1\isdot}} +\def\gbcaselocalset{% +\renewrobustcmd*{\bibinitperiod}{}% +\renewcommand*{\revsdnamepunct}{}% +\renewrobustcmd*{\bibinitdelim}{}% +} +\renewcommand{\aftertransdelim}{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}} +\DeclareDelimFormat*{multinamedelim}{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}%\addcomma\addspace +\DeclareDelimFormat{finalnamedelim}{% + \edef\userfieldabcde{userd}% + \ifcurrentname{translator}{\edef\userfieldabcde{usere}}{}% + \ifcurrentname{editor}{\edef\userfieldabcde{userc}}{}% + \ifcurrentname{author}{\edef\userfieldabcde{userf}}{}% + \ifcurrentname{bookauthor}{\edef\userfieldabcde{userb}}{}% + \ifcase\value{gbcitelocalcase}% + \iffieldequalstr{\userfieldabcde}{chinese}{\bibstring{andincitecn}}{}% + \iffieldequalstr{\userfieldabcde}{korean}{\bibstring{andkr}}{}% + \iffieldequalstr{\userfieldabcde}{japanese}{\bibstring{andjp}}{}% + \iffieldequalstr{\userfieldabcde}{english}{\space\bibstring{andincite}\space}{}% + \iffieldequalstr{\userfieldabcde}{french}{\bibstring{and}}{}% + \iffieldequalstr{\userfieldabcde}{russian}{\bibstring{and}}{}% + \or% + \bibstring{andincitecn}% + \or% + \bibstring{andincite}% + \fi} +\DeclareDelimFormat[bib,biblist]{finalnamedelim}{% + \edef\userfieldabcde{userd}% + \ifcurrentname{translator}{\edef\userfieldabcde{usere}}{}% + \ifcurrentname{editor}{\edef\userfieldabcde{userc}}{}% + \ifcurrentname{author}{\edef\userfieldabcde{userf}}{}% + \ifcurrentname{bookauthor}{\edef\userfieldabcde{userb}}{}% + \ifcase\value{gbbiblocalcase}% + \iffieldequalstr{\userfieldabcde}{chinese}{\bibstring{andcn}}{}% + \iffieldequalstr{\userfieldabcde}{korean}{\bibstring{andkr}}{}% + \iffieldequalstr{\userfieldabcde}{japanese}{\bibstring{andjp}}{}% + \iffieldequalstr{\userfieldabcde}{english}{\bibstring{and}}{}% + \iffieldequalstr{\userfieldabcde}{french}{\bibstring{and}}{}% + \iffieldequalstr{\userfieldabcde}{russian}{\bibstring{and}}{}% + \or% + \bibstring{andcn}% + \or% + \bibstring{and}% + \fi} +\DeclareDelimFormat{nameyeardelim}{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}%\addcomma\addspace +\DeclareDelimFormat[bib,biblist]{nameyeardelim}{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}%\addcomma\addspace +\DeclareDelimFormat{bibpagespunct}{\iffieldequalstr{userd}{chinese}{\erjpunctcolon}{\erjpunctcolonlanen}}%\addcomma\addspace\mbox{} +\renewcommand*{\newunitpunct}{\iffieldequalstr{userd}{chinese}{\erjpunctdot}{\erjpunctdotlanen}}%\addcomma\space %, +\renewcommand*{\finentrypunct}{\iffieldequalstr{userd}{chinese}{\erjpunctdot}{\adddot}} +\renewcommand{\publocpunct}{\iffieldequalstr{userd}{chinese}{\erjpunctcolon}{\addcolon\addspace}}%出版项中:出版社地址后面的标点 + + +%================================================== +%调整部分域的输出格式 +%================================================== + +% +% 调整期刊名的格式 +% +% v1.0k,20180425,增加了字体控制命令,hzz +\renewbibmacro*{journal+issuetitle}{\bibpubfont%源来自standard.bbx + \usebibmacro{journal}% + \setunit*{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}%修改为增加一个逗号 + \iffieldundef{series} + {} + {\newunit + \printfield{series}% + \setunit{\addspace}}% + \usebibmacro{issue+date}% + %\setunit{\addcolon\space}% + \iffieldundef{volume}{}{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}% + %换成逗号和空格 + \usebibmacro{issue}% + \usebibmacro{volume+number+eid}%把卷期放到年份后面 + %\newunit + } + + +% +% 调整期刊卷和期的格式 +% +\renewbibmacro*{volume+number+eid}{%源来自standard.bbx +\iftoggle{bbx:gbfieldstd}{% + \printfield{volume}% + \setunit*{\adddot}% + \printfield{number}% + \setunit{\addcomma\space}% + \printfield{eid}}{% + \printfield{volume}% + %\setunit*{\adddot}%去掉点号 + %\printfield{number}% + \iffieldundef{number}{}{% + \iffieldequalstr{entrysubtype}{news}{\printtext{\mkbibparens{\printfield{number}}}}{% + \iffieldequalstr{userd}{chinese}{\printtext{\erjpunctparenl\printfield{number}\erjpunctparenr}}% + {\printtext{\mkbibparens{\printfield{number}}}}}% + }%增加一个圆括号 + \iffieldundef{eid}{}{% + \setunit{\addcomma\space}% + \printfield{eid}}}} + + +% 新增一个样式用于输出连续出版物的地址,单位,时间, +% 用于periodical连续出版物的出版社和地址的处理 +% +% v1.0k,20180425,为出版信息增加字体控制命令,hzz +% %类似\newbibmacro*{publisher+location+date} +\newbibmacro*{location+institution+date}{\bibpubfont% +\iftoggle{bbx:gbpub}% +{\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]}}% +}{% +\iflistundef{location}{\iftoggle{ifCJKforgbt}{\printtext{[\str@noaddress]}}{\printtext{[S.l.\adddot]}}}% + {\printlist{location}}% +\publocpunct% +\iflistundef{institution}{% +\iftoggle{ifCJKforgbt}{\printtext{[\str@nopublisher]}}{\printtext{\mkbibbrackets{s.n.}}}}% +{\printlist{institution}}}% +\setunit{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}% + %\usebibmacro{date}% + \printfield{year}% + \bibrangedash% + \iffieldundef{endyear}{}{\printfield{endyear}}% + \newunit}% +{\printlist{location}% + \iflistundef{institution}% + {\setunit*{\addcomma\space}} + {\setunit*{\publocpunct}}% + \printlist{institution}% + \setunit*{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}% + \usebibmacro{date}% + \newunit}% +} + + +% +% 通用的出版社和地址的处理 +% +% 原理方法:当没有出版社地址时,直接判断title的信息是否是中文,若为中文,则写出版地不详,否则用英文的字符表示。 +% 事实上title对于每个文献来说是必须的,所以用它判断是最快的,而且一般标题和出版社的语言是一样的。 +% 注意标准standard类型,因为当没有出版项时直接省略,所以做特殊处理 +\renewbibmacro*{publisher+location+date}{\bibpubfont% +\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]}}}}% + {\iflistundef{location}{%\adddot + \iffieldequalstr{entrysubtype}{standard}{}%%从gbt7714-2015标准第19页看到,标准存在出版项时输出,没有时完全省略。 + {\iftoggle{ifCJKforgbt}{\printtext{[\str@noaddress]}\addcolon\addspace}{\printtext{[S.l.\adddot]}\publocpunct}}}% \bibstring{noaddress} + {\printlist{location}\publocpunct}%%\addcolon\addspace% + \iflistundef{publisher}{% + \iffieldequalstr{entrysubtype}{standard}{}% + {\iftoggle{ifCJKforgbt}{\printtext{[\str@nopublisher]}\setunit{\adddot\addspace}\setunit*{\addcomma\addspace}}% + {\printtext{\mkbibbrackets{s.n.}}\setunit{\adddot\addspace}\setunit*{\addcomma\addspace}}}}% + {\printlist{publisher}}}% +\setunit*{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}%\addcomma\addspace% +\ifentrytype{report}{\printtext{\blx@gbdate{}{}}}% +{\usebibmacro{date}}% +}% +{\printlist{location}% + \iflistundef{publisher} + {\setunit*{\addcomma\space}} + {\setunit*{\publocpunct}}% + \printlist{publisher}% + \setunit*{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}% +\ifentrytype{report}{\printtext{\blx@gbdate{}{}}}% +{\usebibmacro{date}}% + }% +} + +% +% 修改了一个institution+location+date用于manual、thesis等类型 +% +% 20180425,v1.0k,增加了字体控制命令,hzz +% 20190105,v1.0o,加了一个编组避免\usebibmacro{date}把month和day信息去掉 +\renewbibmacro*{institution+location+date}{\bibpubfont%当没有institution时不处理。 +{\printlist{location}%%加了一个编组避免\usebibmacro{date}把month和day信息去掉 + \iflistundef{institution} + {\setunit*{\addcomma\space}} + {\setunit*{\publocpunct}}% + \printlist{institution}% + \setunit*{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}% + \usebibmacro{date}% + %\newunit + }} + +% +% 编者的符号修改一下 +% v1.0 2016-07-01 +% v1.0q 2019-03-01 hzz 修改editortype前的标点 +% +\renewbibmacro*{editor}{%源来自biblatex.DEF + \ifboolexpr{ + test \ifuseeditor + and + not test {\ifnameundef{editor}} + } + {\printnames{editor}% + \iffieldundef{editortype}%增加一个类型判断,用于存在editortype的情况 + {\setunit{\iffieldequalstr{userd}{chinese}{\erjpunctdot}{\erjpunctdotlanen}}}%当没有editortype时,直接用句点 + {\usebibmacro{editorstrg}\setunit{\iffieldequalstr{userd}{chinese}{\erjpunctcomma}{\erjpunctcommalanen}}}% + }% + {}} + + +% +% 增加inbook:parent用于辅助crossref传统功能的实现 +% 用在{crosscite}宏中 +% 20210216,v1.0w,hzz +\newbibmacro*{inbook:parent}{% +\usebibmacro{bybookauthor}% +%\ifnameundef{bookauthor}{% +% \ifnameundef{editor}{}{\newunit}% +%}{\newunit}%替换下一句 + %\newunit\newblock +\iffieldundef{series}{}{\usebibmacro{series+number}\setunit{\addcolon\addspace}}%为处理一些存在series的情况而增加 +\usebibmacro{maintitle+booktitle}% +\iffieldundef{volume}{}{\setunit{\addcolon\addspace}\printfield{volume}}% +\iffieldundef{number}{}{\setunit{\addcolon\addspace}\printfield{number}}%增加卷和册信息 + \newunit\newblock% + \printfield{edition}% + \newunit\newblock + \usebibmacro{publisher+location+date}} + + +% +% 修改in:用于inbook、incollection、inproceedings等类型 +% 2018.04.20,v1.0k,renewed marco,by hzz +% 20190212,v1.0q,增加中英文区分,by hzz +% +% 原理方法:使用bibmacro{in:}改变了以前在driver中直接输出//的方式,同时也简化了标点控制。 +\renewbibmacro*{in:}{% + \iftoggle{bbx:gbpunctin}{\printtext{\allowbreak\texttt{//}\allowbreak}}%\addthinspace + {\setunit{\iffieldequalstr{userd}{chinese}{\erjpunctdot}{\erjpunctdotlanen}}% + \iffieldequalstr{userd}{chinese}% + {\printtext{\bibstring{incn}}}% + {\printtext{\bibstring{in}}}% + }}%\newunit\newblock\intitlepunct diff --git a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-CCNU.cbx b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-CCNU.cbx new file mode 100644 index 00000000000..ba307418563 --- /dev/null +++ b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-CCNU.cbx @@ -0,0 +1,30 @@ +%% +%% --------------------------------------------------------------- +%% gb7714-CCNU.cbx --- A bibliography style for CCNUthesis template +%% --------------------------------------------------------------- +%% +\ProvidesFile{gb7714-CCNU.cbx}[a biblatex citation style for CCNUthesis] + +% +% 加载样式 +% +\RequireCitationStyle{gb7714-2015} %numeric + + +\DeclareCiteCommand{\parencite}%[\mkbibbrackets] + {\mkbibleftborder\usebibmacro{cite:init}% + \usebibmacro{prenote}}% + {\usebibmacro{citeindex}% + \usebibmacro{cite:comp}} + {} + {\usebibmacro{cite:dump}\setunit{\addcomma\addspace}\printfield{postnote}\mkbibrightborder} + + +\DeclareCiteCommand{\cite}[\mkbibsuperscript]%利用mkbibsuperbracket添加方括号 + {\mkbibleftborder\usebibmacro{cite:init}% + \usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite:comp}} + {} + {\usebibmacro{cite:dump}\setunit{\addcomma\addspace}% + \printfield{postnote}\mkbibrightborder} diff --git a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-NWAFU.bbx b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-NWAFU.bbx new file mode 100644 index 00000000000..917b71a761e --- /dev/null +++ b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-NWAFU.bbx @@ -0,0 +1,384 @@ +%% +%% --------------------------------------------------------------- +%% NWAFUthesis.bbx --- A bibliography style for NWAFUthesis template +%% --------------------------------------------------------------- +%% +%%用法:类似于标准的样式在biblatex加载时设置样式 +%%文献表正常处理,标注命令主要用cite和parencite +\ProvidesFile{gb7714-NWAFU.bbx} + [2022/03/10 v0.1 a biblatex bibliography style for NWAFUthesis] + + +%================================================== +%加载gb样式 +%================================================== +\RequireBibliographyStyle{gb7714-2015ay} + + +%================================================== +%选项设置 +%================================================== +\ExecuteBibliographyOptions{ + sortlocale=zh__pinyin, + gbtype=false, + maxbibnames=99,% 著录所有作者 + minbibnames=1, + gbnamefmt=familyahead, + %url=false, + doi=false, + isbn=false, + gbfieldtype=true, + gbpunctin=false, + uniquename=false, + uniquelist=false, + nohashothers=false, +} + + +%================================================== +%一些字体设置 +%================================================== +%\def\bibrangedash{$\sim$}% 表示范围的波浪线符号 +\DefineBibliographyExtras{english}{\renewcommand*{\bibrangedash}{$\sim$}} +%\newcommand\nwafubibfont{\linespread{1.0}\zihao{-5}}% 字体 +\newcommand\nwafubibfont{\zihao{-5}}% 字体 +\renewcommand{\bibfont}{\nwafubibfont}% 全局字体设置 + +\setlength{\bibitemsep}{2pt}%0ex +\setlength{\bibnamesep}{0ex} +\setlength{\bibinitsep}{0ex} + +%================================================== +%为标注和文献表中标点格式,重设and本地化字符串 +%================================================== +\DefineBibliographyStrings{english}{ + andincitecn = {和},%将标注中的分开,便于与文献表中的区分 + andincite = {and}, + mathesiscn={[硕士学位论文]}, + phdthesiscn={[博士学位论文]}, + in={In:\addspace}, + incn={见:\addspace}, +} + +%================================================== +%设置一些标点格式为中文的标点 +%================================================== + +\renewcommand{\postnotedelim}{\addcolon\space} +\renewcommand*{\nameyeardelim}{\addspace} +\DeclareDelimFormat[bib,biblist]{nameyeardelim}{\addperiod\space} +\DeclareFieldFormat{postnote}{#1} + + +%================================================== +%调整部分域的输出格式 +%================================================== + +\DeclareFieldFormat[article]{journaltitle}{\iffieldequalstr{userd}{chinese}{#1}{\textit{#1}}\isdot}% 英文刊名用斜体 + + +% “和”与“and”前后的空格调整 +\DeclareDelimFormat{finalnamedelim}{% + \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}% + %\addspace% + \edef\userfieldabcde{userd}% + \ifcurrentname{translator}{\edef\userfieldabcde{usere}}{}% + \ifcurrentname{editor}{\edef\userfieldabcde{userc}}{}% + \ifcurrentname{author}{\edef\userfieldabcde{userf}}{}% + \ifcurrentname{bookauthor}{\edef\userfieldabcde{userb}}{}% + \ifcase\value{gbcitelocalcase}% + \iffieldequalstr{\userfieldabcde}{chinese}{\bibstring{andincitecn}}{}% + \iffieldequalstr{\userfieldabcde}{korean}{\bibstring{andkr}}{}% + \iffieldequalstr{\userfieldabcde}{japanese}{\bibstring{andjp}}{}% + \iffieldequalstr{\userfieldabcde}{english}{\addspace\bibstring{andincite}\addspace}{}% + \iffieldequalstr{\userfieldabcde}{french}{\addspace\bibstring{and}\addspace}{}% + \iffieldequalstr{\userfieldabcde}{russian}{\addspace\bibstring{and}\addspace}{}% + \or% + \bibstring{andincitecn}% + \or% + \addspace\bibstring{andincite}\addspace% + \fi +} + +\newbibmacro*{origdate+extradate}{% + \printtext{\printorigdate}% + } + + % +% 修改译者位置格式 +% +% 原理方法:修改来自biblatex.def文件的bytranslator+others宏的格式 +\renewbibmacro*{bytranslator+others}{% + \ifnameundef{translator} + {} + {%\usebibmacro{bytranslator+othersstrg} + %\setunit{\addspace}% + \printnames[bytranslator]{translator}% + %\clearname{translator}% + %从macro*{bytranslator+othersstrg}%中可以看到当地化字符串格式的引用前的代码处理 + %比如生成cotranslator等用于调用cotranslator所代表的当地化字符串 + \usebibmacro{bytranslator+othersstrg}%“译”的位置换到下面来,即放到译者后面。 + %\setunit{\addspace}% + \newunit}% + \usebibmacro{withothers}% + \ifboolexpr{% + test {\iffieldundef{origyear}} or test {\ifnameundef{translator}}%% + }{}{\printtext{\printdate}}% + } + +% +% url和url日期格式 +% +\renewbibmacro*{url+urldate}{% + %\usebibmacro{url}%%更换url的位置,放到下面 + \usebibmacro{url}% + \iffieldundef{urlyear}% + {}{%\setunit*{\addspace}% + \usebibmacro{urldate}}} + +\DeclareFieldFormat{addnumflag}{% +\ifentrytype{newspaper}{\setunit{\addcomma\addspace}\printtext{#1}} +{\nobreak\printtext{(}\nobreak #1\nobreak\printtext{)}}} + +% +% 重设专利title的输出,将文献类型标识符输出出去 +% +\newbibmacro*{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}{}%判断一下titleaddon,否则直接加可能多一个空格 + {\setunit{\subtitlepunct}\printfield{titleaddon}}% + \setunit{\adddot\addspace}\printfield{number}%写专利号 + \iftoggle{bbx:gbtype}{\printfield[gbtypeflag]{usera}}{}% + %\iffieldundef{booktitle}{\newunit}{}%当title是析出时,不要标点 + %\newunit + }% +}% +} + +% +% 修改作者数量超过限定值,做省略时的处理格式 +% v1.0,20160701,hzz +% v1.0O,20190103,hzz,修改利用新定义的一个分隔符strandothersdelim +% +% 原理方法:判断作者或译者是否中文,若中文用字符等,否则用et al. 。 +\renewbibmacro*{name:andothers}{% + \ifboolexpr{ + test {\ifnumequal{\value{listcount}}{\value{liststop}}} + and + test \ifmorenames + }{\ifnumgreater{\value{liststop}}{1}% + {\finalandcomma}% + {}%biblatex作者要区别单作者加等的情况,这里为符合gbt7714-2015第7.2节的要求加上了逗号。 +\printdelim{andothersdelim}\printdelim{strandothersdelim}% +}{%当是译者的时候需要特殊处理:从7.2节看等,译前面加逗号,但从示例看等和译同时出现时,译前的逗号没有,比如: +%袁训来, 陈哲, 肖书海, 等. +%胡泳, 范海燕, 译. +%潘惠霞, 魏婧, 杨艳, 等译. +%\ifcurrentname{translator}{\addcomma}{}% +}} + + +% +% 对edition版本信息格式做出修改 +% +\DeclareFieldFormat{edition}{%源来自biblatex.DEF +\testCJKfirst{userd}% +\iftoggle{ifCJKforgbt}% +{\ifinteger{#1}% +{\printtext{\bibstring{serialcn}\zhnumber{#1}\str@edition}}% +{#1\isdot}}% +{\ifinteger{#1}% +{\mkbibordedition{#1}~\bibstring{edition}}% +{#1\isdot}}} + + +%注意这里当没有作者只有标题时在年份之前的标点是否需要标准并未涉及,所以未做处理。 +\renewbibmacro*{author}{%以前的date+extrayear变为date+extradate,所以对3.8以上版本重定义一下author + \ifboolexpr{ + test \ifuseauthor + and + not test {\ifnameundef{author}} + } + {\usebibmacro{bbx:dashcheck} + {%\bibnamedash %去掉相同作者用横线代替的处理 + \printnames{author}\setunit{\printdelim{nameyeardelim}}%把标点也带上 + } + {\usebibmacro{bbx:savehash}% + \printnames{author}% + \iffieldundef{authortype} + {\setunit{\printdelim{nameyeardelim}}} + {\setunit{\printdelim{authortypedelim}}}}% + \iffieldundef{authortype} + {} + {\usebibmacro{authorstrg}% + \setunit{\printdelim{nameyeardelim}}}}% + {\global\undef\bbx@lasthash + \usebibmacro{labeltitle}% + \setunit*{\printdelim{nonameyeardelim}}}% + \ifboolexpr{% + test {\iffieldundef{origyear}} or test {\ifnameundef{translator}}% + }{\usebibmacro{date+extradate}}% + {\usebibmacro{origdate+extradate}}% + } + +%================================================== +%调整部分类型驱动 +%================================================== + + +% +% book条目类的驱动 +% + \DeclareBibliographyDriver{book}{%源来自standard.bbx文件 + \usebibmacro{bibindex}% + \usebibmacro{begentry}% +\usebibmacro{author/editor+others/translator+others}% +\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 +\usebibmacro{maintitle+title}% +\iftoggle{bbx:gbstrict}{}{% +\newunit +\printlist{language}% +\newunit\newblock% +\usebibmacro{byauthor}% +\newunit\newblock}% +\newunit +\printfield{edition}% +\newunit +\usebibmacro{byeditor+others}% +\newunit\newblock%% +\iftoggle{bbx:gbstrict}{}{% +\iffieldundef{maintitle}% +{\printfield{volume}% +\printfield{part}}% +{}% +\newunit% +\printfield{volumes}% +\newunit\newblock% +\usebibmacro{series+number}}% +\newunit\newblock% +%\printfield{note}% +%\newunit\newblock% +\usebibmacro{publisher+location+date}% +%\newunit\newblock %这里标点去掉 +\usebibmacro{chapter+pages}% + \iffieldundef{url}{}{%当没有网址时也不输出 + \usebibmacro{modifydate}}%带括号的修改或更新日期, +\usebibmacro{doi+eprint+url}%从下面移动到上面来,因为gbt2015的url需直接放在页码后面。 + \newunit\newblock% + \printfield{pagetotal}% + \newunit\newblock% + \iftoggle{bbx:isbn} + {\printfield{isbn}} + {}% + \newunit\newblock + %\usebibmacro{doi+eprint+url}% + %\newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} + +% +% 在线文献驱动 +% +\DeclareBibliographyDriver{online}{%源来自standard.BBX + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author/editor+others/translator+others}% +\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 + \usebibmacro{title}% + \iftoggle{bbx:gbstrict}{}{% + \newunit% + \printlist{language}% + \newunit\newblock + \usebibmacro{byauthor}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock + \printfield{note}}% + \newunit + \printfield{version}% + \newunit\newblock +% \printlist{organization}% + \printlist{institution}% + \newunit\newblock +\ifboolexpr{% +test{\iffieldundef{day}} and test{\iffieldundef{endday}} and test{\iffieldundef{eventday}}% +}{\usebibmacro{date}}% +%{\usebibmacro{modifydate}}%修改或更新日期,为带括号的时间 + \usebibmacro{url+urldate}%从下面移上来 + \newunit\newblock + \iftoggle{bbx:eprint} + {\usebibmacro{eprint}} + {}% + \newunit\newblock + %\usebibmacro{url+urldate}% + %\newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} + + +% +% 专利文献驱动 +% + \DeclareBibliographyDriver{patent}{%源来自standard.BBX + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author}% +\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 + %\usebibmacro{title}% + \usebibmacro{patenttitle}%给出专利专用的标题输出 + \iftoggle{bbx:gbstrict}{}{% + \newunit% + \printlist{language}% + \newunit\newblock + \usebibmacro{byauthor}}% + \newunit\newblock + \printfield{type}% + \setunit*{\addspace}% + %\printfield{number}%已放到patenttitle中处理 + \iflistundef{location} + {} + {\setunit*{\addspace}% + \printtext{%[parens] + \printlist[][-\value{listtotal}]{location}}}% + \newunit\newblock + \usebibmacro{byholder}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + %\usebibmacro{newsdate}% + %\newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} diff --git a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-NWAFU.cbx b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-NWAFU.cbx new file mode 100644 index 00000000000..a5f432ec918 --- /dev/null +++ b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-NWAFU.cbx @@ -0,0 +1,52 @@ +%% +%% --------------------------------------------------------------- +%% NWAFUthesis.cbx --- A bibliography style for NWAFUthesis template +%% --------------------------------------------------------------- +%% +\ProvidesFile{gb7714-NWAFU.cbx}[a biblatex citation style for NWAFUthesis] + +% +% 加载样式 +% +\RequireCitationStyle{gb7714-2015ay} %numeric + +\ExecuteBibliographyOptions{ + maxcitenames=2,% 引用标注中最多显示2个作者 + mincitenames=1,% 3个及3个以上的作者截断为1个作者 +} + +\DeclareDelimFormat[textcite,cite,parencite,citet,citep]{nameyeardelim}{\addspace} + + +%之所以不用\DeclareDelimFormat{andothersdelim}{}这样的设置是因为gb7714-2015中为兼容老版本的biblatex做的处理就是这样的 +%所以用相同的方式 +\AtEveryCitekey{% +\iffieldequalstr{userf}{chinese}{\renewcommand*{\andothersdelim}{}}%\addthinspace + {\renewcommand*{\andothersdelim}{\addspace}}% +} + +%标注压缩时,直接用date+extradate代替extradate实现2006a,2006b的效果 +\newbibmacro*{cite:extradate}{% + \iffieldundef{extradate} + {} + {\printtext[bibhyperref]{\printlabeldateextra}}}%\printfield{extradate} + + +\renewbibmacro*{date+extradate}{% + \iffieldundef{labelyear} + {}% + {\ifboolexpr{% + test {\ifentrytype{patent}} + or + (test {\ifentrytype{newspaper}} )% + }% + {\printtext{\blx@isodate{}{}} + %\printtext{\blx@edtfdate{}{}}% + }% + {\printtext{% + \iflabeldateisdate + %\iffieldsequal{year}{labelyear}%for biblatex<=3.7 + {\printdateextra} + {\printlabeldateextra}}}% + }% +} diff --git a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-SEU.bbx b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-SEU.bbx new file mode 100644 index 00000000000..728a2be5ef9 --- /dev/null +++ b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-SEU.bbx @@ -0,0 +1,338 @@ +%% +%% --------------------------------------------------------------- +%% gb7714-SEU.bbx --- A bibliography style for SEUthesis template +%% --------------------------------------------------------------- +%% +%%用法:类似于标准的样式在biblatex加载时设置样式 +%%文献表正常处理,标注命令主要用cite和parencite +\ProvidesFile{gb7714-SEU.bbx} + [2022/03/10 v0.1 a biblatex bibliography style for SEUthesis] + + +%================================================== +%加载gb样式 +%================================================== +\RequireBibliographyStyle{gb7714-2015} + + +%================================================== +%选项设置 +%================================================== +\ExecuteBibliographyOptions{ + maxnames=3, + minnames=3, + %url=false, + doi=false, + gbfieldtype=true, + gbpunctin=false, + gbpub=false, + gbnamefmt=lowercase, + gbbiblabel=dot, +} + + +%================================================== +%为标注和文献表中标点格式,重设and本地化字符串 +%================================================== +\DefineBibliographyStrings{english}{ + mathesiscn={[硕士学位论文]}, + phdthesiscn={[博士学位论文]}, + in={In:\addthinspace}, + incn={见:\addthinspace}, +} + + +%================================================== +%设置一些标点格式为中文的标点 +%================================================== +\renewcommand*{\bibpagespunct}{% +\ifentrytype{article}{\addcolon\addthinspace}{\adddot\addthinspace}% +}% + + +%================================================== +%调整部分域的输出格式 +%================================================== + +\DeclareFieldFormat%将thesis的标题格式重设 + [thesis] + {title}{#1}%\mkbibquote{#1\isdot} + +% +% url和url日期格式 +% +\renewbibmacro*{url+urldate}{% + \usebibmacro{url}%%更换url的位置,放到下面 + \iffieldundef{urlyear}% + {}{%\setunit*{\addspace}% + \usebibmacro{urldate}}% + \setunit{\addperiod\addspace}% + } + \renewbibmacro*{urldate}{% + \setunit{\addcomma\addthinspace}\printtext{\printurldate}}%能用高层命令+选项尽量用命令(比如这里的\printurldate),而不用\blx@edtfdate这种更底层的命令 + + +% +% 修改作者数量超过限定值,做省略时的处理格式 +% v1.0,20160701,hzz +% v1.0O,20190103,hzz,修改利用新定义的一个分隔符strandothersdelim +% +% 原理方法:判断作者或译者是否中文,若中文用字符等,否则用et al. 。 +\renewbibmacro*{name:andothers}{% + \ifboolexpr{ + test {\ifnumequal{\value{listcount}}{\value{liststop}}} + and + test \ifmorenames + }{\ifnumgreater{\value{liststop}}{1}% + {\finalandcomma}% + {}%biblatex作者要区别单作者加等的情况,这里为符合gbt7714-2015第7.2节的要求加上了逗号。 +%\printdelim{andothersdelim} +\printdelim{strandothersdelim}% +}{%当是译者的时候需要特殊处理:从7.2节看等/译前面加逗号,但从示例看等和译同时出现时,译前的逗号没有,比如: +%袁训来, 陈哲, 肖书海, 等. +%胡泳, 范海燕, 译. +%潘惠霞, 魏婧, 杨艳, 等译. +%\ifcurrentname{translator}{\addcomma}{}% +}} + +% +% 修改省略作者后的本地化字符串,比如et al. +% v1.0o,20190103,hzz +% +% 原理方法:默认情况下判断作者或译者是否中文,若中文用字符andotherscn=“等”,否则用andothers=“et al.”。 +% 非默认情况,根据选项信息,选择选择强制中文或英文 +% 首先设置全局的,然后设置文献表中的,这一等价于将所有的cite命令环境都设置过了 +% 而不用对每一个引用命令单独设置,比如cite,parancite,textcite都设置 +\DeclareDelimFormat{strandothersdelim}{% + \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}% + %\addspace% + \edef\userfieldabcde{userd}% + \ifcurrentname{translator}{\edef\userfieldabcde{usere}}{}% + \ifcurrentname{editor}{\edef\userfieldabcde{userc}}{}% + \ifcurrentname{author}{\edef\userfieldabcde{userf}}{}% + \ifcurrentname{bookauthor}{\edef\userfieldabcde{userb}}{}% + \ifcase\value{gbbiblocalcase}% + \iffieldequalstr{\userfieldabcde}{chinese}{\bibstring{andotherscn}}{}% + \iffieldequalstr{\userfieldabcde}{korean}{\bibstring{andotherskr}}{}% + \iffieldequalstr{\userfieldabcde}{japnese}{\bibstring{andothersjp}}{}% + \iffieldequalstr{\userfieldabcde}{english}{\bibstring{andothers}}{}% + \iffieldequalstr{\userfieldabcde}{french}{\bibstring{andothers}}{}% + \iffieldequalstr{\userfieldabcde}{russian}{\bibstring{andothers}}{}% + \or% + \bibstring{andotherscn}% + \or% + \bibstring{andothers}% + \fi} + +% +% 重设专利title的输出,将文献类型标识符输出出去 +% +\newbibmacro*{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}\printfield{titleaddon}}% + \iftoggle{bbx:gbtype}{\printfield[gbtypeflag]{usera}}{}% + %\iffieldundef{booktitle}{\newunit}{}%当title是析出时,不要标点 + %\newunit + }% +}% +} + + +%================================================== +%调整部分类型驱动 +%================================================== + + +\DeclareBibliographyAlias{conference}{inproceedings}%会议论文文献类型驱动 +\DeclareBibliographyAlias{incollection}{inproceedings}%文集中析出文献类型驱动 + +% +%% +%% 专利文献驱动 +%% + \DeclareBibliographyDriver{patent}{%源来自standard.BBX + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author}% +\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 + %\usebibmacro{title}% + \usebibmacro{patenttitle}%给出专利专用的标题输出 + \iftoggle{bbx:gbstrict}{}{% + \newunit% + \printlist{language}% + \newunit\newblock + \usebibmacro{byauthor}}% + \newunit\newblock + \printfield{type}% + \setunit*{\addcomma\addspace}% + \printfield{number}%已放到patenttitle中处理 + \iflistundef{location} + {} + {\setunit*{\addspace}% + \printtext{%[parens] + \printlist[][-\value{listtotal}]{location}}}% + \newunit\newblock + \usebibmacro{byholder}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \usebibmacro{newsdate}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} + + + +\DeclareBibliographyDriver{thesis}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author}% +\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 + \usebibmacro{title}% + \newunit\newblock + \usebibmacro{byeditor+others}%增加的译者信息 + \newunit\newblock + \iftoggle{bbx:gbfieldtype}{% + \setunit{\addcolon\addspace} + \printfield{type}% + \setunit*{\addspace}}{}% + \printfield{number}% + \newunit\newblock + \printfield{version}% + \newunit + \printfield{note}% + \newunit\newblock + \usebibmacro{institution+location+date}% + %\newunit\newblock + \usebibmacro{chapter+pages}% + \iffieldundef{url}{}{%当没有网址时也不输出修改或更新日期 + \usebibmacro{modifydate}}%修改或更新日期为带括号的时间 + \usebibmacro{doi+eprint+url}% + \newunit + \printfield{pagetotal}% + \newunit\newblock + \iftoggle{bbx:isbn} + {\printfield{isrn}} + {}% + \newunit\newblock +% \usebibmacro{doi+eprint+url}% +% \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} + +% +% book条目类的驱动 +% + \DeclareBibliographyDriver{book}{%源来自standard.bbx文件 + \usebibmacro{bibindex}% + \usebibmacro{begentry}% +\usebibmacro{author/editor+others/translator+others}% +\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 +\usebibmacro{maintitle+title}% +\iftoggle{bbx:gbstrict}{}{% +\newunit +\printlist{language}% +\newunit\newblock% +\usebibmacro{byauthor}% +\newunit\newblock}% +\printfield{edition}% +\newunit +\usebibmacro{byeditor+others}% +\newunit\newblock%% +\iftoggle{bbx:gbstrict}{}{% +\iffieldundef{maintitle}% +{\printfield{volume}% +\printfield{part}}% +{}% +\newunit% +\printfield{volumes}% +\newunit\newblock% +\usebibmacro{series+number}}% +\newunit\newblock% +%\printfield{note}% +%\newunit\newblock% +\usebibmacro{publisher+location+date}% +%\newunit\newblock %这里标点去掉 +\usebibmacro{chapter+pages}% + \iffieldundef{url}{}{%当没有网址时也不输出 + \usebibmacro{modifydate}}%带括号的修改或更新日期, +\usebibmacro{doi+eprint+url}%从下面移动到上面来,因为gbt2015的url需直接放在页码后面。 + \newunit\newblock% + \printfield{pagetotal}% + \newunit\newblock% + \iftoggle{bbx:isbn} + {\printfield{isbn}} + {}% + \newunit\newblock + %\usebibmacro{doi+eprint+url}% + %\newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} + + +\DeclareBibliographyDriver{inproceedings}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author/translator+others}% + \setunit{\printdelim{nametitledelim}}\newblock + \usebibmacro{title}% + \newunit\newblock + \usebibmacro{in:}% + \usebibmacro{editor}% + \newunit\newblock + \usebibmacro{maintitle+booktitle}% + \newunit\newblock + \newunit + \usebibmacro{publisher+location+date}% + \newunit\newblock + \usebibmacro{chapter+pages}% + \newunit\newblock + \iftoggle{bbx:isbn} + {\printfield{isbn}} + {}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} diff --git a/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-SEU.cbx b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-SEU.cbx new file mode 100644 index 00000000000..df8ecd3f971 --- /dev/null +++ b/Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-SEU.cbx @@ -0,0 +1,16 @@ +%% +%% --------------------------------------------------------------- +%% gb7714-SEU.bbx --- A bibliography style for SEUthesis template +%% --------------------------------------------------------------- +%% +\ProvidesFile{gb7714-SEU.cbx}[a biblatex citation style for SEUthesis] + +% +% 加载样式 +% +\RequireCitationStyle{gb7714-2015} %numeric + +\ExecuteBibliographyOptions{ + maxcitenames=3, + mincitenames=3, +} |