biblatex 中的作者年份和脚注引用

biblatex 中的作者年份和脚注引用

我使用natbib并切换到biblatex以便生成可以相对轻松地在带有参考列表的作者日期引用和“脚注中的所有内容”样式(第一次出现时使用完整引用,之后使用缩写引用)之间转换的文档。我感到有点畏惧。我似乎不太可能合理地期望一个源文件只需更改一个选项就能生成两种格式,但这可能是理想的解决方案。无论如何,我真的只是在寻求有关编写文档的最佳方法的建议。

对于作者-日期引用,我喜欢自由混合引用作者和引用论文,并且作者第一次出现时我会给出名字和姓氏,之后只给出姓氏。因此,典型的段落可能如下所示:

大卫·刘易斯 (David Lewis) (1980) 的主要原则是我最喜欢的原则之一。我最喜欢的论文之一是刘易斯 1994 年的论文。每个人都应该理性 (Lewis 1980;van Fraassen 1984)。刘易斯说了很多话。例如,他说每个人都应该理性 (1980),他说每个人都应该在道路的右侧行驶 (1969)。

现在,即使在 中natbib,我也不认为我正确地编写了这些内容。例如,我不知道在第一个引用中正确使用撇号的方法;我不知道任何自动执行我的名字首次使用政策的方法;并且我\citealp在论文引用和(\citeyear{XXX})括号引用中大量使用 ,这似乎不是推荐的样式。但是在 中完成所有这些的最佳方法是什么biblatex

对于“脚注中的所有内容”样式,似乎需要对我的来源进行大量更改。大多数引文都必须移到句子末尾,而且我将不得不更少地自由使用论文参考资料,因为我需要通过标题来引用它们,这很麻烦。此外,脚注中的引文也需要重新组织。最明显的是,在编写它们时需要注意引文是否是第一次引用,因为第一次出现的引文很长,会打断句子的流畅性。然而,看起来至少我不太可能需要学习任何新的引文命令来在脚注中编写引文,除了我需要学习在 中进行作者日期引文的命令之外biblatex

有没有经验丰富的 biblatexers 给出一些忠告?

答案1

一些引用命令旨在“在文本流中使用”。示例包括、和\textcite\citetitle如果您坚持使用这些命令和,只需更改加载时选项设置即可。\citeauthor\citeyear\autocitebiblatex

authoryear样式中,\autocite基于\parencite。在verbose样式中,\autocite调用\smartcite,其行为类似于\parencite脚注和\footcite内联。 的妙处在于\autocite它会为您移动标点符号。 带星号的变体\autocite*发出其后端引用命令的带星号版本。在authoryear样式中,这是\parencite*,它仅打印year

所有格引用只需要改变labelname中的格式\textcite。在下面的例子中,我改编了 中的解决方案这个帖子. 第一次通过\textcite\citeauthor借助于引用条目时,会打印完整的人名domwass 的另一个回答authoryear为了应对和引用命令构造上的差异verbose,我使用定义了一些补丁etoolbox egreg 的扩展

\documentclass{article}
\usepackage[style=authoryear]{biblatex}
\usepackage[colorlinks]{hyperref}

\makeatletter

% patch bibmacros without optional arguments
\def\act@on@bibmacro#1#2{%
  \expandafter#1\csname abx@macro@\detokenize{#2}\endcsname}
\def\pretobibmacro{\act@on@bibmacro\pretocmd}

% patch citation commands
\def\act@on@citecmd#1#2{%
  \expandafter#1\csname blx@citei@\detokenize{#2}\endcsname}
\def\patchcitecmd{\act@on@citecmd\patchcmd}

% patch default name formats
\def\act@on@nameformat#1#2{%
  \expandafter#1\csname abx@nfd@*@\detokenize{#2}\endcsname}
\def\pretonameformat{\act@on@nameformat\pretocmd}
\def\apptonameformat{\act@on@nameformat\apptocmd}

% track seen labelnames
\newcommand*{\cbx@seennames}{}
\newrobustcmd*{\cbx@nameseen}[1]{\listxadd{\cbx@seennames}{\detokenize{#1}}}
\newrobustcmd*{\cbx@ifnameseen}[1]{\xifinlist{\detokenize{#1}}{\cbx@seennames}}

% define fullname-if-not-seen labelname format
\csletcs{abx@nfd@*@labelname:seen}{abx@nfd@*@labelname}
\pretonameformat{labelname:seen}
  {\cbx@ifnameseen{#1#3#5#7}
     {}{\defcounter{uniquename}{2}\cbx@nameseen{#1#3#5#7}}}{}{}

% define possessive labelname format
\csletcs{abx@nfd@*@labelname:poss}{abx@nfd@*@labelname:seen}
\apptonameformat{labelname:poss}
  {\ifnumequal{\value{listcount}}{\value{liststop}}{'s}{}}{}{}

\makeatother

% use "seen" labelname format in \textcite and \citeauthor
\patchcitecmd{citeauthor}
  {\printnames{labelname}}{\printnames[labelname:seen]{labelname}}{}{}
\patchcitecmd{textcite}
  {\printnames{labelname}}{\printnames[labelname:seen]{labelname}}{}{}
\pretobibmacro{textcite}{\DeclareNameAlias{labelname}{labelname:seen}}{}{}

% define possessive citation commands
\newrobustcmd*{\possalias}{%
  \AtNextCite{\DeclareNameAlias{labelname:seen}{labelname:poss}}}
\newrobustcmd*{\posscite}{\possalias\textcite}
\newrobustcmd*{\Posscite}{\possalias\Textcite}
\newrobustcmd*{\posscites}{\possalias\textcites}
\newrobustcmd*{\Posscites}{\possalias\Textcites}

\addbibresource{biblatex-examples.bib}

\begin{document}
\null\vfill
\Posscite{knuth:ct:a} Principal Principle is one of my favourite principles.
One of my favourite books is \citetitle{knuth:ct:a}. Everybody should be 
rational \autocite{knuth:ct:a,vangennep}. \Citeauthor{knuth:ct} said a lot
of things. For instance, he said that everybody should be rational 
\autocite*[9]{knuth:ct:a}, and he said that everybody should drive on the
right side of the road \autocite*[10--15]{knuth:ct:c}. \Citeauthor{vangennep}
said that everybody should drive on the left, but otherwise
\posscite[4]{vangennep} work agrees with \citeauthor{knuth:ct}.
\end{document}

在此处输入图片描述

切换到verbose样式

\usepackage[style=verbose]{biblatex}

给出

在此处输入图片描述

此解决方案应适用于任何标准authoryearverbose变体。有关这些样式的详细信息,请参阅biblatex文档。

相关内容