diff options
author | Karl Berry <karl@freefriends.org> | 2019-02-08 22:57:41 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-02-08 22:57:41 +0000 |
commit | c2f5f1c59926d4978f29940a871b9548e15f8035 (patch) | |
tree | 766edc727e8339fd20cc19e578ef270253b767e4 /Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015.bbx | |
parent | ab1383854b03b3c08a7575e33c84d2bafb533642 (diff) |
biblatex-gb7714-2015 (8feb19)
git-svn-id: svn://tug.org/texlive/trunk@49977 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015.bbx')
-rw-r--r-- | Master/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015.bbx | 255 |
1 files changed, 214 insertions, 41 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 dd3603b3d29..38970eecc52 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{2019/01/19 v1.0p} +\def\versionofgbtstyle{2019/02/07 v1.0q} \def\versionofbiblatex{\abx@version} \ProvidesFile{gb7714-2015.bbx}[\versionofgbtstyle biblatex bibliography style] \RequireBiber[3]%显式指定用biber后端 @@ -203,6 +203,73 @@ % 设置宏包选项 %===================================================================== % + % 增加一个选项,用于控制是否实现GB/T 7714-2015标准的脚注文献表 + % 20190203,v1.0p,hzz + % 原理方法:默认做patch,文献引用带圈上标数字表示,脚注中的文献用带圈非上标数字做标签 + % 当前面的脚注中已经存在当前文献,那么当前文献内容不再输出而用同(4)这样的方式 + % 需要注意的是由于小页环境和表格中的脚注本身的问题,可能会有一些问题 + \DeclareBibliographyOption{gbfootbib}[false]{% + \ifstrequal{#1}{false}{}{\execgbfootbib}} + \ExecuteBibliographyOptions{gbfootbib} + + %% + \def\execgbfootbib% + {% + %开启引用跟踪计数器,为使用\ifciteseen等测试命令 + \ExecuteBibliographyOptions{citetracker=true} + % + %利用footmisc宏包来实现脚注文献的悬挂对齐 + \AtEndPreamble{ + \@ifclassloaded{beamer}{}{ + %beamer类因为其特殊性,为避免冲突不调footmisc。 + %同时footmisc与hyperref宏包也不兼容,所以使用footmisc时会破坏脚注的超链接 + %如果要实现超链接可以将下句注释掉,这里留着主要是实现悬挂对齐。 + \PassOptionsToPackage{perpage,hang}{footmisc} + \RequirePackage{footmisc}} + + % + %使脚注标记加圈并设置数字的字体为tiny,不使用修改thefootnote的方式 + \def\@makefnmark{\hbox{\@textsuperscript{\textcircled{\tiny\@thefnmark}}}} + %做patch使得脚注内容中的脚注数字标签不上标 + \pretocmd{\@makefntext}{% + \def\@makefnmark{% + \hbox{\textcircled{\tiny\@thefnmark}}% + }% + }{}{} + } + + % + %判断当前文献是否已经引用过且是做的footfullcite(即已经作为脚注输出文献内容) + %记录首次输出时的脚注号码,用于后面再次引用该文献时的输出,比如同(4)。 + \newbibmacro*{citesavefn}{% + \ifciteseen%当被引用过为true + {\ifcsdef{sec\arabic{refsection}et\thefield{entrykey}}%当已经定义过脚注序号信息 + {\csgdef{labelsec\arabic{refsection}et\thefield{entrykey}}{% + \str@sameentry\gdef\@thefnmark{\csuse{sec\arabic{refsection}et\thefield{entrykey}}}% + \@makefnmark% + }}% + {\csxdef{sec\arabic{refsection}et\thefield{entrykey}}{\arabic{footnote}}}% + }% + {\csxdef{sec\arabic{refsection}et\thefield{entrykey}}{\arabic{footnote}}}% + } + + % + %重定义\footfullcite使完成gb7714-2015的脚注文献要求 + \DeclareCiteCommand{\footfullcite}[\mkbibfootnote]% + {\defcounter{maxnames}{\blx@maxbibnames}%局部定义maxnames和minnames计数器 + \defcounter{minnames}{\blx@minbibnames}%使footfullcite内的作者输出与正文文献表中的一致。 + \usebibmacro{prenote}}% + {\usebibmacro{citesavefn}% + \ifcsdef{labelsec\arabic{refsection}et\thefield{entrykey}}% + {\csuse{labelsec\arabic{refsection}et\thefield{entrykey}}\nopunct}% + {\usedriver{\DeclareNameAlias{sortname}{default}}{\thefield{entrytype}}}% + }% + {\multicitedelim}% + {\addcolon\usebibmacro{postnote}} + + } + + % % 增加一个选项,用于控制gb7714的使用范围,即英文文献和中文文献使用不同的样式 % 20180814,v1.0m,hzz % 原理方法: @@ -251,6 +318,7 @@ \def\str@volumecn{卷} \def\str@numbercn{册} \def\str@serialcn{第} + \def\str@sameentry{同} \AtEndOfPackage{% \iftoggle{bbx:codegbk}{% @@ -578,7 +646,7 @@ \DefineBibliographyStrings{english}{ bibliography = {\str@bibliography}, references = {\str@references}, - bytranslator= {\addcomma\ \str@bytranslator},%\addperiod,%将trans. by 改成 译 + bytranslator= {\str@bytranslator},%\addperiod,%将trans. by 改成 译\addcomma\ and = {\addcomma},%将第2和3人名间的and符号改成逗号,用\finalnamedelim命令也可以定义,参见3.9.1节 andcn = {\addcomma},%and本地化字符串的中文对应词 andincitecn = {\addcomma},%将标注中的分开,便于与文献表中的区分 @@ -646,6 +714,20 @@ % 同时有version和edition的区别,因此考虑用一种类型来输出,使用manual类型 % 7. 包括报告,学位论文在内的其它所有的类型,都做一个判断,当没有出版项时, % 且存在网址信息时,将其转换为online类型输出,否则都做为manual类型输出。 +% 8. 备选类型misc当存在网址时直接转换为online,由于howpublished域可用于描述 +% 更多的信息,因此不存在网址时,独立做一个备选格式 +% 9. 出版项主要以如下方式处理: +% (a) location+institution+date 仅用于连续出版物 +% (b)publisher+location+date 用于需要完整输出出版项的类型,比如book,collection,proceedings,in*,report +% (c)institution+location+date 用于出版项缺失时不输出的类型,包括manual,thesis,archive等其他类型 +% (d)printlist{insitution} 用于电子资源,仅输出出版者或组织,为数据映射方便,本来默认的organization域转换为用insitution输出。 +% (e) 不输出,主要用于连续出版物析出的文献 +% 10. 日期以如下方式处理: +% date 由于存在biblatex选项,因此通过选项控制,数据源为date解析数据或year +% urldate 由于存在biblatex选项,因此通过选项控制,输出到日,且用[]包围,数据源为urldate +% newsdate 用于公告日期,公开日期或新闻日期,输出到日,但无包围符号,数据源为date +% modifydate 用于更新或修改日期,输出到日,且用()包围,数据源为date或enddate或eventdate + \DeclareSourcemap{ \maps[datatype=bibtex]{% @@ -653,23 +735,25 @@ \pernottype{inbook} \pernottype{inproceedings} \pernottype{incollection} - \step[notfield=author]%当author不存在,将editor复制给author + %注意notfield在低版本biblatex中没有 + %\step[notfield=author,final]%当author不存在,将editor复制给author \step[fieldsource=editor,fieldtarget=author]%并删除editor } \map{ \pernottype{inbook} \pernottype{inproceedings} \pernottype{incollection} - \step[notfield=author]%当author不存在,将translator复制给author + %\step[notfield=author,final]%当author不存在,将translator复制给author \step[fieldsource=translator,fieldtarget=author]%并删除translator } - \map{ - \step[notfield=address]%当address和location同步 + \map{%让address和location同步,biblatex中address是location的别名 + %因此输出的时候只有location信息,但处理过程中是可以存在address的。 + %\step[notfield=address,final] \step[fieldsource=location,final] \step[fieldset=address,origfieldval] } - \map{ - \step[notfield=location]%当address和location同步 + \map{%让address和location同步 + %\step[notfield=location,final] \step[fieldsource=address,final] \step[fieldset=location,origfieldval] } @@ -778,7 +862,7 @@ \pertype{inproceedings} \pertype{conference}%兼容老的conference类型 \step[fieldset=usera, fieldvalue={C}] - \step[fieldsource=institution]%有时会把publisher和institution混淆,处理后使用institution + \step[fieldsource=institution]%有时会把publisher和institution混淆,处理后使用publisher \step[fieldset=publisher, origfieldval] \step[fieldsource=editor]%%有时会把editor和bookauthor混淆,处理后使用bookauthor \step[fieldset=bookauthor, origfieldval] @@ -792,7 +876,7 @@ \map{ \pertype{incollection} \step[fieldset=usera, fieldvalue={G}] - \step[fieldsource=institution]%有时会把publisher和institution混淆,处理后使用institution + \step[fieldsource=institution]%有时会把publisher和institution混淆,处理后使用publisher \step[fieldset=publisher, origfieldval] \step[fieldsource=editor]%%有时会把editor和bookauthor混淆,处理后使用bookauthor \step[fieldset=bookauthor, origfieldval] @@ -930,8 +1014,10 @@ \step[fieldset=language,fieldvalue={english}] \step[fieldset=langid,fieldvalue={english}] } - \map{%将非中文的语言放入userd中,以便进行多语言处理 - \step[fieldsource=language,fieldtarget=userd,final] + \map{%将一条文献的主体语言放入userd中,以便进行多语言处理 + %之所以这么说,是因为一条文献可能是混合语言的,比如作者用的是英文 + \step[fieldsource=language] + \step[fieldset=userd,origfieldval] } } } @@ -967,56 +1053,92 @@ } \map{% \pertype{report} - \step[notfield=address,final]%当address不存在则继续 + %biblatex3.7以下版本用如下方式来替代,address和location已在sourcemap中同步 + \step[fieldset=location,fieldvalue={}] + \step[fieldsource=location,notmatch=\regexp{.},final]%地址不存在且存在url那么转变为online + %3.7以上版本用notfield + %\step[notfield=address,final]%当address不存在则继续 \step[fieldsource=url,final]%地址不存在且存在url那么转变为online \step[typesource=report,typetarget=online] \step[fieldset=note,fieldvalue={report}] } \map{% \pertype{thesis} - \step[notfield=address,final]%当address不存在则继续 + %biblatex3.7以下版本用如下方式来替代,address和location已在sourcemap中同步 + \step[fieldset=location,fieldvalue={}] + \step[fieldsource=location,notmatch=\regexp{.},final]%地址不存在且存在url那么转变为online + %3.7以上版本用notfield + %\step[notfield=address,final]%当address不存在则继续 \step[fieldsource=url,final]%地址不存在且存在url那么转变为online \step[typesource=thesis,typetarget=online] } \map{% \pertype{manual} - \step[notfield=address,final]%当address不存在则继续 + %biblatex3.7以下版本用如下方式来替代,address和location已在sourcemap中同步 + \step[fieldset=location,fieldvalue={}] + \step[fieldsource=location,notmatch=\regexp{.},final]%地址不存在且存在url那么转变为online + %3.7以上版本用notfield + %\step[notfield=address,final]%当address不存在则继续 \step[fieldsource=url,final]%地址不存在且存在url那么转变为online \step[typesource=manual,typetarget=online] } \map{% \pertype{unpublished} - \step[notfield=address,final]%当address不存在则继续 + %biblatex3.7以下版本用如下方式来替代,address和location已在sourcemap中同步 + \step[fieldset=location,fieldvalue={}] + \step[fieldsource=location,notmatch=\regexp{.},final]%地址不存在且存在url那么转变为online + %3.7以上版本用notfield + %\step[notfield=address,final]%当address不存在则继续 \step[fieldsource=url,final]%地址不存在且存在url那么转变为online \step[typesource=unpublished,typetarget=online] } \map{% \pertype{database} - \step[notfield=address,final]%当address不存在则继续 + %biblatex3.7以下版本用如下方式来替代,address和location已在sourcemap中同步 + \step[fieldset=location,fieldvalue={}] + \step[fieldsource=location,notmatch=\regexp{.},final]%地址不存在且存在url那么转变为online + %3.7以上版本用notfield + %\step[notfield=address,final]%当address不存在则继续 \step[fieldsource=url,final]%地址不存在且存在url那么转变为online \step[typesource=databasetypetarget=online] } \map{% \pertype{dataset} - \step[notfield=address,final]%当address不存在则继续 + %biblatex3.7以下版本用如下方式来替代,address和location已在sourcemap中同步 + \step[fieldset=location,fieldvalue={}] + \step[fieldsource=location,notmatch=\regexp{.},final]%地址不存在且存在url那么转变为online + %3.7以上版本用notfield + %\step[notfield=address,final]%当address不存在则继续 \step[fieldsource=url,final]%地址不存在且存在url那么转变为online \step[typesource=dataset,typetarget=online] } \map{% \pertype{software} - \step[notfield=address,final]%当address不存在则继续 + %biblatex3.7以下版本用如下方式来替代,address和location已在sourcemap中同步 + \step[fieldset=location,fieldvalue={}] + \step[fieldsource=location,notmatch=\regexp{.},final]%地址不存在且存在url那么转变为online + %3.7以上版本用notfield + %\step[notfield=address,final]%当address不存在则继续 \step[fieldsource=url,final]%地址不存在且存在url那么转变为online \step[typesource=software,typetarget=online] } \map{% \pertype{map} - \step[notfield=address,final]%当address不存在则继续 + %biblatex3.7以下版本用如下方式来替代,address和location已在sourcemap中同步 + \step[fieldset=location,fieldvalue={}] + \step[fieldsource=location,notmatch=\regexp{.},final]%地址不存在且存在url那么转变为online + %3.7以上版本用notfield + %\step[notfield=address,final]%当address不存在则继续 \step[fieldsource=url,final]%地址不存在且存在url那么转变为online \step[typesource=map,typetarget=online] } \map{% \pertype{archive} - \step[notfield=address,final]%当address不存在则继续 + %biblatex3.7以下版本用如下方式来替代,address和location已在sourcemap中同步 + \step[fieldset=location,fieldvalue={}] + \step[fieldsource=location,notmatch=\regexp{.},final]%地址不存在且存在url那么转变为online + %3.7以上版本用notfield + %\step[notfield=address,final]%当address不存在则继续 \step[fieldsource=url,final]%地址不存在且存在url那么转变为online \step[typesource=archive,typetarget=online] } @@ -1089,56 +1211,92 @@ } \map{% \pertype{report} - \step[notfield=address,final]%当address不存在则继续 + %biblatex3.7以下版本用如下方式来替代,address和location已在sourcemap中同步 + \step[fieldset=location,fieldvalue={}] + \step[fieldsource=location,notmatch=\regexp{.},final]%地址不存在且存在url那么转变为online + %3.7以上版本用notfield + %\step[notfield=address,final]%当address不存在则继续 \step[fieldsource=url,final]%地址不存在且存在url那么转变为online \step[typesource=report,typetarget=online] \step[fieldset=note,fieldvalue={report}] } \map{% \pertype{thesis} - \step[notfield=address,final]%当address不存在则继续 + %biblatex3.7以下版本用如下方式来替代,address和location已在sourcemap中同步 + \step[fieldset=location,fieldvalue={}] + \step[fieldsource=location,notmatch=\regexp{.},final]%地址不存在且存在url那么转变为online + %3.7以上版本用notfield + %\step[notfield=address,final]%当address不存在则继续 \step[fieldsource=url,final]%地址不存在且存在url那么转变为online \step[typesource=thesis,typetarget=online] } \map{% \pertype{manual} - \step[notfield=address,final]%当address不存在则继续 + %biblatex3.7以下版本用如下方式来替代,address和location已在sourcemap中同步 + \step[fieldset=location,fieldvalue={}] + \step[fieldsource=location,notmatch=\regexp{.},final]%地址不存在且存在url那么转变为online + %3.7以上版本用notfield + %\step[notfield=address,final]%当address不存在则继续 \step[fieldsource=url,final]%地址不存在且存在url那么转变为online \step[typesource=manual,typetarget=online] } \map{% \pertype{unpublished} - \step[notfield=address,final]%当address不存在则继续 + %biblatex3.7以下版本用如下方式来替代,address和location已在sourcemap中同步 + \step[fieldset=location,fieldvalue={}] + \step[fieldsource=location,notmatch=\regexp{.},final]%地址不存在且存在url那么转变为online + %3.7以上版本用notfield + %\step[notfield=address,final]%当address不存在则继续 \step[fieldsource=url,final]%地址不存在且存在url那么转变为online \step[typesource=unpublished,typetarget=online] } \map{% \pertype{database} - \step[notfield=address,final]%当address不存在则继续 + %biblatex3.7以下版本用如下方式来替代,address和location已在sourcemap中同步 + \step[fieldset=location,fieldvalue={}] + \step[fieldsource=location,notmatch=\regexp{.},final]%地址不存在且存在url那么转变为online + %3.7以上版本用notfield + %\step[notfield=address,final]%当address不存在则继续 \step[fieldsource=url,final]%地址不存在且存在url那么转变为online \step[typesource=databasetypetarget=online] } \map{% \pertype{dataset} - \step[notfield=address,final]%当address不存在则继续 + %biblatex3.7以下版本用如下方式来替代,address和location已在sourcemap中同步 + \step[fieldset=location,fieldvalue={}] + \step[fieldsource=location,notmatch=\regexp{.},final]%地址不存在且存在url那么转变为online + %3.7以上版本用notfield + %\step[notfield=address,final]%当address不存在则继续 \step[fieldsource=url,final]%地址不存在且存在url那么转变为online \step[typesource=dataset,typetarget=online] } \map{% \pertype{software} - \step[notfield=address,final]%当address不存在则继续 + %biblatex3.7以下版本用如下方式来替代,address和location已在sourcemap中同步 + \step[fieldset=location,fieldvalue={}] + \step[fieldsource=location,notmatch=\regexp{.},final]%地址不存在且存在url那么转变为online + %3.7以上版本用notfield + %\step[notfield=address,final]%当address不存在则继续 \step[fieldsource=url,final]%地址不存在且存在url那么转变为online \step[typesource=software,typetarget=online] } \map{% \pertype{map} - \step[notfield=address,final]%当address不存在则继续 + %biblatex3.7以下版本用如下方式来替代,address和location已在sourcemap中同步 + \step[fieldset=location,fieldvalue={}] + \step[fieldsource=location,notmatch=\regexp{.},final]%地址不存在且存在url那么转变为online + %3.7以上版本用notfield + %\step[notfield=address,final]%当address不存在则继续 \step[fieldsource=url,final]%地址不存在且存在url那么转变为online \step[typesource=map,typetarget=online] } \map{% \pertype{archive} - \step[notfield=address,final]%当address不存在则继续 + %biblatex3.7以下版本用如下方式来替代,address和location已在sourcemap中同步 + \step[fieldset=location,fieldvalue={}] + \step[fieldsource=location,notmatch=\regexp{.},final]%地址不存在且存在url那么转变为online + %3.7以上版本用notfield + %\step[notfield=address,final]%当address不存在则继续 \step[fieldsource=url,final]%地址不存在且存在url那么转变为online \step[typesource=archive,typetarget=online] } @@ -1429,10 +1587,11 @@ %从macro*{bytranslator+othersstrg}%中可以看到当地化字符串格式的引用前的代码处理 %比如生成cotranslator等用于调用cotranslator所代表的当地化字符串 \usebibmacro{bytranslator+othersstrg}%“译”的位置换到下面来,即放到译者后面。 - \setunit*{\addspace}% + %\setunit{\addspace}% \newunit}% \usebibmacro{withothers}} + % % 修改作者数量超过限定值,做省略时的处理格式 % v1.0,20160701,hzz @@ -1444,11 +1603,16 @@ test {\ifnumequal{\value{listcount}}{\value{liststop}}} and test \ifmorenames - }{\ifnumgreater{\value{liststop}}{1} + }{\ifnumgreater{\value{liststop}}{1}% {\finalandcomma}% {}%biblatex作者要区别单作者加等的情况,这里为符合gbt7714-2015第7.2节的要求加上了逗号。 \printdelim{andothersdelim}\printdelim{strandothersdelim}% -}{}} +}{%当是译者的时候需要特殊处理:从7.2节看等,译前面加逗号,但从示例看等和译同时出现时,译前的逗号没有,比如: +%袁训来, 陈哲, 肖书海, 等. +%胡泳, 范海燕, 译. +%潘惠霞, 魏婧, 杨艳, 等译. +\ifcurrentname{translator}{\addcomma}{}% +}} % @@ -1471,11 +1635,11 @@ \iffieldequalstr{userd}{english}{\bibstring{andothers}}{}% \iffieldequalstr{userd}{french}{\bibstring{andothers}}{}% \iffieldequalstr{userd}{russian}{\bibstring{andothers}}{}% -}\space% +}% \or% - \bibstring{andotherscn}\space% + \bibstring{andotherscn}% \or% - \bibstring{andothers}\space% + \bibstring{andothers}% \fi} % @@ -1925,6 +2089,7 @@ \printtext{\blx@gbdate{}{}}%%\blx@isodate{}{}% } + % \newbibmacro*{modifydate}{%新增加一个带括号的日期,用于表示电子资源的更新和修改日期,而公告日期则按日期格式 \ifboolexpr{% test{\iffieldundef{day}} and test{\iffieldundef{endday}} and test{\iffieldundef{eventday}}% @@ -2074,7 +2239,8 @@ test{\iftoggle{iftlnine}} % 调整页码的格式,即chapter+pages格式 % \renewbibmacro*{chapter+pages}{% - \printfield{chapter}% +\iftoggle{bbx:gbstrict}{}{% + \printfield{chapter}}% \iffieldundef{pages}{}{%这里增加一个判断,当没有页码时就不输出 \setunit{\bibpagespunct}% \printfield{pages}}% @@ -2510,6 +2676,8 @@ incollection,proceedings,inproceedings]{number}{% \usebibmacro{publisher+location+date}% %\newunit\newblock %这里标点去掉 \usebibmacro{chapter+pages}% + \iffieldundef{url}{}{%当没有网址时也不输出 + \usebibmacro{modifydate}}%带括号的修改或更新日期, \usebibmacro{doi+eprint+url}%从下面移动到上面来,因为gbt2015的url需直接放在页码后面。 \newunit\newblock% \printfield{pagetotal}% @@ -2556,7 +2724,9 @@ incollection,proceedings,inproceedings]{number}{% % \usebibmacro{byeditor+others}% % \newunit \usebibmacro{note+pages}% - \iffieldequalstr{note}{news}{}{\usebibmacro{modifydate}}%带括号的修改或更新日期,当是新闻时不输出 + \iffieldequalstr{note}{news}{}{%当是新闻时不输出修改或更新日期 + \iffieldundef{url}{}{%当没有网址时也不输出 + \usebibmacro{modifydate}}}%带括号的修改或更新日期, \usebibmacro{doi+eprint+url}%从后面移上来,调整url和页码之间的位置 \newunit\newblock \iftoggle{bbx:isbn} @@ -2681,8 +2851,10 @@ incollection,proceedings,inproceedings]{number}{% %\printlist{organization}% \printlist{institution}% \newunit\newblock - %\usebibmacro{date}% - \usebibmacro{modifydate}%修改或更新日期,为带括号的时间 +\ifboolexpr{% +test{\iffieldundef{day}} and test{\iffieldundef{endday}} and test{\iffieldundef{eventday}}% +}{\usebibmacro{date}}% +{\usebibmacro{modifydate}}%修改或更新日期,为带括号的时间 \usebibmacro{url+urldate}%从下面移上来 \newunit\newblock \iftoggle{bbx:eprint} @@ -2780,7 +2952,8 @@ incollection,proceedings,inproceedings]{number}{% \usebibmacro{institution+location+date}% %\newunit\newblock \usebibmacro{chapter+pages}% - \usebibmacro{modifydate}%修改或更新日期,为带括号的时间 + \iffieldundef{url}{}{%当没有网址时也不输出修改或更新日期 + \usebibmacro{modifydate}}%修改或更新日期为带括号的时间 \usebibmacro{doi+eprint+url}% \newunit \printfield{pagetotal}% |