From dd6bb2ce98e55e005893bdd5c6736725697db748 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 30 Mar 2019 21:24:58 +0000 Subject: biblatex-gb7714-2015 (30mar19) git-svn-id: svn://tug.org/texlive/trunk@50661 c570f23f-e606-0410-a88d-b1316a301751 --- .../biblatex-gb7714-2015/biblatex-gb7714-2015.tex | 941 ++++++++++++--------- 1 file changed, 556 insertions(+), 385 deletions(-) (limited to 'Master/texmf-dist/doc/latex/biblatex-gb7714-2015/biblatex-gb7714-2015.tex') diff --git a/Master/texmf-dist/doc/latex/biblatex-gb7714-2015/biblatex-gb7714-2015.tex b/Master/texmf-dist/doc/latex/biblatex-gb7714-2015/biblatex-gb7714-2015.tex index c7c61b15712..70af97529d6 100644 --- a/Master/texmf-dist/doc/latex/biblatex-gb7714-2015/biblatex-gb7714-2015.tex +++ b/Master/texmf-dist/doc/latex/biblatex-gb7714-2015/biblatex-gb7714-2015.tex @@ -1,15 +1,17 @@ -\documentclass[twoside,11pt]{article} %用draft选项找到badbox的位置 +\documentclass[11pt]{article} %用draft选项找到badbox的位置 twoside, \input{biblatex-gb7714-2015-preamble} %宏包和一些格式设置 \begin{document} %------------------------------------------------------------ % 标题和目录 %------------------------------------------------------------ +\pagestyle{plain} \pagenumbering{Roman} \titleformanual{符合GB/T 7714-2015标准的biblatex参考文献样式 \footnote{This Manual was created with biblatex v\versionofbiblatex, last revised at \today;\\% -Style Files (gb7714-2015*.*) have version number: \versionofgbtstyle.}} +Style Files (gb7714-2015*.*) have version number: \versionofgbtstyle.} +\footnote{repository address: \url{https://github.com/hushidong/biblatex-gb7714-2015}}} \authorformanual{胡振震\setcounter{footnote}{0}\footnote{Email: hzzmail@163.com}} @@ -31,15 +33,16 @@ biblatex-gb7714-2015 宏包是为满足《GB/T 7714-2015~~信息与文献~~参 %\renewcommand{\numberline}[1]{#1~} %\phantomsection %\addcontentsline{toc}{section}{示例} + \listoffigures \listoftables \listofegcode \newlength{\textparwd} %------------------------------------------------------------ -\thispagestyle{plain} \newpage \pagenumbering{arabic} +\pagestyle{fancy} \section{概述} 《GB/T 7714-2015~~信息与文献~~参考文献著录规则》是国内科技文档参考文献著录的一般标准,国内大多数期刊、大学、出版社对于期刊论文、学位论文、出版物参考文献的要求通常都基于该标准。对于\LaTeX{}用户来说,参考文献生成是典型的自动化应用,通常有两种方法,一是基于bibtex的传统方法,二基于biblatex的新方法。生成符合GB/T 7714标准要求的参考文献,这两条路子都已经实践多年。 @@ -110,7 +113,7 @@ GB/T 7714标准的理解和解释(\ref{sec:gbt:std}节)、 \begin{tcolorbox}[left skip=0pt,right skip=0pt,% width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] -\centering +\centering\footnotesize \begin{tikzpicture}[node distance=1.5cm] %\definecolor{bluea}{rgb}{0.05,0.62,0.94} \ttfamily @@ -277,7 +280,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \end{texlist} \end{example} -\begin{example}{不同著录格式共存的样式(gb7714-2015ms)加载方式}{eg:gb7714ms} +\begin{example}{同一文献表中不同语言区分著录格式的样式(gb7714-2015ms)}{eg:gb7714ms} \begin{texlist} %默认方式,所有文献使用一种著录格式,即GB/T 7714-2015样式 \usepackage[backend=biber,style=gb7714-2015ms]{biblatex} @@ -286,285 +289,22 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \end{texlist} \end{example} -\begin{example}{参考文献文本转换为bib文件perl脚本使用方式}{eg:transtobib} +\begin{example}{同一文档中不同文献分节区分不同著录格式的样式(gb7714-2015mx)}{eg:gb7714mx} \begin{texlist} -perl gb7714texttobib.pl in=textfilename out=bibfilename +%默认方式使用顺序编码制样式 +\usepackage[backend=biber,style=gb7714-2015mx]{biblatex} +%如果需要在某一参考文件分节使用作者年制样式,比如第2个refsection使用时,则在导言区设置: +\setaystylesection{2} \end{texlist} \end{example} -其中,v1.0m版本增加的gb7714-2015ms样式文件,主要是为了在一个文档中使用多种样式,比如中文文献使用GB/T 7714-2015规定的著录格式,而其它语言文献使用biblatex提供的标准样式。这种方式尽管不很常用,但偶尔也有需求。 - -\subsection{文献引用及其标注格式}\label{sec:cbx:usage} - -要生成参考文献,第一步就是在正文中引用参考文献。引用参考文献在正文中所形成标注的格式称为参考文献标注样式,也称引用样式或引用标签样式,分为两类: 顺序编码制和著者年份(作者年)制。引用文献的基本命令\verb|\cite|,但为了一篇文档中实现不同的标签效果,通常还需要使用其它命令, -比如\verb|\parencite|, \verb|\textcite|, \verb|\pagescite|,\verb|\footfullcite|等。习惯natbib的用户也可以在加载natbib选项后, -可使用\verb|\citet|, \verb|\citep|命令。 - -%顺序编码制的标注样式文件大体使用标准引用样式numeric-comp的内容 -\paragraph{\heiti 顺序编码制的标注样式} - -\verb|\cite| 命令为上标模式,\verb|\parencite|保留非上标模式。为满足GB/T 7714-2015第10.1.3节的要求,增加了 \verb|\pagescite| 命令。为使用户免于输入文献作者来作为句子主语,完善了\verb|\textcite|命令格式, -并增加了\verb|\authornumcite|命令以同时输出作者和顺序编码。 -%各命令使用方式如例\ref{eg:citefornumeric}所示。 -%各引用命令的效果如图\ref{fig:cite:num}所示。 -各引用命令的使用方式如表\ref{tab:cite:num}所示。 -测试文档见\href{run:example/testallformat.tex}{testallformat.tex}。 - -\begin{refsection} -\begin{table}[!htb] -\centering -\caption{顺序编码制常用命令示例}\label{tab:cite:num} -\small -\begin{tabular}{l@{\quad$\Rightarrow$\quad}ll} -\hline -命令 & 标注标签 & 说明 \\ \hline - \verb|\cite{Peebles2001-100-100}| & \cite{Peebles2001-100-100} & 不带页码上标 \\ - \verb|\upcite{Peebles2001-100-100}| & \upcite{Peebles2001-100-100} & 不带页码上标 \\ - \verb|\supercite{Peebles2001-100-100}| & \supercite{Peebles2001-100-100} & 不带页码上标 \\ - \verb|\parencite{Miroslav2004--}| & \parencite{Miroslav2004--} & 不带页码非上标 \\ - \verb|\cite[49]{蔡敏2006--}| & \cite[49]{蔡敏2006--} & 带页码上标 \\ - \verb|\pagescite{Peebles2001-100-100}| & \pagescite{Peebles2001-100-100} & 自动页码上标 \\ - \verb|\pagescite[150]{Peebles2001-100-100}| & \parencite[49]{Miroslav2004--} & 带页码非上标 \\ - \verb|\parencite[49]{Miroslav2004--}| & \cite[49]{蔡敏2006--} & 带页码的上标 \\ - \verb|\textcite{Miroslav2004--}| & \textcite{Miroslav2004--} & 提供主语非上标标签 \\ - \verb|\authornumcite{Miroslav2004--}| & \authornumcite{Miroslav2004--} & 提供主语上标标签 \\ - \verb|\citeauthor{蔡敏2006--}\cite{蔡敏2006--}| & \citeauthor{蔡敏2006--}\cite{蔡敏2006--} & 提供主语上标标签 \\ - \verb|\footfullcite{赵学功2001--}| & \footfullcite{赵学功2001--} & 脚注方式文献条目 \\ - 引用单篇文献: & 文献\cite{Peebles2001-100-100} & 国标示例 \\ - 同一处引用多篇文献: & 文献\cite{Peebles2001-100-100,Miroslav2004--} & 国标示例\\ - 同一处引用多篇文献: & 文献\cite{蔡敏2006--,Miroslav2004--,赵学功2001--} & 国标示例:三篇以上压缩\\ - 多次引用同一作者的同一文献: & - 文献\cite[20-22]{Miroslav2004--}, - 文献\cite[55-60]{Miroslav2004--} & 国标示例 \\ - 多次引用同一作者的同一文献: & - 文献\footfullcite[20-22]{Miroslav2004--}, - 文献\footfullcite[55-60]{Miroslav2004--} & 国标示例:脚注方式 \\ \hline -\end{tabular} -\end{table} -\end{refsection} - -%\begin{example}{顺序编码制引用命令}{eg:citefornumeric} -%\begin{texlist} -%不带页码的引用(上标,方括号包围): -% \cite{Peebles2001-100-100}\upcite{Peebles2001-100-100} -% \supercite{Peebles2001-100-100} -%不带页码的引用(非上标,方括号包围): -% \parencite{Miroslav2004--} -%带页码的引用: -% \cite[49]{蔡敏2006--} \parencite[见][49页]{Miroslav2004--} -% \pagescite{Peebles2001-100-100}\pagescite[150]{Peebles2001-100-100} -% \pagescite[][201-301]{Peebles2001-100-100} -%同时输出作者和顺序编码的三种引用方式: -% (a)直接的方法:见\citeauthor{refb}\cite{refb}, \citeauthor{refc}\cite{refc} -% (b)定义新的标注命令:见\authornumcite{refb,refc} -% (c)用textcite但没有上标:见\textcite{refb,refc} -%在页脚中引用和打印文献表: -% \footnote{在脚注中引用\footcite{赵学功2001--}} \footfullcite{赵学功2001--} -% \end{texlist} -%\end{example} -% -%\begin{figure}[!htb] -%\begin{tcolorbox}[left skip=0pt,right skip=0pt,% -%width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% -%leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] -%\centering -%\deflength{\textparwd}{\linewidth-1cm} -%\parbox{\textparwd}{ -%\includegraphics{egcitenum.pdf} -%} -%\end{tcolorbox} -%\caption{顺序编码制标注格式}\label{fig:cite:num} -%\end{figure} - -其中,当不指定页码时,\verb|\pagescite|命令默认调用参考文献的页码数据进行输出,如果需要指定页码,那么需要在[]内或第二个[]内(当有两个[]时)输入页码。 - -\qd{对于多个文献一起的压缩形式,指定页码只会应用最后一个参考文献的页码,这是不正确的,但这种情况其实本不应出现,因为指定页码本来就需要具体化指某一文献。使用时请尽可能使用 -\textbackslash pagescite\{key1\}\textbackslash pagescite\{key2\}这种形式 -而不是\textbackslash pagescite\{key1,key2\}|。} - -%作者年制的标注样式文件大体使用标准引用样式authoryear的内容。 -\paragraph{\heiti 作者年制的标注样式} \verb|\cite|和\verb|\parencite|命令将引用标签用圆括号括起来。为满足GB/T 7714-2015第10.2.4节的要求,增加了\verb|\pagescite|命令。 -为满足GB/T 7714-2015第10.2.1节的要求,增加了\verb|\yearpagescite|, \verb|\yearcite|命令用于处理文中已有作者信息只需要年份和页码的情况(为兼容性考虑,顺序编码制也给出该命令,但作用与 -\verb|\pagescite| 命令相同),也完善了 \verb|\textcite| 命令为句子提供主语。 -%各命令使用方式如例\ref{eg:citeforauthoryear}所示。 -%各引用命令的效果如图\ref{fig:cite:ay}所示。 -各引用命令的使用方式如表\ref{tab:cite:authoryear}所示。 -测试文档见\href{run:example/testallformat.tex}{testallformat.tex}。 - -\begin{table}[!htb] -\centering -\caption{著者年份制常用命令示例}\label{tab:cite:authoryear} -\includegraphics[scale=0.8]{egciteaytab.pdf} -\end{table} - - -%\begin{example}{作者年制引用命令}{eg:citeforauthoryear} -%\begin{texlist} -%不带页码的引用: -% \cite{Peebles2001-100-100} \parencite{Miroslav2004--} -%带页码的引用: -% \cite[49]{蔡敏2006--} \parencite[见][49页]{Miroslav2004--} -% \pagescite{Peebles2001-100-100}\pagescite[150]{Peebles2001-100-100} -% \pagescite[][201-301]{Peebles2001-100-100} -%作者年制文中已有作者只需给出年份和页码的引用: -% 见赵学功\yearpagescite[][205]{赵学功2001--}和Miroslav\yearpagescite[][15]{Miroslav2004--} -%作者年制文中已有作者只需给出年份的引用,三种方式: -% 见赵学功\yearcite{赵学功2001--} -% 见赵学功(\cite*{赵学功2001--}) -% 见赵学功(\citeyear{赵学功2001--})\par -%作者年制文中无作者需要标注命令给出作者作为主语的引用: -% 见\textcite{赵学功2001--}\par -%在页脚中引用和打印文献表: -% \footnote{在脚注中引用\footcite{赵学功2001--}} \footfullcite{赵学功2001--} -% \end{texlist} -%\end{example} - -%\begin{figure}[!htb] -%\begin{tcolorbox}[left skip=0pt,right skip=0pt,% -%width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% -%leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] -%\centering -%\deflength{\textparwd}{\linewidth-1cm} -%\parbox{\textparwd}{ -%\includegraphics{egciteay.pdf} -%} -%\end{tcolorbox} -%\caption{作者年制标注格式}\label{fig:cite:ay} -%\end{figure} - -\subsection{文献表打印和段落格式控制}\label{sec:usage:bbx} - -引用文献后,可以在文档需要的位置利用 \verb|\printbibliography| 命令输出。文献表输出的格式称为参考文献著录样式,也称著录表样式或著录格式,也分两类: 顺序编码制和作者年制(著者-出版年制)。 - -%顺序编码制的参考文献样式基于标准样式numeric-comp/numeric -\paragraph{\heiti 顺序编码制样式} 中各条参考文献条目以数字序号按引用先后顺序组织。 -著录格式中序号格式见\ref{sec:bib:serialno}节, -各类型文献条目的著录格式见\ref{sec:numeric:data}节, -参考文献条目中各信息域及其录入方式见\ref{sec:bib:bibtex}节。 - -%作者年制的参考文献样式则基于标准样式authoryear -\paragraph{\heiti 作者年制样式} 中各条参考文献条目以作者-年为标签以一定的顺序排列。作者年制的著录格式与顺序编码制基本相同(除了把年份提到了作者后面作为文献条目内的标签)。数据源bib文件中各条目的数据录入与顺序编码制完全一致。 - -\qd{作者年制有分文种文献集中的要求,因此gb7714-2015排序模板以nyt模板为基础,增加 language 作为 name 前的排序域。默认情况下,本样式文件将标题(或作者)为中文的文献的 language 域设置成 chinese,英文的设置成 english。这一设置过程,在biber 处理时自动完成。当出现问题或者有更多文种分集且有特殊顺序时,可以在bib文件中为相应文种文献的 language 域手动设置适合排序的字符串。比如: 中文文献设置为 chinese,英文文献设置为 enlish,法文文献设置为 french,那么排序中,相应的中文文献排在最前面,英文文献在中间,法文文献最后,因为升序情况下字母顺序是c然后e然后f。} - -%上一段2016-1114更新,下面是以前的说法。 -%\qd{根据文种文献集中的要求,修改了nyt排序格式,增加了userb作为name前的排序域,当有需求进行多文种分集且有特殊顺序时,在bib文件中给相应文种的文献设置适合排序的字符串。比如中文文献设置为cn,英文文献设置为en,法文文献设置为fr,那么排序中,相应的中文文献排在最前面,英文文献在中间,法文文献最后,因为升序情况下字母顺序是c然后e然后f。} - -\paragraph{\heiti 文献表字体、颜色、间距、缩进控制} 为方便用户改变文献表段落格式、内容字体和颜色等,在 biblatex 提供的 \verb|\bibfont| 命令基础上, -增加了\verb|\bibauthorfont|、\verb|\bibtitlefont|、\verb|\bibpubfont| 等命令用于控制文献不同部分的格式,比如作者,标题,出版项等。 -增加了尺寸\verb|\bibitemindent| 用于控制参考文献条目在文献表中的缩进, -其意义与 list 环境中 \verb|\itemindent| 相同。 -用法具体见例\ref{eg:biblist:fontset},结果如图\ref{fig:par:fmt}所示。 -测试用例见\href{run:example/testfontinbiblio.tex}{testfontinbiblio.tex}。 - -\begin{example}{文献表段落格式、字体、颜色、间距控制}{eg:biblist:fontset} -\begin{texlist} -% 换行的控制 -% 选项 block=none , space , par , nbpar , ragged -% 或\renewcommand*{\newblockpunct}{\par\nobreak} - -% 字体的控制:\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} - -% 间距的控制 -\setlength{\bibitemsep}{0ex} -\setlength{\bibnamesep}{0ex} -\setlength{\bibinitsep}{0ex} - -% 文献表中各条文献的缩进控制 -%\setlength{\bibitemindent}{0em} % bibitemindent表示一条文献中第一行相对后面各行的缩进 -%\setlength{\bibhang}{0pt} % 作者年制中 bibhang 表示的各行起始位置到页边的距离,顺序编码制中 bibhang+labelnumberwidth 表示各行起始位置到页边的距离 - -% 标点类型的控制(全局字体能控制标点的字体) -\end{texlist} -\end{example} - -\begin{figure}[!htb] -\begin{tcolorbox}[left skip=0pt,right skip=0pt,% -width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% -leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] -\centering -\deflength{\textparwd}{\linewidth-1cm} -\parbox{\textparwd}{ -\includegraphics{egparfmt.pdf} -} -\end{tcolorbox} -\caption{文献表段落格式示例}\label{fig:par:fmt} -\end{figure} - -\subsection{文献表条目著录格式控制}\label{sec:entry:fmt} - -文献表输出的格式即参考文献著录样式,除了整体的段落格式外,还有条目内部的格式可以控制,条目内部的这些项称为著录项,这些著录项的格式通常可由选项控制。可用选项除了biblatex 提供的标准选项外,也包括样式包提供的选项。 -图\ref{fig:content:fmta}、\ref{fig:content:fmtb}、\ref{fig:content:fmtc}给出了一些选项设置后的格式控制效果, -更多选项的详细说明见第\ref{sec:added:opt}、\ref{sec:old:opt}小节。 - -图\ref{fig:content:fmta}给出了选项设置为 style=gb7714-2015, gbnamefmt=givenahead, -gbpub=false, gbbiblabel=box, gbtitlelink=true 时的文献表,可以看到作者姓名、序号标签、标题超链接的设置。 - -\begin{figure}[!htb] -\begin{tcolorbox}[left skip=0pt,right skip=0pt,% -width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% -leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] -\centering -\deflength{\textparwd}{\linewidth-1cm} -\parbox{\textparwd}{ -\includegraphics{egcontentfmt.pdf} -} -\end{tcolorbox} -\caption{文献表条目著录格式示例一}\label{fig:content:fmta} -\end{figure} - -图\ref{fig:content:fmtb}给出了选项设置为 style=gb7714-2015ms, gbnamefmt=lowercase, -gbpub=false, gbtitlelink=true, gbstyle=false, sorting=nyt 时的文献表,可以看到作者姓名、标题超链接、中英文不同文献格式、文献排序的设置。 - -\begin{figure}[!htb] -\begin{tcolorbox}[left skip=0pt,right skip=0pt,% -width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% -leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] -\centering -\deflength{\textparwd}{\linewidth-1cm} -\parbox{\textparwd}{ -\includegraphics{egcontentfmtb.pdf} -} -\end{tcolorbox} -\caption{文献表条目著录格式示例二}\label{fig:content:fmtb} -\end{figure} - -图\ref{fig:content:fmtc}为选项和本地化字符串如例\ref{eg:localstr:diff}设置时的引用标注和文献表,注意其中引用标注和文献表中的不同本地化字符串输出效果,引用标注中英文作者和中文作者缩略词的不同。这是中科院大学资环类学位论文的要求格式,可以看到尽管有些特殊,但通过选项设置和本地化字符串设置也能实现。 - -\begin{example}{作者年制标注和文献表不同本地字符串效果}{eg:localstr:diff} +\begin{example}{参考文献文本转换为bib文件perl脚本使用方式}{eg:transtobib} \begin{texlist} -\usepackage[backend=biber,style=gb7714-2015ay,gbnamefmt=lowercase,maxcitenames=2,mincitenames=1, -gbbiblocal,sortcites,sorting=gbyntd]{biblatex} -\DefineBibliographyStrings{english}{ - andincite = {和}, - andincitecn = {和}, - andothersincitecn = {等}, - andothersincite = {等{\adddot}},%adddot才能避开标点追踪 -} +perl gb7714texttobib.pl in=textfilename out=bibfilename \end{texlist} \end{example} - -\begin{figure}[!htb] -\begin{tcolorbox}[left skip=0pt,right skip=0pt,% -width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% -leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] -\centering -\deflength{\textparwd}{\linewidth-1cm} -\parbox{\textparwd}{ -\includegraphics{egcontentfmtc.pdf} -} -\end{tcolorbox} -\caption{文献表条目著录格式示例三}\label{fig:content:fmtc} -\end{figure} +其中,v1.0m版本增加的gb7714-2015ms样式文件,主要是为了在一个文献表中针对不同语言使用不同多种样式,比如中文文献使用GB/T 7714-2015规定的著录格式,而其它语言文献使用biblatex提供的标准样式。v1.0r版本增加了gb7714-2015mx样式,主要是为了在一个文档中针对不同参考文献分节使用不同的参考文献样式,比如某些节使用作者年制,某些节使用顺序编码制。尽管这些方式不很常用,但偶尔也有需求,所以都做了实现。应ddswhu要求,v1.0r版本增加了erj样式用于生成经济类期刊文献表。另外在egthesis文件夹内,针对国内一些大学的学位论文文献要求,基于gb样式做了一些定制和测试。 \subsubsection{新增选项}\label{sec:added:opt} 样式包新增了一些选项,用于标签对齐方式、出版项缺省处理、责任者(作者)缺省处理等功能的控制,其使用方式与biblatex宏包选项完全相同: @@ -632,6 +372,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \item gbnamefmt=givenahead,姓名的格式与biblatex标准样式的given-family格式一致,即名在前姓在后,类似于ieee的样式; \item gbnamefmt=familyahead时,姓名的格式与biblatex 标准样式的family-given格式一致,即姓在前名在后,类似于APA 的样式; \item gbnamefmt=pinyin 时,姓名的格式采用一种常见的中文拼音方式,比如对于 Zhao, Yu Xin 或 Yu Xin Zhao 这个姓名拼音格式化为ZHAO Yu-xin。 + \item gbnamefmt=reverseorder 时,姓名的格式与biblatex 标准样式的family-given/given-family格式一致,常用于经济学类的文献。 \end{itemize} \bc{注意:还可以利用 nameformat 域为某一具体条目设置该条目的姓名格式,比如:要在一个文献表中实现英文文献是givenahead 格式,而拼音的文献是pinyin风格,那么可以设置拼音文献的 nameformat 域为pinyin,而gbnamefmt设置为givenahead。条目中nameformat 域的局部设置优先于gbnamefmt的全局设置。}\par \emph{注意:使用pinyin选项时,bib文件中文献的作者应给出完整的名而不是缩写,否则出来的效果未必令人满意}。 @@ -648,6 +389,23 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \item gbtype=false,则不输出标识符,例如“在线的期刊析出文献题名”。 \end{itemize} + \item[gbfieldtype]=true,\textbf{false}. \hfill default is false + + 为控制是否输出type域而增加的选项。 + \begin{itemize} + \item gbfieldtype=true,输出type域,例如学位论文的phdthesis或博士学位论文。输出该域时做中英文区分。 + \item gbfieldtype=false,不输出type域。 + + 要设置博士或硕士学位论文的输出,可以设置本地化字符串: \\ + \lstinline!\DefineBibliographyStrings{english}{mathesis={str you want ma thesis}}!, \\ + \lstinline!\DefineBibliographyStrings{english}{mathesiscn={硕士学位论文}}!, \\ + \lstinline!\DefineBibliographyStrings{english}{phdthesis={str you want for phd thesis}}!, \\ + \lstinline!\DefineBibliographyStrings{english}{phdthesiscn={博士学位论文}}!, \\ + 之所以用加cn的本地化字符串是为了某些样式需要区分中英文分别设置。 + + 另一种设置方式是在bib文件直接设置type域为需要输出的字符,比如type={[博士学位论文]}。 + + \end{itemize} \item[gbpunctin]=\textbf{true},false. \hfill default is true @@ -657,7 +415,8 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \item gbpunctin=true,根据GB/T 7714-2015 要求输出\texttt{//}。 \item gbpunctin=false,则输出默认的本地字符串, 在英语中是\texttt{in:},若要完全去掉该符号则可以在导言区增加命令 - \lstinline!\DefineBibliographyStrings{english}{in={}}!。 + \lstinline!\DefineBibliographyStrings{english}{in={}}!,\lstinline!\DefineBibliographyStrings{english}{incn={}}!。 + 之所以用加cn的本地化字符串是为了某些样式需要区分中英文分别设置。 \end{itemize} \item[gbctexset]=\textbf{true},false. \hfill default is true @@ -732,7 +491,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] 为设置引用标注标签和文献表中的本地化字符串而增加的选项。其中gbcitelocal 用于控制标注中的本地化字符串,而gbbiblocal用于控制文献表中的本地化字符串,gblocal选项等价于同时设置gbcitelocal 和 gbbiblocal。 配合\lstinline[breaklines=true]!\DefineBibliographyStrings!命令对本地化字符串进行设置可以实现一些特殊的效果。图\ref{fig:content:fmtc}就是该选项的一个使用示例。 \begin{itemize} - \item gblocal=gb7714-2015,即默认区分中英文,不同语言采用不同的字符串比如中文使用“等”“和”,而英文使用“etal”“and”。 + \item gblocal=gb7714-2015,即默认区分中英文,不同语言采用不同的字符串比如中文使用“等”“和”,而英文使用“et al.”“and”。 \item gblocal=chinese,强制设置所有的本地化字符串使用中文。 \item gblocal=english,强制设置所有的本地化字符串使用英文。 \end{itemize} @@ -748,11 +507,71 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \item gbstyle=false,不做任何附加处理。 \end{itemize} - 该选项的实现主要是两个方面:一是实现国标要求的脚注标签和段落格式,利用对 + 该选项的实现主要是两个方面: + + 一是实现国标要求的脚注标签和段落格式,利用对 \verb|\@makefnmark|重定义实现正文脚注标签带圈上标, - 利用对\verb|\@makefntext|做patch局部化重设\verb|\@makefnmark|使得脚注中的标签不上标,利用footmisc宏包实现对脚注的悬挂对齐,需要注意由于footmisc的问题,使用该宏包会导致脚注的超链接失效,如果不需要悬挂格式,那么可以在bbx文件中将footmisc注释掉,此外对于beamer类该包也并不兼容,所以当加载beamer类则直接注释掉;二是实现国标要求的相同的文献不输出,而是简化输出,比如同\textcircled{4} 等,主要利用citetracker 选项实现对文献引用的追踪,然后利用ifciteseen 判断和对footfullcite 命令做修改实现。 + 利用对\verb|\@makefntext|做patch局部化重设\verb|\@makefnmark|使得脚注中的标签不上标,利用对latex核心代码和hyperref宏包代码的重定义实现悬挂缩进的格式。 + + 二是实现国标要求的相同的文献不输出,而是简化输出,比如同\textcircled{4} 等,主要利用citetracker 选项实现对文献引用的追踪,然后利用ifciteseen 判断和对footfullcite 命令做修改实现。 测试文档见:\href{run:./example/opt-gbfootbib.tex}{opt-gbfootbib.tex}。 + 同时为了方便脚注的对齐格式控制增加了两个尺寸:\verb|\footbibmargin|和\verb|\footbiblabelsep|,分别表示脚注文本的左侧缩进距离和悬挂的脚注标记标签与脚注文本的间隔距离,默认分别是1em和0.5em。如果要修改悬挂对齐为其它对齐方式,那么需要重定义\verb|\@makefntext|宏,目前悬挂对齐的实现方式见bbx文件。比如下例中就重定义了两个尺寸为2em和1em: + + {\small + \vspace{1ex} + \centering + \fbox{ + \setlength{\footbibmargin}{2em}%脚注的段落左侧缩进距离 + \setlength{\footbiblabelsep}{1em}%脚注中标记号与脚注段落的间距 + \begin{minipage}{0.75\linewidth} + 脚注\footnote{中文脚注中文脚注中文脚注中文脚注中文脚注中文脚注中文脚注中文脚注中文脚注中文脚注} + 脚注\footnote{English footnote English footnote English footnote English footnote English footnote} + \end{minipage}} + \vspace{1ex} + + } + + + 需要注意的是,由于图表标题(caption)环境的特殊性,在其中使用footfullcite可能无法得到正常的脚注文献表。而通常的方法是利用footnotemark和footnotetext来实现脚注,对于文献表也是类似的,因此也不能简单使用footfullcite命令,而是要使用footnotemark和footnotetext以及fullcite命令配合来实现, 比如: + + \begin{example}{图表标题中产生的脚注文献表}{eg:footbib:incaption} + \begin{texlist} + \begin{figure}[h] + \centering + \fbox{abc} + \caption{示意图见文献\protect\footnotemark} + \end{figure} + + \footnotetext{\fullcite{bibtex-key}} + \end{texlist} + \end{example} + + 但要注意由于hyperref本身的原因,这种方式产生的脚注文献表可能没有超链接功能。 + 注意:latex核心代码参考latex.ltx,而hyperref代码参考hyperref.STY。 + + + \item[mergedate]=true,false,none. + + 为作者年制是否在文献表中作者后面输出日期信息而增加了选项值none。 + \begin{itemize} + \item mergedate=true,作者年制文献表仅在作者后输出日期 + \item mergedate=false,作者年制文献表在作者后和出版项中输出日期 + \item mergedate=none,作者年制文献表仅在出版项中输出日期。该选项用于满足中科院大学的作者年制格式要求。 + \item no mergedate,即不给出该选项,这是gb7714-2015ay默认的情况,仅在作者后输出日期且已经根据国标格式化。 + \end{itemize} + + \item[gblanorder]=\textbf{chineseahead},englishahead,userdefinedstr like:cn;en;ru;fr;jp;kr . \hfill default is chineseahead + + 为作者年制文献不同语言分集排序而增加的选项。 + \begin{itemize} + \item gblanorder=chineseahead,即默认做中文文献在前的排序,各语言顺序为: cn;jp;kr;en;fr;ru。 + \item gblanorder=englishahead,做英文在前的排序,各语言顺序为: en;fr;ru;cn;jp;kr。 + \item gblanorder=自定义字符串,比如cn;en;ru;fr;jp;kr。这是一个用分号分隔的语言缩写名构成的字符串,缩写的前后顺序表示文献表中语言分集的顺序。 + \end{itemize} + + 测试文档见:\href{run:./example/opt-gblanorder.tex}{opt-gblanorder.tex}。 + \end{description} @@ -843,57 +662,327 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \item \verb|sortlocale=zh__zhuyin|,为注音顺序 \end{itemize} - \item[language]=autobib, autocite, auto, \prm{language}. \hfill default: autobib + \item[language]=autobib, autocite, auto, \prm{language}. \hfill default: autobib + + 详细说明见biblatex手册。 + + \item[autolang]=none, hyphen, other, other*, \prm{langname}. \hfill default: + + 结合langid/langidopts域,结合babel/polyglossia宏包,可以对西文做基于条目的本地化处理。详细说明见biblatex 手册。 + + \item[sortcites]=true, false. \hfill default: false + + 详细说明见biblatex手册。 + + \item[autocite]=plain, inline, footnote, superscript. \hfill default: plain + + 详细说明见biblatex手册。 + + \item[block]=none, space, par, nbpar, ragged. \hfill default: none + + 详细说明见biblatex手册。 + + \item[indexing]=true, false, cite, bib. \hfill default: false + + 详细说明见biblatex手册。 + + \item[其它]=下面还有很多选项,有些是宏包载入时选项,与样式无关,一般可以使用,但笔者没有做测试,各位朋友可以测试使用。选项的作用可以参考biblatex 使用手册,以及笔者和Wenbo 翻译的中文版。 + \begin{itemize} + \item related=true, false. default: true + \item defernumbers=true, false default: false + \item maxitems=integer default: 3 + \item minitems=integer default: 1 + \item autopunct=true, false default: true + \item clearlang=true, false default: true + \item notetype=foot+end, footonly, endonly default: foot+end + \item backrefstyle=none, three, two, two+, three+, all+ default: three + \item backrefsetstyle=setonly, memonly, setormem, setandmem, memandset, setplusmem default: setonly + \item loadfiles=true, false default: false + \item abbreviate=true, false default: true + \item julian=true, false default: false + \item punctfont=true, false default: false + \item arxiv=abs, ps, pdf, format default: abs + \item mincrossrefs=integer default: 2 + \item minxrefs=integer default: 2 + \item eprint=true, false default: true + \end{itemize} + +\end{description} + + +\subsection{文献引用及其标注格式}\label{sec:cbx:usage} + +要生成参考文献,第一步就是在正文中引用参考文献。引用参考文献在正文中所形成标注的格式称为参考文献标注样式,也称引用样式或引用标签样式,分为两类: 顺序编码制和著者年份(作者年)制。引用文献的基本命令\verb|\cite|,但为了一篇文档中实现不同的标签效果,通常还需要使用其它命令, +比如\verb|\parencite|, \verb|\textcite|, \verb|\pagescite|,\verb|\footfullcite|等。习惯natbib的用户也可以在加载natbib选项后, +可使用\verb|\citet|, \verb|\citep|命令。 + +%顺序编码制的标注样式文件大体使用标准引用样式numeric-comp的内容 +\paragraph{\heiti 顺序编码制的标注样式} + +\verb|\cite| 命令为上标模式,\verb|\parencite|保留非上标模式。为满足GB/T 7714-2015第10.1.3节的要求,增加了 \verb|\pagescite| 命令。为使用户免于输入文献作者来作为句子主语,完善了\verb|\textcite|命令格式, +并增加了\verb|\authornumcite|命令以同时输出作者和顺序编码。 +%各命令使用方式如例\ref{eg:citefornumeric}所示。 +%各引用命令的效果如图\ref{fig:cite:num}所示。 +各引用命令的使用方式如表\ref{tab:cite:num}所示。 +测试文档见\href{run:example/testallformat.tex}{testallformat.tex}。 + +\begin{refsection} +\begin{table}[!htb] +\centering +\caption{顺序编码制常用命令示例}\label{tab:cite:num} +\small +\begin{tabular}{l@{\quad$\Rightarrow$\quad}ll} +\hline +命令 & 标注标签 & 说明 \\ \hline + \verb|\cite{Peebles2001-100-100}| & \cite{Peebles2001-100-100} & 不带页码上标 \\ + \verb|\upcite{Peebles2001-100-100}| & \upcite{Peebles2001-100-100} & 不带页码上标 \\ + \verb|\supercite{Peebles2001-100-100}| & \supercite{Peebles2001-100-100} & 不带页码上标 \\ + \verb|\parencite{Miroslav2004--}| & \parencite{Miroslav2004--} & 不带页码非上标 \\ + \verb|\cite[49]{蔡敏2006--}| & \cite[49]{蔡敏2006--} & 带页码上标 \\ + \verb|\pagescite{Peebles2001-100-100}| & \pagescite{Peebles2001-100-100} & 自动页码上标 \\ + \verb|\pagescite[150]{Peebles2001-100-100}| & \pagescite[150]{Peebles2001-100-100} & 带页码的上标 \\ + \verb|\parencite[49]{Miroslav2004--}| & \parencite[49]{Miroslav2004--} & 带页码非上标 \\ + \verb|\textcite{Miroslav2004--}| & \textcite{Miroslav2004--} & 提供主语非上标标签 \\ + \verb|\authornumcite{Miroslav2004--}| & \authornumcite{Miroslav2004--} & 提供主语上标标签 \\ + \verb|\citeauthor{蔡敏2006--}\cite{蔡敏2006--}| & \citeauthor{蔡敏2006--}\cite{蔡敏2006--} & 提供主语上标标签 \\ + \verb|\footfullcite{赵学功2001--}| & \footfullcite{赵学功2001--} & 脚注方式文献条目 \\ + 引用单篇文献: & 文献\cite{Peebles2001-100-100} & 国标示例 \\ + 同一处引用多篇文献: & 文献\cite{Peebles2001-100-100,Miroslav2004--} & 国标示例\\ + 同一处引用多篇文献: & 文献\cite{蔡敏2006--,Miroslav2004--,赵学功2001--} & 国标示例:三篇以上压缩\\ + 多次引用同一作者的同一文献: & + 文献\cite[20-22]{Miroslav2004--}, + 文献\cite[55-60]{Miroslav2004--} & 国标示例 \\ + 多次引用同一作者的同一文献: & + 文献\footfullcite[20-22]{Miroslav2004--}, + 文献\footfullcite[55-60]{Miroslav2004--} & 国标示例:脚注方式 \\ \hline +\end{tabular} +\end{table} +\end{refsection} + +%\begin{example}{顺序编码制引用命令}{eg:citefornumeric} +%\begin{texlist} +%不带页码的引用(上标,方括号包围): +% \cite{Peebles2001-100-100}\upcite{Peebles2001-100-100} +% \supercite{Peebles2001-100-100} +%不带页码的引用(非上标,方括号包围): +% \parencite{Miroslav2004--} +%带页码的引用: +% \cite[49]{蔡敏2006--} \parencite[见][49页]{Miroslav2004--} +% \pagescite{Peebles2001-100-100}\pagescite[150]{Peebles2001-100-100} +% \pagescite[][201-301]{Peebles2001-100-100} +%同时输出作者和顺序编码的三种引用方式: +% (a)直接的方法:见\citeauthor{refb}\cite{refb}, \citeauthor{refc}\cite{refc} +% (b)定义新的标注命令:见\authornumcite{refb,refc} +% (c)用textcite但没有上标:见\textcite{refb,refc} +%在页脚中引用和打印文献表: +% \footnote{在脚注中引用\footcite{赵学功2001--}} \footfullcite{赵学功2001--} +% \end{texlist} +%\end{example} +% +%\begin{figure}[!htb] +%\begin{tcolorbox}[left skip=0pt,right skip=0pt,% +%width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% +%leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] +%\centering +%\deflength{\textparwd}{\linewidth-1cm} +%\parbox{\textparwd}{ +%\includegraphics{egcitenum.pdf} +%} +%\end{tcolorbox} +%\caption{顺序编码制标注格式}\label{fig:cite:num} +%\end{figure} + +其中,当不指定页码时,\verb|\pagescite|命令默认调用参考文献的页码数据进行输出,如果需要指定页码,那么需要在[]内或第二个[]内(当有两个[]时)输入页码。 + +\qd{对于多个文献一起的压缩形式,指定页码只会应用最后一个参考文献的页码,这是不正确的,但这种情况其实本不应出现,因为指定页码本来就需要具体化指某一文献。使用时请尽可能使用 +\textbackslash pagescite\{key1\}\textbackslash pagescite\{key2\}这种形式 +而不是\textbackslash pagescite\{key1,key2\}|。} + +%作者年制的标注样式文件大体使用标准引用样式authoryear的内容。 +\paragraph{\heiti 作者年制的标注样式} \verb|\cite|和\verb|\parencite|命令将引用标签用圆括号括起来。为满足GB/T 7714-2015第10.2.4节的要求,增加了\verb|\pagescite|命令。 +为满足GB/T 7714-2015第10.2.1节的要求,增加了\verb|\yearpagescite|, \verb|\yearcite|命令用于处理文中已有作者信息只需要年份和页码的情况(为兼容性考虑,顺序编码制也给出该命令,但作用与 +\verb|\pagescite| 命令相同),也完善了 \verb|\textcite| 命令为句子提供主语。 +%各命令使用方式如例\ref{eg:citeforauthoryear}所示。 +%各引用命令的效果如图\ref{fig:cite:ay}所示。 +各引用命令的使用方式如表\ref{tab:cite:authoryear}所示。 +测试文档见\href{run:example/testallformat.tex}{testallformat.tex}。 + +\begin{table}[!htb] +\centering +\caption{著者年份制常用命令示例}\label{tab:cite:authoryear} +\includegraphics[scale=0.85]{egciteaytab.pdf} +\end{table} + + +%\begin{example}{作者年制引用命令}{eg:citeforauthoryear} +%\begin{texlist} +%不带页码的引用: +% \cite{Peebles2001-100-100} \parencite{Miroslav2004--} +%带页码的引用: +% \cite[49]{蔡敏2006--} \parencite[见][49页]{Miroslav2004--} +% \pagescite{Peebles2001-100-100}\pagescite[150]{Peebles2001-100-100} +% \pagescite[][201-301]{Peebles2001-100-100} +%作者年制文中已有作者只需给出年份和页码的引用: +% 见赵学功\yearpagescite[][205]{赵学功2001--}和Miroslav\yearpagescite[][15]{Miroslav2004--} +%作者年制文中已有作者只需给出年份的引用,三种方式: +% 见赵学功\yearcite{赵学功2001--} +% 见赵学功(\cite*{赵学功2001--}) +% 见赵学功(\citeyear{赵学功2001--})\par +%作者年制文中无作者需要标注命令给出作者作为主语的引用: +% 见\textcite{赵学功2001--}\par +%在页脚中引用和打印文献表: +% \footnote{在脚注中引用\footcite{赵学功2001--}} \footfullcite{赵学功2001--} +% \end{texlist} +%\end{example} + +%\begin{figure}[!htb] +%\begin{tcolorbox}[left skip=0pt,right skip=0pt,% +%width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% +%leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] +%\centering +%\deflength{\textparwd}{\linewidth-1cm} +%\parbox{\textparwd}{ +%\includegraphics{egciteay.pdf} +%} +%\end{tcolorbox} +%\caption{作者年制标注格式}\label{fig:cite:ay} +%\end{figure} + +\subsection{打印文献表及其著录格式}\label{sec:usage:bbx} + +引用文献后,可以在文档需要的位置利用 \verb|\printbibliography| 命令输出。文献表输出的格式称为参考文献著录样式,也称著录表样式或著录格式,也分两类: 顺序编码制和作者年制(著者-出版年制)。 + +%顺序编码制的参考文献样式基于标准样式numeric-comp/numeric +\paragraph{\heiti 顺序编码制样式} 中各条参考文献条目以数字序号按引用先后顺序组织。 +著录格式中序号格式见\ref{sec:bib:serialno}节, +各类型文献条目的著录格式见\ref{sec:numeric:data}节, +参考文献条目中各信息域及其录入方式见\ref{sec:bib:bibtex}节。 + +%作者年制的参考文献样式则基于标准样式authoryear +\paragraph{\heiti 作者年制样式} 中各条参考文献条目以作者-年为标签以一定的顺序排列。作者年制的著录格式与顺序编码制基本相同(除了把年份提到了作者后面作为文献条目内的标签)。数据源bib文件中各条目的数据录入与顺序编码制完全一致。 + +\qd{作者年制有分文种文献集中的要求,因此gb7714-2015排序模板以nyt模板为基础,增加 language 作为 name 前的排序域。默认情况下,本样式文件将标题(或作者)为中文的文献的 language 域设置成 chinese,英文的设置成 english。这一设置过程,在biber 处理时自动完成。当出现问题或者有更多文种分集且有特殊顺序时,可以在bib文件中为相应文种文献的 language 域手动设置适合排序的字符串。比如: 中文文献设置为 chinese,英文文献设置为 enlish,法文文献设置为 french,那么排序中,相应的中文文献排在最前面,英文文献在中间,法文文献最后,因为升序情况下字母顺序是c然后e然后f。} + +%上一段2016-1114更新,下面是以前的说法。 +%\qd{根据文种文献集中的要求,修改了nyt排序格式,增加了userb作为name前的排序域,当有需求进行多文种分集且有特殊顺序时,在bib文件中给相应文种的文献设置适合排序的字符串。比如中文文献设置为cn,英文文献设置为en,法文文献设置为fr,那么排序中,相应的中文文献排在最前面,英文文献在中间,法文文献最后,因为升序情况下字母顺序是c然后e然后f。} + +打印出的文献表格式控制主要有两个部分的格式需要控制,一是文献表的段落格式,二是文献表中各条文献的著录格式: + +\subsubsection{段落格式控制} + +\paragraph{\heiti 文献表字体、颜色、间距、缩进控制} 为方便用户改变文献表段落格式、内容字体和颜色等,在 biblatex 提供的 \verb|\bibfont| 命令基础上, +增加了\verb|\bibauthorfont|、\verb|\bibtitlefont|、\verb|\bibpubfont| 等命令用于控制文献不同部分的格式,比如作者,标题,出版项等。 +增加了尺寸\verb|\bibitemindent| 用于控制参考文献条目在文献表中的缩进, +其意义与 list 环境中 \verb|\itemindent| 相同。 +用法具体见例\ref{eg:biblist:fontset},结果如图\ref{fig:par:fmt}所示。 +测试用例见\href{run:example/testfontinbiblio.tex}{testfontinbiblio.tex}。 + +\begin{example}{文献表段落格式、字体、颜色、间距控制}{eg:biblist:fontset} +\begin{texlist} +% 换行的控制 +% 选项 block=none , space , par , nbpar , ragged +% 或\renewcommand*{\newblockpunct}{\par\nobreak} + +% 字体的控制:\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} + +% 间距的控制 +\setlength{\bibitemsep}{0ex} +\setlength{\bibnamesep}{0ex} +\setlength{\bibinitsep}{0ex} - 详细说明见biblatex手册。 +% 文献表中各条文献的缩进控制 +%\setlength{\bibitemindent}{0em} % bibitemindent表示一条文献中第一行相对后面各行的缩进 +%\setlength{\bibhang}{0pt} % 作者年制中 bibhang 表示的各行起始位置到页边的距离,顺序编码制中 bibhang+labelnumberwidth 表示各行起始位置到页边的距离 - \item[autolang]=none, hyphen, other, other*, \prm{langname}. \hfill default: +% 标点类型的控制(全局字体能控制标点的字体) +\end{texlist} +\end{example} - 结合langid/langidopts域,结合babel/polyglossia宏包,可以对西文做基于条目的本地化处理。详细说明见biblatex 手册。 +\begin{figure}[!htb] +\begin{tcolorbox}[left skip=0pt,right skip=0pt,% +width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% +leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] +\centering +\deflength{\textparwd}{\linewidth-1cm} +\includegraphics[width=\textparwd]{egparfmt.pdf} +\end{tcolorbox} +\caption{文献表段落格式示例}\label{fig:par:fmt} +\end{figure} - \item[sortcites]=true, false. \hfill default: false +\subsubsection{条目著录格式控制}\label{sec:entry:fmt} - 详细说明见biblatex手册。 +文献表输出的格式即参考文献著录样式,除了整体的段落格式外,还有条目内部的格式可以控制,条目内部的这些项称为著录项,这些著录项的格式通常可由选项控制。可用选项除了biblatex 提供的标准选项外,也包括样式包提供的选项。 +图\ref{fig:content:fmta}、\ref{fig:content:fmtb}、\ref{fig:content:fmtc}给出了一些选项设置后的格式控制效果, +更多选项的详细说明见第\ref{sec:added:opt}、\ref{sec:old:opt}小节。 - \item[autocite]=plain, inline, footnote, superscript. \hfill default: plain +图\ref{fig:content:fmta}给出了选项设置为 style=gb7714-2015, gbnamefmt=givenahead, +gbpub=false, gbbiblabel=box, gbtitlelink=true 时的文献表,可以看到作者姓名、序号标签、标题超链接的设置。 - 详细说明见biblatex手册。 +\begin{figure}[!htb] +\begin{tcolorbox}[left skip=0pt,right skip=0pt,% +width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% +leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] +\centering +\deflength{\textparwd}{\linewidth-1cm} +\includegraphics[width=\textparwd]{egcontentfmt.pdf} +\end{tcolorbox} +\caption{文献表条目著录格式示例一}\label{fig:content:fmta} +\end{figure} - \item[block]=none, space, par, nbpar, ragged. \hfill default: none +图\ref{fig:content:fmtb}给出了选项设置为 style=gb7714-2015ms, gbnamefmt=lowercase, +gbpub=false, gbtitlelink=true, gbstyle=false, sorting=nyt 时的文献表,可以看到作者姓名、标题超链接、中英文不同文献格式、文献排序的设置。 - 详细说明见biblatex手册。 +\begin{figure}[!htb] +\begin{tcolorbox}[left skip=0pt,right skip=0pt,% +width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% +leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] +\centering +\deflength{\textparwd}{\linewidth-1cm} +\includegraphics[width=\textparwd]{egcontentfmtb.pdf} +\end{tcolorbox} +\caption{文献表条目著录格式示例二}\label{fig:content:fmtb} +\end{figure} - \item[indexing]=true, false, cite, bib. \hfill default: false +图\ref{fig:content:fmtc}为选项和本地化字符串如例\ref{eg:localstr:diff}设置时的引用标注和文献表,注意其中引用标注和文献表中的不同本地化字符串输出效果,引用标注中英文作者和中文作者缩略词的不同。这是中科院大学资环类学位论文的要求格式,可以看到尽管有些特殊,但通过选项设置和本地化字符串设置也能实现。 - 详细说明见biblatex手册。 +\begin{example}{作者年制标注和文献表不同本地字符串效果}{eg:localstr:diff} +\begin{texlist} +\usepackage[backend=biber,style=gb7714-2015ay,gbnamefmt=lowercase,maxcitenames=2,mincitenames=1, +gbbiblocal,sortcites,sorting=gbyntd]{biblatex} +\DefineBibliographyStrings{english}{ + andincite = {和}, + andincitecn = {和}, + andothersincitecn = {等}, + andothersincite = {等{\adddot}},%adddot才能避开标点追踪 +} +\end{texlist} +\end{example} - \item[其它]=下面还有很多选项,有些是宏包载入时选项,与样式无关,一般可以使用,但笔者没有做测试,各位朋友可以测试使用。选项的作用可以参考biblatex 使用手册,以及笔者和Wenbo 翻译的中文版。 - \begin{itemize} - \item related=true, false. default: true - \item defernumbers=true, false default: false - \item maxitems=integer default: 3 - \item minitems=integer default: 1 - \item autopunct=true, false default: true - \item clearlang=true, false default: true - \item notetype=foot+end, footonly, endonly default: foot+end - \item backrefstyle=none, three, two, two+, three+, all+ default: three - \item backrefsetstyle=setonly, memonly, setormem, setandmem, memandset, setplusmem default: setonly - \item loadfiles=true, false default: false - \item abbreviate=true, false default: true - \item julian=true, false default: false - \item punctfont=true, false default: false - \item arxiv=abs, ps, pdf, format default: abs - \item mincrossrefs=integer default: 2 - \item minxrefs=integer default: 2 - \item eprint=true, false default: true - \end{itemize} -\end{description} +\begin{figure}[!htb] +\begin{tcolorbox}[left skip=0pt,right skip=0pt,% +width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% +leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] +\centering +\deflength{\textparwd}{\linewidth-1cm} +\includegraphics[width=\textparwd]{egcontentfmtc.pdf} +\end{tcolorbox} +\caption{文献表条目著录格式示例三}\label{fig:content:fmtc} +\end{figure} +\subsection{多语言支持} -\subsection{多语言混合文献表}\label{sec:multilan:combine} +\subsubsection{多语言混合文献表}\label{sec:multilan:combine} 一般情况下在国内应用环境下,多语言混合不太会超过两种语言,比如仅有中英两种语言混合。但有时可能也会存在多种语言,比如存在中/英/日/俄这种多语言环境。图\ref{fig:multi:lan}给出了这样一个示例,其中不同的语言使用了不同的本地化字符串。 @@ -903,9 +992,7 @@ width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \centering \deflength{\textparwd}{\linewidth-1cm} -\parbox{\textparwd}{ -\includegraphics{egmultilan.pdf} -} +\includegraphics[width=\textparwd]{egmultilan.pdf} \end{tcolorbox} \caption{多语言混合文献表}\label{fig:multi:lan} \end{figure} @@ -935,7 +1022,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \href{run:example/opt-autolang-multilan.tex}{opt-autolang-multilan}。 -\subsection{多语言对照的文献表}\label{sec:multilan:implement} +\subsubsection{多语言对照的文献表}\label{sec:multilan:implement} 国标GB/T 7714-2015有不同语言对照文献的要求(详见第6.1节),某些期刊也有类似的需求。对于biblatex宏包,这一问题可以通过条目集类型(set)/或者条目关联(related)来解决,多语言对照的情况与双语言对照本质是一样的,因此下面主要讨论双语对照的文献表。 图\ref{fig:double:lana}和\ref{fig:double:lanb}给出中英双语对照文献示例,两个示例中英文文献的作者姓名做了不同的设置,前者为 gbnamefmt=uppercase,后者为gbnamefmt=pinyin。 @@ -947,9 +1034,7 @@ width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \centering \deflength{\textparwd}{\linewidth-1cm} -\parbox{\textparwd}{ -\includegraphics{egdoublelan.pdf} -} +\includegraphics[width=\textparwd]{egdoublelan.pdf} \end{tcolorbox} \caption{双语言对照文献表示例一}\label{fig:double:lana} \end{figure} @@ -960,9 +1045,7 @@ width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \centering \deflength{\textparwd}{\linewidth-1cm} -\parbox{\textparwd}{ -\includegraphics{egdoublelanb.pdf} -} +\includegraphics[width=\textparwd]{egdoublelanb.pdf} \end{tcolorbox} \caption{双语言对照文献表示例二}\label{fig:double:lanb} \end{figure} @@ -1021,6 +1104,10 @@ language={chinese} \bc{注意:由于动态set条目集设置等价于使用了 nocite命令,因此只要定义了动态条目集的文献都会出现在文献表中,因此如果不引用相应的文献,那么无需对其定义动态条目集}。 +\bc{注意:biblatex提供的mcite模块提供了mcite类命令,其等价于定义动态条目集,因此除了使用上述defbibentryset方法外,也可以使用mcite类命令}。 + +\bc{注意:条目集方法本质上是将多个文献条目集合成一个组一起在文献表中输出,且仅有一个标注标签。无论是否是多语言对照都是可以使用的,这里的多语言对照实现只是条目集方法的一个具体应用}。 + \paragraph{\heiti 利用条目关联满足双语文献要求} 除上述给出的条目集方案外,关联条目方法则是另一种可行方案,该方案的讨论可以见“Again about the \@ set label for authoryear style”\footnote{\url{https://github.com/plk/biblatex/issues/681}}。该方案同样也有静态和动态两种方法,静态就是修改bib文件内容,动态则是在tex源文档中做设置。 @@ -1064,7 +1151,65 @@ language={chinese} 双语对照文献的两种动态方法基于set和related的方法测试,参见: \href{run:./example/opt-eg-authoryear.tex}{opt-eg-authoryear.tex}。 -\subsection{biblatex 的优点} +\subsection{多样式支持} + +\subsubsection{一个文献表采用多种著录样式} + +一个文献表采用多种著录样式主要针对的是在一个tex文档生成参考文献表中,不同的语言文献采用不同的著录格式的需求,比如中文的文献采用GB/T 7714-2015 样式,而西文文献则采用西文习惯的样式。这种情况目前由gb7714-2015ms样式来实现,选项加载方式如例\ref{eg:gb7714ms}所示。 + +目前gb7714-2015ms样式中,中文西文分别采用GB/T 7714-2015 标准样式和biblatex的默认样式,如果有需要完全可以通过定义中文和西文的格式做进一步的修改。图\ref{fig:eg:ms}展示了两种不同语言完全不同的著录格式。 + +\begin{figure}[!htb] +\begin{tcolorbox}[left skip=0pt,right skip=0pt,% +width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% +leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] +\centering +\deflength{\textparwd}{\linewidth-1cm} +\includegraphics[width=\textparwd]{egmsinabiblio.pdf} +\end{tcolorbox} +\caption{一个文献表采用多种著录样式示例}\label{fig:eg:ms} +\end{figure} + +测试见文档\href{run:egfigure/egmsinabiblio.tex}{egmsinabiblio.tex}。 + + + +\subsubsection{不同参考文献分节采用不同著录样式} + +不同参考文献分节采用不同著录样式主要针对一个tex文档中存在多个参考文献表,且各参考文献表的格式需求不同。比如正文的参考文献表为作者年制,而附录中的作者论著情况则用的顺序编码制,这在一些论文写作中是可能的。这种情况目前由gb7714-2015mx样式来实现,选项加载方式如例\ref{eg:gb7714mx}所示。 + +gb7714-2015mx样式默认使用顺序编码样式,当要使用作者年制样式时,则利用命令 +\verb|\setaystylesection{2}|进行设置,该命令表示对参考文献节2的参考文献采用作者年制样式。 +设置多个参考文献节时,则继续采用\verb|\setaystylesection|设置,比如节3也要采用作者年制样式,那么设置\verb|\setaystylesection{3}|。 + +目前gb7714-2015mx样式中的两种格式顺序编码和作者年制样式默认都是符合GB/T 7714-2015 标准的,如果需要做格式的修改,则完全可以通过自定义作出修改。图\ref{fig:eg:ms}展示了分三个文献节的文档,其中节二使用了作者年制。 + +\begin{figure}[!htb] +\begin{tcolorbox}[left skip=0pt,right skip=0pt,% +width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% +leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] +\centering +\deflength{\textparwd}{\linewidth-1cm} +\includegraphics[width=\textparwd]{egmsindfrefsec.pdf} +\end{tcolorbox} +\caption{不同参考文献分节采用不同著录样式}\label{fig:eg:ms} +\end{figure} + +测试见文档\href{run:egfigure/egmsindfrefsec.tex}{egmsindfrefsec.tex}。 + + +\subsubsection{完全自定义的条目内容样式} + +完全自定义的条目内容样式,主要针对不完全和不规范的文献表输出,而是输出部分参考文献信息。这是采用文献缩略信息打印的方法实现。具体的实现方法见\href{https://github.com/hushidong/biblatex-solution-to-latex-bibliography/blob/master/biblatex-solution-to-latex-bibliography.pdf}% +{biblatex-solution-to-latex-bibliography}中的第2.10节。 + +具体例子则可以参考\href{run:./stdgbT7714-2015.pdf}{stdgbT7714-2015.pdf}。其中第8节中大量使用这种方式。 + + + +\subsection{未分类说明} + +\subsubsection{biblatex 的优点} 基于 biblatex 宏包的参考文献生成方法,具有很多明显的优点,读者可以从 \href{https://github.com/CTeX-org/lshort-cn}{lshort-cn}、 @@ -1124,57 +1269,7 @@ language={chinese} \end{enumerate} %上述这些优点也是笔者决定编写符合GB/T 7714-2015标准的参考文献样式文件的原因之一。 -\subsection{使用注意事项}\label{sec:pkg:hints} - -\begin{enumerate} - - \item 本样式包的设计与实现方法以及设计到的一些biblatex功能介绍,以项目示例的形式总结在 - \href{https://github.com/hushidong/biblatex-solution-to-latex-bibliography}{\LaTeX 文档中文参考文献的biblatex解决方案}中,本文档不再重复给出,有需要了解的用户可以参见其中的第3.1节。 - - \item tex源文档既可以用xelatex编译,也可以利用pdflatex或latex进行编译。但要注意的是pdflatex编译可能因为某些样式比如authoryear,使用了xstring宏包中的一些命令而导致错误,但numeric类样式通常没有问题。该问题在biblatex更新到3.12版本后取消xstring 宏包后得以解决。 - - 中文用户编译还需要注意编码问题。 - utf-8编码的文档,采用xelatex 编译没有任何注意事项,但使用pdflatex编译时,需要给ctex 宏包加载UTF8选项,比如\verb|\usepackage[UTF8]{ctex}|,该选项在文档类加载时给出也可,比如\verb|\documentclass[[UTF8]{article}|,同时引用文献时使用的引用关键词应使用英文。 - - 当文档使用其他编码时,可以利用notepad++ 或notepad2 等编辑器将其转换为UTF-8编码。若不进行转换,使用xelatex编译通常需要指定一个文档编码,比如windows 环境下的GB2312 编码的文档需要指定\verb|\XeTeXinputencoding "GBK"|,否则会显示乱码。使用pdflatex进行编译时,如果biblatex不能正确的处理编码问题,那么需要为其明确的指定texencoding和bibencoding 选项。比如windows环境下的GB2312编码的文档,需要指定\verb|\usepackge[texencoding=GBK]{biblatex}|。 - - %增加了对GBK支持的说明,2018-05-11 - - \item 当顺序编码和作者年制切换,或者biblatex版本切换,或者不同样式切换时,如果编译出错,可先清理一下辅助文件,完成后再重新编译。 - - \item 当bibtex键中含有中文的时候,texlive2015中的biblatex3.0版的对参考文献条目的超链接会出现问题,而texlive2016中的biblatex3.4或以后的版本则没有问题。 - - \item GB/T 7714-2015中的作者年制要求参考文献按文种集合,且中文在前英文在后。主要通过定义DeclareSortingScheme\{gb7714-2015\} (biblatex3.7 以前版本) 或 DeclareSortingTemplate\{gb7714-2015\} (biblatex3.8以后版本),利用自动设定的language 域实现排序。默认情况下,样式能基本正确的区分中文和英文文献并排序。当如果出现错误的情况,用户可以手动修改bib源文件,将language 域设置成合适的字符串,用于排序,详见\ref{sec:usage:bbx}节的说明。 - -%上一段2016-1114更新,下面这段是旧的说法, -%通过定义DeclareSortingScheme\{nyt\},设置方向为direction=descending,可以实现中文在前英文在后但两个文种的文献各自也是降序的。还有一种变通的方法是,在录入bib文件时,在userb域填入用于排序的信息,比如需要排前面中文文献填cn,排后面的英文文献用en。这样因为修改后的排序格式nyt会在author域前先用userb进行排序,自然会把中文文献放在前面。 - - \item 当出版地和出版者同时缺省时,GB/T 7714-2015中没有给出明确的说明,但英文给出了一个例子(见GB/T 7714-2015 附录A.3)而中文没有,英文的形式是[S.l. : s.n.],因此中文也考虑类似的格式[出版地不详 : 出版者不详]。 - - %,这种形式本样式没有给出,而直接用两者分开的形式,[S.l.] : [s.n.] - - %事实上这里作者认为没有必要把s.l.和s.n. 合起来,不仅与缺省两者之一的情况不统一,样式处理起来也增加不必要的麻烦。 - - \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}} 分别提供的样式文件,效果是类似的。此外,Casper Ti. Vector提供的biblatex 样式caspervector也是不错的中文参考文献样式 - \footnote{\url{https://gitlab.com/CasperVector/biblatex-caspervector}}。 感谢各位作者的分享! - -% \item 本文档根据GB/T 7714-2015提供的参考文献表著录格式示例做了测试和验证,详见第\ref{sec:eg:gb77142015}节。 -% 测试系统环境为: -% \begin{itemize} -% \item windows7x86+texlive 2014,采用xelatex编译; -% -% \item windows7x64+texlive 2015,采用xelatex编译; -% -% \item 虚拟机xp+texlive 2016,采用xelatex编译; -% -% \item Deepin linux-x64v15.3+texlive 2016,采用xelatex编译。 -% -% \item windows7x64+texlive 2017,采用xelatex编译; -% \end{itemize} - -\end{enumerate} - -\subsection{数据库bib文件和数据录入}\label{sec:bib:bibtex} +\subsubsection{数据库bib文件和文献条目}\label{sec:bib:bibtex} 参考文献数据以bibtex格式保存在bib文件中。生成参考文献除tex源文档外,还需创建参考文献数据源文件即bib文件。bib文件数据源准备完成后,在加载biblatex宏包时,使用addbibresource命令将其加载进tex源文档中。\bc{注意:数据源可以加载多个,比如多个章节的参考文献放在不同的bib文件中,那么全部加载进来即可}。 @@ -1189,11 +1284,11 @@ bib文件中的参考文献信息是以条目形式组织,一篇文献创建 \hline GB/T 7714-2015中的参考文献类型 & biblatex中的条目类型 & 类型标识代码\\ \hline 专著& book & M\\ - 标准& standard/book or inbook with field note=standard& S\\ + 标准& standard/book or inbook with note=standard& S\\ 专著中的析出文献& inbook & M\\ 连续出版物& periodical& J\\ 连续出版物的析出文献& article& J\\ - 报纸析出的文献& newspaper/article with field note=standard& N\\ + 报纸析出的文献& newspaper/article with note=news& N\\ 专利& patent& P\\ 电子资源或电子公告& online/www/electronic& EB\\ 会议录或会议文集& proceedings& C\\ @@ -1225,7 +1320,7 @@ bib文件中的参考文献信息是以条目形式组织,一篇文献创建 \begin{tabular}{cl} \hline GB/T 7714-2015中的文献著录项目 & biblatex中的域\\ \hline - 责任者 & author\\ + 责任者 & author/editor\\ 题名 & title\\ 译者 & translator\\ 版本(主要用于出版物) & edition\\ @@ -1237,7 +1332,7 @@ bib文件中的参考文献信息是以条目形式组织,一篇文献创建 日期 & date\\ 日期(不可解析的日期) & year\\ 页码 & pages\\ - 析出文献来源的责任者 & bookauthor\\ + 析出文献来源的责任者 & bookauthor/editor\\ 析出文献来源的标题 & booktitle\\ 连续出版物题名(期刊、报纸) & journal/journaltitle\\ 期刊的卷 & volume\\ @@ -1254,7 +1349,19 @@ bib文件中的参考文献信息是以条目形式组织,一篇文献创建 需要注意的是,note域在本样式中也做特殊用途,即在book类型的note域中输入standard表示标准,在aritcle类型的note域中输入news表示报纸,当然也可以不做特殊用,而只是表示杂项信息,因为标准和报纸可以用standard和newspaper类型表示,尽管这两种类型不是biblatex原生的条目类型。而usera域用于表示参考文献类型和载体标识符(为兼容Lee zeping的bst样式使用的bib文件也可以用mark和medium表示)。一般情况下usera,mark,medium这些域不用在bib文件中输入,而由样式文件自动处理得到,既为了使bib文件更纯粹,也为了兼容不同的样式。想象一下如果在bib文件中给出usera域,但另一样式需要使用usera域且用途不同,那么就会有兼容性问题。不用手动输入更重要的目的是为用户减负,因为用户可以直接使用从网络(各种学术)导出参考文献信息而不用再额外添加一个参考文献类型和载体标识符。本宏包自动判断语言而不使用一个表示语言的域比如language来标记文献的语言类型也出于同样的考虑,当然也有一种情况即一篇文献中存在多种语言是无法用一个language标识的,比如一本英文著作被翻译为中文,那么原作者是英文,而译者则是中文,这时标记language的意义不大。标记language更多的是用在多种语言混合的文档中,可以用language来标记英语、中文、日语、法语和德语等用于分语言排序。 -各个数据域的录入应符合bib文件规范。\bc{需要注意: 有时直接从网络获取的参考文献信息中可能带有一些特殊字符比如\%,\&等,这些字符在 tex 中通常需要做转义处理,本样式中对像title,journal等常见域中出现的特殊字符已经做了转义,但是一些不常见的域比如 abstract 等没有考虑,所以用户需要手动处理,例如把\%改为\textbackslash \%,否则可能导致出错}。下面详细介绍本样式中使用的域及其数据录入方式: +\subsubsection{文献条目的数据域及其录入方法}\label{sec:bib:field} + +各个数据域的录入应符合bib文件规范。需要注意: + +\bc{1. 有时直接从网络获取的参考文献信息中可能带有一些特殊字符比如\%,\&等,这些字符在 tex 中通常需要做转义处理,本样式中对像title,journal等常见域中出现的特殊字符已经做了转义,但是一些不常见的域比如 abstract 等没有考虑,所以用户需要手动处理,例如把\%改为\textbackslash \%,否则可能导致出错} + +\bc{2. 由于目前biber使用\href{https://github.com/ambs/Text-BibTeX/tree/master/btparse}{btparse}来解析bib文件,因此各条目中的引用关键词中不能出现圆括号作为其内容一部分比如\@misc\{Euclidean\_geometry(hi), 这样的写法是不允许的,需要去掉其中(),否则biber会报错。%} +} + +\bc{3. 由于url宏包的特点,在各个域中使用 \textbackslash url命令时,无法使用中文字符,如果要使用带中文字符的网址,那么可以利用 \textbackslash href命令代替 \textbackslash url命令。或者不使用这两个命令,而直接输入网址,超链接则在域格式中用 \textbackslash href 命令定义,比如: +\textbackslash DeclareFieldFormat\{howpublished\}\{\textbackslash href\{\#1\}\{\#1\}\}。 +} +下面详细介绍本样式中使用的域及其数据录入方式: \begin{description} \item[author] 在biblatex中author域属于name数据类型,输入数据时,各姓名间用and 连接,当姓名过多省略时,用others代替。 @@ -1306,6 +1413,8 @@ bib文件中的参考文献信息是以条目形式组织,一篇文献创建 \item[doi] 直接输入需要打印的DOI内容 \item[note] 在本样式中note域有特殊功能,当其内容为standard或news 时,判断条目类型为标准和报纸析出的文献。 \item[bookauthor] 用于析出文献时,作为析出文献来源文献的作者,其输入方式与author 相同。 + \item[editor] editor有时直接作为文献的责任者,比如连续出版物(periodical)类型。有时因为author缺失,editor被当做责任者。还有的时候bookauthor缺失,editor也被当做bookauthor,即析出文献来源文献的责任者。editor的输入方式与author相同。 + \item[editortype] editortype作为editor的类型或角色说明域,可以用来在editor后面加上适当的表示角色的字符串,比如“主编”或“eds.”等。常见的角色包括:editor、compiler、founder、continuator, redactor、reviser 和collaborator等。当然这是西文环境中的情况,足够细分,中文情况下可以不用这么细分,而仅对editortype={editor}时的本地化字符串做设置,当然如果一篇文档中存在多种不同的角色editor文献的情况,也需要做细分。 \item[booktitle] 用于析出文献时,作为析出文献来源文献的题名,其输入方式与title 相同。booktitleaddon域输入方式也相同。 \item[volume] 连续出版物的卷,格式化输入用整数,当有范围时中间用短横线连接,比如:1-4。当无法解析时,输入内容被认为是需要完整打印的内容。 \item[number] 连续出版物的期或报纸的版次,输入与volume类似。或者是专利等的号时,直接输入需要打印的内容。 @@ -1329,6 +1438,61 @@ bib文件中的参考文献信息是以条目形式组织,一篇文献创建 \item 页码:\ref{sec:fmt:pages}节 \end{itemize} +\subsubsection{其它注意事项}\label{sec:pkg:hints} + +\begin{enumerate} + + \item 本样式包的设计与实现方法以及设计到的一些biblatex功能介绍,以项目示例的形式总结在 + \href{https://github.com/hushidong/biblatex-solution-to-latex-bibliography}{\LaTeX 文档中文参考文献的biblatex解决方案}中,本文档不再重复给出,有需要了解的用户可以参见其中的第3.1节。 + + \item tex源文档既可以用xelatex编译,也可以利用pdflatex或latex进行编译。但要注意的是pdflatex编译可能因为某些样式比如authoryear,使用了xstring宏包中的一些命令而导致错误,但numeric类样式通常没有问题。该问题在biblatex更新到3.12版本后取消xstring 宏包后得以解决。 + + 中文用户编译还需要注意编码问题。 + utf-8编码的文档,采用xelatex 编译没有任何注意事项,但使用pdflatex编译时,需要给ctex 宏包加载UTF8选项,比如\verb|\usepackage[UTF8]{ctex}|,该选项在文档类加载时给出也可,比如\verb|\documentclass[[UTF8]{article}|,同时引用文献时使用的引用关键词应使用英文。 + + 当文档使用其他编码时,可以利用notepad++ 或notepad2 等编辑器将其转换为UTF-8编码。若不进行转换,使用xelatex编译通常需要指定一个文档编码,比如windows 环境下的GB2312 编码的文档需要指定\verb|\XeTeXinputencoding "GBK"|,否则会显示乱码。使用pdflatex进行编译时,如果biblatex不能正确的处理编码问题,那么需要为其明确的指定texencoding和bibencoding 选项。比如windows环境下的GB2312编码的文档,需要指定\verb|\usepackge[texencoding=GBK]{biblatex}|。 + + %增加了对GBK支持的说明,2018-05-11 + + \item 当顺序编码和作者年制切换,或者biblatex版本切换,或者不同样式切换时,如果编译出错,可先清理一下辅助文件,完成后再重新编译。 + + \item 当bibtex键中含有中文的时候,texlive2015中的biblatex3.0版的对参考文献条目的超链接会出现问题,而texlive2016中的biblatex3.4或以后的版本则没有问题。 + + \item GB/T 7714-2015中的作者年制要求参考文献按文种集合,且中文在前英文在后。主要通过定义DeclareSortingScheme\{gb7714-2015\} (biblatex3.7 以前版本) 或 DeclareSortingTemplate\{gb7714-2015\} (biblatex3.8以后版本),利用自动设定的language 域实现排序。默认情况下,样式能基本正确的区分中文和英文文献并排序。当如果出现错误的情况,用户可以手动修改bib源文件,将language 域设置成合适的字符串,用于排序,详见\ref{sec:usage:bbx}节的说明。 + +%上一段2016-1114更新,下面这段是旧的说法, +%通过定义DeclareSortingScheme\{nyt\},设置方向为direction=descending,可以实现中文在前英文在后但两个文种的文献各自也是降序的。还有一种变通的方法是,在录入bib文件时,在userb域填入用于排序的信息,比如需要排前面中文文献填cn,排后面的英文文献用en。这样因为修改后的排序格式nyt会在author域前先用userb进行排序,自然会把中文文献放在前面。 + + \item 当出版地和出版者同时缺省时,GB/T 7714-2015中没有给出明确的说明,但英文给出了一个例子(见GB/T 7714-2015 附录A.3)而中文没有,英文的形式是[S.l. : s.n.],因此中文也考虑类似的格式[出版地不详 : 出版者不详]。 + + %,这种形式本样式没有给出,而直接用两者分开的形式,[S.l.] : [s.n.] + + %事实上这里作者认为没有必要把s.l.和s.n. 合起来,不仅与缺省两者之一的情况不统一,样式处理起来也增加不必要的麻烦。 + + \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}} 分别提供的样式文件,效果是类似的。此外,Casper Ti. Vector提供的biblatex 样式caspervector也是不错的中文参考文献样式 + \footnote{\url{https://gitlab.com/CasperVector/biblatex-caspervector}}。 感谢各位作者的分享! + + \item biblatex宏包的组成比较复杂,所以有的时候查找具体命令的代码会比较麻烦。总体来说,包括各bbx,cbx文件,重点是biblatex.sty,biblatex.def,STANDARD.BBX,还有blx-dm.def等一些设置文件。主要不要忘记lbx文件,这里面也有一些相关的代码用于设置语言相关的命令,比如\verb|\bibrangedash|,\verb|\finalandcomma|等。至于其他一些tex命令,可以从tex、xetex的相关书籍文档,latex相关代码可以从latex2e,etoolbox等文档,以及latex.ltx,etoolbox.STY等源文档中查找。注意多使用meaning命令来获取命令的定义。 + + +% \item 本文档根据GB/T 7714-2015提供的参考文献表著录格式示例做了测试和验证,详见第\ref{sec:eg:gb77142015}节。 +% 测试系统环境为: +% \begin{itemize} +% \item windows7x86+texlive 2014,采用xelatex编译; +% +% \item windows7x64+texlive 2015,采用xelatex编译; +% +% \item 虚拟机xp+texlive 2016,采用xelatex编译; +% +% \item Deepin linux-x64v15.3+texlive 2016,采用xelatex编译。 +% +% \item windows7x64+texlive 2017,采用xelatex编译; +% \end{itemize} + +\end{enumerate} + + + \section{参考文献著录格式示例}\label{sec:eg:gb77142015} @@ -1351,6 +1515,14 @@ bib文件中的参考文献信息是以条目形式组织,一篇文献创建 详见文档:\href{run:./stdGBT7714-2015.pdf}{GBT7714-2015std} +\subsection{多语言支持相关测试示例} + +详见文档:\href{run:./stdgbT7714-2015lan.pdf}{stdgbT7714-2015lan.pdf} + +\subsection{国内一些大学学位论文文献格式相关测试示例} + +详见文档:\href{run:./stdgbT7714-2015thesis.pdf}{stdgbT7714-2015thesis.pdf} + \subsection{更多示例} \begin{itemize} @@ -1392,7 +1564,8 @@ beamer类示例,参见: \href{run:./example/egbeamer.tex}{顺序编码制}; \href{run:./example/testallformat.tex}{testallformat.tex}。 详见文档: -\href{run:./example/stdGBT7714-2015eg.pdf}{GBT7714-2015egstd}。 +\href{run:./example/stdGBT7714-2015eg.pdf}{GBT7714-2015egstd}, +\href{run:./example/stdgbT7714-2015fmt.pdf}{stdgbT7714-2015fmt.pdf}。 \section{GB/T 7714-2015 标准说明与实现}\label{sec:gbt:std} @@ -1424,9 +1597,7 @@ width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \centering \deflength{\textparwd}{\linewidth-1cm} -\parbox{\textparwd}{ -\includegraphics{egfootstyle.pdf} -} +\includegraphics[width=\textparwd]{egfootstyle.pdf} \end{tcolorbox} \caption{顺序编码制的脚注方式}\label{fig:numeric:footnote} \end{figure} -- cgit v1.2.3