我在整个文档中使用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 指出的那样,使用labelyear
和extrayear
字段而不是可以避免\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
字段也会打印在详细条目中。当然,第一个引文和参考书目的外观会有所不同,在名称后面的括号中给出年份: