以下可能是一个错误,但我想知道是否有人知道解决方法。
我有两个带有 的书目条目crossref
,我需要fullcite
在文档中打印它们。我不想打印主要书目条目。我可以在 中毫无问题地做到这一点biblatex-chicago
。但是,一旦我指定,authordate
就会出现错误。只有当我加载包时,错误才会打印在我的日志中hyperef
,但无论如何都会出现错误。错误显示pdfTeX warning (dest): name{cite.0@Editorzzz:2002} has been referenced but does not exist, replaced by a fixed one
这是 mybib.bib
@incollection{Lxxx:2002,
Author = {Nxxx Lxxx},
Crossref = {Editorzzz:2002},
Title = {This is a story}}
@incollection{Lyyy:2002,
Author = {Nyyy Lyyy},
Crossref = {Editorzzz:2002},
Title = {This is another story}}
@book{Editorzzz:2002,
Address = {Durham},
Booktitle = {A Reader of Something},
Editor = {Nzzz Editorzzz},
Publisher = {Duke University Press},
Title = {A Reader of Something},
Year = {2002}}
这是我的序言 tmp.tex
\documentclass[]{article}
\usepackage[authordate,backend=biber]{biblatex-chicago}
\usepackage[]{hyperref}
\bibliography{mybib}
\begin{document}
\fullcite{Lxxx:2002}
\fullcite{Lyyy:2002}
\end{document}
当我没有指定时,authordate
我会得到这个:
Nxxx Lxxx,“这是一个故事”,摘自《某事的读者》,Nzzz Editorzzz 编辑(达勒姆:杜克大学出版社,2002 年)
Nyyy Lyyy,“这是另一个故事”,载于 Editorzzz,《某事的读者》
这很好。但是当我指定时authordate
,我得到了这个:
Nxxx Lxxx。2002年。“这是一个故事”在Editorzzz 2002
Nyyy Lyyy。2002。“这是另一个故事”在 Editorzzz 2002
至少有一个缺少完整引文。有解决方法吗?我正在研究教学大纲,我有很多交叉引用的条目,但不想打印阅读器或主集合,因为我只在集合中包含一些条目的完整引文。
有任何想法吗?
答案1
默认情况下,交叉引用的父级会打印在参考书目中。由于您没有调用\printbibliography
对父级参考书目项目的引用,因此会导致警告。通常,您可以使用该选项隐藏参考书目中的项目skipbib
,但样式会忽略其设置。所以我认为这是个错误。
从incollection
中定义的驱动程序chicago-authordate.bbx
可以明显看出,字符串后面的文本in
是由命令生成的\bibxrefcite{\thefield{crossref}}
。在chicago-authordate.cbx
:
\DeclareCiteCommand{\bibxrefcite}
{\usebibmacro{cite:init}}%\usebibmacro{clearalmostall}} (?)
{\usebibmacro{cms-in:}%
\blx@ibidreset% For authordate style
\usebibmacro{cite}}
{}
{}
要修复字符串前缺少的标点符号/空格in
并获得“更完整”的引用,您可以在序言中重新定义它:
\makeatletter
\DeclareCiteCommand{\bibxrefcite}
{\usebibmacro{cite:init}}
{\newunitpunct% add missing punctuation
\usebibmacro{cms-in:}%
\blx@ibidreset%
\usedriver{}{\thefield{entrytype}}}
{}
{}
\makeatother
要获取对父条目的较短后续引用,请加载biblatex-chicago
并citetracker
使用\ifciteseen
中的测试\bibxrefcite
。例如:
\makeatletter
\DeclareCiteCommand{\bibxrefcite}
{\usebibmacro{cite:init}}
{\newunitpunct% add missing punctuation
\usebibmacro{cms-in:}%
\blx@ibidreset%
\ifciteseen
{\printnames{labelname}\newunit\printfield{title}}
{\usedriver{}{\thefield{entrytype}}}}
{}
{}
\makeatother
您应该直接与作者联系,biblatex-chicago
告知缺少的标点符号/空格以及不存在的链接目标的可能性。