我正在使用制作参考书目biblatex-chicago
,我想通过在整本书的引用之后写章节来引用书中的章节,就像在这个例子中(CMOS 14.106):
样品,约翰。竞选财务改革的谬误。芝加哥:芝加哥大学出版社,2006 年。参见第 7 章“现代竞选财务法的起源”。
我认为我应该尝试将这些信息放入该addendum
字段中。我在书中引用了 DOI,但是addendum
,前doi
或字段url
,如biblatex-chicago
包文档所述(22)。我希望addendum
将放置在结尾的参考。
最小工作示例
\documentclass[12pt]{article}
\begin{filecontents}{citations.bib}
@book{Sedgwick:1997,
Author = {Sedgwick, Eve Kosofsky},
Title = {Novel Gazing: Queer Readings in Fiction},
Series = {Series Q},
Location = {Durham, NC},
Publisher = {Duke University Press},
Year = {1997},
URL = {https://doi.org/10.1215/9780822382478},
Addendum = {See esp. "Paranoid Reading and Reparative Reading; or, You're So Paranoid, You Probably Think This Introduction Is about You," 1--37.}}
\end{filecontents}
\usepackage[notes,backend=biber,isbn=false]{biblatex-chicago}
\addbibresource{citations.bib}
\usepackage[hidelinks]{hyperref}
\urlstyle{same}
\begin{document}
\begin{flushleft}
\nocite{*}
\printbibliography
\end{flushleft}
\end{document}
输出
给出的代码产生了这个:
为了澄清起见,我希望它是这样的:
塞奇威克,伊芙科索夫斯基。小说凝视:小说中的酷儿解读. Q 系列。达勒姆,北卡罗来纳州:杜克大学出版社,1997 年。https://doi.org/10.1215/9780822382478. 请参阅“偏执型阅读和修复性阅读;或者,你太偏执了,你可能认为这篇导言是关于你的”,1-37。
答案1
正如 David Purton 所提到的,获得所需结果的一种方法是重新排序参考书目驱动程序中的代码。(恕我直言,这是语义上最好的方法,但也是需要最多代码的方法。)如果手动biblatex-chicago
完成,这将需要大量的代码,甚至修补也不是那么容易,因为有些驱动程序会\printfield{addendum}
多次调用。所以这可能不是你想在这里看到的选项。
另一个解决方案是使用 Biber 源映射将字段的内容复制addendum
到另一个字段,然后通过修补将其打印在参考书目驱动程序的最末端finentry
。不幸的是,biblatex-chicago
这并不容易使用自定义数据模型来定义新字段,并且已经用尽了所有用户可定义的usera
字段userf
。
因此,我的下一次尝试是尝试保存addendum
参考书目驱动程序开头的内容,然后删除该字段,然后使用 恢复并打印参考书目驱动程序末尾的字段finentry
。不幸的是,biblatex-chicago
不支持begentry
可用于挂接到条目开头的 bibmacro。驱动程序开头唯一一致使用的 bibmacro 是bibindex
。bibindex
是一个特殊的 bibmacro,用于索引参考书目条目,它在引文中被明确禁用,因此我们需要滥用bibmacro
并解决它在引文中被禁用的事实。
\documentclass[12pt]{article}
\usepackage{csquotes}
\usepackage[notes,backend=biber,isbn=false]{biblatex-chicago}
\usepackage[hidelinks]{hyperref}
\urlstyle{same}
% save addendum field in a macro and clear it
\newbibmacro*{begentry:fake}{%
\savefield{addendum}{\savedaddendumfield}%
\clearfield{addendum}}
% use bibindex has begentry hook
\renewbibmacro*{bibindex}{%
\ifbibindex
{\indexnames{labelname}%
\indexfield{indextitle}}
{}%
\usebibmacro{begentry:fake}}
% enable our hook in citations as well
\AtUsedriver{\letbibmacro{bibindex}{begentry:fake}}
% restore field contents and print them
% obeys biblatex-chicago's 'addendum' option for citations
\renewbibmacro*{finentry}{%
\ifboolexpr{togl {blx@bibliography} or togl {cms@addendum}}
{\restorefield{addendum}{\savedaddendumfield}%
\printfield{addendum}}
{}%
\finentry}
\begin{filecontents*}{\jobname.bib}
@book{Sedgwick:1997,
Author = {Sedgwick, Eve Kosofsky},
Title = {Novel Gazing: Queer Readings in Fiction},
Series = {Series Q},
Location = {Durham, NC},
Publisher = {Duke University Press},
Year = {1997},
doi = {10.1215/9780822382478},
Addendum = {See esp. \enquote{Paranoid Reading and Reparative Reading;
or, You're So Paranoid, You Probably Think This
Introduction Is about You,} 1--37.},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\null\vfill % only for the example
Lorem\autocite{Sedgwick:1997}
\printbibliography
\end{document}
我认为 David 的想法related
非常巧妙,我想进一步发展。我们可以定义一个新的relatedtype
seeesp
,可以用作这样的参考。
\documentclass{article}
\usepackage[notes,backend=biber,isbn=false]{biblatex-chicago}
\NewBibliographyString{seeesp}
\DefineBibliographyStrings{english}{%
seeesp = {see esp\adddot},
}
\urlstyle{same}
\newbibmacro*{related:seeesp}[1]{%
\entrydata*{#1}{%
\ifboolexpr{ test {\ifentrytype{incollection}}
or test {\ifentrytype{inproceedings}}}
{\printnames{author}%
\newcunit}
{}%
\usebibmacro{title+stitle}%
\newcunit
\usebibmacro{chapincoll}%
\newcunit
\usebibmacro{volume+pages}}}
\begin{filecontents}{\jobname.bib}
@suppcollection{Sedgwick:1997:paranoid,
crossref = {Sedgwick:1997},
author = {Sedgwick, Eve Kosofsky},
title = {Paranoid Reading and Reparative Reading;
or, You're So Paranoid, You Probably Think
This Introduction Is about You},
pages = {1-37},
}
@collection{Sedgwick:1997,
editor = {Sedgwick, Eve Kosofsky},
title = {Novel Gazing: Queer Readings in Fiction},
series = {Series Q},
location = {Durham, NC},
publisher = {Duke University Press},
date = {1997},
doi = {10.1215/9780822382478},
related = {Sedgwick:1997:paranoid},
relatedtype = {seeesp},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\null\vfill
Filler text \autocite[5]{Sedgwick:1997}.
Filler text \autocite[6]{Sedgwick:1997}.
\printbibliography
\end{document}
请注意,从技术上讲,Sedgwick:1997
是@collection
而不是@book
。@suppcollection
是 的介绍和其他补充部分的条目类型@collection
。“正常”章节将是@incollection
。
答案2
我认为最简单的方法是使用相关条目。否则,您需要更改驱动程序中的某些内容,而这对于 来说并不总是那么简单biblatex-chicago
。(如果您希望注释出现在长引文中,请将其添加related=true
到您的biblatex
选项中。默认值为related=bib
。)
平均能量损失
\documentclass{article}
\begin{filecontents}[overwrite]{\jobname.bib}
@misc{Sedgwick:1997:note,
note = {\bibstring{seeesp} \mkbibquote{Paranoid Reading and Reparative Reading; or, You're So Paranoid, You Probably Think This Introduction Is about You}, \mknormrange{1-37}},
options = {skipbib}
}
@book{Sedgwick:1997,
author = {Sedgwick, Eve Kosofsky},
title = {Novel Gazing: Queer Readings in Fiction},
series = {Series Q},
location = {Durham, NC},
publisher = {Duke University Press},
date = {1997},
url = {https://doi.org/10.1215/9780822382478},
related = {Sedgwick:1997:note},
}
\end{filecontents}
\usepackage[isbn=false]{biblatex-chicago}
\addbibresource{\jobname.bib}
\NewBibliographyString{seeesp}
\DefineBibliographyStrings{english}{%
seeesp = {see esp\adddot},
}
\urlstyle{same}
\begin{document}
\null\vfill
Filler text \autocite[5]{Sedgwick:1997}.
Filler text \autocite[6]{Sedgwick:1997}.
\printbibliography
\end{document}