我使用 verbose-trad1 样式来编写参考书目。当某项内容被第二次引用时,此样式(我认为所有详细样式都是如此)使用较短的作者-标题格式,如下所示:
- 约翰尼(1992 年)。我的生活。
- 内森(2015 年)。不是我的生活。
- Johnny,同上。
我的作品有 115 页,没有人会记得我在谈论哪本书,只有作者和这个可怜的“op cit”。所以我需要第二个引用带有日期,如下所示:
- Johnny(1992),同上。
感谢您的阅读。请帮助一位贫困学生完成她的硕士论文
这是一个最小的例子
\documentclass[12pt,a4paper]{book}
\usepackage[bibstyle=authoryear,citestyle=verbose-trad1,indexing=cite,firstinits=true,dashed=true,citepages=omit]{biblatex}
\bibliography{example.bib}
\begin{document}
This is just filler text\footcite{john_2010}. This is just filler
text\footcite{nathan_2015}. This is just filler
text\footcite{john_2010}.
\end{document}
还有 example.bbl 文件:
@book{nathan_2015,
Author = {Nathan},
Title= {Not my life},
Year = {2015}}
@book{john_2010,
Author = {Johnny},
Title= {My life},
Year = {1992}}
答案1
通常verbose-trad
样式与样式一起使用authortitle
,因此使用标题消除歧义。所以“约翰尼,同上。同上。“仅当您引用 Johnny 的一部作品时才会出现,一旦有更多作品,title
就会添加该字段以避免混淆。
无论如何,我们可以确保始终添加年份。
我们首先借用一个authoryear
宏
\newbibmacro*{cite:labeldate+extradate}{%
\iffieldundef{labelyear}
{}
{\printtext[parens]{%
\printtext[bibhyperref]{%
\printlabeldateextra}}}}
然后将这个宏注入到相关位置以打印名称后的年份
\renewbibmacro*{cite:name}{%
\printnames{labelname}%
\setunit{\printdelim{nameyeardelim}}%
\usebibmacro{cite:labeldate+extradate}%
\setunit*{\printdelim{nametitledelim}}}
\renewbibmacro*{cite:idem}{%
\bibstring[\mkibid]{idem\thefield{gender}}%
\setunit{\printdelim{nameyeardelim}}%
\usebibmacro{cite:labeldate+extradate}%
\setunit{\printdelim{nametitledelim}}}
平均能量损失
\documentclass[12pt,a4paper]{book}
\usepackage[bibstyle=authoryear, citestyle=verbose-trad1, indexing=cite, giveninits=true, citepages=omit]{biblatex}
\addbibresource{biblatex-examples.bib}
\newbibmacro*{cite:labeldate+extradate}{%
\iffieldundef{labelyear}
{}
{\printtext[parens]{%
\printtext[bibhyperref]{%
\printlabeldateextra}}}}
\renewbibmacro*{cite:name}{%
\printnames{labelname}%
\setunit{\printdelim{nameyeardelim}}%
\usebibmacro{cite:labeldate+extradate}%
\setunit*{\printdelim{nametitledelim}}}
\renewbibmacro*{cite:idem}{%
\bibstring[\mkibid]{idem\thefield{gender}}%
\setunit{\printdelim{nameyeardelim}}%
\usebibmacro{cite:labeldate+extradate}%
\setunit{\printdelim{nametitledelim}}}
\begin{document}
This is just filler text\footcite{geer}. This is just filler
text\footcite{worman}. This is just filler
text\footcite{geer}.
Text \footcite{knuth:ct:a} an \footcite{knuth:ct:b} again \footcite{knuth:ct:a}.
\end{document}