Giter Site home page Giter Site logo

hushidong / biblatex-gb7714-2015 Goto Github PK

View Code? Open in Web Editor NEW
737.0 15.0 84.0 170.71 MB

A biblatex implementation of the GB/T7714-2015 bibliography style || GB/T 7714-2015 参考文献著录和标注的biblatex样式包

TeX 92.74% Batchfile 0.73% Shell 0.07% Perl 2.51% Python 3.96%
biblatex bibliography-style package biblatex-style gbt-7714-2015 gbt-7714-2005 gbt-7714-1987

biblatex-gb7714-2015's Introduction

Date of last change: 2024-05-15 to version v1.1r

biblatex-gb7714-2015: a biblatex style package


使用入门 |==| 说明文档 |==| WIKI

Introduction

Maintainer: huzhenzhen [email protected]

Homepage: https://github.com/hushidong/biblatex-gb7714-2015

ctan-pkg: https://www.ctan.org/pkg/biblatex-gb7714-2015

License: LaTeX Project Public License 1.3c or later

A biblatex implementation of the GB/T 7714-2015 bibliography style for Chinese users

The biblatex-gb7714-2015 package provides an implementation of the bibliography style of the GB/T 7714-2015 bibliography style. This implementation follows GB/T 7714-2015 standard, and can be used simply by loading biblatex with the appropriate option

biblatex-gb7714-2015 宏包是中文参考文献著录/标注标准 GB/T 7714-2015 的 biblatex 实现。它本质上是一个样式包,在 tex 文档中配合 biblatex 宏包使用,以生成满足《GB/T 7714-2015 信息与文献 参考文献著录规则》要求的参考文献。 宏包主要提供两种编制样式: 一、顺序编码制(gb7714-2015);二、著者-出版年制(gb7714-2015ay),能够精确实现国标提出的著录和标注格式。 另外提供: 两个老版国标样式 (gb7714-2005/gb7714-2005ay、gb7714-1987/gb7714-1987ay); 两个特殊样式 (一个文献表内中英文格式不同的 gb7714-2015ms、 一个文档内顺序编码和作者年制混用的 gb7714-2015mx); 三个典型文科期刊样式 (经济学研究的 chinese-erj、社会科学的 chinese-css、管理世界的 chinese-jmw); 以及几个明显有别于国标的特殊学位论文样式 (西北农林的 gb7714-NWAFU、华中师范的 gb7714-CCNU、东南大学的 gb7714-SEU)等。 宏包除了具备 biblatex 提供的不同于传统基于 bibtex 的参考文献解决方案外,还具有如下特点:

  • 较强的兼容性。能够兼容 biblatex v2.8 以上版本;能够兼容国标样式的一些常用条目类型、数据域。

  • 较高的易用性。标注/著录格式完全由样式实现,不必为排序、多语言等问题手动处理 bib 文件;提供了丰富的标注(引用)命令,包括一些中文中习惯的命令;提供了多语言对照,多语言文献表等功能。

  • 较大的灵活性。提供丰富的选项来帮助用户进行排序调整、著录项(姓名、出版项、文献标识符、标题超链接)格式调整、文献表格式(标签对齐、标签格式、条目格式、字体、段落格式)调整、编码兼容。

  • 较好的维护性。样式代码主要是在标准样式基础上提供的中文国标解决方案,保持与标准样式一致的结构、风格和习惯,并提供详尽的注释,用户可轻松理解,并可在其基础上进一步修改以实现其它要求的样式,比如宏包附带的chinese-erj样式,就是基于本样式实现的经济学研究期刊的参考文献样式。

简单使用说明见:使用入门


Need to do:

* 注意:ms.bbx 样式引入内容时需要特别注意空格的引入
* 注意:mx.cbx 样式没有更新一些新的设置(比如 2 篇文献就压缩等),若有需要可以参考 15.cbx 和 15ay.cbx 修改。
* 应该说经过这些年的使用,很多 corner case 已经处理过了,但还是可能会存在一些,特别是 ms 和 mx 两个样式使用的少。
* special characters in all fields?
* entry without author: the delimiter between title and year?
* TEST FOR texlive 2015,2016,2017
* 标注中包围符号的定义[]、()、圆圈、方框等,有些命令没有去修改。

Applications

Related Links


Tutorial/使用入门

