在印度学文献中,通常有两个单独的书目:一个是二手文献,可以通过 biblatex(-chicago) 中现有的类型和字段或多或少直接处理;另一个是一手文献,在之前的出版项目中,我不得不求助于一些丑陋的黑客手段,比如滥用该title
字段作为作品名称和作者,然后将所有实际的书目信息硬编码到该note
字段中。这有多丑陋,如下所示,这大致就是我以前的做法:
\documentclass{article}
\usepackage[authordate,backend=biber]{biblatex-chicago}
\usepackage{filecontents}
\begin{filecontents*}{pri.bib}
@misc{Kuṭṭanīmata,
title = {Kuṭṭanīmata \emph {of Dāmodaragupta}},
note = {\textit{Dāmodaraguptaviracitaṃ Kuṭṭanīmatam: The Bawd’s Counsel, Being an Eighth-century Verse Novel in Sanskrit by Dāmodaragupta, Newly Edited and Translated into English}, edited and translated by Csaba Dezső and Dominic Goodall. Groningen Oriental Studies 23. Groningen: Egbert Forsten, 2012},
}
\end{filecontents*}
\begin{filecontents*}{sec.bib}
@book{DezsoGoodall2012,
title = {Dāmodaraguptaviracitaṃ Kuṭṭanīmatam},
subtitle = {The Bawd’s Counsel, Being an Eighth-century Verse Novel in Sanskrit by Dāmodaragupta, Newly Edited and Translated into English},
editor = {Csaba Dezső and Dominic Goodall},
translator = {Csaba Dezső and Dominic Goodall},
series = {Groningen Oriental Studies},
number = {23},
location = {Groningen},
publisher = {Egbert Forsten},
year = {2012},
}
\end{filecontents*}
\begin{filecontents*}{biber.conf}
<?xml version="1.0" encoding="UTF-8"?>
<config>
<sourcemap>
<maps datatype="bibtex" bmap_overwrite="1">
<map>
<per_datasource>pri.bib</per_datasource>
<map_step map_field_set="KEYWORDS" map_field_value="pri"/>
</map>
<map>
<per_datasource>sec.bib</per_datasource>
<map_step map_field_set="KEYWORDS" map_field_value="sec"/>
</map>
</maps>
</sourcemap>
</config>
\end{filecontents*}
\addbibresource{pri.bib}
\addbibresource{sec.bib}
\begin{document}
\nocite{*}
\printbibliography[title=Primary Sources, keyword=pri,heading=subbibliography]
\printbibliography[title=Secondary Sources, keyword=sec,heading=subbibliography]
\end{document}
对于一个新项目,我现在正在考虑如何正确地完成它,但不太确定如何去做。也许我可以创建新的类型,比如@pri-book
,我想我必须@book
从 chicago-authordate.bbx 复制 的定义,并通过两个额外的字段对其进行扩展,例如pri-title
,包含作品的梵文标题,以及可选的pri-author
,当然也需要定义,并更改字段的顺序以便在条目末尾输出年份?
答案1
更新
这是一个将author
和title
分开的版本。它可以处理不同的语言。我还保留了您的源映射,并使用源映射将 设置为,sortkey
以便title
条目按标题而不是作者排序。 确保relatedoptions={dataonly,useditor=false,usetranslator=false}
相关条目不会出现在参考书目中,除非明确引用,并且编辑和翻译出现在标题之后。
它并不是非常聪明,但却是一个合理的起点。
\documentclass{article}
\usepackage[french,american]{babel}
\usepackage{csquotes}
\usepackage{xpatch}
\usepackage[authordate,backend=biber,language=auto,autolang=other]{biblatex-chicago}
\usepackage{filecontents}
\begin{filecontents}{pri.bib}
@misc{Kuṭṭanīmata,
entrysubtype = {classical},
author = {Dāmodaragupta},
title = {Kuṭṭanīmata},
related = {DezsoGoodall2012},
relatedoptions = {dataonly,useeditor=false,usetranslator=false}
}
@misc{Title:fr,
entrysubtype = {classical},
author = {Author},
title = {Title},
langid = {french},
}
\end{filecontents}
\begin{filecontents}{sec.bib}
@book{DezsoGoodall2012,
title = {Dāmodaraguptaviracitaṃ Kuṭṭanīmatam},
subtitle = {The Bawd’s Counsel, Being an Eighth-century Verse Novel in Sanskrit by Dāmodaragupta, Newly Edited and Translated into English},
editor = {Csaba Dezső and Dominic Goodall},
translator = {Csaba Dezső and Dominic Goodall},
series = {Groningen Oriental Studies},
number = {23},
location = {Groningen},
publisher = {Egbert Forsten},
year = {2012}
}
\end{filecontents}
\addbibresource{pri.bib}
\addbibresource{sec.bib}
\DeclareSourcemap{
\maps{
\map{
\perdatasource{pri.bib}
\step[fieldset=keywords, fieldvalue=pri]
\step[fieldsource=title, final]
\step[fieldset=sortkey, origfieldval]
}
}
}
\DeclareFieldFormat[misc]{title}{\mkbibemph{#1}\isdot}
\newbibmacro*{pri:titleofauthor}{%
\ifentrytype{misc}
{\iffieldequalstr{entrysubtype}{classical}
{\ifbibliography
{\printfield{title}%
\ifnameundef{author}
{}
{\setunit*{\addspace}%
\bibstring{of}%
\setunit*{\addspace}%
\printnames{author}%
\clearname{author}}%
\clearfield{title}}
{\printtext[bibhyperref]{\printfield[citetitle]{title}}%
\ifnameundef{labelname}
{}
{\setunit*{\addspace}%
\bibstring{of}%
\setunit*{\addspace}%
\printnames{labelname}}%
\clearfield{labeltitle}%
\clearname{labelname}}}
{}}
{}}
\xpretobibmacro{cite}
{\usebibmacro{pri:titleofauthor}}
{}
{}
\xpatchbibdriver{misc}
{\usebibmacro{bibindex}}
{\usebibmacro{bibindex}\usebibmacro{pri:titleofauthor}}
{}
{}
\begin{document}
Filler text \autocite{Kuṭṭanīmata}.
Filler text \autocite{Title:fr}.
Filler text \autocite{DezsoGoodall2012}.
\printbibliography[title=Primary Sources, keyword=pri,heading=subbibliography]
\printbibliography[title=Secondary Sources, notkeyword=pri,heading=subbibliography]
\end{document}
原始答案
这看起来是related
功能的一个很好的候选者biblatex
。您可以将字段设置entrysubtype
为classical
您的主要来源,以获得您想要的输出,而不需要真正做任何巧妙的事情。
理想情况下,您希望将Kuṭṭanīmata 条目author
与title
分开,但如果您不想修改驱动程序,则可以将字段中的所有内容保留title
为现在的样子。
这个怎么样?
\documentclass{article}
\usepackage[authordate,backend=biber]{biblatex-chicago}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{Kuṭṭanīmata,
entrysubtype = {classical},
title = {\mkbibemph{Kuṭṭanīmata} of Dāmodaragupta},
related = {DezsoGoodall2012},
relatedoptions = {dataonly,useeditor=false,usetranslator=false},
keywords = {pri}
}
@book{DezsoGoodall2012,
title = {Dāmodaraguptaviracitaṃ Kuṭṭanīmatam},
subtitle = {The Bawd’s Counsel, Being an Eighth-century Verse Novel in Sanskrit by Dāmodaragupta, Newly Edited and Translated into English},
editor = {Csaba Dezső and Dominic Goodall},
translator = {Csaba Dezső and Dominic Goodall},
series = {Groningen Oriental Studies},
number = {23},
location = {Groningen},
publisher = {Egbert Forsten},
year = {2012},
keywords = {sec}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Filler text \autocite{Kuṭṭanīmata}.
Filler text \autocite{DezsoGoodall2012}.
\printbibliography[title=Primary Sources, keyword=pri,heading=subbibliography]
\printbibliography[title=Secondary Sources, keyword=sec,heading=subbibliography]
\end{document}