我正在使用citestyle=authortitle-ibid
,但我必须使其按照以下规则工作:
- 第一次引用时,脚注中应包含所有信息(包括出版商、作者、编辑、包含书籍、年份等)。
- 第二次使用同一参考资料时,即使位于另一页,脚注也应包含作者、年份和页码,除非没有标题信息会含糊不清。在后一种情况下,也应包含标题。
我想知道如何才能做到这一点。就我个人而言,我认为把所有信息都放在脚注里是个坏主意,但是,有人告诉我这样做。
答案1
更新答案
我最初的回答使用了chicago
,因为这是一种高度发达的风格,我认为它接近于想要的风格。然而,回复中的一条评论表明,提问者已经.bbx
根据 开发了自己的自定义风格authortitle-ibid
,我认为那里可能会有冲突。
坦率地说,我不认为authortitle-ibid
这是开始的地方:你想要的风格的一个关键特征是(a)满的首先引用 (b)短的后续使用时引用。接近此标准的样式是verbose-ibid
,这可能是正确的起点。它仍然更倾向于与您的自定义调整兼容,因为authortitle-ibid
就完整引用而言,它不会离 太远,而且肯定会比 更接近chicago
。如果您从 开始,authortitle
您将不得不重新创建 中已经存在的完整引用等所有结构verbose
,这是毫无意义的。
在verbose-ibid
样式中,缩短引用的排版由 处理bibmacro
cite:short
,因此我们重新定义了它。
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{author1,
author = {Author, A.},
title = {First Work},
date = {2010},
publisher = {Publisher},
}
@book{author2,
author = {Author, A.},
title = {Second Work},
date = {2010},
publisher = {Publisher},
}
@book{author3,
author = {Author, A.},
title = {Third Work},
date = {2011},
publisher = {Publisher},
}
\end{filecontents}
\setlength{\textheight}{2in}
\usepackage[style=verbose-ibid,labeldate=true]{biblatex}
\makeatletter
\renewbibmacro*{cite:short}{%
\printnames{labelname}%
\iffieldundef{extrayear}%
{\setunit*{\addspace}%
\printtext[bibhyperlink]{%
\mkbibparens{\printdatelabel}}}
{\setunit*{\nametitledelim}%
\printtext[bibhyperlink]{%
\printfield[citetitle]{labeltitle}%
\setunit*{\addspace}%
\printtext{\mkbibparens{\printdatelabel}}}}}
\makeatother
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\begin{document}
We use \texttt{verbose-ibid} as our style, setting \texttt{labeldate}
true so as to have a hook to decide if we have multiple works by the
same author(s) in the same year.
We revise the \texttt{cite:short} macro. On the first occasion
something is printed, we will have full citations.\footcite{author1,
author2, author3} On subsequent occasions they will be shortened,
with titles added only if necessary for
disambiguation.\footcite{author1, author2, author3}
\end{document}
制作:
原始答案
您想要的效果几乎是biblatex-chicago
样式的默认效果,带有notes
选项:它(不寻常地)作为独立包而不是样式加载,但它充分利用了biblatex
。文档很详尽。
确实,我一开始以为这只是你想要的:但我读得太快了——默认是后续引用采用作者/标题样式,而不是你建议的作者/年份和标题的混合。然而,这可以通过重新定义一个来相当容易地实现bibmacro
:我们还需要添加选项labeldate
,不是因为我们以这种方式添加了任何其他标签,而是因为它是一种方便的方式来biber
告诉我们在给定年份是否有多个相关引用。我认为,基本技术可以很容易地适应标准样式。
以下是一个简单示例:
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{author1,
author = {Author, A.},
title = {First Work},
date = {2010},
}
@book{author2,
author = {Author, A.},
title = {Second Work},
date = {2010},
}
@book{author3,
author = {Author, A.},
title = {Third Work},
date = {2011},
}
\end{filecontents}
\usepackage[notes,labeldate=true]{biblatex-chicago}
\makeatletter
\renewbibmacro*{cite:short}{%
\ifthenelse{\ifnameundef{labelname}\OR%
\ifentrytype{inreference}\OR%
\ifentrytype{reference}\OR%
\ifentrytype{mvreference}}%
{\iffieldequalstr{entrysubtype}{magazine}% Simplify .bib creation
{\ifuseauthor%
{\printfield[journaltitle]{journaltitle}\isdot\newcunit}%
{}}%
{\ifentrytype{manual}%
{\printlist{organization}\isdot\newcunit}%
{}}}%
{\iffieldequalstr{authortype}{anon}%
{\bibleftbracket\printnames{labelname}%
\bibrightbracket\classicpunct}%
{\iffieldequalstr{authortype}{anon?}%
{\bibleftbracket\printnames{labelname}?%
\bibrightbracket\classicpunct}%
{\usebibmacro{choose+labelname}%\printnames{labelname}%
\isdot\classicpunct}}}%
\iffieldundef{extrayear}% Is the reference unique?
{\setunit*{\addspace}}% No: change punctuation from comma to space ready for year
{\printfield[citetitle]{labeltitle}% Yes: print the title
\setunit*{\addspace}}%
\ifboolexpr{%
togl {cms@allshort}%
or
test {\ifbibliography}
}%
{\printtext[bibhyperref]{%
\mkbibparens{\printdatelabel}}}% We want the date label not the title
{\printtext[cmshyperlink]{%
\mkbibparens{\printdatelabel}}}% We want the date label not the title
}%:\thefield{entrytype}?
\makeatother
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\begin{document}
With \texttt{biblatex-chicago} with the \texttt{notes} option, the
default is for citation to appear in footnotes, with a full citation
on the first occasion and an abbreviated citation on subsequent occasions.
So the first citation is full,\footcite{author1} an immediately
following citation will use \emph{ibid}\footcite[Thus:][]{author1},
(unless \texttt{ibidtracker} is set false) but otherwise later
citations will be abbreviated.
We do, however, have to make minor modifications to one macro, because
by default the package assumes author/title citations, but we have to
provide author/year citations, with the date printed only if there is
more than one work in the relevant year. We thus get all our full
citations out,\footcite{author1, author2, author3} and then
demonstrate that happening.\footcite{author1, author2, author3}
\end{document}