[//]: # "这里这种方式不适合可能主要是因为标题所导致,因此用上面的方式进行处理"

0. Package Usage/宏包加载方式

样式包配合 biblatex 使用,即在 biblatex 调用时加载样式包:
  • 顺序编码制样式 (gb7714-2015):
\usepackage[backend=biber,style=gb7714-2015]{biblatex}
  • 著者-出版年制样式 (gb7714-2015ay):
\usepackage[backend=biber,style=gb7714-2015ay]{biblatex}
  • 同一文献表中不同语言区分不同著录格式的样式 (gb7714-2015ms):
% 设置 gbstyle=false,中文文献使用 GB/T 7714-2015 著录格式,而其它语言文献使用 biblatex 标准样式
\usepackage[backend=biber,style=gb7714-2015ms,gbstyle=false]{biblatex}
  • 同一文档中不同文献分节区分不同著录格式的样式 (gb7714-2015mx):
% gb7714-2015mx 默认使用顺序编码制样式
\usepackage[backend=biber,style=gb7714-2015mx]{biblatex}
% 如需在某一参考文件分节使用著者年份制样式,比如第 2 个 refsection 中使用时,则在导言区设置:
\setaystylesection{2}
  • 标注(引用)样式和著录样式区分使用:
\usepackage[backend=biber,citestyle=gb7714-2015,bibstyle=gb7714-2015ay]{biblatex}

或(类似的方式均可)

\usepackage[backend=biber,citestyle=gb7714-2015ay,bibstyle=gb7714-2015]{biblatex}
  • 宏包选项的使用:
% 设置 gbalign 选项以改变文献表序号标签对齐方式,
% 设置 gbpub=false 取消缺省出版项自填补信息,比如:
\usepackage[backend=biber,style=gb7714-2015,gbalign=gb7714-2015,gbpub=false]{biblatex}

更多宏包选项的说明见:biblatex-gb7714-2015.pdf

宏包加载的完整文档示例见:tex 文档一般结构

1. TeX source file/tex文档一般结构

注意其中加载 biblatex 宏包的代码:
\documentclass{article} % 文档类
% 导言区开始:
\usepackage{ctex} % 加载 ctex 宏包,中文支持

\usepackage{geometry} % 加载 geometry 宏包,定义版面

\usepackage[colorlinks=true,pdfstartview=FitH,%
linkcolor=blue,anchorcolor=violet,citecolor=magenta]{hyperref} % 加载 hyperref 宏包,使用超链接

\usepackage[backend=biber,bibstyle=gb7714-2015,%nature,% 加载 biblatex 宏包,使用参考文献
citestyle=gb7714-2015%,backref=true % 其中后端 backend 使用 biber
]{biblatex} % 标注(引用)样式 citestyle,著录样式 bibstyle 都采用 gb7714-2015 样式

\usepackage{filecontents}
\begin{filecontents}{egbibdata.bib}
@Book{Peebles2001-100-100,
  Title                    = {Probability, random variable, and random signal Principles and \LaTeX{}},
  Address                  = {New York},
  Author                   = {von Peebles, Jr., P. Z.},
  Edition                  = {4},
  Pages                    = {100},
  Publisher                = {McGraw-Hill},
  Year                     = {2001}
}

@Book{蔡敏2006--,
  Title                    = {UML基础和Rose建模教程},
  Address                  = {北京},
  Author                   = {蔡敏 and 徐慧慧 and 黄柄强},
  Publisher                = {人民邮电出版社},
  Year                     = {2006},
  Month                    = {1}
}
\end{filecontents}

\addbibresource[location=local]{egbibdata.bib}%biblatex宏包的参考文献数据源加载方式

\begin{document} % 正文区开始:

% 正文内容,引用参考文献

一、基本用法

见文献\cite{Peebles2001-100-100}\\
见文献\parencite{Peebles2001-100-100}\\
见文献\citet{Peebles2001-100-100}\\
见文献\citep{Peebles2001-100-100}\\


二、详细用法

1. 不带页码的引用(顺序编码制上标,方括号包围;作者年制行内,括号包围):\\
	见文献\cite{Peebles2001-100-100}\\
	见文献\upcite{Peebles2001-100-100}\\
	见文献\supercite{Peebles2001-100-100}

2. 不带页码的引用(顺序编码制非上标,方括号包围;作者年制行内,括号包围):\\
	见文献\parencite{Peebles2001-100-100}\\
	见文献\citep{Peebles2001-100-100}

3. 带页码的引用(标准命令,默认样式; 增加命令,GB/T 7714-2015样式):\\
	见文献\cite[见][49页]{蔡敏2006--}\\
	见文献\parencite[见][49页]{Peebles2001-100-100}\\
	见文献\pagescite{Peebles2001-100-100}\\
	见文献\pagescite[201-301]{Peebles2001-100-100}

4. 顺序编码制中同时输出作者和顺序编码标签,比如:\\\citet{蔡敏2006--}(顺序编码标签上标)\\\authornumcite{蔡敏2006--}\\\textcite{蔡敏2006--} (顺序编码标签不上标)
	见\citeauthor{蔡敏2006--}\cite{蔡敏2006--}\\

5. 作者年制文中已有作者还需要年份和页码(顺序编码制与pagescite作用相同,作者年制年份行内页码上标):\\
	见蔡敏\yearpagescite[][205]{蔡敏2006--}和Peebles\yearpagescite[][15]{Peebles2001-100-100}

6. 作者年制文中已有作者只需要年份(顺序编码制与pagescite作用相同,作者年制年份行内):\\
	见赵耀东\yearcite{蔡敏2006--}\\
	见赵耀东(\cite*{蔡敏2006--})\\
	见赵耀东(\citeyear{蔡敏2006--})

7. 作者年制中由标注命令给出作者年份信息,作者以主语方式作为正文内容:\\\cite{蔡敏2006--}\\\parencite{蔡敏2006--}\\\textcite{蔡敏2006--}\\\citet{蔡敏2006--}\\\citep{蔡敏2006--}\\

8. 在页脚中引用和打印文献表:\\
	见文献\footnote{在脚注中引用\footcite{蔡敏2006--}}\\
	见文献\footfullcite{蔡敏2006--}


% 打印参考文献表
\printbibliography[heading=bibliography,title=参考文献]
\end{document}

2. Compile method/文档编译方式

xelatex jobname.tex
biber jobname
xelatex jobname.tex
xelatex jobname.tex

或者

latexmk -xelatex jobname.tex

编译引擎使用 lualatex 也是可以的,只要该引擎编译时 ctex 宏包能够正确支持中文。

3. Recommended Environment/推荐使用环境

  • TeX Live + WinEdt
  • TeX Live + TeXstudio
  • TeX Live 及其它发行版安装见安装指南

4. Common Questions/常见问题

4.1 Installation and Use/安装和使用

  • 怎么利用biblatex生成国标GB/T 7714-2015格式的参考文献表?

(1)在导言区加载biblatex宏包,并使用gb7714-2015样式:

\usepackage[backend=biber,style=gb7714-2015]{biblatex}

(2)正文中引用参考文献:

见文献 \cite{referencbibtexkey}

(3)在需要的地方打印参考文献表:

\printbibliography

更直接的例子见前述的 tex 源文档

  • 请问我应该怎么安装和更新 biblatex-gb7714-2015 宏包?

biblatex-gb7714-2015 宏包是基于 biblatex 的样式宏包,目前 TeX Live,MiKTeX都已收录,因此可以直接使用,一般不需要安装。

如果使用时,系统提示找不 gb7714-2015.bbx 或 gb7714-2015ay.bbx 文件的错误,说明当前 TeX 系统未安装 biblatex-gb7714-2015 样式包,这时需要安装它。

最简单的方法是从本项目源码中下载 gb7714-2015.bbx、gb7714-2015ay.bbx、gb7714-2015.cbx、gb7714-2015ay.cbx 四个文件放到你要编译的主文档所在目录,如果需要使用 gbk 编码,则还需复制 gb7714-2015-gbk.def 文件。对于已经安装的用户需要更新到最新版,也可以下载这些文件替换系统已经安装的文件。

  • 请问使用时 biblatex-gb7714-2015 宏包时出现错误“ Package xkeyval Error: gb****** ' undefined in families blx@opt@pre'. [\blx@processoptions] ”?

因为宏包的功能不断增加和完善,当在 tex 源文档中,使用新版中的一些选项时,而系统中的 biblatex-gb7714-2015 宏包是旧版时,就会出现gb****选项未定义的错误。解决方法就是更新 biblatex-gb7714-2015 宏包。更新方法见上一个问题。

  • 为什么我之前使用样式style=caspervector进行编译没有问题,换成style=gb7714-2015后,编译就出现错误?

可能有三个原因:

(1) 辅助文件没有清理导致,当采用 caspervector 样式时编译产生的辅助文件中可能带有该样式的一些特有信息,由此产生一些不兼容。因此需要的操作是,清除辅助文件,然后再进行编译。清除命令为 (下面的命令是 Windows 下的,linux 下的是类似的只需把删除命令换成rm -f):

del /q *.aux *.bbl *.blg *.log *.out *.toc *.bcf *.xml *.synctex *.nlo *.nls *.bak *.ind *.idx *.ilg *.lof *.lot *.ent-x *.tmp *.ltx *.los *.lol *.loc *.listing *.gz *.synctex(busy) *.nav *.snm *.vrb *.fls *.xdv *.fdb_latexmk

(2) biblatex-gb7714-2015 版本过于陈旧,旧版本对于一些特殊情况可能考虑不全面。因此需要的操作是更新 biblatex-gb7714-2015,方法见上一个问题。

(3) 编译命令问题,通常情况下 tex 文档和 bib 文档是 utf8 编码的,因此最好采用 xelatex 编译,而不用 pdflatex。因此如果编译时用 pdflatex 出现错误,请换成 xelatex。

  • 为什么我编译文档后没有出现参考文献表?

当编译过程出现错误时,那么检查错误的原因,并解决它。 当编译过程没有出现错误,那么很有可能是没有采用正确的命令进行文献编译,比如采用了传统的 bibtex 而不是 biber。那么采用正确的编译命令重新编译即可:

xelatex jobname.tex
biber jobname
xelatex jobname.tex
  • 使用 biblatex 时运行简单示例也出现错误,查看 biber 输出结果似乎不正常,这种情况怎么解决?

由于 biber 在第一次运行时会在缓存文件夹下创建一些二进制运行文件,如果这些文件被破坏,那么 biber 运行结果会出现莫名其妙的错误。比如: biber 运行一半就结束了,log 信息如下所示:

INFO - This is Biber 2.16
INFO - Logfile is 'thuthesis-example.blg'
INFO - Reading 'thuthesis-example.bcf'
INFO - Found 34 citekeys in bib section 0
INFO - Processing section 0
INFO - Looking for bibtex format file 'ref/refs.bib' for section 0
INFO - LaTeX decoding ...
INFO - Found BibTeX data source 'ref/refs.bib'

这次运行中只是找到了 bib 文件,并没有下一步的处理,显然是存在问题的。

因此如果出现这种情况,可以手动删除缓存文件夹,让 biber 重新创建。这些缓存文件夹名字通常为:

par-<hex_encoded_username>/cache-*
par-<hex_encoded_username>\cache-*

在不同的系统下面,缓存文件夹的位置是不同的,可能的位置包括:

/var/folders/*/*/*/ (OSX, local GUI login shell)
/var/tmp/ (OSX (remote ssh login shell), Unix)
/tmp/ (Linux)
C:\Documents and Settings\<username>\Local Settings\Temp (Windows XP/Cyg- win)
C:\Windows\Temp (Windows)
C:\Users\<username>\AppData\Local\Temp (Windows 7/8)

也可以从运行得到的 .blg 文件或者命令 biber --cache 来找到缓存文件夹。

删除缓存文件夹操作,在 Linux 和 Mac 下可以使用如下命令操作:

rm -rf `biber --cache`

在 Windows 下,那么其实随便用个清理软件把临时文件夹清理一下就行。直接点就是找到par-<hex_encoded_username>/cache-*缓存文件夹然后删除它。

  • 为什么利用 ctex2.9 套装进行编译时,出现错误?

由于 ctex2.9 套装多年未更新,其中的 biblatex 宏包过于陈旧,所以需要更新 biblatex。

  • 请问除了利用 xelatex 进行编译外,能不能用 pdflatex 进行编译?

能用 pdflatex 进行编译。但要注意的是因为某些样式比如 authoryear 等使用了 xstring 宏包中的一些命令,所以会产生错误,但 numeric 类样式通常没有问题。这一问题在 biblatex 更新到 3.12 版本后取消 xstring 宏包后得以解决。

中文用户需要注意一些编码的问题:

utf-8 编码的文档,采用 xelatex 编译没有任何注意事项,但使用 pdflatex 编译时,需要给 ctex 宏包加载 UTF8 选项,比如 \usepackage[UTF8]{ctex} 或者在文档类加载时给出也可以比如\documentclass[[UTF8]{article},同时引用文献时使用的引用关键词应使用英文。

当文档使用其他编码时,xelatex 编译通常需要指定一个文档编码,比如 Windows 环境下的 GB2312 编码的文档需要指定 \XeTeXinputencoding "GBK",否则显示乱码。使用 pdflatex 进行编译,如果 biblatex 不能正确的处理编码问题,那么需要为其明确的指定 texencoding 和 bibencoding 选项。比如 Windows 环境下的 GB2312 编码的文档,需要指定 \usepackge[texencoding=GBK]{biblatex}

  • 请问要给 biblatex-gb7714-2015 设置一些选项,但模板已经将 biblatex 调用写死且不方便修改,该如何处理?

可以使用 \PassOptionsToPackage 命令来实现。,比如将 gbnamefmt=lowercase 选项传递给 biblatex,那么可以使用如下命令:

\PassOptionsToPackage{gbnamefmt=lowercase}{biblatex}

需要注意的是要使该命令生效,这条命令需要在调用 biblatex 之前出现,可以放到导言区调用 biblatex 之前,也可以放到文档类调用之前 (即 \documentclass 命令之前),比如:

\PassOptionsToPackage{gbpub=false}{biblatex}

\documentclass[twoside]{article}
\usepackage{ctex}
\usepackage[backend=biber,style=gb7714-2015,gbalign=center]{biblatex}
  • 请问使用 backref=true 选项后,某个反向超链接总是链接到封面页是怎么回事?

对页码进行正确超链接需要一个前提是,当前链接的页码是唯一的。当有两页具有相同的页码时,超链接总是链接到第一各具有该页码的页面上。比如封面页页码是 1,正文第一页页码也是 1,那么到正文第一页的反向超链接总会链接到封面页上。解决该问题就是要解决页码的唯一性问题。当页码的表示形式不是同一种时,那么也会得到正确的区分。比如封面页用罗马字母I表示,而正文第一页用阿拉伯数字1表示,那么就能得到正确的反向超链接。类似于:

\pagenumbering{roman}
\title{title}
\maketitle
\clearpage

\pagenumbering{arabic}
\section{文献表}
  • 我希望参考文献表中的文献不是按引用顺序而是以文献作者的字母顺序排序,怎么实现?

一般情况下文献表是按引用顺序进行排列,标签是顺序的数字,这种方式称为顺序编码制。 如果要以文献作者字母顺序排列,那么可以换一种编制方式,称为作者年制:

\usepackage[backend=biber,style=gb7714-2015ay]{biblatex}

如果要求使用顺序编码制文献表,又要以文献作者字母顺序排列,那么可以增加排序选项 sorting=nyt,意为按照姓名、年份、标题的字母顺序进行排序:

\usepackage[backend=biber,style=gb7714-2015,sorting=nyt]{biblatex}
  • 作者年制中英文文献能按字母顺序排列,那么中文文献能否以拼音或者笔画进行排序呢?

能,有两种方式实现:

(1)通过编译时给 biber 设置选项来实现:

% 按拼音排序,biber 命令
biber -l zh__pinyin jobname
% 按笔画排序,biber 命令
biber -l zh__stroke jobname

(2)通过增加 biblatex 选项来实现(此时 biber 编译无需另加选项),比如:

\usepackage[backend=biber,style=gb7714-2015ay,sortlocale=zh__pinyin]{biblatex}
  • 作者年制参考文献表目前的排序时升序排列,能不能改成降序排序?

能,通过修改 sorting 选项实现:

\usepackage[backend=biber,style=gb7714-2015ay,sorting=gbnytd]{biblatex}

可用的选项值包括:

nty 按照姓名、标题、年份排序。
nyt 按照姓名、年份、标题排序。
nyvt 按照姓名、年份、卷数、标题排序。
anyt 按照字母标签、姓名、年份、标题排序。
anyvt 按照字母标签、姓名、年份、卷数、标题排序。
ynt 按照年份、姓名、标题排序。
ydnt 按照年份(降序)、姓名、标题排序。
none 不进行排序。所有的条目按照引用顺序处理。
gb7714-2015 以语言、作者、年份、标题、升序排列
gbnytd 以语言、作者、年份、标题、降序排列
gbynta 以语言、年份、作者、标题、升序排列
gbyntd 以语言、年份、作者、标题、降序排列
  • 如果我还希望顺序编码的文献著录表以拼音排序,请问该怎么操作?

顺序编码文献著录表默认是按引用顺序排序,但可以通过设置 sorting 选项进行调整,比如 sorting=nyt 表示按作者姓名年份以及文献标题进行排序。要使中文能按拼音排序,可以设置本地化排序调整方案,即 sortlocale 选项,比如:

\usepackage[backend=biber,citestyle=gb7714-2015ay,bibstyle=gb7714-2015,sorting=nyt,sortlocale=zh__pinyin]{biblatex}
  • 我希望文献表以阿拉伯数字编号,而正文中的引用标签使用作者和年份标注而不是数字,请问我该如何处理?

可以设置不同的标注和著录样式,比如标注样式用作者年制,而著录样式用顺序编码制,比如:

\usepackage[backend=biber,citestyle=gb7714-2015ay,bibstyle=gb7714-2015]{biblatex}

但这种情况下,文献表中的年份信息是在出版项里面的,如果要提前到作者后面,可以使用如下方式:

\usepackage[backend=biber,style=gb7714-2015ay,gbgalign=right]{biblatex}

如果要让年份信息既出现在作者后面又出现在出版项里面,那么还可以增加 mergedate 选项进行控制:

\usepackage[backend=biber,style=gb7714-2015ay,gbgalign=right,mergedate=false]{biblatex}

这种情况下,直接用 gb7714-2015ay 下的 gbgalign 选项来生成数字标签的文献表,而且可以使用 right/left/center/gb7714-2015 等不同的选项值来实现不同对齐形式的标签。

反过来如果要在文中引用是数字标签,而文献表是无数字标签的样式,那么也可以使用下面两种方式:

\usepackage[backend=biber,style=gb7714-2015,gbalign=gb7714-2015ay]{biblatex}

这种情况下,文献表中的年份信息是在出版项里面的,如果要提前到作者后面,则使用:

\usepackage[backend=biber,citestyle=gb7714-2015,bibstyle=gb7714-2015ay]{biblatex}

类似的也可以使用 mergedate 选项来控制年份的显示情况:

\usepackage[backend=biber,citestyle=gb7714-2015,bibstyle=gb7714-2015ay,mergedate=false]{biblatex}

参见 issue: 参考文献的顺序, issue90

  • 请问如果参考文献中存在一些特殊字符比如 & 或者一些特殊命令比如 \LaTeX{} 等,是不是会出现问题?

通常不会出现问题,直接输入即可,当出现问题时可以手动调整比如修改为 \&{\LaTeX{}}

  • 如果希望在参考文献中直接使用一些 unicode 字符比如希腊字母等而不想用数学环境中的命令,请问该怎么处理?

直接显示希腊字母等 unicode 字符需要字体的支持,比如 CMU Serif 等,可以在整个文档全局使用该字体,也可以仅在文献表中使用该字体,比如:

{
\newcommand{\ftcmu}{\fontspec{CMU Serif}\selectfont}
\renewcommand{\bibfont}{\ftcmu} % 设置英文字体不影响中文字体
\printbibliography
}

当然字体设置需要 fontspec 宏包的支持。

  • 如何修改参考文献文献表的垂直间距(竖直间距)?

设置如下尺寸即可

% 间距的控制
\setlength{\bibitemsep}{0ex}
\setlength{\bibnamesep}{0ex}
\setlength{\bibinitsep}{0ex}

其中 itemsep 设置各条文献之间的间隔,一般够用,后面两个常在西文中使用。具体意义参考 biblatex-zh-cn

  • 如何修参考文献表的缩进?

对于著者-出版年制文献表,设置如下尺寸即可:

% 文献表中各条文献的缩进控制
\setlength{\bibitemindent}{0em} % bibitemindent 表示一条文献中第一行相对后面各行的缩进
\setlength{\bibhang}{0pt} % 著者-出版年制中 bibhang 表示的各行起始位置到页边的距离     

对于顺序编码制文献表,可以采用如下方法:

由于顺序编码制存在数字标签,且其宽度与参考文献数量相关的,在 biblatex 中这个宽度是一个动态变量,不是提前设定的,而是在文献表生成时给出,所以设定缩进需要更复杂的操作。

对于采用 list 环境的文献表,即设置 gbalign=left、right、center 时,那么需要修改文献表环境来设定缩进,比如:

% 调整顺序标签与文献内容的间距
\setlength{\biblabelsep}{2mm}
% 修改对齐环境-使不缩进
\defbibenvironment{bibliography}
  {\list
     {\printtext[labelnumberwidth]{%
        \printfield{labelprefix}%
        \printfield{labelnumber}}}
     {% 这里是所做的调整,通过设置 \bibitemindent,\bibhang 调整缩进
     \addtolength{\bibitemindent}{\labelnumberwidth}%
     \addtolength{\bibitemindent}{\biblabelsep}%
     \addtolength{\bibhang}{-\labelnumberwidth} %
     \addtolength{\bibhang}{-\biblabelsep}%
     % 以下是默认的设置
     \setlength{\labelwidth}{\labelnumberwidth}%
     \setlength{\labelsep}{\biblabelsep}%
     \setlength{\leftmargin}{\bibhang}%
     \addtolength{\leftmargin}{\labelnumberwidth}%
     \setlength{\itemindent}{\bibitemindent}%
     \setlength{\itemsep}{\bibitemsep}%
     \setlength{\parsep}{\bibparsep}}%
     \renewcommand*{\makelabel}[1]{\hss##1}}
  {\endlist}
  {\item}

对于不采用 list 环境的文献表,即设置 gbalign=gb7714-2015 时,可以采用如下设定:

% 调整顺序标签与文献内容的间距
\setlength{\biblabelsep}{2mm}
% 修改对齐环境-使不缩进
\renewcommand{\itemcmd}{%
\settowidth{\lengthid}{\mkgbnumlabel{\printfield{labelnumber}}}
%% 这里是所做的调整,以下两句通过调整 \lengthid 来调整缩进
\setlength{\lengthid}{0pt}
\addtolength{\lengthid}{-\biblabelsep}
% 如下是默认设置
\addtolength{\lengthid}{\biblabelsep}
\setlength{\lengthlw}{\textwidth}
\addtolength{\lengthlw}{-\lengthid}
\addvspace{\bibitemsep} % 恢复 \bibitemsep 的作用
%\parshape 2 0em \textwidth \lengthid \lengthlw
\hangindent\lengthid
\mkgbnumlabel{\printfield{labelnumber}}%
\hspace{\biblabelsep}}

示例见:issue

  • 如何修改参考文献表的字体字号?

通过修改如下命令实现

% 字体的控制: \textit, sl, emph-楷体, \textbf, sf-黑体, \texttt-仿宋, \textsc, md, up-宋体
% 全局字体
\renewcommand{\bibfont}{\zihao{-5}}%\fangsong
% 题名字体
\renewcommand{\bibauthorfont}{\bfseries\color{teal}}%
\renewcommand{\bibtitlefont}{\ttfamily\color{blue}}%
\renewcommand{\bibpubfont}{\itshape\color{violet}}%
% url 和 doi 字体
\def\UrlFont{\ttfamily} %\urlstyle{sf} %\def\UrlFont{\bfseries}

  • 我习惯用传统的 bst 文件来生成参考文献,有没有 GB/T 7714-2015 标准的实现版本?

GB/T 7714-2015 标准实现的 bst 版本,已经由 zepinglee 开发完毕,直接使用即可。

  • 我在使用过程中遇到了一些无法理解和无法解决的问题,怎么办?

请邮件联系 [email protected] 或在项目内发 issue 提问即可。

  • 注意帮助的文档的查询顺序?

一般用户的话查:biblatex-gb7714-2015.pdf,biblatex-solution-to-latex-bibliography.pdf,biblatex-zh-cn.PDF。 宏包作者的话查:gb7714-2015*.C/BBX,biblatex.PDF,numeric/authoryear.c/BBX,standard.bbx,biblatex.def,biblatex.sty,english.lbx 注意别忘了 lbx 文件。

4.2 Bibliography Format/文献表著录格式

  • 请问可以在参考文献表中实现类似于 word 那样的与文献内容等间距的标签对齐格式么?

可以,latex 的列表通常用 list 来实现,因此一般列表的内容都是对齐的, 此时如果标签右对齐的,那么标签和内容等间距,但标签左侧是不对齐的,此时对应的选项为:gbalign=right。 如果标签是左对齐的,那么标签和内容的间距不相等,此时对应的选项为:gbalign=left。 如果标签是中间对齐的,那么标签的两侧的[]是对齐的,数字标签处于其中间,此时对应的选项为:gbalign=center。 如果要求标签左侧对齐,且标签与内容等间距,则必须放弃使用list,这种方式在本宏包中称为项对齐,对应选项为 gbalign=gb7714-2015, 这是 biblatex-7714-2015 的顺序编码制样式为项对齐设计了专门环境达成的,其使用方式很简单,加上响应的选项即可:

\usepackage[backend=biber,bibstyle=gb7714-2015,gbalign=gb7714-2015]{biblatex}
  • 如果不希望在参考文献表中出现类似“出版地不详”“出版者不详”等信息时,请问该怎么处理?

设置选项 gbpub 可以实现,当 gbpub=false 时,biblatex-gb7714-2015 宏包会放弃国标的要求,不使用“出版地不详”等补充信息:

\usepackage[backend=biber,bibstyle=gb7714-2015,gbpub=false]{biblatex}
  • 我觉得文献表中英文作者全部用大写不好看,请问能换一种大小写方式么?

能,通过设置 gbnamefmt 可以实现,默认情况下 gbnamefmt=uppercase,作者姓名字母全部大写。 当设置 gbnamefmt=lowercase 时,biblatex-gb7714-2015 宏包对于 bib 文件中的作者姓名的大小写不做改变, 这时可以在 bib 文件中手动设置想要的大小写方式。 当要实现类似 ZHAO Yu-xin 这样的拼音方式,则可以设置 gbnamefmt=pinyin:

\usepackage[backend=biber,bibstyle=gb7714-2015,gbnamefmt=lowercase]{biblatex}
  • 如果不希望在参考文献表中出现类似“[M]”“[J]”等文献类型标识符时,请问该怎么处理?

可通过设置选项 gbtype=false 实现:

\usepackage[backend=biber,bibstyle=gb7714-2015,gbtype=false]{biblatex}
  • 如果不希望在参考文献表中出现网址信息时,请问该怎么处理?

可通过设置选项 url=false 实现:

\usepackage[backend=biber,bibstyle=gb7714-2015,url=false]{biblatex}
  • 如果不希望在参考文献表中出现 DOI 信息时,请问该怎么处理?

可通过设置选项 doi=false 实现:

\usepackage[backend=biber,bibstyle=gb7714-2015,doi=false]{biblatex}
  • 如果对当前文献中的 url 或 doi 显示效果(包括间距和断行)不满意,能否进行调整?

能,可以通过设置三个计数器的值来调整,取值范围 0 到 9999,计数器的值越大则越容易在相应的内容后断行:

\setcounter{biburlnumpenalty}{100} % 大于 0 允许在数字后面断行
\setcounter{biburlucpenalty}{100}  % 大于 0 允许在大写字母后面断行
\setcounter{biburllcpenalty}{100}  % 大于 0 允许在小写字母后面断行
  • 中英文混排,有些英文断行不佳,导致行溢出,怎么解决?

biblatex 的参考文献表的换行是由 tex 的断行机制决定的,处理行(盒子)溢出就要用 tex 的方式处理:

直接使用 \sloppy 命令

{
\sloppy
\printbibliography[heading=subbibintoc,title=【参考文献】]
}

或者自己设置具体断行相关的参数

 {
 %\hyphenation{Proce-edings}
 \hyphenpenalty=5000 % 断词阈值, 值越大越不容易出现断词
 \tolerance=500      % 丑度, 10000 为最大无溢出盒子, 参考 the TeXbook 第 6 章
 \hbadness=100       % 如果丑度超过 hbadness 这一阀值, 那么就会发出警告
 \printbibliography[heading=subbibintoc,title=【参考文献】]
}

当然如果不想这么设置,可以手动的修改参考文献条目的内容,在需要换行的内容前加上-符号。 见:#89

  • 参考文献表的每一页的页面底部不对齐,怎么处理?

通常是由一条参考文献内部不分页导致的,默认情况下希望一条参考文献条件放在一个页面内,所以在页面底部的文献可能由于放不下跑到下一页。 这种情况可以通过调整段内的分页阈值改变,即使得一条参考文献(即一个段内)更容易分页即可:

{
  \interlinepenalty=5000  % 分页阈值,越小越容易分页
 \printbibliography[heading=subbibintoc,title=【参考文献】]
}  

  • 当参考文献没有作者时,希望用佚名或Anon代替作者时,请问该怎么处理?

可通过设置选项 gbnoauthor=true 实现,注意该处理主要用在作者年制中:

\usepackage[backend=biber,bibstyle=gb7714-2015,gbnoauthor=true]{biblatex}
  • 如果希望参考文献表中文献作者数量超过国标规定的 3 个时,请问该怎么处理?

可通过设置选项 maxbibnamesminbibnames 实现,比如下面的设置用于显示 5 个作者:

\usepackage[backend=biber,bibstyle=gb7714-2015,maxbibnames=5,minbibnames=5]{biblatex}
  • 请问如何将作者之间的分隔符调整为 and 而不是用逗号?

可以通过重设两个分隔符来实现,分别是 multinamedelim 和 finalnamedelim。低版本的 biblatex 直接重定义命令 \multinamedelim\finalnamedelim,高版本的 biblatex 可以使用分隔符环境,这样可以在标注、文献表等不同位置直接使用不同的分隔符,而不像低版本 biblatex 那样只能在不同的位置修改局部定义。比如:

\DeclareDelimFormat[bib]{multinamedelim}{\addspace and \addspace}
\DeclareDelimFormat[bib]{finalnamedelim}{\addspace and \addspace}
\DeclareDelimFormat[cite]{multinamedelim}{\addcomma\addspace}
\DeclareDelimFormat[cite]{finalnamedelim}{\addcomma\addspace}

  • 请问如何使文献表中文献标题的是句首字母大写而其它所有字母均小写?

默认情况下,biblatex-gb7714-2015 仅对标题首字母做调整,使其变成为大写,而其他字母大小写不做处理,因此要得到想要的字母大小写格式,需要在 bib 文件输入参考文献信息时给出需要的除首字母外的其它字母的大小写格式。

若有特殊情况,需要首字母为小写,可采用如下两种方法:

(1)根据字符大小写更换命令比如

{\MakeLowercase i}FogSim title contents

(2)修改 titlecase 域格式,即将如下命令放到导言区中,放在 biblatex 宏包加载命令后面

\DeclareFieldFormat{titlecase}{\iftoggle{bbx:titlelink}{%
\iffieldundef{url}{#1}{%
\href{\thefield{url}}{#1}}}{#1}}%重设标题格式,将去除首字母大写

注意:v1.1g 版本后不再默认修改标题的字母大小写,若需要修改可以手动修改 bib 文件,若需要批量修改,可以使用 bibmap 工具。

  • 请问如何使文献表中的期刊名是单词首字母大写的?

默认情况下,biblatex-gb7714-2015 不对期刊名的字母大小写做处理, 因此需要在 bib 文件输入参考文献信息时给出需要的大小写格式。

  • 我想得到中英文对照的双语参考文献,请问该如何处理?

biblatex-gb7714-2015 设计了两种多语言对照参考文献的实现方式, 一种是利用条目集的概念,另一种是利用关联条目的概念。 因此有两种方法:

(1)方法一,动态定义条目集: 在导言区或正文中定义:

\defbibentryset{易仕和,等,2013}{易仕和2013--,Yi2013--}

在正文中引用:

双语文献引用\cite{易仕和,等,2013}

(2)方法二,动态定义关联条目: 在导言区定义:

\defdoublelangentry{易仕和2013--}{Yi2013--}

在正文中引用:

双语文献引用\cite{易仕和2013--}
  • 我想修改文献条目的日期项诸如格式,请问该如何处理?

参考文献中日期格式主要有四种修改方式: (1) 利用 biblatex 选项全局的修改日期格式 (2) 修改日期输出宏,使根据条目类型输出不同的日期格式 (3) 修改日期输出宏,使根据具体条目输出不同的日期格式 (4) 修改参考文献信息,使当前条目原样输出需要的格式

具体示例见:biblatex 中如何修改参考文献中日期的著录格式

  • 我希望将文献表中期刊文献的卷和期使用加粗格式,请问该如何处理?

调整其域格式输出即可,比如:

\DeclareFieldFormat[article,periodical]{volume}{\textbf{#1}}
\DeclareFieldFormat[article,periodical]{number}{\textbf{#1}}

见:issue

4.3 Citation Format/正文引用的标注格式

  • 我希望在正文中同时使用上标和非上标的引用标签,请问该怎么操作?

可以使用不同的命令来实现上标和非上标的标签, 上标标签的命令为 \cite{bibtexkey} ,非上标标签的命令为 \parencite{bibtexkey}。 当希望上标的标签也给出国标要求的页码时,则可以使用 \cite[50-55]{bibtexkey}\pagescite[50-55]{bibtexkey} 给出指定页码 或者 \pagescite{bibtexkey} 直接使用 bib 文件中的页码。

  • 我在引用文献时已经给出作者信息,希望引用标签仅包含年份和页码信息或者仅包含年份信息时,该怎么操作?

需要给出年份的标签是作者年制的标签,可以使用命令 \yearpagescite{bibtexkey} 给出包含年份和页码信息的标签, 使用命令 \yearcite{bibtexkey} 给出仅包含年份的标签。

  • 中文文档中,引用标注标签在一个句子中时,标签的 ] 后面与中文字符之间存在一个空格,怎么消除?

在引用命令后面加一个没有长度的空白即可,比如:

中文字符\cite{sally_history_1985}\mbox{}中文字符

中文字符\cite{sally_history_1985}\hbox{}中文字符

中文字符\cite{sally_history_1985}\makebox{}中文字符

中文字符\cite{sally_history_1985}\hspace{0pt}中文字符
  • 在使用作者年制时,我希望文献表是按作者年份标题排序,而正文某处一个 \cite 命令引用多个参考文献,且这些文献的标签是按年份作者标题排序,该怎么操作?

有两种方法:

(1) 一是自动排序

宏包加载时使用:

\usepackage[backend=biber,style=gb7714-2015ay,sortcites,sorting=ynt]{biblatex}

正文中引用:

\cite{refa2010,refb2008,refc2009}

然后在文献打印前加

\newrefcontext[sorting=gb7714-2015]

(2) 二是手动给出排序

宏包加载时使用

\usepackage[backend=biber,style=gb7714-2015ay,sortcites=false]{biblatex}

引用多个文献时按照年份顺序给出引用关键字,即正文中引用:

\cite{refb2008,refc2009,refa2010}

参考 issue: citation 的顺序和 bibliography 的顺序如何不关联

  • 在使用作者年制时,我希望文献表同一位置引用同一作者的不同的文献实现作者姓名的压缩,该怎么操作?

可以通过将 gb7714-2015ay.cbx 中的引用的基础样式 authoryear 更换成 authoryear-comp。

  • 请问希望正文中作者年制的标注(引用)标签中作者数量超过国标规定的 1 个时,该怎么处理?

可通过设置选项 maxcitenames,mincitenames 实现,比如下面的设置用于显示 5 个作者:

\usepackage[backend=biber,style=gb7714-2015ay,maxcitenames=5,mincitenames=5]{biblatex}
  • 请问希望正文中作者年制的标注(引用)标签中作者数量只能是 1 个,而不管是否存在歧义时,该怎么处理?

可通过设置选项 uniquelist=false 实现,该设置标签中的作者只会是指定的 1 个:

\usepackage[backend=biber,style=gb7714-2015ay,uniquelist=false]{biblatex}
  • 请问希望正文中作者年制的标注(引用)标签希望作者给出 3 个,而且最后一个作者的前面用和及 & 符号链接,该怎么处理?

首先设置标注标签中的作者的最大数量为 3 个:

\usepackage[backend=biber,style=gb7714-2015ay,maxcitenames=3]{biblatex}

然后修改标注中的本地化字符串:

\DefineBibliographyStrings{english}{
        andincitecn = {\str@andcn},% 将标注中的分开,便于与文献表中的区分
        andincite   = {\&}}

最后重新定义 \finalandcomma 标点,注意这里与语言相关的标点,需要用 \DefineBibliographyExtras 命令定义。

\DefineBibliographyExtras{english}{\def\finalandcomma{}}%

  • 请问希望正文中作者年制的标注(引用)标签中作者数量只能是 1 个,且只用其作者的姓而不管是否存在歧义时,该怎么处理?

可通过设置选项 uniquelist=false, uniquename=false 实现,该设置标签中的作者只会是指定的 1 个且只用该作者的姓:

\usepackage[backend=biber,style=gb7714-2015ay,uniquelist=false,uniquename=false]{biblatex}
  • 请问上标的标注(引用)标签过长导致行溢出,该怎么处理?

上标的标注与行内的标注不一样,因此采用了上标的处理,所以上标的标注无法自动断行,因此在页边附近的长标注很有可能会溢出。由于上标标注的断行国标中并没有什么明确要求和说明,因此只能按照自己的方式进行处理,通常是将一个长标注手动分成两个短的标注,比如将:

\cite{key1,key2,key3,key4,key5,key6,key7}

变换成:

\cite{key1,key2,key3}\linebreak\cite{key4,key5,key6,key7}

如果两个 cite 之间还需要增加一个上标的逗号,那么可以手动处理比如增加 \textsuperscript{,}

  • 在顺序编码制标签中,希望数字编码从两个连续编码就开始压缩,比如 [1,2] 压缩成 [1-2],该怎么处理?

biblatex 中处理顺序数字编码压缩的代码默认从 3 个连续编码开始压缩,比如 [1,2,3] 压缩成 [1-3]。如果要修改为从 2 个连续编码开始压缩,只需要做一个很简单的修改即可:

% 该宏的目的是抛弃压缩内部的编号,而仅输出最后一个编号,主要通过 cbx@tempcnta 来控制
% 一般情况下 cbx@tempcnta 为 0,所以该宏不输出任何内容。当 cbx@tempcnta在cite:comp:comp 宏中更改变大后
% 说明开始进入需要压缩的范围,当到压缩终点时,cbx@tempcnta 必然大于 1,则输出内容。
% 修改第二行的数字 1 为 0 即可将默认的 3 个开始压缩变为 2 个开始压缩。
\renewbibmacro*{cite:dump}{
  \ifnumgreater{\value{cbx@tempcnta}}{0}
    {\ifnumgreater{\value{cbx@tempcnta}}{1} % 1 改为 0,可以将压缩起始 3 个编号改为 2 个编号
       {\bibrangedash}
       {\multicitedelim}%
     \bibhyperref[\cbx@lastkey]{%
       \ifdef\cbx@lastprefix
         {\printtext[labelprefix]{\cbx@lastprefix}}
         {}%
       \printtext[labelnumber]{\cbx@lastnumber}}}
    {}%
  \setcounter{cbx@tempcnta}{0}%
  \global\undef\cbx@lastprefix}

反之,从两个开始压缩改成 3 个连续压缩,方法是类似的,就是将中的 0 改回 1。

  • 在顺序编码制标签中,希望修改编码压缩之间的符号,比如 [1-2] 变为 [1~2],该怎么处理?

使用最新版本的 biblatex (v3.15 以后)可以直接定义如下标点:

\renewcommand{\multiciterangedelim}{$\sim$}

对于老版本可以修改宏,注意其中的注释

\renewbibmacro*{cite:dump}{
  \ifnumgreater{\value{cbx@tempcnta}}{0}
    {\ifnumgreater{\value{cbx@tempcnta}}{1} % 1 改为 0,可以将压缩起始 3 个编号改为 2 个编号
       {$\sim$}% 压缩的链接标点修改 \bibrangedash
       {\multicitedelim}%
     \bibhyperref[\cbx@lastkey]{%
       \ifdef\cbx@lastprefix
         {\printtext[labelprefix]{\cbx@lastprefix}}
         {}%
       \printtext[labelnumber]{\cbx@lastnumber}}}
    {}%
  \setcounter{cbx@tempcnta}{0}%
  \global\undef\cbx@lastprefix}
  • 在正文中的某一部分,希望取消顺序编码标签中的压缩,而其他部分保持这种压缩,该怎么处理?

顺序数字编码压缩的代码,主要有 cite:comp:comp 宏控制,因此需要局部取消压缩,可以局部的修改该宏。修改很简单,只需要注释掉其中的一行,在需要取消压缩的环境中,重定义该宏,比如:

\renewbibmacro*{cite:comp:comp}{%
  \ifboolexpr{
    ( test {\iffieldundef{labelprefix}} and test {\ifundef\cbx@lastprefix} )
    or
    test {\iffieldequals{labelprefix}{\cbx@lastprefix}}
  }
    {\ifnumequal{\thefield{labelnumber}}{\value{cbx@tempcntb}}
       {\savefield{entrykey}{\cbx@lastkey}%
        \savefield{labelnumber}{\cbx@lastnumber}%
        \addtocounter{cbx@tempcnta}{1}}
       {\ifnumequal{\thefield{labelnumber}}{\value{cbx@tempcntb}-1}
          {}
          {\usebibmacro{cite:dump}%
           \ifnumgreater{\value{cbx@tempcntb}}{-1}
             {\multicitedelim}
             {}%
           \printtext[bibhyperref]{%
             \printfield{labelprefix}%
             \printfield{labelnumber}}}}}
    {\usebibmacro{cite:comp:end}}%
  %\setcounter{cbx@tempcntb}{\thefield{labelnumber}}% 注释该行,以取消压缩
  \savefield{labelprefix}{\cbx@lastprefix}}

5. Examples/著录和标注结果示例

  • 标注样式示例

    • 顺序编码制

    示例a

    代码见:egcitetab.texegcitenumtp.tex

    • 作者年制

    示例b

    代码见:egciteaytab.texegciteaytp.texegciteay.tex

    具体代码见:egfigure 文件夹下的各个文件。

    命令说明见:biblatex-gb7714-2015.pdf文档。

  • 著录样式示例

    国标文档的完整复现:

    • 顺序编码制

    代码见:tgbcitation.tex

    • 作者年制

    代码见:tngbcitationay.tex

    • 国标附录

    代码见:tgbbiblio.tex

  • 姓名的格式更改示例

代码见:opt-gbnamefmt.texopt-gbnamefmt-default.tex

对于bib文件中的如下条目,有:

    @Article{Zhang2007-500-503,
      Title                    = {The design and experimental investigations of supersonic length shorted nozzle},
      Author                   = {Zhang, Min-li and Yi, Shi-he and Zhao, Yu-xin},
      Journal                  = {ACTA AERODYNAMICA SINICA},
      Number                   = {4},
      Pages                    = {500-503},
      Volume                   = {25},
      Year                     = {2007}
    }

    @Book{Yi2013--,
      Title                    = {Supersonic and hypersonic nozzle design},
      Address                  = {Beijing},
      Author                   = {Yi, Shi he and Zhao, Yu xin and He, Lin and Zhang, Min li},
      Publisher                = {National Defense Industry Press},
      Year                     = {2013}
    }

    @Book{LIAO2012--,
      Title                    = {Electronic countermeasure techniques for missile penetration},
      Address                  = {Beijing},
      Author                   = {LIAO, ping and JIANG, qin bo},
      Publisher                = {National Defense Industry Press},
      Year                     = {2013}
    }

    @Book{LIU2003--,
      Title                    = {Introduction of Ballistic Misille Techniques},
      Address                  = {Beijing},
      Author                   = {LIU, shi Qiu},
      Publisher                = {China Astronautic Publishing House},
      Year                     = {2003}
    }

示例c

6. 测试文件说明

  • egfigure
    • egciteay.tex 测试gb7714-2015ay的标注样式,是否满足GB要求
    • egciteaytab.tex 测试gb7714-2015ay的标注样式,绘制成表用于biblatex-gb7714-2015.pdf
    • egciteaytp.tex 测试gb7714-2015ay使用natbib的常用标注命令
    • egcitenum.tex 测试gb7714-2015的标注样式,是否满足GB要求
    • egcitenumtp.tex 测试gb7714-2015使用natbib的常用标注命令
    • egcitetab.tex 测试gb7714-2015的标注样式,绘制成表用于biblatex-gb7714-2015.pdf
    • egcitesay.tex 测试gb7714-2015ay使用复数形式的命令
    • egcitesnum.tex 测试gb7714-2015使用复数形式的命令
    • egcontentfmt.tex 测试gb7714-2015样式选项gbnamefmt=givenahead,gbbiblabel=dot,gbtitlelink=true
    • egcontentfmtb.tex 测试gb7714-2015ms样式选项gbnamefmt=lowercase,gbstyle=false,sorting=nyt
    • egcontentfmtc.tex 测试gb7714-2015ay样式选项maxcitenames=2,mincitenames=1,sorting=gbynta(UCAS-资环类)
    • egdoublelan.tex 测试gb7714-2015样式实现的双语对照文献表,关联条目方法
    • egdoublelanb.tex 测试gb7714-2015样式实现的双语对照文献表,关联条目方法,(gbnamefmt=pinyin 国内某期刊)
    • eggbfootstyle.tex 测试gb7714-2015样式实现国标要求的脚注文献表
    • egfootstyle.tex 测试gb7714-2015样式一般的脚注文献表
    • egmsinabiblio.tex 测试gb7714-2015ms样式在一篇文档中使用两种格式设置,中文:GB,英文:biblatex标准样式
    • egmxindfrefsec.tex 测试gb7714-2015mx样式在不同的参考文献分节中使用顺序编码和作者年制两种不同样式
    • egmultilan.tex 测试gb7714-2015样式实现的多语言混合的文献表
    • egmwe.tex 测试gb7714-2015样式最小示例,用于biblatex-gb7714-2015.PDF
    • egparfmt.tex 测试gb7714-2015样式文献表段落格式设置,包括缩进,颜色,字体,间距等
    • tgbbiblio.tex 实现GB/T 7714-2015 标准的附录的文献表示例(gb7714-2015样式)
    • tgbbiblioms.tex 实现GB/T 7714-2015 标准的附录的文献表示例(gb7714-2015ms样式)
    • tgbcitation.tex 实现GB/T 7714-2015 标准2-10节给出的顺序编码制示例(gb7714-2015样式)
    • tgbcitationms.tex 实现GB/T 7714-2015 标准2-10节给出的顺序编码制示例(gb7714-2015ms样式)
    • tngbcitationay.tex 实现GB/T 7714-2015 标准2-10节给出的著者年份制示例(gb7714-2015ay样式)
    • tngbcitationaynew.tex 实现GB/T 7714-2015 标准2-10节给出的著者年份制示例(gb7714-2015ay样式,nohashothers=true)
  • egphoto
    • opt-citexref-false.tex 测试citexref=false选项
    • opt-citexref-true.tex 测试citexref=true选项
    • opt-gbalign-center.tex 测试gbalign=center选项
    • opt-gbalign-gb.tex 测试gbalign=gb7714-2015选项
    • opt-gbalign-left.tex 测试gbalign=left选项
    • opt-gbalign-right.tex 测试gbalign=right选项
    • opt-gbannote-false.tex 测试gbannote=false选项
    • opt-gbannote-true.tex 测试gbannote=true选项
    • opt-gbannote-true.tex 测试gbannote=true选项
    • opt-gbbiblabela.tex 测试gbbiblabel=box选项
    • opt-gbbiblabelb.tex 测试gbbiblabel=bracket选项
    • opt-gbbiblabelc.tex 测试gbbiblabel=parens选项
    • opt-gbbiblabeld.tex 测试gbbiblabel=dot选项
    • opt-gbbiblabele.tex 测试gbbiblabel=plain选项
    • opt-gbbiblabelf.tex 测试gbbiblabel=circle选项
    • opt-gbnoauthor-false.tex 测试gbnoauthor=false选项
    • opt-gbnoauthor-true.tex 测试gbnoauthor=true选项
    • opt-gbpub-false.tex 测试gbpub=false选项
    • opt-gbpub-true.tex 测试gbpub=true选项
    • opt-gbpunctin-false.tex 测试gbpunctin=false选项
    • opt-gbpunctin-true.tex 测试gbpunctin=true选项
    • opt-gbtitlelink-false.tex 测试gbtitlelink=false选项
    • opt-gbtitlelink-true.tex 测试gbtitlelink=true选项
    • opt-gbtype-false.tex 测试gbtype=false选项
    • opt-gbtype-true.tex 测试gbtype=true选项
    • opt-mergedate-a.tex 测试mergedate默认选项(gb7714-2015ay)
    • opt-mergedate-b.tex 测试mergedate=true选项(gb7714-2015ay)
    • opt-mergedate-c.tex 测试mergedate=false选项(gb7714-2015ay)
    • opt-mergedate-d.tex 测试mergedate=none选项(gb7714-2015ay)
  • egthesis
    • thesis-bupt-numeric.tex
    • thesis-cau-numeric.tex
    • thesis-ecnu-numeric.tex
    • thesis-fdu-numeric.tex
    • thesis-nwafu-ay.tex 测试西北农林科技大学(可以参考:特殊的ay样式调整)
    • thesis-seu-numeric.tex 测试东南大学(可以参考:gb7714-2015样式调整)
    • thesis-sjtu-numeric.tex
    • thesis-thu-author-year.tex
    • thesis-thu-numeric.tex
    • thesis-tongji.tex
    • thesis-ucas-m.tex 测试中科院大学(可以参考:ay样式调整)
    • thesis-ucas-x.tex
    • thesis-uibe-numeric.tex 测试对外经贸大学(可以参考:中文标点、卷期格式;中英文不同)
    • thesis-ustc-all.tex 测试中科大(可以参考:一文中使用两种样式)
    • thesis-ustc-authoryear.tex
    • thesis-ustc-numeric.tex
    • thesis-xjtu-numeric.tex
    • thesis-zju-numeric.tex
    • thesistest.tex
  • example
    • cls-beamer.tex 测试beamer中的使用(gb7714-2015样式)
    • cls-beameray.tex 测试beamer中的使用(gb7714-2015ay样式)
    • codeopt-gbcodegbk.tex 测试gb7714-2015、ay样式,对于GBK编码文档的兼容性
    • teststyleerj.tex 测试chinese-erj样式
    • teststylecss.tex 测试chinese-css样式
    • teststylecss.tex 测试chinese-css样式
    • teststylecss.tex 测试chinese-jmw样式
    • eg-opt-gbstyle.tex 测试gb7714-2015ms样式一篇文档中中英文两种格式设置,多语言对照,多语言混合文献表
    • testallformat.tex 测试全面的类型、格式
    • egtest.tex 测试示例
    • opt-autolang-multilan.tex 测试多语言混合的文献表,各语言不同的本地化字符串
    • opt-eg-multilan.tex 测试多语言混合的文献表
    • opt-eg-authoryear.tex 测试ay样式
    • opt-eg-dblang.tex 测试双语对照文献-两种方法(条目集、关联条目)
    • opt-gbalign-center.tex 测试gbalign选项
    • opt-gbalign-gb.tex 测试gbalign选项
    • opt-gbalign-left.tex 测试gbalign选项
    • opt-gbannote.tex 测试gbannote选项,在文献表中加上附加信息用以说明三大索引情况
    • opt-gbbiblabel.tex 测试gbbiblabel选项
    • opt-gbctexset.tex 测试gbctexset选项,使可以利用ctex的设置对文献表的标题进行修改
    • opt-gbfieldstd.tex 测试gbfiledstd选项,著录格式还原为biblatex标准样式的格式
    • opt-gbfootbib.tex 测试实现国标要求的脚注文献表
    • opt-gblanorder-chineseahead.tex 测试文献表排序,中文在前
    • opt-gblanorder-englishahead.tex 测试文献表排序,英文在前
    • opt-gblanorder-udforder.tex 测试文献表排序,自定义顺序
    • opt-sorting-multilan.tex 测试多语言混合文献表排序
    • opt-gblocal.tex 测试本地化字符串设置(引用标注标签、文献表)
    • test-setlocal.tex 测试本地化字符串设置(多种方法局部调整)
    • test-setlocal-multilan.tex 测试本地化字符串设置(多种语言的局部调整)
    • test-resume.tex 测试研究成果、学术成果(文献表)的局部化格式调整
    • opt-gbnamefmt.tex 测试gbnamefmt对于作者姓名格式的控制
    • opt-gbnamefmt-default.tex 测试gbnamefmt对于作者姓名格式的控制
    • opt-gbnamefmt-quanpin.tex 测试gbnamefmt对于作者姓名格式的控制
    • test-addfieldnameformat.tex 测试给指定的文献设定nameformat域
    • opt-gbnoauthor-false.tex 测试gbnoauthor选项
    • opt-gbnoauthor-true.tex 测试gbnoauthor选项
    • opt-gbpub-true.tex 测试gbpub选项
    • opt-gbpunctin.tex 测试gbpunctin选项
    • opt-gbtitlelink.tex 测试gbtitlelink选项
    • opt-gbtype.tex 测试gbtype选项
    • opt-hyperref-backref.tex 测试backrref选项,反向超链接
    • test-translator-in-other-lan.tex 测试译著的其它语言的译者格式
    • test-space-after-citelabel-inCJKline.tex 测试删除标注后因为xeCJK加入的空格
    • test-special-chars-in-fields.tex 测试不同域中存在的特殊字符处理
    • test-gbt-7714-1987.tex 测试GB/T7714-1987标准的样式
    • test-gbt-7714-2005.tex 测试GB/T7714-2005标准的样式
    • test-punct-quanjiao.tex 测试标点中英文切换
    • test-authoryear-date.tex 测试著者-出版年制联机网络文献的“出版年”
    • test-aywithjournalvolume.tex 测试著者-出版年制期刊析出文献出版年与卷和期之间的间隔符,特别当某些项缺失时

Usage

  • for numerical sequence style: gb7714-2015

    \usepackage[backend=biber,style=gb7714-2015]{biblatex}

    • add an option gbalign to control the align style of the numerical label:

      gbalign=right for the label ragged left in a list environment, this is the default setting.

      gbalign=center for the same width label in a list environment with the number centered in a wrapper like bracket []

      gbalign=left for the label ragged right in list environment

      gbalign=gb7714-2015 for the label in paragraph with same separation space between label and content of the reference entry

      \usepackage[backend=biber,style=gb7714-2015,gbalign=gb7714-2015]{biblatex}

    • add an option gbpub for dealing publishing items (This option is also for author-year style):

      gbpub = true for gb7714 style, to print [出版者不详] and the like when publisher or address is absent, this is the default setting.

      gbpub = false for standard style, not to print the additional infomation.

      \usepackage[backend=biber,style=gb7714-2015,gbpub=true]{biblatex}

    • add an option gbnamefmt for dealing author name's letter case (This option is also for author-year style):

      gbnamefmt = uppercase for gb7714 style, to capitalize all the letters of the name, like: ZHANG M L, this is the default setting.

      gbnamefmt = lowercase for gb7714 style, do no case switch of the name, like: Zhang M L

      gbnamefmt = givenahead for standard style, given-family style, like: M. L. Zhang as the ieee style

      gbnamefmt = familyahead for standard style, family-given style, like: Zhang, M. L. as the apa style.

      gbnamefmt = pinyin for a common Chinese style, like: ZHANG Min-li, YI Shi-he and so on.

      gbnamefmt = reserveorder for standard style:family-given/given-family style

      the name format can be set per-entry using a field nameformat, add this field like nameformat={pinyin} to an entry in the bib file to set the entry's name format.

      \usepackage[backend=biber,style=gb7714-2015,gbnamefmt=uppercase]{biblatex}

    • add an option gbbiblabel to control the format of the numerical label:

      gbbiblabel=bracket for the numerical number in the label wrapped by bracket, like: [1], this is the default setting.

      gbbiblabel=parens for the numerical number in the label wrapped by parenthesis, like: (1)

      gbbiblabel=plain for the numerical number in the label wrapped by nothing, like: 1

      gbbiblabel=dot for the numerical number in the label followed with dot, like: 1.

      gbbiblabel=box for the numerical number in the label wrapped by box which generated by \framebox

      gbbiblabel=circle for the numerical number in the label wrapped by circle which generated by \textcircled

      \usepackage[backend=biber,style=gb7714-2015,gbbiblabel=bracket]{biblatex}

    • add an option gbtype to control the output of the reference type and carrier identifier like [J/OL] (This option is also for author year style):

      gbtype = true for gb7714 style, print a title with the identifier, like: an on-line article [J/OL], this is the default setting.

      gbtype = false for none identifier, print a title without identifier, like: an on-line article

      \usepackage[backend=biber,style=gb7714-2015,gbtype=true]{biblatex}

    • add an option gbfieldtype to control the output of field type:

      gbfieldtype = true to print type field, like the thesis type: PHD thesis or 博士学位论文。please use \DefineBibliographyStrings{english}{mathesis={str you want}},\DefineBibliographyStrings{english}{phdthesis={str you want}}, \DefineBibliographyStrings{english}{mathesiscn={str you want}},\DefineBibliographyStrings{english}{phdthesiscn={str you want}} to define the output string, or set it in bibfile like: type={str you want},

      gbfieldtype = false not to print type field.

      \usepackage[backend=biber,style=gb7714-2015,gbfieldtype=true]{biblatex}

    • add an option gbpunctin to control the output of // before bookauthor for entrytypes like inbook/incollection/inproceedings(This option is also for author year style):

    gbpunctin=true for gb7714 style, to output //, this is the default setting

      `gbpunctin=false` for standard style, to output a bibstring, for English it is `IN:`, If you want to eliminate it at all, please redefine the bibstring like `\DefineBibliographyStrings{english}{in={}}` and `\DefineBibliographyStrings{english}{incn={}}`in the preamble.
    

    \usepackage[backend=biber,style=gb7714-2015,gbpunctin=true]{biblatex}

    • add an option gbctexset to control the bibliography heading's setting method (This option is also for author year style):

      gbctexset=true , the bibliography heading can be set by \bibname or \refname, this is the default setting.

      gbpunctin=false, the heading can be set by bibstring like \DefineBibliographyStrings{english}{bibliography={title you want}} or \DefineBibliographyStrings{english}{references={title you want}}

      or alternatively, it can also be set through the printbibliography option title, like printbibliography[title=title you want].

    \usepackage[backend=biber,style=gb7714-2015,gbctexset=true]{biblatex}

    • add an option gbcodegbk to deal the tex source file encoded with GBK (This option is also for author year style):

      gbcodegbk=true , if you want to compile the GBK encoded source file with pdflatex or latex

      gbcodegbk=false, if you want to compile the utf-8 endcoded source file with xelatex, this is the default setting.

    \usepackage[backend=biber,style=gb7714-2015,gbcodegbk=true]{biblatex}

    • add an option gbtitlelink to control the hyperlink of title field (This option is also for author year style):

      gbtitlelink = false not to add hyperlink, this is the default setting.

      gbtitlelink = true to set the title as a hyperlink.

      \usepackage[backend=biber,style=gb7714-2015,gbtitlelink=true]{biblatex}

    • add an option gbfootbib to control the bibliography in footnote (This option is also for author year style):

      gbfootbib = true make patches to match the standard, this is the default setting.

      gbfootbib = false not to patch.

      \usepackage[backend=biber,style=gb7714-2015,gbtitlelink=true]{biblatex}

    • add options gbcitelocal gbbiblocal to control the local strings in citation and bibliography respectively, the gblocal set the both options (These options are also for author year style):

      gbcitelocal = gb7714-2015 to output local strings according to the reference's language, this is the default setting.

      gbcitelocal = chinese to output local strings with chinese language word like "等".

      gbcitelocal = english to output local strings with western language word like "et al.".

      \usepackage[backend=biber,style=gb7714-2015,gbcitelocal = chinese]{biblatex}

    • add an option gbstrict to control the output of some unnecessary fields for GB/T7714-2015 (This option is also for author year style).

      gbstrict=true, not to print those fields such as language, eprint, this is the default setting.

      gbstrict=false, to output them as the standard style

      \usepackage[backend=biber,style=gb7714-2015,gbstrict=true]{biblatex}

    • add an option gbfieldstd to control the format of some fields such as title, url and pages (This option is also for author year style):

      gbfieldstd = false for gb7714 style, format of the fields follows the GB/T7714-2015 standard, this is the default setting.

      gbfieldstd = true for standard style.

      \usepackage[backend=biber,style=gb7714-2015,gbfieldstd=true]{biblatex}

  • for multi-style: gb7714-2015ms

    In order to use two styles in a tex file, add a style gb7714-2015ms. option gbstyle is added to control the using mode. gbstyle=true means all references are printed with GB/T7714-2015 style, and gbstyle=false means the chinese references are printed with GB/T7714-2015 style while the other references are printed with standard style shipped by biblatex, and gbstyle=true is the default set. all the options for numerical sequence style gb7714-2015 can also be used in gb7714-2015ms.

    \usepackage[backend=biber,style=gb7714-2015ms,gbstyle=false]{biblatex}

  • for author year style: gb7714-2015ay

    \usepackage[backend=biber,style=gb7714-2015ay,gbpub=true]{biblatex}

    • add an option gbnoauthor for dealing undefined author:

      gbnoauthor = true for gb7714 style, to print 佚名 or Anon when the author of the entry is absent.

      gbnoauthor = false for standard style, not to pring anything, this is the default setting.

      \usepackage[backend=biber,style=gb7714-2015ay,gbnoauthor=true]{biblatex}

    • add an option value mergedate=none to control the date in bibliography:

      mergedate=true to output date only after author,like:LAMPORT L, (1986). Document Preparation System[M]. [S.l.]: Addison-Wesley Reading, MA.

      mergedate=false to output date after author and in publish items,like:LAMPORT L, (1986). Document Preparation System[M]. [S.l.]: Addison-Wesley Reading, MA, 1986.

      mergedate=none to output date only in publish items,like:LAMPORT L. Document Preparation System[M]. [S.l.]: Addison-Wesley Reading, MA, 1986.

      do not set mergedate output like:LAMPORT L, 1986. Document Preparation System[M]. [S.l.]: Addison-Wesley Reading, MA.

      \usepackage[backend=biber,style=gb7714-2015ay,mergedate=none]{biblatex}

    • add an option gblanorder to control sequence of reference groups of different languagesin the bibliography:

      gblanorder=chineseahead to set the sequence as: cn;jp;kr;en;fr;ru

      gblanorder=englishahead to set the sequence as: en;fr;ru;cn;jp;kr

      gblanorder=user defined string like: cn;en;jp;kr;fr;ru to set the sequence as: cn;en;jp;kr;fr;ru.

      \usepackage[backend=biber,style=gb7714-2015ay,gblanorder=cn;en;jp;fr;kr;ru]{biblatex}

  • for perl script transformation tool(only for the numerical style)

    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, texlive2017 , texlive2018 and so on.

please see the file 'biblatex-gb7714-2015.pdf' for further information!

Version 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
  • 2017/11/21 v1.0i
  • 2018/01/20 v1.0j
  • 2018/04/03 v1.0k
  • 2018/06/01 v1.0l
  • 2018/08/14 v1.0m,CTAN
  • 2018/11/04 v1.0n
  • 2018/12/22 v1.0o
  • 2019/01/19 v1.0p
  • 2019/02/11 v1.0q
  • 2019/03/28 v1.0r
  • 2019/03/29 v1.0rm,rename erj to chinese-erj,ctan
  • 2019/08/28 v1.0s
  • 2020/03/04 v1.0t,ctan
  • 2020/03/30 v1.0u
  • 2020/07/21 v1.0v,ctan
  • 2021/01/19 v1.0w,ctan
  • 2021/04/03 v1.0x,ctan
  • 2021/05/06 v1.0y,ctan
  • 2021/08/19 v1.0z,ctan
  • 2021/09/11 v1.1a,ctan
  • 2021/12/11 v1.1b,ctan
  • 2022/01/24 v1.1c,ctan
  • 2022/02/22 v1.1d,ctan,github
  • 2022/03/07 v1.1e,ctan,github
  • 2022/03/13 v1.1f,ctan,github
  • 2022/04/03 v1.1g,ctan,github
  • 2022/04/16 v1.1h,ctan,github
  • 2022/05/17 v1.1i,ctan,github
  • 2022/08/29 v1.1j,ctan,github
  • 2022/11/07 v1.1k,ctan,github
  • 2023/03/31 v1.1l,ctan,github
  • 2023/04/24 v1.1m,ctan,github
  • 2023/05/24 v1.1n,ctan,github
  • 2023/09/10 v1.1o,ctan,github
  • 2024/02/10 v1.1p,ctan,github
  • 2024/03/27 v1.1q,ctan,github
  • 2024/05/15 v1.1r,ctan,github

Update history:

update: tex

update: tex

biblatex-gb7714-2015's People

Contributors

1fcendoge avatar fky2015 avatar harry-chen avatar hermione-evans avatar hushidong avatar switwu avatar tigerzhao007 avatar ydx-2147483647 avatar zepinglee avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

biblatex-gb7714-2015's Issues

url & urldate

使用时发现,如果条目有 url 域的话就会加上[OL]并列出url。这样文献列表很长。所以用 Jabref 去掉了 url ,但是发现urldate 还是会列出来。

是否可以实现这样的功能,如果没有 url的话,就不要列出 urldate了?

biblatex无法处理example.bib条目中的Latex命令,例如\LaTeX{}

当bib文件中存在latex命令时,例如\LaTeX{}时,biblatex编译出错。文件跟 #23 中一样。但是如果把bib中的\LaTeX{}变为\TeX{}编译就没问题。

@Book{Peebles2001-100-100,
  Title                    = {Probability, random variable, and random signal Principles, and \LaTeX{}},
  Address                  = {New York},
  Author                   = {von Peebles, Jr., P. Z.},
  Edition                  = {4},
  Pages                    = {100},
  Publisher                = {McGraw-Hill},
  Year                     = {2001}
}

编译错误为:

(./test.bbl))
! Incomplete \iffalse; all text was ignored after line 37.
<inserted text> 
                \fi 
<*> test.tex
            
! Emergency stop.
<*> test.tex

MiKTeX v2.9 makefile.bat 编译报错

直接clone到本地,未做任何改动,运行批处理程序时报出了下面的错误:
`("C:\Program Files\MiKTeX 2.9\tex\latex\biblatex\biblatex.def")
(gb7714-2015.bbx

! LaTeX Error: Missing \begin{document}.

See the LaTeX manual or LaTeX Companion for explanation.
Type H for immediate help.
...

l.1 
%%
? `

参考文献标题名

能不能默认不修改参考文献标题名?或者提供一个选项开关?

之前在改中文模版为英文模版时遇到这个问题,ctex 包可以对 \refname\bibname 作出修改,但最后被 biblatex-gb7714-2015 的定义覆盖了。

FYI: CTeX-org/ctex-kit#350

报纸排版在新版biber/biblatex下失效

最小样例1:

text.tex:

\documentclass{ctexart}
\usepackage[backend=biber,style=gb7714-2015]{biblatex}
\addbibresource{test.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}

text.bib:

@article{guanyujingri,
	Author = {张建军 and 张生},
	Date = {2018-03-01},
	Journal = {南京日报},
	Notes = {news},
	Number = {A10},
	Title = {关于``精日''现象的思考与建议}
}

生成效果:

[1] 张建军, 张生. 关于 “精日” 现象的思考与建议[J]. 南京日报, 2018(A10).

注意此处日期排版错误。


最小样例2:

text.bib:

@newspaper{guanyujingri,
	Author = {张建军 and 张生},
	Date = {2018-03-01},
	Journal = {南京日报},
	Number = {A10},
	Title = {关于``精日''现象的思考与建议}
}

生成效果:

[1] 张建军, 张生. 关于 “精日” 现象的思考与建议[N]. news. 2018.

完全无法识别。


我可以确认,在2019年11月24日,报纸类参考文献可以正常排版,但今天测试时却失效。这段时间内,恰逢在2019年12月1日,biber更新至2.14,biblatex更新至3.14。请检查是否由于兼容性原因导致宏包失效。

建议:项目的目录组织

有关项目的目录组织有一些建议:

  1. git中最好不添加pdf文件。pdf是二进制文件,会增加.git目录的大小。这样会导致git clone一次时间过长,而且不利于维护。
  2. 样例的pdf文件可以针对每一个例子,截一个标准截图(分辨率不用太高),放在images/目录下,这样在Readme.md中就可以添加了,一个一个放上去很直观也很有吸引力。
  3. Readme.md中可以写一个简短的安装、测试教程(一节)。比如用你目录中的最小的例子,然后编译的命令(makefile或者make.bat),最终效果的截图。这样更有利于上手的。
  4. 我对底层不太了解,具体xelatex的编译命令应该是--synctex=-1还是-synctex=1呢?实际中,我都是用的-synctex=1
  5. 目录结构可以是src/examples/images/Readme.mdLicense.txt之类的。这样也有利于维护代码。唯一的缺点就是.bbx.cbx文件编译时需要位于example/目录下,导致在src/examples/下有两份存储。
  6. 要是能提交到默认的biblatex项目中(官方bbx/中,cbx/中)就更好啦!

中文条目中存在 2 位英文作者时缺少逗号

biblatex-gb7714-2015 版本 v1.0q,当中文条目中的英文作者为 2 位时缺少逗号间隔,作者数量为 3 时输出正常。
测试例子:

@Book{Miroslav2004--,
  Title                    = {信号处理滤波器设计-基于matlab和mathematica的设计方法},
  Address                  = {北京},
  Author                   = {Miroslav, D. L. and Dejan, V. T.},
  Publisher                = {电子工业出版社},
  Translator               = {朱义胜 and 董辉},
  Year                     = {2004},
  Month                    = {1}
}

输出结果:

MIROSLAV D L DEJAN V T. 信号处理滤波器设计-基于matlab 和mathematica 的设计方法[M]. 朱义胜, 董辉, 译. 北京: 电子工业出版社, 2004.

个别参考文献换行时,url中会出现空格(可能不是本包的bug)

refs.bib文件

% Encoding: UTF-8


@Online{zuihen,
  author       = {滴滴北京},
  title        = {滴滴大数据 | 2016年最“狠”公司大揭秘},
  year         = {2016},
  url          = {https://mp.weixin.qq.com/s?__biz=MzI3NjAyODM0NQ==&mid=2650506049&idx=2&sn=38698a2abe64348969f064704c62ae02},
  organization = {滴滴北京},
}

@Comment{jabref-meta: databaseType:biblatex;}

main.tex文件:

\documentclass[UTF8, a4paper, twoside, openany, zihao =
-4, scheme=chinese, no-math]{ctexbook}

\XeTeXgenerateactualtext=1

\usepackage[backend=biber,style=gb7714-2015,backref=true]{biblatex}
\addbibresource[location=local]{refs.bib}

\usepackage{amsmath, amssymb, xfrac, hyperref}
\renewcommand{\bibfont}{\zihao{5}}

\usepackage{ geometry}

\geometry{%
  a4paper,
  heightrounded,
  % scale=0.7
  % margin=0cm,
  % marginparsep = 0.5cm,
  % marginparwidth=1cm,
  top = 3cm,
  bottom = 3cm,
  left = 2.6cm,
  right = 2.6cm,
  headheight = 6mm,
  headsep = 5mm,
  footskip = 10mm,
  % outer = 2.5cm,
  % inner = 2.5cm
}


\begin{document}

\frontmatter

\chapter{hahaha}
test bib\cite{zuihen}。

\printbibliography[heading=bibnumbered,title=参考文献]

\backmatter

\end{document}

显示效果:

[1] 滴滴北京. 滴滴大数据| 2016 年最“狠”公司大揭秘[EB/OL]. 滴滴北京. (2016). https :
/ / mp . weixin . qq . com / s ? _ _ biz = MzI3NjAyODM0NQ = = & mid = 2650506049 & idx = 2 & sn =
38698a2abe64348969f064704c62ae02 (引用页: i).

如果修改geometry,使http://xxx.xxx.com 不在 https:后换行,则不会添加空格。

series条目与会议论文卷号的问题

作者您好,非常感谢您的贡献。我在使用过程中遇到了如下两个问题,希望您能抽空解决。谢谢!
(1)
某些期刊还有series这一个域,是否最后在printbibliography的时候能显示为RecSys '17: Proceedings of the Eleventh ACM Conference on Recommender Systems呢?
参考bib如下:

@inproceedings{Quadrana:2017gj,
 author = {Quadrana, Massimo and Karatzoglou, Alexandros and Hidasi, Bal\'{a}zs and Cremonesi, Paolo},
 title = {{Personalizing Session-based Recommendations with Hierarchical Recurrent Neural Networks}},
 booktitle = {Proceedings of the Eleventh ACM Conference on Recommender Systems},
 series = {RecSys '17},
 year = {2017},
 isbn = {978-1-4503-4652-8},
 location = {Como, Italy},
 pages = {130--137},
 numpages = {8},
 url = {http://doi.acm.org/10.1145/3109859.3109896},
 doi = {10.1145/3109859.3109896},
 acmid = {3109896},
 publisher = {ACM},
 address = {New York, NY, USA}
} 

另外,也有如下bib中包含了eprint等与arxiv有关的域,最后显示出来的时候没有空格:

@article{Wu:2016wt,
	title         = {{Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation}},
	author        = {Wu, Yonghui and Schuster, Mike and Chen, Zhifeng and Le, Quoc V. and Norouzi, Mohammad and Macherey, Wolfgang and Krikun, Maxim and Cao, Yuan and Gao, Qin and Macherey, Klaus and Klingner, Jeff and Shah, Apurva and Johnson, Melvin and Liu, Xiaobing and Gouws, Stephan and Kato, Yoshikiyo and Kudo, Taku and Kazawa, Hideto and Stevens, Keith and Kurian, George and Patil, Nishant and Wang, Wei and Young, Cliff and Smith, Jason and Riesa, Jason and Rudnick, Alex and Vinyals, Oriol and Corrado, Greg and Hughes, Macduff and Dean, Jeffrey},
	year          = 2016,
	month         = sep,
	journal       = {arXiv.org},
	pages         = {1--23},
	url           = {http://arxiv.org/abs/1609.08144v2},
	eprint        = {1609.08144v2},
	eprinttype    = {arxiv},
	eprintclass   = {cs.CL}
}

(2)有如下会议论文也有卷号volume,打印参考文献时也没有空格:
@inproceedings{Yang:2016ts,
title = {{Revisiting Semi-Supervised Learning with Graph Embeddings}},
author = {Zhilin Yang and William Cohen and Ruslan Salakhudinov},
year = 2016,
month = {20--22 Jun},
booktitle = {Proceedings of the 33rd International Conference on Machine Learning},
publisher = {PMLR},
address = {New York, New York, USA},
series = {Proceedings of Machine Learning Research},
volume = 48,
pages = {40--48},
url = {http://proceedings.mlr.press/v48/yanga16.html},
editor = {Maria Florina Balcan and Kilian Q. Weinberger},
pdf = {http://proceedings.mlr.press/v48/yanga16.pdf}
}

(3)最后,我还发现期刊论文没有显示出版社publisher域,而会议论文会显示。

著者-出版年制下参考文献表如何加入序号

您好,
非常抱歉拿这样的问题叨扰各位忙碌的大佬,因论文需要,参考文献需要按照中文参考文献、英文参考文献这样的顺序排序,并且需要加入顺序编码制的编号,而我查询了所有办法并经无数次尝试都没有很好的成功,想麻烦各位除了调整bbl是否还有别的解决的方法。
非常感谢!

next version of biblatex will drop xstring

For the upcoming version we are currently planning on getting rid of xstring code in biblatex. As a consequence biblatex would not require xstring any more and would not load the xstring package itself any more. biblatex styles that need xstring would have to load the package explicitly themselves. See plk/biblatex#816 for the current state of affairs.

Your style uses some xstring commands and loads xstrings explicitly. But the Google translation of the comment in \RequirePackage{xstring}%解决texlive2015的biblatex3.0不加载xstring包的问题 makes me think that this is for compatibility reasons only. If the changes go through as planned, the line would be required for all newer versions as well (so it wouldn't be for compatibility with older versions any more).

Even if it turns out that the change can not go through as planned, it is still a very good idea to load xstring explicitly if your style needs it.

We are hoping to release a new version of biblatex in the not too distant future (I can't promise any ETA as of now, there will be a pre-release announcement on comp.text.tex). You can learn more about the upcoming changes in https://github.com/plk/biblatex/blob/dev/doc/latex/biblatex/CHANGES.md. If you can find time to test your style against the new dev version (https://sourceforge.net/projects/biblatex/files/development/, you'll also need Biber 2.12 from https://sourceforge.net/projects/biblatex-biber/files/biblatex-biber/development/binaries/) feedback would be appreciated.

少了个“}”?

TeX STOPPED: File ended while scanning use of @argde{\testCJKfirst {\thefield {title}}\iflistundef {location}{\iffieldequalstr
TeX reports the error was in file:0989 \RequireBibliographyStyle{\blx@bbxfile}

Command \blx@declaredelim already defined?

更新系统后,使用\usepackage[backend=biber,style=gb7714-2015]{biblatex} 报下面的错误。

! LaTeX Error: Command \blx@declaredelim already defined.
               Or name \end... illegal, see p.192 of the manual.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...

l.189     }{}

?

! LaTeX Error: Command \DeclareDelimAlias already defined.
               Or name \end... illegal, see p.192 of the manual.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...

l.189     }{}

如果使用使用\usepackage[backend=biber]{biblatex} ,就无错 ,使用testallformat.tex编译也报 同样的错误 。

gbpub=false无效

代码更新后作者名字小写,但是gbpub=false选项无效?

conference reference problem

Hi, I met some citing problem in inproceedings, which is as the following,
image

the exameple from google :
image

So, how can I deal with that thing? Thank you.

biblatex 3.8

Apologies for writing in English.

biblatex 3.8(a) has been released and will probably land on TeX live and MikTeX soon (there were some problems getting Biber 2.8 to build that should be resolved now). There are a few changes that also impact your style

  • The field extrayear is now extradate, macros that used extrayear in their names have also been renamed. Some macros with labelyear in the name now have labeldate instead.
  • \DeclareSortingScheme is now called \DeclareSortingTemplate

Backwards compatibility code for both changes is in place, but it would be appreciated if styles were to adopt the new naming conventions.

The complete list of changes can be found in https://github.com/plk/biblatex/blob/dev/doc/latex/biblatex/CHANGES.org and https://github.com/plk/biblatex/wiki. Feel free to look around, maybe one of the new features can be useful to your style.

编译出错,找不到思源宋体字体/urlupdate=gb7714-2015 invalid

开发者您好,我在使用上海交大毕业论文模板时(使用texlive2016,模板版本号0.10.2,https://github.com/sjtug/SJTUThesis/releases/tag/0.10.2 ),出现编译错误说
! Package biblatex Error: Style 'gb7714-2015' not found
那里的issue说在这儿下载即可。 sjtug/SJTUThesis#191

下载完成后直接双击makefile.bat时编译出错,显示
! fontspec error: "font-not-found"
!
! The font “SourceHanSerifSC-Regular.otf” cannot be found
我在网上找到字体后再入系统再次编译,仍然显示该错误。
如果是用makeall.bat编译,出现的就是
! Package biblatex Error: Option 'urlupdate=gb7714-2015' invalid
See the biblatex package documentation for explanation.
这部我就看不懂了,不知道哪里出错了,可以帮忙查看一下吗?

万分感谢!

使用\textcite引用多个作者的文献时的问题

我是这样的配置

\usepackage[sorting=none,backend=biber,autocite=superscript,gbpub=false,
  bibstyle=gb7714-2015,citestyle=numeric-comp]{biblatex}

发现最终的pdf正文中(不是参考文献列表中),\textcite多个作者的文献有这么几个问题

  1. 两个作者姓名之间是半角逗号,这里可以配置为全角逗号或者“和”吗?
  2. 当作者超过三个时,第一个作者姓名和后面的“等”之间有一个空格,这个可以去掉吗?

Biblatex (ver 3.11) doesn't load in xxxxx.tex file which emacs (ver 25.2.2) re-visite

At first, Thanks for your biblatex-gb7714-2015 style.
My work enviroment is as follows: Debian GNU/Linux testing (buster), TeXLive 2018, biber (2.11), ctex (2.4.14).
The phenomenon is,
I create a xxxxx.tex file, and the documentclass is article. I include biblatex package, and the \addbibresource command is actived. After C-c and C-c, the tex file is well compiled, and the pdf file is ready with no error.
Once the tex file is closed and open again. C-c then C-c after the auxiliary files are removed, there is error "unresolved citation". Meanwhile the \addbibresource command doesn't usable, i.e. C-c then C-m, and input "add", then press TAB key, the minibuffer shows " No match".
Only manual input usepackage "biblatex", then the command \addbibresource command is usable once again, and C-c then C-c will work with no error.
Is there anything auto re-load package "biblatex" without manual load it after re-open the tex file?
Thanks!

beamer不兼容

我想在beamer中的每个章节开始前插入一个目录,于是在我的tex中有这样一段

\AtBeginSection{ 
\begin{frame}
\frametitle{目录}
\tableofcontents[currentsection]
\end{frame}
}

我发现这段代码和文献样式不兼容,报错如下:

Missing number, treated as zero. \end{frame}
Illegal unit of measure (pt inserted). \end{frame}
Extra }, or forgotten \endgroup. \end{frame}
...

我使用texlive2019+texstudio,xelatex+biber编译,在biblatex-gb7714-2015/example/cls-beamer.tex中导言区插入上述代码,可以复现此问题。

隐藏 [S.l.]和s.n.

写毕业论文,因为很多bib条目都没有地址和出版商,导致参考文献中就会显示很多的[S.l.]和s.n.
#9

需要怎样安装bbx文件呢?

我采用的是最小例子,然后将项目中所有.bbx.cbx都放在当前目录下,编译时提示我找不到gb7714-2015。使用的biblatex是3.9版本,其余所有包都更新到了texlive最新版。

PS:我看在bbx文件中,没有检测3.9,跟这个有关么?我觉得其实可以不向后兼容,只要保持最新的特性即可。biblatex稳定后再考虑处理的问题。

可复现的最小例子是:

(2018/1/1:移除了冒号,注意gb7714-2015之间要用英文的符号)
(2018/1/2:注意正文bibkey也要用英文dash)

\documentclass{article}%文档类
\RequirePackage[CJKchecksingle,no-math]{xeCJK}
%%%% Windows Thesis Fonts
\setmainfont{Times New Roman PS Std}
\setsansfont{Arial}
\setmonofont{Courier New}
%%%% Using Founder Family Fonts
\setCJKmainfont[BoldFont={FZYaSong-DB-GBK}]{FZShuSong_GB18030-Z01}
\setCJKsansfont{FZHei-B01} % Hei
\setCJKmonofont{FZFangSong-Z02} % fs
%%%% alias
\setCJKfamilyfont{song}{FZShuSong_GB18030-Z01}
\setCJKfamilyfont{hei}{FZHei-B01}
\setCJKfamilyfont{fs}{FZFangSong-Z02} % fang-song
\setCJKfamilyfont{kai}{FZKai-Z03} % Kai

%加载hyperref宏包,使用超链接
\usepackage[colorlinks=true,pdfstartview=FitH,linkcolor=blue,anchorcolor=violet,citecolor=magenta]{hyperref}

%加载biblatex宏包,使用参考文献
%其中后端backend使用biber
%引用样式citestyle,著录样式bibstyle都采用gb7714−2015样式
\usepackage[backend=biber, bibstyle=gb7714-2015,%nature,%
citestyle=gb7714-2015%,backref=true%
]{biblatex}
%biblatex宏包的参考文献数据源加载方式
\addbibresource[location=local]{example.bib}

%正文区开始:
\begin{document}
%正文内容,引用参考文献
详见文献\cite{Peebles2001-100-100}\parencite{Miroslav2004--}
参考文献\cite[见][49页]{蔡敏2006--}\parencite[见][49页]{Miroslav2004--}

%打印参考文献表
\printbibliography[heading=bibliography,title=参考文献]
\end{document}

著者-年份格式中同一姓的著者的处理

biblatex 中对姓氏相同的作者(如参考文献有多个姓陈的作者),在正文中引用时,会自动加上名字,变成

... (Chen B, et al.) ...

不知道这样是否符合国标中的要求呢?

找不到\authornumcite等命令

查看了文档,开头就提到提供丰富的标注(引用)命令
(ps. 第二页第一段末尾的\textcite(提供主语作者加括号包围年份)应该是不对的)

正好发现\authornumcite是想要的效果,但是发现找不到该命令

这是MWE:

\documentclass{article}
\usepackage[AutoFakeBold=true,AutoFakeSlant=true,CJKchecksingle]{xeCJK}[2017/08/08]
\usepackage[sorting=none,backend=biber,autocite=superscript,gbpub=false,
  bibstyle=gb7714-2015,citestyle=numeric-comp]{biblatex}
\addbibresource{my.bib}
\begin{document}

\authornumcite{testkey}           % 这里改成\cite、\textcite都是没有问题的

\printbibliography
\end{document}

会报错Undefined control sequence.

关于多语言文献不同格式的设置问题

在大陆,中文文献基本上使用 GB/T 7714-2015 标准,然而在某些特殊情况,英文等其他语言文献可能会要求使用其他标准。
我想请教以下开发者针对本宏包,如何配置,得以实现对于其他语言的特定格式要求的输出,比如使用 biblatex 默认参考文献格式,或自定义格式。
非常感谢!

关于 BibTeX 的兼容性

我注意到你的 gbstrict 选项是为了兼容 BibTeXlanguage 域。

我在设计 bst 时的思路是,尽可能遵循 BibTeX 的传统,但是因国标而新增的项目按照 BibLaTeX 的接口。
所以我决定把这个地方的 language 改成 langid,然后你应该可以去掉这个选项了吧?

另外关于我的 bst 的 entry type 和 filed 你有什么改进的建议?

\textcite{} 在正文中的格式

希望可以在正文中直接使用biblatex 的\textcite{}命令,得到国标2015中10.2.2的格式。
国标的对多著者在正文中的标注要求是指标第一人的姓:

Chen et al.(1981)
陈某 等(1981)

现在直接用\textcite{}得到的只是

Chen, et al. (1981)
陈某, 等 (1981)

不知道能否去掉逗号?然后限制只标一个人?

pdf文档中的窗体javascript脚本正确显示中文字符

用的一个模板,用原模板的bib style正常,当把style换成gb7714-2015时,编译到\printbibliography时就出错:

) [7] [8]
! Extra \else.
\CJK@XXX ...}\expandafter \CJK@ignorespaces \else
                                                  \csname u8:\string #1\stri...
l.100   \printbibliography[heading = bibliography]

?

无论后边加不加参数、加什么参数,都会出错,只有把\printbibliography注释掉,就正常。
这是为什么?我的bib文件中中英文文献都有,难道不支持中文?

国内一些高校的特殊格式细节

记录一些高校的格式要求的特殊细节,在egthesis示例中做实现,方便应用。

THU:
本科生跟 GB/T 7714-2015 一致;
研究生是在 GB/T 7714-2005 的基础上有额外规定:

西文姓名不转为全大写
无出版地或出版者时不著录“出版地不详”、“S.l.” 等内容
“//” 前后分别加一个空格
中文学位论文的文献类型标志为“博士学位论文”和“硕士学位论文”

USTC:

采用著者-出版年制时,作者姓名与年份之间使用句点连接
无出版地或出版者时不著录“出版地不详”、“S.l.” 等内容

(上述信息为Leezeping提供)

反馈一些使用过程中存在的问题

1,在文献的引用上,引用名里面如果有英文的括号“()”就会报错。
例子:
@misc{Euclidean_geometry(hi),
howpublished = {\url{https://en.wikipedia.org/wiki/Euclidean_geometry}},
title = {Euclidean geometry},
}

2,在文献的引用中,url包含中文的转义后出错,且必须删除编译的文件才能解决
例子:
@misc{Euclidean_geometry,
howpublished = {\url{https://zh.wikipedia.org/wiki/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97%E5%87%A0%E4%BD%95}},
title = {Euclidean geometry},
}

3,在文献的引用中,url包含中文,在参考文献里不能显示
例子:
@misc{Euclidean_geometry,
howpublished = {\url{https://zh.wikipedia.org/wiki/欧几里德几何}},
title = {Euclidean geometry},
}

4,使用脚注,\footfullcite{Euclidean_geometry} 在参考文献里面会将脚注参考内容列出来,还有此时的脚注没有像文章介绍的那样有圆圈,只有数字,且不能跳转。

5,在figure的caption里面使用脚注 \footfullcite{Euclidean_geometry} ,不能够正常显示。

textcite 中作者与年份之间的逗号问题

在正文中使用 textcite 会在作者和年份之间插入逗号,例如 “作者, (年份) 发现 ...”,但一般行文时其实不会插入逗号,在 gb7714-2015 中也没有发现这样的要求和例子(10.2.4 节的正文示例中用的是类似 parencite 的格式)。

此外,有多个作者时,textcite 也会在第一作者后加上逗号,例如 “第一作者, 等, (年份)”,在正文中一般也不会这样写。我以为 gb7714-2015 只是明确对文后的文献列表作这样的格式要求。

尽管可以用其他命令或设置不插入逗号,但我认为直接让 textcite 符合一般行文习惯更好一些。

#27 也提到了这个问题。

部分文献超出边界

文献bib为:

@inproceedings{zeiler2014visualizing,
  title={Visualizing and understanding convolutional networks},
  author={Zeiler, Matthew D and Fergus, Rob},
  booktitle={European conference on computer vision},
  pages={818--833},
  year={2014},
  organization={Springer}
}

显示为:

tim 20180512113141

请问如何解决?

请教一下关于宏包命名问题

我打算把我的 BibTeX style 发布到 CTAN,所以正在考虑宏包命名问题。

标准的正式名称是 《GB/T 7714-2015 ...》,为何你的宏包只有 gb7714 (丢掉 “/T”),请教一下你是怎么考虑的。

以及带个 “-2015” 的后缀是不是稍显啰嗦。

title 域中有的英文单词变成了大写

.bib文件中书名里的英文单词不是大写,编译完后,书名中的有些英文单词变成了大写,如下图
qq 20170821083002
我用的是texlive2017发行版。下面是测试例子源文件
test.zip
我自己也试着改过gb7714-2015.bbx 文件,把所有的 \MakeUppercase 都替换为 \MakeCaptical ,结果标题中的英文还是变成了大写,请问这是什么原因?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.