diff --git a/README.md b/README.md index b5fec1a..9d866d6 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Date of last change:2017-04-11 to version v1.0h +Date of last change:2017-11-21 to version v1.0i # biblatex-gb7714-2015: a biblatex style package @@ -13,9 +13,9 @@ Homepage: License: LaTeX Project Public License 1.3 or later -A biblatex implementation of the GBT7714-2015 bibliography style for Chinese users +A biblatex implementation of the GB/T7714-2015 bibliography style for Chinese users -The biblatex-gb7714-2015 package provides an implementation of the bibliography style of the GBT7714-2015 bibliography style. This implementation follows GBT7714-2015 standard, and can be used simply by loading biblatex with the appropriate option +The biblatex-gb7714-2015 package provides an implementation of the bibliography style of the GB/T7714-2015 bibliography style. This implementation follows GB/T7714-2015 standard, and can be used simply by loading biblatex with the appropriate option ## usage %for numerical sequence style @@ -42,7 +42,7 @@ The biblatex-gb7714-2015 package provides an implementation of the bibliography `perl gb7714texttobib.pl in=textfilename out=bibfilename` -A demonstration database is provided to show how to format input for the style. The biblatex-gb7714-2015 style works with texlive2014, texlive2015, texlive2016 and so on. +A demonstration database is provided to show how to format input for the style. The biblatex-gb7714-2015 style works with texlive2014, texlive2015, texlive2016, texlive2017 and so on. please see the file 'biblatex-gb7714-2015.pdf' for more information! @@ -50,10 +50,18 @@ please see the file 'biblatex-gb7714-2015.pdf' for more information! ## update history: +### date of change: 2017-11-21 to version v1.0i +* Changes to pkg code: + - "*.bbx": deal compatibility problem of author-year style for biblatex v3.8a, include labeldate->labeldateparts and DeclareSortingScheme -> DeclareSortingTemplate. + - "*.bbx": change the version judgement macro,using macro form pkg xstring. + - "*.bbx": replace the \iffieldundef{year} by \iffieldequalstr{year}{} in \newbibmacro*{modifydate}, for the year field is defined with empty string for biblatex version >3.7 after biber dealing with none date info. + + + ### date of change: 2017-04-11 to version v1.0h, the last version support texlive2015 * Changes to pkg code: - - "*.bbx": deal compatibility problem of author style for texlive2017, because the old cmd printdateextralabel with biblatex3.4 has been replaced by printlabeldateextra with biblatex3.7 in texlive2017. - - "*.bbx": change the seperator between multi-language reference text form cmd par to cmd newline for the gb7714-2015 align style + - "*.bbx": deal compatibility problem of author year style for texlive2017, because the old cmd printdateextralabel with biblatex3.4 has been replaced by printlabeldateextra with biblatex3.7 in texlive2017. + - "*.bbx": change the seperator between multi-language reference text from cmd par to cmd newline for the gb7714-2015 align style - "*.bbx": fix a flaw reported by Lee Zeping. remove the comma between journaltitle and (number) when the volume is undefined. - "*.bbx": add an option gbpub to control the publishing info. if gbpub=false, publishing info's format is the biblatex standard style, otherwise is gb7714-2015 style. The origin idea comes from Wayne08. - "*.bbx": fix a flaw reported by zjsdut@163.com. remove the dot before url when url is the only info available。 diff --git a/biblatex-gb7714-2015-beamer.pdf b/biblatex-gb7714-2015-beamer.pdf index 0406647..bb159b5 100644 Binary files a/biblatex-gb7714-2015-beamer.pdf and b/biblatex-gb7714-2015-beamer.pdf differ diff --git a/biblatex-gb7714-2015-content.tex b/biblatex-gb7714-2015-content.tex index 79879a2..b58a252 100644 --- a/biblatex-gb7714-2015-content.tex +++ b/biblatex-gb7714-2015-content.tex @@ -1,6 +1,6 @@ %------------------------------------------------------------ -\def\versionnumber{v1.0h} %版本和修改时间信息 -\def\versiondate{2017/04/11} +\def\versionnumber{v1.0i} %版本和修改时间信息 +\def\versiondate{2017/11/21} %------------------------------------------------------------ %-----------------标题和目录--------------------------------- \titleformanual{符合GB/T 7714-2015标准的biblatex参考\\ @@ -23,8 +23,8 @@ \section{概述} 样式文件的主要特点包括: \begin{enumerate} \item 实现了GB/T 7714-2015标准的完整功能,不仅包括两种编制方式下的各类型参考文献著录格式和标注格式等基本内容,还包括:双语文献格式,带页码的标注格式,作者年制下仅有年的标注格式和文献按语言集中并自动排序,两种编码制方式下责任者缺省不同处理,一些信息如页码卷期等自动解析,出版信息缺省时的自动处理并增加控制选项(gbpub)来控制是否应用这种自动处理等功能,而且增加了一个顺序编码制的标签对齐选项(align),提供右对齐、左对齐和项对齐三种方式。 - \item 实现了用户文献数据录入优化,用户在录入参考文献数据时,只需要录入文献的实际信息即可,不需要录入文献标识符和载体标识符,不需要录入language或者其它域信息用来区分中英文文献,完全实现自动中英文判断并处理。支持一些特殊的条目类型比如standard,newspaper,mastersthesis,phdthesis等。 - \item 实现了对biblatex不同版本的兼容,能够应用于biblatex3.2以前的老版本,也能用于3.3以后姓名处理方式改变后的版本。即可以与texlive2014/2015/2016配合使用,无需升级biblatex情况下安装biblatex-gb7714-2015宏包即可使用。 + \item 实现了用户文献数据录入优化,用户在录入参考文献数据时,只需要录入文献的实际信息即可,不需要录入文献标识符和载体标识符,不需要录入language或者其它域信息用来区分中英文文献,实现自动中英文判断并处理。支持一些特殊或老的条目类型比如standard,newspaper,www,mastersthesis,phdthesis等。 + \item 实现了对biblatex不同版本的兼容,能够应用于biblatex3.2以前的老版本,也能用于3.3以后姓名处理方式改变后的版本。即可以与texlive2014/2015/2016/2017配合使用,无需升级biblatex情况下安装biblatex-gb7714-2015宏包即可使用。 \item 测试了样式文件在文档类book/report/article以及beamer类下的适用性,结果表明均能满足要求。文档详细介绍了各条目类型的著录格式及其在biblatex 中对应信息域的构成,以及域信息的录入方法和一些注意点,说明了样式文件的使用方法和注意事项,并严格按照GB/T 7714-2015 标准测试了各种类型的文献。 \end{enumerate} @@ -102,7 +102,7 @@ \subsection{biblatex宏包的参考文献生成方法} \subsection{gb7714-2015样式加载方式和选项说明} \subsubsection{样式加载方式} -最小示例(\ref{code:doc:structrue})中给出了宏包和样式的基本加载方式,对于gb7714-2015样式也是类似的,当然著录样式bibstyle和标注样式citestyle相同的话可以合并为一个选项style。比如: +最小示例\ref{code:doc:structrue}中给出了宏包和样式的基本加载方式,对于gb7714-2015样式也是类似的,当然著录样式bibstyle和标注样式citestyle相同的话可以合并为一个选项style。比如: \begin{codetex}{gb7714-2015顺序编码制加载方式}{eg:gb7714numeric} \usepackage[backend=biber,style=gb7714-2015]{biblatex} @@ -234,7 +234,7 @@ \subsubsection{顺序编码/作者年制cbx样式文件的使用说明}\label{se 其中,当不指定页码时,pagescite命令默认调用参考文献的页码数据进行输出,如果需要指定页码,那么需要在第二个[]内输入页码内容。 -\qd{注意:对于多个文献一起的压缩形式,指定页码只会应用最后一个参考文献的页码,这是不对的,当然其实这种情况是不应该存在的,指定页码本来就应该具体化指某一文献的,因此使用时尽可能使用pagescite\{key1\}pagescite\{key2\}这种形式而不是pagescite\{key1,key2\}。} +\qd{注意:对于多个文献一起的压缩形式,指定页码只会应用最后一个参考文献的页码,这是不对的,当然其实这种情况本不应该存在,指定页码本来就需要具体化指某一文献的,因此使用时尽可能使用pagescite\{key1\}pagescite\{key2\}这种形式而不是pagescite\{key1,key2\}。} 作者年制的引用样式文件大体使用标准引用样式authoryear的内容。也是对cite,parencite进行了修改,将引用标签用括号括起来。为满足GB/T 7714-2015第10.2.4节的要求,增加了pagescite命令。为满足GB/T 7714-2015第10.2.1节的要求,增加了yearpagescite命令用于处理文中已有作者信息只需要年份和页码信息的情况。 @@ -424,7 +424,7 @@ \subsubsection{连续出版物/periodical} author/editor.title:subtitle或titleaddon[usera].year或date,volume(number)-endyear, endvolume(endnumber).address或location:publisher,date或year[urldate].url.doi \end{codetex} -需要注意: 因为连续出版物可能用到两个日期,两个卷,两个期,所以录入数据时需要特别处理。不需要录入endyear等信息,只需要在到year或date域录入日期,由biber自动解析,两个日期之间用/分隔。而卷和期由于可能有合订模式,合订卷期之间用/分隔,参考GB/T 7714-2015第8.8.3节,需要解析范围的卷和期,录入到volume和number域时,两个不同的值用-分隔。\bc{这里对于卷和期的解析所采用的函数利用了李志齐所编写的样式文件中的函数,特此说明,表示感谢!} +需要注意: 因为连续出版物可能用到两个日期,两个卷,两个期,所以录入数据时需要特别处理。不需要录入endyear等信息,只需要在到year或date域录入日期,由biber自动解析,两个日期之间用/分隔。而卷和期由于可能有合订模式,合订卷期之间用/分隔,参考GB/T 7714-2015第8.8.3节,而需要解析起止范围的卷和期,录入到volume和number域时,两个不同的值用-分隔。\bc{这里对于卷和期的解析所采用的函数利用了李志齐所编写的样式文件中的函数,特此说明,表示感谢! 详见bbx文件。} \subsubsection{连续出版物的析出文献/article} \begin{refentry}{}{} @@ -1248,13 +1248,15 @@ \subsection{文献表环境和打印输出} \end{enumerate} -\subsection{其它需要说明的问题} -下面的问题想到哪写到哪,没有特别的顺序: +\subsection{biblatex版本以及样式的兼容性}\label{sec:blx:compatibility} +样式首先根据biblatex版本信息进行版本判断,然后做针对性的兼容处理。 +biblatex在texlive中的版本对应关系是: +texlive2015对应biblatex3.0; +texlive2016对应biblatex3.4,从3.2版开始修改了姓名机制; +texlive2017对应biblatex3.7; +2017年底又除了biblatex3.8a版。 -\begin{enumerate} - \item 因为采用xelatex编译,所以样式文件直接采用UTF-8编码,没有考虑GBK编码。 - - \item \zhongdian{【Most Important】【注意】:texlive2015中的biblatex版本是3.0,texlive2016中biblatex的版本是3.4,新版本对于名字域打印有了较大变化(即不同版本的biblatex对于DeclareNameFormat的输入参数处理有所不同,如例\ref{eg:name:variables}所示),所以需做相应的修改,为此在biblatex中首先进行版本判断,然后根据版本不同分别进行设置。} +\zhongdian{【注意】:texlive2015中的biblatex版本是3.0,texlive2016中biblatex的版本是3.4,新版本对于名字域打印有了较大变化(即不同版本的biblatex对于DeclareNameFormat的输入参数处理有所不同,如例\ref{eg:name:variables}所示),所以需做相应的修改,为此在biblatex中首先进行版本判断,然后根据版本不同分别进行设置。} \begin{codetex}{texlive2016中biblatex3.4版Name域格式输入参数的修改}{eg:name:variables} for biblatex version 3.0 @@ -1276,7 +1278,57 @@ \subsection{其它需要说明的问题} \namepartsuffix \namepartsuffixi \end{codetex} - 相应的样式文件也需要修改,详见bbx文件内容。 + 相应的样式文件也需要修改,详见bbx文件。 + + \begin{enumerate} + \item biblatex版本判断 + + 原来是使用一个简单的字符流处理来解析版本信息,但容易出现问题。于是换成利用xstring宏包的命令来提取版本中的数字进行判断: + \begin{texlist} + %版本判断 + \providetoggle{iftexlivesix}%用于处理biblatex3.3开始改变的新的姓名机制 + \providetoggle{iftexliveseven}%用于处理biblatex3.7的兼容性 + \providetoggle{iftexliveeight}%用于处理biblatex3.8a的兼容性 + %\def\numparserta#1.#2a\relax{#1}%注意relax的重要性 + %\def\numparsertb#1.#2a\relax{#2} + %\def\numinteger{\expandafter\numparserta\abx@version\relax} + %\def\numdigital{\expandafter\numparsertb\abx@version\relax} + \StrChar{\abx@version}{3}[\numdigital] + %根据biblatex更新历史,当版本大于3.2开始,就用设置\toggletrue{iftexlivesix} + \ifnumcomp{\numdigital}{>}{2}{\toggletrue{iftexlivesix}}{\togglefalse{iftexlivesix}} + \ifnumcomp{\numdigital}{>}{6}{\toggletrue{iftexliveseven}}{\togglefalse{iftexliveseven}} + \ifnumcomp{\numdigital}{>}{7}{\toggletrue{iftexliveeight}}{\togglefalse{iftexliveseight}} + \end{texlist} + + + \item biblatex版本的一些兼容性处理 + + 宏包选项: + \begin{texlist} + firstinits=true,%for texlive2014,2015;biblatex <=3.2 + giveninits=true,%for texlive2016,2017;biblatex >=3.3 + labeldate=true,%for texlive2014,2015,2016,2017;biblatex <3.8 + labeldateparts=true,%for biblatex >=3.8a + \end{texlist} + + 命令: + \begin{texlist} + \printdateextralabel,%for texlive2014,2015,2016;biblatex <=3.4 + \printlabeldateextra,%for texlive2017;biblatex >=3.7 + \DeclareSortingScheme %for texlive2014,2015,2016,2017;biblatex <3.8 + \DeclareSortingTemplate %for biblatex >=3.8a + \end{texlist} + + \end{enumerate} + + + + +\subsection{其它需要说明的问题} +下面的问题想到哪写到哪,没有特别的顺序: + +\begin{enumerate} + \item 因为采用xelatex编译,所以样式文件直接采用UTF-8编码,没有考虑GBK编码。 \item \zhongdian{【Most Important】【注意】:当在顺序编码和作者年制的切换使用时,如果出错,可先清理一下辅助文件,清理完后,重新编译即可。} @@ -1309,10 +1361,6 @@ \subsection{其它需要说明的问题} \item 关于出版地和出版者同时缺省的情况,GB/T 7714-2015中没有给出明确的说明,但英文给出了一个例子(见GB/T 7714-2015 附录A.3)而中文没有,英文的样式是[S.l. : s.n.],这种形式本样式文件中没有给出,而直接用两者分开的形式,[S.l.] : [s.n.],事实上这里作者认为没有必要把s.l.和s.n. 合起来,不仅与缺省两者之一的情况不统一,样式处理起来也增加不必要的麻烦。 - \item cjk判断函数,详见bbx文件内容。 - - \item 范围解析函数,详见bbx文件内容。 - \item 目前符合GB/T7714-2005或GB/T7714-2015参考文献著录规则的biblatex样式有好几个实现,除了这里作者提供的之外,还有李志奇(icetea)\footnote{\url{http://bbs.ctex.org/forum.php?mod=viewthread&tid=74474}} 和沈周(szsdk)\footnote{\url{http://bbs.ctex.org/forum.php?mod=viewthread&tid=152561&extra=page\%3D1}} 分别提供的样式文件,效果是类似的,也感谢两位作者的分享! \item 本文档根据GB/T 7714-2015提供的参考文献表著录格式示例做了测试和验证,详见第\ref{sec:eg:gb77142015}节。测试系统环境为: @@ -1324,6 +1372,8 @@ \subsection{其它需要说明的问题} \item 虚拟机xp+texlive 2016,采用xelatex编译; \item Deepin linux-x64v15.3+texlive 2016,采用xelatex编译。 + + \item windows7x64+texlive 2017,采用xelatex编译; \end{itemize} \end{enumerate} @@ -1370,11 +1420,15 @@ \subsection{存在的问题} \subsection{下一步工作} \begin{enumerate} - \item 到1.0h版为止,进一步完善了样式宏包,该版本将是最后支持texlive2015的版本,以后版本的功能实现将基于最新texlive中biblatex版本,而不再考虑texlive2015中3.0版的biblatex。1.0f版完善了align 选项(用于实现GB7714 风格的著录文献表标签,texlive2016 有效),带花括号的责任者的中英文判断等功能对texlive2015 的兼容性。1.0g版增加对mastersthesis,phdthesis,www,electronic,standard,techreport,conference,newspaper等条目类型的兼容,增加了对标准样式standard.bbx中url包选项的兼容性,增加了析出文献标识符//后面的短空格以支持著录表的断行机制,增加了特殊字符处理功能并实现对texlive2015 的兼容,给出了gb7714风格参考文献著录表文本转换为bib文件的perl脚本,与gb7714-2015 样式形成闭环。 + \item 到1.0h版为止,进一步完善了样式宏包,该版本将是最后支持texlive2015的版本,以后版本的功能实现将基于最新texlive中biblatex版本,而不再考虑texlive2015中3.0版的biblatex。1.0f版完善了align 选项(用于实现GB7714 风格的著录文献表标签,texlive2016 有效),带花括号的责任者的中英文判断等功能对texlive2015 的兼容性。 + + \item 1.0g版增加对mastersthesis,phdthesis,www,electronic,standard,techreport,conference,newspaper等条目类型的兼容,增加了对标准样式standard.bbx中url包选项的兼容性,增加了析出文献标识符//后面的短空格以支持著录表的断行机制,增加了特殊字符处理功能并实现对texlive2015 的兼容,给出了gb7714风格参考文献著录表文本转换为bib文件的perl脚本,与gb7714-2015 样式形成闭环。 \item 到1.0e版为止,功能需求已经完全实现,剩下的问题可能是一些文献具有特殊信息或者特殊情况时带来的适应性问题,这需要经过大量的测试来发现问题。各位朋友如果发现什么问题,请邮件联系,作者会非常感谢! - \item 打算翻译biblatex宏包的说明文档和biber的说明文档,这个已经在进行中,完成了一部分,但因为只是业余时间做,可能最终完成的时间会比较长。如果有朋友觉得这个事情有意义,愿意一起来完成这个事情,非常欢迎,请email联系。 + \item biblatex宏包的说明文档中文版,已经由Shen wenbo和我基本完成,下一步是完善,校对,以及增加新版的内容。如果有朋友觉得这个事情有意义,愿意一起来完成这个事情,非常欢迎,请email联系。 + + %\item 打算翻译biblatex宏包的说明文档和biber的说明文档,这个已经在进行中,完成了一部分,但因为只是业余时间做,可能最终完成的时间会比较长。如果有朋友觉得这个事情有意义,愿意一起来完成这个事情,非常欢迎,请email联系。 %\item 进一步完善上一节提到的问题。 %到1.0e版功能问题已经完全解决。 @@ -1382,6 +1436,12 @@ \subsection{下一步工作} \section{更新历史} %============================ +\updateinfo[2017-11-21]{update to version 1.0i}\label{up:171121} +\begin{enumerate} +\item 针对biblatex3.8a的更新做了兼容性处理,主要是修改版本判断机制,替换新的宏包选项,替换新的排序格式命令。详见第\ref{sec:blx:compatibility}节 + +\end{enumerate} + \updateinfo[2017-04-11]{update to version 1.0h}\label{up:170411} \begin{enumerate} \item texlive2017中biblatex3.7对于authoryear样式中的date+extrayear宏有一定的修改,从原来texlive2016中的命令printdateextralabel转换到了printlabeldateextra。因此做一个修改。 @@ -1411,7 +1471,7 @@ \section{更新历史} \printfield{extrayear}}}}}% } \end{texlist} - + 当然其实这还有更简单的解决方法就是: \begin{texlist} \let\printdateextralabel=\printlabeldateextra diff --git a/biblatex-gb7714-2015.pdf b/biblatex-gb7714-2015.pdf index f45ceec..c2ea68e 100644 Binary files a/biblatex-gb7714-2015.pdf and b/biblatex-gb7714-2015.pdf differ diff --git a/biblatex-gb7714-2015ay-beamer.pdf b/biblatex-gb7714-2015ay-beamer.pdf index 6fb84fa..ca704db 100644 Binary files a/biblatex-gb7714-2015ay-beamer.pdf and b/biblatex-gb7714-2015ay-beamer.pdf differ diff --git a/biblatex-gb7714-2015ay.pdf b/biblatex-gb7714-2015ay.pdf index 56eef11..929f94d 100644 Binary files a/biblatex-gb7714-2015ay.pdf and b/biblatex-gb7714-2015ay.pdf differ diff --git a/egbibenv-gb7714-2015.pdf b/egbibenv-gb7714-2015.pdf index f799dd9..979f53b 100644 Binary files a/egbibenv-gb7714-2015.pdf and b/egbibenv-gb7714-2015.pdf differ diff --git a/egbibenv-left.pdf b/egbibenv-left.pdf index a4923ec..aa11f57 100644 Binary files a/egbibenv-left.pdf and b/egbibenv-left.pdf differ diff --git a/egbibenv-right.pdf b/egbibenv-right.pdf index da07edc..8e2bdcc 100644 Binary files a/egbibenv-right.pdf and b/egbibenv-right.pdf differ diff --git a/egspecialchar.bib b/egspecialchar.bib index d772ddf..88409a6 100644 --- a/egspecialchar.bib +++ b/egspecialchar.bib @@ -1,6 +1,6 @@ %% LaTeX2e file `egspecialchar.bib' %% generated by the `filecontents' environment -%% from source `biblatex-gb7714-2015ay' on 2017/07/04. +%% from source `biblatex-gb7714-2015' on 2017/11/21. %% @Inproceedings{ref-replace-char, Title = {Cognitive Radio and Cooperative Strategies for Power Saving in Multi-Standard Wireless Devices}, diff --git a/egtest.pdf b/egtest.pdf new file mode 100644 index 0000000..7896335 Binary files /dev/null and b/egtest.pdf differ diff --git a/egtest.tex b/egtest.tex index 3bc8ff3..51953af 100644 --- a/egtest.tex +++ b/egtest.tex @@ -1,7 +1,7 @@ \documentclass[twoside]{article} \usepackage{ctex} \usepackage{geometry} -\geometry{paperwidth=21cm,paperheight=29cm,top=1.5cm, bottom=1.5cm, left=1cm,right=1cm} +\geometry{paperwidth=21cm,paperheight=29cm,top=1.5cm, bottom=1.5cm, left=2.54cm,right=2.54cm} \usepackage{xcolor} \usepackage[CJKbookmarks,colorlinks,bookmarksnumbered=true,pdfstartview=FitH,linkcolor=blue]{hyperref} \usepackage[backend=biber,style=gb7714-2015ay]{biblatex}%align=gb7714-2015 @@ -14,7 +14,8 @@ \begin{document} - +%%%测试作者年/biblatex版本兼容性的文件 +%%%test file for author year style \section{文献表} 文献\cite{Saito2006-169-176} @@ -23,6 +24,12 @@ \section{文献表} \cite{Haemaelaeinen2002-1712-1721} \cite{Oetiker2011--} \cite{刘彻东1998-38-39} +\cite{Commonwealth--} +{ +\hyphenation{kurose-gawa} +%\hyphenpenalty=1000 +%\tolerance=500 \printbibliography%[heading=subbibintoc,title=【参考文献】] +} \end{document} \ No newline at end of file diff --git a/example.bib b/example.bib index 1e6248f..f60aed3 100644 --- a/example.bib +++ b/example.bib @@ -7,8 +7,8 @@ @Book{王夫之1845-- Author = {王夫之}, Edition = {刻本}, Publisher = {曾氏}, - Year = {1845(清同治四年)}, - Location = {金陵} + Location = {金陵}, + Year = {1845(清同治四年)} } @Book{汪昂1881--, @@ -17,8 +17,8 @@ @Book{汪昂1881-- Author = {汪昂}, Edition = {刻本}, Publisher = {老二酉堂}, - Year = {1881(清光绪七年)}, - Location = {上海} + Location = {上海}, + Year = {1881(清光绪七年)} } @Periodical{AAAS1883--, @@ -36,8 +36,8 @@ @Book{汪昂1912-- Author = {汪昂}, Edition = {石印本}, Publisher = {同文书局}, - Year = {1912}, - Location = {上海} + Location = {上海}, + Year = {1912} } @Periodical{中国地质学会1936--, @@ -176,8 +176,8 @@ @Book{IFLAI1977-- Author = {{International Federation of Library Association and Institutions}}, Edition = {3}, Publisher = {IFLA International Office for UBC}, - Year = {1977}, - Location = {London} + Location = {London}, + Year = {1977} } @Article{亚洲地质图编目组1978-194-208, @@ -245,9 +245,9 @@ @Book{顾炎武1982-- Title = {昌平山水记}, Author = {顾炎武}, Publisher = {北京古籍出版社}, - Year = {1982}, Location = {北京}, - Titleaddon = {东京考古录} + Titleaddon = {东京考古录}, + Year = {1982} } @Inbook{马克思1982-505-505, @@ -344,8 +344,8 @@ @Book{GPS1988-- Author = {昂温, G and 昂温, P S}, Publisher = {中国书籍出版社}, Translator = {陈生诤}, - Year = {1988}, - Location = {北京} + Location = {北京}, + Year = {1988} } @Standard{国家标准局信息分类编码研究所1988-59-92, @@ -390,8 +390,8 @@ @Book{PIGGOT1990-- Title = {The cataloguer's way through AACR2: from document receipt to document retrieval}, Author = {T. M. PIGGOT}, Publisher = {The Library Association}, - Year = {1990}, - Location = {London} + Location = {London}, + Year = {1990} } @Article{DESMARAIS1992-605-609, @@ -452,9 +452,9 @@ @Book{辛希孟1994-- Title = {信息技术与信息服务国际研讨会论文集}, Author = {辛希孟}, Publisher = {中国社会科学出版社}, - Year = {1994}, Location = {北京}, - Titleaddon = {A集} + Titleaddon = {A集}, + Year = {1994} } @Article{Andersen1995-42-49, @@ -641,8 +641,8 @@ @Book{赵耀东1998-- Publisher = {天下文化出版社}, Url = {http://www.ie.nthu.edu.tw/info/ie.newie.htm(Big5)}, Urldate = {1998-09-26}, - Year = {1998}, - Location = {台北} + Location = {台北}, + Year = {1998} } @Article{高光明1998-60-65, @@ -742,8 +742,8 @@ @Book{唐绪军1999-117-121 @Proceedings{中国力学学会1999--, Title = {第3届全国实验流体力学学术会议论文集}, Address = {天津}, - Year = {1999}, - Editor = {中国力学学会} + Editor = {中国力学学会}, + Year = {1999} } @Article{杨友烈1999-60-65, @@ -838,11 +838,11 @@ @Book{YUFIN2000-- Title = {Geoecology and computers}, Author = {S. A. YUFIN}, Publisher = {A. A. Balkema}, - Year = {2000}, Location = {Rotterdam}, Titleaddon = {proceedings of the Third International Conference on Advances of Computer Methods in Geotechnical and Geoenvironmental - Engineering, Moscow, Russia, February 1-4, 2000} + Engineering, Moscow, Russia, February 1-4, 2000}, + Year = {2000} } @Article{李炳穆2000-5-8, @@ -858,8 +858,8 @@ @Book{孙玉文2000-- Title = {汉语变调构词研究}, Author = {孙玉文}, Publisher = {北京大学出版社}, - Year = {2000}, - Location = {北京} + Location = {北京}, + Year = {2000} } @Article{傅刚2000--, @@ -946,8 +946,8 @@ @Book{PEEBLES2001-- Author = {PEEBLES, Jr., P Z}, Edition = {4}, Publisher = {McGraw Hill}, - Year = {2001}, - Location = {New York} + Location = {New York}, + Year = {2001} } @Book{Peebles2001-100-100, @@ -1330,8 +1330,8 @@ @Book{Miroslav2004-- Author = {Miroslav, D. L. and Dejan, V. T. and Brian, L. E.}, Publisher = {电子工业出版社}, Translator = {朱义胜 and 董辉}, - Year = {2004}, - Month = {1} + Month = {1}, + Year = {2004} } @Article{Giorgetti2005-1037-1042, @@ -1427,7 +1427,7 @@ @Article{Molisch2006-3151-3166 } @Article{Saito2006-169-176, - Title = {jadeite-bearing metagabbro in serpentinite m\'elange of the "kurosegawa belt" in Izumi Town,Yatsushiro city, kumamoto prefecture, central kyushu}, + Title = {jadeite-bearing metagabbro in serpentinite m\'elange of the ``kurosegawa belt" in Izumi Town,Yatsushiro city, kumamoto prefecture, central kyushu}, Author = {Saito, M. and Miyazaki, k.}, Journal = {bulletin of geological survey of japan}, Number = {5/6}, @@ -1449,8 +1449,8 @@ @Book{蔡敏2006-- Address = {北京}, Author = {蔡敏 and 徐慧慧 and 黄柄强}, Publisher = {人民邮电出版社}, - Year = {2006}, - Month = {1} + Month = {1}, + Year = {2006} } @Article{Nasri2007-4090-4100, @@ -1622,8 +1622,8 @@ @Book{陈希孺2009-- Address = {合肥}, Author = {陈希孺}, Publisher = {中国科学技术大学出版社}, - Year = {2009}, - Month = {2} + Month = {2}, + Year = {2009} } @Book{李云霞2009--, @@ -1772,8 +1772,8 @@ @Book{Ross2010-- Edition = {第8版}, Publisher = {人民邮电出版社}, Translator = {郑忠国 and 詹从赞}, - Year = {2010}, - Month = {4} + Month = {4}, + Year = {2010} } @Book{陈志杰2006--, @@ -1782,8 +1782,8 @@ @Book{陈志杰2006-- Author = {陈志杰 and 赵书钦 and 李树钧 and 万福永}, Edition = {第二版}, Publisher = {高等教育出版社}, - Year = {2010}, - Month = {5} + Month = {5}, + Year = {2010} } @Manual{Umeki2010--, @@ -1872,8 +1872,8 @@ @Book{胡伟2011-- Address = {北京}, Author = {胡伟}, Publisher = {清华大学出版社}, - Year = {2011}, - Month = {1} + Month = {1}, + Year = {2011} } @Manual{Oetiker2011--, @@ -1974,8 +1974,8 @@ @Proceedings{中国社会科学院台湾史研究中心2012-- Title = {台湾光复六十五周年暨抗战史实学术研讨会论文集}, Address = {北京}, Publisher = {九州出版社}, - Year = {2012}, - Editor = {中国社会科学院台湾史研究中心} + Editor = {中国社会科学院台湾史研究中心}, + Year = {2012} } @Book{埃伯哈德$ullet$蔡德勒等2012--, @@ -1984,8 +1984,8 @@ @Book{埃伯哈德$ullet$蔡德勒等2012-- Author = {埃伯哈德$\bullet$蔡德勒等}, Publisher = {科学出版社}, Translator = {李文林等}, - Year = {2012}, - Month = {1} + Month = {1}, + Year = {2012} } @Book{廖平2012--, @@ -2024,8 +2024,8 @@ @Book{胡广书2012-- Author = {胡广书}, Edition = {第三版}, Publisher = {清华大学出版社}, - Year = {2012}, - Month = {10} + Month = {10}, + Year = {2012} } @Article{Franz2013-1053-1062, @@ -2124,8 +2124,8 @@ @Book{Poisel2013-- Translator = {聂皞 and 王振华 and 陈少昌 and 吴利民}, Url = {http://www.baidu.com}, Urldate = {2013-08-01}, - Year = {2013}, - Month = {1} + Month = {1}, + Year = {2013} } @Article{王雪峥2013-249-254, @@ -2144,8 +2144,8 @@ @Book{阎毅2013-- Address = {北京}, Author = {阎毅 and 贺鹏飞}, Publisher = {电子工业出版社}, - Year = {2013}, - Month = {1} + Month = {1}, + Year = {2013} } @Article{刘裕国2013-01-12--, @@ -2171,8 +2171,8 @@ @Book{刘海洋2013-- Address = {北京}, Author = {刘海洋}, Publisher = {电子工业出版社}, - Year = {2013}, - Month = {6} + Month = {6}, + Year = {2013} } @Unpublished{包太雷2013--, @@ -2205,8 +2205,8 @@ @Proceedings{Babu2014-- Title = {Proceedings of the second international conference on soft computing for problem solving, December 28-30}, Address = {New Delhi}, Publisher = {Springer}, - Year = {2014}, - Editor = {Babu, B. V. and NAGAR, A. K. AND DEEP, K. and others} + Editor = {Babu, B. V. and NAGAR, A. K. AND DEEP, K. and others}, + Year = {2014} } @Book{同济大学数学系2014--, @@ -2214,8 +2214,8 @@ @Book{同济大学数学系2014-- Address = {北京}, Author = {同济大学数学系}, Publisher = {高等教育出版社}, - Year = {2014}, - Month = {7} + Month = {7}, + Year = {2014} } @Book{杨林2015--, @@ -2223,8 +2223,8 @@ @Book{杨林2015-- Address = {北京}, Author = {杨林 and 叶亚琴 and 方芳}, Publisher = {科学出版社}, - Year = {2015}, - Month = {1} + Month = {1}, + Year = {2015} } @Manual{Braams2015--, @@ -2389,8 +2389,8 @@ @Book{IFLAI1977b-- Author = {{International Federation of Library Association and Institutions} and {FCC} and {FBI} and {CIA}}, Edition = {3}, Publisher = {IFLA International Office for UBC}, - Year = {1977}, - Location = {London} + Location = {London}, + Year = {1977} } @Inproceedings{r27-BenHadjAlaya-FekiA.2008-1-5, diff --git a/gb7714-2015.bbx b/gb7714-2015.bbx index f9eaf10..52f3f4f 100644 --- a/gb7714-2015.bbx +++ b/gb7714-2015.bbx @@ -4,20 +4,15 @@ %% GBT7714-2015 bibliography style,numerical sequence %% Maintained by huzhenzhen %% history: -%% 2016/05/20 v1.0 -%% 2016/10/23 v1.0a -%% 2016/11/11 v1.0b -%% 2016/11/14 v1.0c -%% 2016/11/24 v1.0d -%% 2016/12/07 v1.0e -%% 2016/12/31 v1.0f -%% 2017/02/26 v1.0g -%% 2017/04/11 v1.0h +%% 2016/05/20 v1.0 2016/10/23 v1.0a 2016/11/11 v1.0b +%% 2016/11/14 v1.0c 2016/11/24 v1.0d 2016/12/07 v1.0e +%% 2017/02/26 v1.0g 2017/04/11 v1.0h +%% 2017/11/21 v1.0i %% E-mail: hzzmail@163.com %% Released under the LaTeX Project Public License v1.3c or later %% --------------------------------------------------------------- %% -\ProvidesFile{gb7714-2015.bbx}[2017/04/11 v1.0h biblatex bibliography style] +\ProvidesFile{gb7714-2015.bbx}[2017/11/21 v1.0i biblatex bibliography style] %===================================================================== @@ -33,14 +28,19 @@ %===================================================================== %增加一些功能函数 %===================================================================== -%版本判断,根据biblatex更新历史可知,版本3.3开始使用新的姓名机制 -\providetoggle{iftexlivesix} -%所以当版本大于3.2开始,就用设置\toggletrue{iftexlivesix} -\def\numparserta#1.#2\relax{#1}%注意relax的重要性 -\def\numparsertb#1.#2\relax{#2} -\def\numinteger{\expandafter\numparserta\abx@version\relax} -\def\numdigital{\expandafter\numparsertb\abx@version\relax} -\ifnumcomp{\numdigital}{>}{2}{\toggletrue{iftexlivesix}}{\togglefalse{iftexlivesix}} + %版本判断 + \providetoggle{iftexlivesix}%用于处理biblatex3.3开始改变的新的姓名机制 + \providetoggle{iftexliveseven}%用于处理biblatex3.7的兼容性 + \providetoggle{iftexliveeight}%用于处理biblatex3.8a的兼容性 + %\def\numparserta#1.#2a\relax{#1}%注意relax的重要性 + %\def\numparsertb#1.#2a\relax{#2} + %\def\numinteger{\expandafter\numparserta\abx@version\relax} + %\def\numdigital{\expandafter\numparsertb\abx@version\relax} + \StrChar{\abx@version}{3}[\numdigital] + %根据biblatex更新历史,当版本大于3.2开始,就用设置\toggletrue{iftexlivesix} + \ifnumcomp{\numdigital}{>}{2}{\toggletrue{iftexlivesix}}{\togglefalse{iftexlivesix}} + \ifnumcomp{\numdigital}{>}{6}{\toggletrue{iftexliveseven}}{\togglefalse{iftexliveseven}} + \ifnumcomp{\numdigital}{>}{7}{\toggletrue{iftexliveeight}}{\togglefalse{iftexliveeight}} %定义判断中文字符的函数,用于判断作者等信息是否由中文字符构成 %2E00-2E7F 追加标点 @@ -778,23 +778,27 @@ backrefpages = {引用页:}, \iffieldundef{day}{}{\bibrangedash\printfield{day}}}}% } + \newbibmacro*{modifydate}{%新增加一个带括号的日期,用于表示电子资源的更新和修改日期,而公告日期则按日期格式 -\iffieldundef{year}{% -\iffieldundef{endyear}{% -\iffieldundef{eventyear}{}{\printtext{\mkbibparens{\printtext{\printfield{eventyear}}% -\iffieldundef{eventmonth}{}{\bibrangedash\thefield{eventmonth}}% -\iffieldundef{eventday}{}{\bibrangedash\printfield{eventday}}}}% -}% -}{% -\iffieldundef{endyear}{}{\printtext{\mkbibparens{\printtext{\printfield{endyear}}% -\iffieldundef{endmonth}{}{\bibrangedash\thefield{endmonth}}% -\iffieldundef{endday}{}{\bibrangedash\printfield{endday}}}}% -}% -}}{% -\iffieldundef{year}{}{\printtext{\mkbibparens{\printtext{\printfield{year}}% -\iffieldundef{month}{}{\bibrangedash\thefield{month}}% -\iffieldundef{day}{}{\bibrangedash\printfield{day}}}}% -}}% + \iffieldequalstr{year}{}{%替换\iffieldundef{year},因为year总是存在,但为空 + \iffieldundef{endyear}{% + \iffieldundef{eventyear}{}{\printtext{\mkbibparens{\printtext{\printfield{eventyear}}% + \iffieldundef{eventmonth}{}{\bibrangedash\thefield{eventmonth}}% + \iffieldundef{eventday}{}{\bibrangedash\printfield{eventday}}}}% + }% + }{% + \iffieldundef{endyear}{}{\printtext{\mkbibparens{\printtext{\printfield{endyear}}% + \iffieldundef{endmonth}{}{\bibrangedash\thefield{endmonth}}% + \iffieldundef{endday}{}{\bibrangedash\printfield{endday}}}}% + }% + }% + }% + {% + \iffieldundef{year}{}{\printtext{\mkbibparens{\printtext{\printfield{year}}% + \iffieldundef{month}{}{\bibrangedash\thefield{month}}% + \iffieldundef{day}{}{\bibrangedash\printfield{day}}}}% + }% + }% }% %调整doi+eprint+url格式,源来自standard.bbx diff --git a/gb7714-2015.cbx b/gb7714-2015.cbx index 7d022f8..23a1cc0 100644 --- a/gb7714-2015.cbx +++ b/gb7714-2015.cbx @@ -4,19 +4,15 @@ %% GBT7714-2015 citation style,numerical sequence %% Maintained by huzhenzhen %% history: -%% 2016/05/20 v1.0 -%% 2016/10/23 v1.0a -%% 2016/11/11 v1.0b -%% 2016/11/14 v1.0c -%% 2016/11/24 v1.0d -%% 2016/12/07 v1.0e -%% 2017/02/26 v1.0g -%% 2017/04/11 v1.0h +%% 2016/05/20 v1.0 2016/10/23 v1.0a 2016/11/11 v1.0b +%% 2016/11/14 v1.0c 2016/11/24 v1.0d 2016/12/07 v1.0e +%% 2017/02/26 v1.0g 2017/04/11 v1.0h +%% 2017/11/21 v1.0i %% E-mail: hzzmail@163.com %% Released under the LaTeX Project Public License v1.3c or later %% --------------------------------------------------------------- %% -\ProvidesFile{gb7714-2015.cbx}[2017/04/11 v1.0h biblatex citation style] +\ProvidesFile{gb7714-2015.cbx}[2017/11/21 v1.0i biblatex citation style] \RequireCitationStyle{numeric-comp} %\RequireCitationStyle{numeric} diff --git a/gb7714-2015ay.bbx b/gb7714-2015ay.bbx index 233d8d9..7ba04f4 100644 --- a/gb7714-2015ay.bbx +++ b/gb7714-2015ay.bbx @@ -4,20 +4,15 @@ %% GBT7714-2015 bibliography style,author year sequence %% Maintained by huzhenzhen %% history: -%% 2016/05/20 v1.0 -%% 2016/10/23 v1.0a -%% 2016/11/11 v1.0b -%% 2016/11/14 v1.0c -%% 2016/11/24 v1.0d -%% 2016/12/07 v1.0e -%% 2016/12/31 v1.0f -%% 2017/02/26 v1.0g -%% 2017/04/11 v1.0h +%% 2016/05/20 v1.0 2016/10/23 v1.0a 2016/11/11 v1.0b +%% 2016/11/14 v1.0c 2016/11/24 v1.0d 2016/12/07 v1.0e +%% 2017/02/26 v1.0g 2017/04/11 v1.0h +%% 2017/11/21 v1.0i %% E-mail: hzzmail@163.com %% Released under the LaTeX Project Public License v1.3c or later %% --------------------------------------------------------------- %% -\ProvidesFile{gb7714-2015ay.bbx}[2017/04/11 v1.0h biblatex bibliography style] +\ProvidesFile{gb7714-2015ay.bbx}[2017/11/21 v1.0i biblatex bibliography style] %===================================================================== %===================================================================== @@ -31,16 +26,19 @@ %===================================================================== %增加一些功能函数 %===================================================================== -\providetoggle{iftexlivesix} -\providetoggle{iftexliveseven} -%版本判断,根据biblatex更新历史可知,版本3.3开始使用新的姓名机制 -%所以当版本大于3.2开始,就用设置\toggletrue{iftexlivesix} -\def\numparserta#1.#2\relax{#1}%注意relax的重要性 -\def\numparsertb#1.#2\relax{#2} -\def\numinteger{\expandafter\numparserta\abx@version\relax} -\def\numdigital{\expandafter\numparsertb\abx@version\relax} -\ifnumcomp{\numdigital}{>}{2}{\toggletrue{iftexlivesix}}{\togglefalse{iftexlivesix}} -\ifnumcomp{\numdigital}{>}{6}{\toggletrue{iftexliveseven}}{\togglefalse{iftexliveseven}} + %版本判断 + \providetoggle{iftexlivesix}%用于处理biblatex3.3开始改变的新的姓名机制 + \providetoggle{iftexliveseven}%用于处理biblatex3.7的兼容性 + \providetoggle{iftexliveeight}%用于处理biblatex3.8a的兼容性 + %\def\numparserta#1.#2a\relax{#1}%注意relax的重要性 + %\def\numparsertb#1.#2a\relax{#2} + %\def\numinteger{\expandafter\numparserta\abx@version\relax} + %\def\numdigital{\expandafter\numparsertb\abx@version\relax} + \StrChar{\abx@version}{3}[\numdigital] + %根据biblatex更新历史,当版本大于3.2开始,就用设置\toggletrue{iftexlivesix} + \ifnumcomp{\numdigital}{>}{2}{\toggletrue{iftexlivesix}}{\togglefalse{iftexlivesix}} + \ifnumcomp{\numdigital}{>}{6}{\toggletrue{iftexliveseven}}{\togglefalse{iftexliveseven}} + \ifnumcomp{\numdigital}{>}{7}{\toggletrue{iftexliveeight}}{\togglefalse{iftexliveeight}} %定义判断中文字符的函数,用于判断作者等信息是否由中文字符构成 %2E00-2E7F 追加标点 @@ -503,7 +501,8 @@ backrefpages = {引用页:}, %设置排序格式 %===================================================================== %排序用降序或userb域 -\DeclareSortingScheme{nyt}{ +\iftoggle{iftexliveeight}%biblatex3.8版把名称改成了 +{\DeclareSortingTemplate{nyt}{ \sort{ \field{presort} } @@ -534,6 +533,37 @@ backrefpages = {引用页:}, \literal{0000} } } +}{\DeclareSortingScheme{nyt}{ + \sort{ + \field{presort} + } + \sort[final]{ + \field{sortkey} + } + \sort{ + \field{userb} + } + \sort{%[direction=descending] + \field{sortname} + \field{author} + \field{editor} + \field{translator} + \field{sorttitle} + \field{title} + } + \sort{ + \field{sortyear} + \field{year} + } + \sort{ + \field{sorttitle} + \field{title} + } + \sort{ + \field[padside=left,padwidth=4,padchar=0]{volume} + \literal{0000} + } +}} %===================================================================== @@ -805,7 +835,7 @@ backrefpages = {引用页:}, }% \newbibmacro*{modifydate}{%新增加一个带括号的日期,用于表示表示电子资源的更新和修改日期,而公告日期安按日期格式 -\iffieldundef{year}{% +\iffieldequalstr{year}{}{%替换\iffieldundef{year},因为year总是存在,但为空 \iffieldundef{endyear}{% \iffieldundef{eventyear}{}{\printtext{\mkbibparens{\printtext{\printfield{eventyear}}% \iffieldundef{eventmonth}{}{\bibrangedash\thefield{eventmonth}}% diff --git a/gb7714-2015ay.cbx b/gb7714-2015ay.cbx index 05b2ff2..f449076 100644 --- a/gb7714-2015ay.cbx +++ b/gb7714-2015ay.cbx @@ -4,23 +4,31 @@ %% GBT7714-2015 citation style,author year sequence %% Maintained by huzhenzhen %% history: -%% 2016/05/20 v1.0 -%% 2016/10/23 v1.0a -%% 2016/11/11 v1.0b -%% 2016/11/14 v1.0c -%% 2016/11/24 v1.0d -%% 2016/12/07 v1.0e -%% 2017/02/26 v1.0g -%% 2017/04/11 v1.0h +%% 2016/05/20 v1.0 2016/10/23 v1.0a 2016/11/11 v1.0b +%% 2016/11/14 v1.0c 2016/11/24 v1.0d 2016/12/07 v1.0e +%% 2017/02/26 v1.0g 2017/04/11 v1.0h +%% 2017/11/21 v1.0i %% E-mail: hzzmail@163.com %% Released under the LaTeX Project Public License v1.3c or later %% --------------------------------------------------------------- %% -\ProvidesFile{gb7714-2015ay.cbx}[2017/04/11 v1.0h biblatex citation style] +\ProvidesFile{gb7714-2015ay.cbx}[2017/11/21 v1.0i biblatex citation style] \RequireCitationStyle{authoryear} %\RequireCitationStyle{numeric} +\iftoggle{iftexliveeight}{% +\ExecuteBibliographyOptions{ + %autocite = superscript , + %autopunct = true , + %sorting = none , + maxcitenames=1, + mincitenames=1, + uniquename=init,%因为使用了名字缩写选项,所以需要设置uniquename=init而不是full避免冲突 + labeldateparts=true, + %labeldate=true, + uniquelist=minyear, +}}{% \ExecuteBibliographyOptions{ %autocite = superscript , %autopunct = true , @@ -30,7 +38,7 @@ uniquename=init,%因为使用了名字缩写选项,所以需要设置uniquename=init而不是full避免冲突 labeldate=true, uniquelist=minyear, -} +}} %\DeclareCiteCommand{\cite}[\mkbibparens]{⟨precode⟩}{⟨loopcode⟩}{⟨sepcode⟩}{⟨postcode⟩} % diff --git a/makeall.bat b/makeall.bat index aba2a85..a3c709b 100644 --- a/makeall.bat +++ b/makeall.bat @@ -16,13 +16,13 @@ if exist *.pdf ( call makeclear -call makefileeg +call makefileegenv call makefile call makefilebeamer -call makeclear +::call makeclear if exist *.userbak ( del *.userbak /Q diff --git a/makefileeg.bat b/makefileegenv.bat similarity index 100% rename from makefileeg.bat rename to makefileegenv.bat diff --git a/makefileegtest.bat b/makefileegtest.bat new file mode 100644 index 0000000..c1ab142 --- /dev/null +++ b/makefileegtest.bat @@ -0,0 +1,13 @@ +:: Copyright (c) 2012-2016 hzz + +@echo off + + +:: compile the tex file + +xelatex.exe --synctex=-1 egtest.tex +biber egtest +xelatex.exe --synctex=-1 egtest.tex + + +