这是我第一次提问,所以我希望我说清楚了......
我想引用同一篇参考文献两次,一次采用作者年份格式,一次采用简写格式,并打印两个不同的参考书目。我想这样做是因为这本书是古希腊铭文的集合,所以在某些情况下我只想给出铭文的编号,而在其他情况下我感兴趣的是铭文的编辑者对它们的评价。
在我下面的例子中,在我的正常参考书目中,有一个“Bresson 1991b”,尽管没有“Bresson 1991a”,因为另一个具有相同名称和年份的参考文献(实际上是相同的)有简写并打印在简写列表中。 所以我想使用“Bresson 1991”,没有标签,但仍然能够区分“Guy 2017a”和“Guy 2017b”。
我的参考书目文件中有同一条参考文献的两个条目,但它们看起来完全不同,因为我添加了简写、关键字、分页,并将作者更改为编辑。所以我认为没有办法判断它们是同一条参考文献,但也许只有当同一参考书目中有同一位作者和日期的参考文献时才biblatex
可以给出标签。extrayear
我只能extrayear
使用 来清除简写列表中的字段\AtEveryBiblistitem{shorthand}{\clearfield{extrayear}}
。这是我的 MWE:
\documentclass[12pt,a4paper]{report}
\usepackage[citestyle=authoryear-icomp, bibstyle=authoryear-icomp, backend=biber]{biblatex}
\AtEveryBiblistitem{shorthand}{\clearfield{extrayear}}
\addbibresource{Bibliography.bib}
\begin{document}
About the inscription \cite[44]{i.peree.rhodes}, Alain \textcite[68-69]{bresson1991} suggests that blablabla. \textcites{otherguy2017a}{otherguy2017b} agrees that blablabla.
\printbibliography[notkeyword=epigraphy]
\printbiblist[keyword=epigraphy]{shorthand}
\end{document}
参考书目如下:
@book{otherguy2017b,
Author = {Guy, Other},
Booktitle = {Another Book},
Title = {Another Book},
Year = {2017}}
@book{otherguy2017a,
Author = {Guy, Other},
Title = {Some title},
Year = {2017}}
@book{bresson1991,
Address = {Paris},
Author = {Bresson, Alain},
Booktitle = {Recueil des inscriptions},
Title = {Recueil des inscriptions},
Year = {1991}}
@book{i.peree.rhodes,
Address = {Paris},
Booktitle = {Recueil des inscriptions},
Editor = {Bresson, Alain},
Keywords = {epigraphy},
Pagination = {none},
Shorthand = {\emph{I.Per.Rhod.}},
Title = {Recueil des inscriptions},
Year = {1991}}
另外,我不明白biblatex
标签是如何定义的。如果我在\cite{bresson1991}
之前引用\cite{i.peree.rhodes}
,第一个会显示为 Bresson 1991a,但如果我在第二个引用它,它就会变成“Bresson 1991b”。但是当我使用时\textcites{otherguy2017a}{otherguy2017b}
,第一个引用的参考文献是标签 Guy 2017b,第二个引用 Guy 2017a。有没有办法确定哪个是 a,哪个是 b?
答案1
如果您不想对条目使用“正常标签方案”,则可以使用选项skiplab
。使用authoryear
-type 样式,条目将获得否extrayear
,并且条目将被忽略,以消除所有歧义。您希望此选项用于i.peree.rhodes
@book{i.peree.rhodes,
address = {Paris},
editor = {Bresson, Alain},
keywords = {epigraphy},
pagination = {none},
shorthand = {\emph{I.Per.Rhod.}},
title = {Recueil des inscriptions},
year = {1991},
options = {skiplab=true},
}
(对于一个条目来说booktitle
,与重合是没有用的,所以我把它删除了。)相关行是最后一行。title
@book
options = {skiplab=true},
通过此设置,您bresson1991
在 MWE 中的条目将被引用为“Bresson 1991”和i.peree.rhodes
“I.Per.Rhod.“”。
您将不再需要它了\AtEveryBiblistitem{shorthand}{\clearfield{extrayear}}
。
对于问题的第二部分:
如果您使用authoryear
-family 样式,biblatex
则使用名为 的排序方案nyt
。简而言之,这会通过“名称 -> 年份 -> 标题”对条目进行排序。排序顺序也决定了extrayear
。
在您的 MWE 中i.peree.rhodes
,并且bresson1991
根据所有相关的排序标准并列(毕竟,这是同一项工作!),因此为了打破平局,Biber 只需查看谁首先被引用。
otherguy2017a
但是,和总是按< 的otherguy2017b
顺序排列,因为前者的标题是“另一本书”,它排在 的“某个标题”之前。otherguy2017a
otherguy2017b
otherguy2017b
\documentclass[12pt,a4paper]{article}
\usepackage[citestyle=authoryear-icomp, bibstyle=authoryear-icomp, backend=biber]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{otherguy2017b,
author = {Guy, Other},
title = {Another Book},
year = {2017},
}
@book{otherguy2017a,
author = {Guy, Other},
title = {Some title},
year = {2017},
}
@book{bresson1991,
address = {Paris},
author = {Bresson, Alain},
title = {Recueil des inscriptions},
year = {1991},
}
@book{i.peree.rhodes,
address = {Paris},
editor = {Bresson, Alain},
keywords = {epigraphy},
pagination = {none},
shorthand = {\emph{I.Per.Rhod.}},
title = {Recueil des inscriptions},
year = {1991},
options = {skiplab=true},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
About the inscription \cite[44]{i.peree.rhodes}, Alain \textcite[68-69]{bresson1991} suggests that blablabla. \textcites{otherguy2017a}{otherguy2017b} agrees that blablabla.
\printbibliography[notkeyword=epigraphy]
\printbiblist[keyword=epigraphy]{shorthand}
\end{document}