Skip to content

文献样式

Huangrui Mo edited this page Nov 4, 2022 · 44 revisions

参考文献样式文件更新方法

  1. bibtex: 从 gbt7714-bibtex-style 下载 gbt7714-author-year.bst gbt7714-numerical.bstucasthesis/Biblio 文件夹下即可。
  2. biblatex: 从 biblatex-gb7714-2015 下载 gb7714-2015ay.cbxgb7714-2015ay.bbxgb7714-2015.cbxgb7714-2015.bbxucasthesis/Biblio 文件夹下即可。

引用样式

著者-出版年制(authoryear)为默认选项,不同文献样式和引用样式,如 著者-出版年制(authoryear)、顺序编码制(numbers)、上标顺序编码制(super)、字符编码制(alpha)可在 Thesis.tex 中对 artratex.sty 调用实现。

启用 著者-出版年制(authoryear):

\usepackage[authoryear,list]{Style/artratex}% 文本: Jones (1995); 括号: (Jones, 1995)

启用 顺序编码制(numbers):

\usepackage[numbers,list]{Style/artratex}% 文本: Jones [1]; 括号: [1]

启用 上标顺序编码制(super):

\usepackage[super,list]{Style/artratex}% 文本: Jones 上标[1]; 括号: 上标[1]
若在上标顺序编码制(super)模式下,希望在特定位置将上标改为嵌入式顺序编码制(numbers),可使用
文本类型:`\citetns{}` 替换 `\citet{}`
括号类型:`\citepns{}` 替换 `\citep{}`

启用 字符编码制(alpha):

\usepackage[alpha,list]{Style/artratex}% 文本: 不可用; 括号: [Jon95]

引用带页码

  1. 在 著者-出版年制(authoryear)或 顺序编码制(numbers)模式下,直接用:
\citep[页码]{}
\citet[页码]{}

注:如果同时引用多篇文献,且希望每篇文献后带页码,则用:

\citetext{\citealp[p.~1]{lamport1986document}; \citealp[p.~2]{lamport1986document}}

image

image

  1. 在 上标顺序编码制(super)模式下,可用:
看!上标引用带页码\citet{lamport1986document}\textsuperscript{\tiny 250}; 

看!上标引用带页码\citep{lamport1986document}\textsuperscript{\tiny 250}。

image

上标顺序编码制(super)模式下,如果在Thesis.tex中启用 [biber] 并使用 biblatex 而不是 bibtex 编译文献,则也可以直接用:

\citep[页码]{}
\citet[页码]{}
  1. 实现参考文献直接放在脚注处?

需要在Thesis.tex中启用 [biber] 并使用 biblatex 而不是 bibtex 编译文献

\usepackage[biber,super,list]{Style/artratex}% document settings

然后使用

看!脚注上标引用带页码\footfullcite{lamport1986document}\textsuperscript{\tiny 250}; 

看!脚注上标引用带页码\footfullcite{lamport1986document}\textsuperscript{\tiny 250}。

效果如下:

image

脚注内容如下:

image

编译后参考文献引用处为问号(?),同时参考文献列表不显示?

  1. 请确保使用了全编译,即运行 xelatex+bibtex+xelatex+xelatex 以正确生成所有的引用链接,如目录,参考文献及引用等。
  2. 若全编译后仍为问号,则是你的引用出现了错误,需仔细检查此条引用的 \citep{}\citet{} 命令,以及 ref.bib 内的源格式。

著者-出版年制(authoryear)模式下中文参考文献排序

  1. bibtex:使用 bibtex 需要加 key 域,参考 ref.bib 中的样例:
@article{chen2005zhulu,
    title={著录文后参考文献的规则及注意事项},
    author={陈浩元},
    key={Chen Hao Yuan},
    journal={编辑学报},
    volume={17},
    number={6},
    pages={413--415},
    year={2005}
}
  1. biblatex:启用功能更为强大的 biblatex 替换默认的 bibtex 即可实现正确的排版。

biblatex 启用

要使用 biblatex,只需作如下设定:

  1. Thesis.tex 中启用 biber 选项来调用 biblatex
\usepackage[biber,authoryear,list]{Style/artratex}% document settings
  1. 使用 biber 替换 bibtex 进行编译:
全编译,即运行 `xelatex+biber+xelatex+xelatex` 以正确生成所有的引用链接,如目录,参考文献及引用等。

biblatex 样式设定

  • 引用时显示所有作者:在 Style/artratex.sty 文件中将
\RequirePackage[backend=biber,style=\artxbibernum,mincitenames=1,maxcitenames=2]{biblatex}%

修改为

\RequirePackage[backend=biber,style=\artxbiberauy,mincitenames=99,maxcitenames=99]{biblatex}%

显示所有参考文献(包括未引用文献)

使用命令

\nocite{*}

即可显示所有参考文献(包括未引用文献)。若只想显示引用过的文献,则需删除此命令。

图表标题中的文献编号总排在前列

使用顺序编码制(numbers)或上标顺序编码制(super)时,若在图表标题中引用文献,因为表格列表和图形列表位于文档的最前列,从而标题中的文献编号也会排在前列。如想改变此行为,可使用

\caption[出现在列表中的标题]{标题 \citep{xxx}}
\bicaption[出现在列表中的标题]{中文标题 \citep{xxx}}{英文标题\citep{xxx}}

