当 \ifciteseen 为真时,向 BibLaTeX 输出添加一个字段

当 \ifciteseen 为真时,向 BibLaTeX 输出添加一个字段

我在整个文档中使用biblatex详细格式和引用格式。问题是:如果两次引用同一来源,详细格式会输出作者姓氏和书名 - 但我需要它输出作者姓氏和年份。\footcite{...}

我尝试自己修复它,但到目前为止还没有verbose.cbx改变 \\MiKTeX 2.9\tex\latex\biblatex\cbx

我弄清楚的是(IMHO)如果 citeseen 为真 cite:short或者cite:shorthand将使用 bibmacro。

我尝试修改

\newbibmacro*{cite:short}{%
  \printnames{labelname}%
  \setunit*{\nametitledelim}%
  \printtext[bibhyperlink]{%
    \printfield[citetitle]{labeltitle}}}

在这个文件中,使用\printfield{year}和诸如此类的东西。然而,即使我删除所有这些行,也没有效果。所以我可能还是走错了路……

如果有人了解更多信息并且愿意提供帮助 - 我会非常高兴 :))。

以下是最小示例(或者在我看来是最小的示例):

\documentclass[12p]{scrartcl}
\usepackage[citestyle=verbose, bibstyle=verbose]{biblatex}
\usepackage[ngerman]{babel}
\usepackage[babel,german=quotes]{csquotes}
\bibliography{test}
\renewcommand*{\labelnamepunct}{\addcolon\addspace}
\DeclareFieldFormat
[article,inbook,incollection,inproceedings,patent,thesis,unpublished]
{title}{#1\isdot}
\begin{document}
blala needs a quote \footcite{Schaefers2}\\
quote schaefers2 againt\footcite{Schaefers2}
\printbibliography

\end{document} 

包含test.bib

@INCOLLECTION{Schaefers2,
author = {Weis, Kurt},
title = {Recht},
editor = {Schäfers, Bernhard},
booktitle = {Grundbegriffe der Soziologie},
publisher = {Leske und Budrich},
adress = {Opladen},
year = {2003},
}

答案1

首先,你不应该texmf直接更改主树(即你的 MiKTeX 树)中的文件。相反,你有不同的选项来修改现有的样式;lockstep 已经给出了一些提示在回答这个问题时(在介绍中)。

回答您的问题:\printdate是您正在寻找的解决方案(有关更多详细信息,请参阅 biblatex 文档)。因此,以下方法应该有效:

编辑:正如 Audrey 指出的那样,使用labelyearextrayear字段而不是可以避免\printdate出现歧义的引用。为了使这些字段可用,labelyear=true必须加载选项。因此,我增强了我的示例:

\documentclass{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{csquotes}
\usepackage[
  style=verbose,
  labelyear=true,
  backend=biber
]{biblatex}
\addbibresource{biblatex-examples.bib}
\renewcommand*{\labelnamepunct}{\addcolon\addspace}
\DeclareFieldFormat
[article,inbook,incollection,inproceedings,patent,thesis,unpublished]
{title}{#1\isdot}
\renewbibmacro*{cite:short}{%
  \printnames{labelname}%
  \setunit*{\addspace}%
  \printtext[bibhyperlink]{%
    \printfield{labelyear}\printfield{extrayear}}}

\begin{document}
\footcite{companion,knuth:ct:b,knuth:ct:c}

\footcite{companion,knuth:ct:b,knuth:ct:c}
\end{document}

在此处输入图片描述

编辑2:另一种可能性是使用选项citestyle=verbose,bibstyle=authoryear而不是labelyear=true。这样,extrayear字段也会打印在详细条目中。当然,第一个引文和参考书目的外观会有所不同,在名称后面的括号中给出年份:

在此处输入图片描述

相关内容