以避免文献引用出现在图表列表中即可。

{} 符号

{} 符号在 ref.bib 文件中具有固定输出格式的作用。如当在 title 中用 {eeEEeeEE} {Euler} 时:

@book{test1788equ,
    title={{eeEEeeEE} The great {Euler} vs Eul},
    author={xxx},
    year={2004},
    address={Earth},
    publisher={Universe}
}

在生成的文献列表中 eeEEeeEE Euler 就一定会保持输出为 eeEEeeEE Euler 而不会被后台切换为 Eeeeeeee euler,即输出为:

eeEEeeEE the great Euler vs eul

注意 TheEul 因为没有 {} 固定格式,因此会被自动切换为 theeul

英文引用中的 “和”、“等” 改为 "and"、"et al."

根据学位论文撰写指导文件,英文引用 中的 "and"、"et al." 采用对应的中文 “和”、“等” 替代。如果想改回为英文形式,需在 ucasthesis.cfg 中将

\def\ucas@label@ch@bibetal{等}
\def\ucas@label@en@bibetal{et al.}
\def\ucas@label@ch@biband{和}
\def\ucas@label@en@biband{ and }

改为

\def\ucas@label@ch@bibetal{et al.}
\def\ucas@label@en@bibetal{et al.}
\def\ucas@label@ch@biband{ and }
\def\ucas@label@en@biband{ and }

注意以上方式为全局性修改。如 clementinehjy, issue #167 中所讨论的,如果只是想在 bicaption 中的英文标题部分局部改回英文的 "and"、"et al." 形式,可考虑如下几种方案:

  1. 若使用的为 numbers 样式,则需在 bicaption英文标题部分 使用 \citep{} 而不是 \citet{}。例如:
\bicaption{中文标题。引自 \citet{jenni2006}}{English Title. Cited from Jenni et al. \citep{jenni2006}}
  1. 若使用的为 authoryear 样式,则需在 bicaption英文标题部分 手动输入参考文献(muzimuzhi, issue #167)。例如:
\bicaption{中文标题。引自 \citet{jenni2006}}{English Title. Cited from Jenni et al. (2006)}

因为对于给定的文献,其作者和年份总是不变的,所以以上方案皆无需额外维护。

修改参考文献列表的默认排版行为

编辑gbt7714-author-year.bstgbt7714-numerical.bst 的配置函数可实现多类样式:

FUNCTION {load.config}
{
  #2 'citation.et.al.min :=
  #1 'citation.et.al.use.first :=
  #4 'bibliography.et.al.min :=
  #3 'bibliography.et.al.use.first :=
  #0 'uppercase.name :=
  #1 'terms.in.macro :=
  #0 'year.after.author :=
  #0 'period.after.author :=
  #1 'sentence.case.title :=
  #0 'link.title :=
  #1 'title.in.journal :=
  #1 'show.mark :=
  #1 'space.before.mark :=
  #1 'show.medium.type :=
  #1 'slash.for.extraction :=
  #0 'in.booktitle :=
  #0 'short.journal :=
  #0 'italic.journal :=
  #0 'bold.journal.volume :=
  #0 'show.missing.address.publisher :=
  #0 'only.start.page :=
  #1 'show.urldate :=
  #1 'show.url :=
  #1 'show.doi :=
  #0 'show.preprint :=
  #0 'show.note :=

}

比如:

  1. 引用处显示所有作者而不是使用 et. al.
#99 'citation.et.al.min :=
  1. 参考文献列表处显示所有作者而不是使用 et. al.
#99 'bibliography.et.al.min :=
  1. 去除 [S.l.] 字段

参考文献中的 [S.l.] 字段是关于出版地的,请见 ucasthesis 的 ref.bib 内的样本:

@book{chu2004tushu,
    title={图书馆数字参考咨询服务研究},
    author={初景利},
    key={Chu Jing Li},
    year={2004},
    address={北京},
    publisher={北京图书馆出版社}
}

address 域就是出版社地址域。当缺失此域时,可能会出现 [S.l.] 字段代表出版地不明。若想去除此字段的显示,可以设定为:

  #0 'show.missing.address.publisher :=
  1. 取消英文作者名大写

文献列表中英文作者名全部大写是符合国标的。如果需取消英文作者名大写,可设置:

  #0 'uppercase.name :=
  1. 超链接参考文献到期刊网页并且不显式出现 url

设置:

  #1 'link.title :=
  #0 'show.url :=
  1. 不显示类型标记:[J], [M], [B] 等

设置:

  #0 'show.mark :=

ucasthesis 常用设定:

  #0 'uppercase.name :=
  #1 'terms.in.macro :=
  #0 'year.after.author :=
  #0 'show.missing.address.publisher :=

超链接参考文献到文档引用页(不建议启用)

如果想点击参考文献列表的某个文献可以跳回文档内的引用页,可以将 artratex.sty 中的

    \RequirePackage{hyperref}% load at last

改为

    \RequirePackage{hyperref}% load at last
    \RequirePackage[hyperpageref]{backref}

然后每个文献后就会有链回文本页的页码:

image

注意:

  1. 如果 ref.bib 中的文献源的 url 带有 #_$ 等特殊字符,则 backref 功能容易出现错误,见 Phoenix1327, issue #145

  2. backref 功能实际并无多大意义,且纸质打印版不应该使用此功能,因此,不建议启用此功能。