![Biblatex 使用不同领域的值作为主标题](https://linux22.com/image/469154/Biblatex%20%E4%BD%BF%E7%94%A8%E4%B8%8D%E5%90%8C%E9%A2%86%E5%9F%9F%E7%9A%84%E5%80%BC%E4%BD%9C%E4%B8%BA%E4%B8%BB%E6%A0%87%E9%A2%98.png)
对于我正在写的一篇论文,我使用历史样式,它期望 booktitle 字段被称为 @inreference 和 @incollection 条目的 maintitle。
Zotero(以及我的所有 bib 文件)使用标准 biblatex 格式,其中书籍章节或百科全书条目的标题是 booktitle,我希望保持这种状态。
有没有办法保留书目文件原样,并重新配置样式以使用 booktitle 字段作为 maintitle?我期望\DeclareFieldAlias{maintitle}{booktitle}
产生这种行为,但似乎我误解了这个命令。
例如,在下面的例子中声明引用 @inreference 条目时我期望得到这个结果:
Haefele, HF / Gschwind, Ch.:艺术。 “Notker I. (Balbulus, “der Stammler”)”,载于:Lexikon des Mittelalters 6 (1999),1289–1290
这是我得到的:
Haefele, HF / Gschwind, Ch.: Art. „Notker I. (Balbulus, “der Stammler”)“, 收录于: (1999), 1289–1290。
(注意区别在于后面缺少标题在:)
例子:
\documentclass[12pt,a4paper]{article}
\usepackage{setspace}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{geometry}
\usepackage{pdfpages}
\usepackage[style=german]{csquotes}
\usepackage{helvet} %helvetica font
\geometry{left=2.5cm,right=4cm,top=2cm,bottom=2cm}
\usepackage[backend=biber, style=geschichtsfrkl, maxcitenames=2]{biblatex}
\DeclareFieldAlias{maintitle}{booktitle}
\begin{filecontents}{biblio.bib}
@inreference{haefeleNotkerBalbulusStammler-1999,
title = {Notker I. (Balbulus, "der Stammler")},
booktitle = {Lexikon des Mittelalters},
% maintitle = {Lexikon des Mittelalters}, %this works
author = {Haefele, H. F. and family=Gschwind, given=Ch., given-i={{Ch}}},
date = {-1999},
origdate = {1977},
series = {Brepolis Medieval Encyclopaedias - Lexikon des Mittelalters Online},
volume = {6},
pages = {1289--1290},
publisher = {{J.B. Metzler,}},
location = {{Stuttgart}},
langid = {ngerman},
volumes = {10},
}
@incollection{goetzStaatlichkeitHerrschaftsordnungUnd2000,
title = {Staatlichkeit, Herrschaftsordnung Und Lehnswesen Im Ostfränkischen Reich Als Forschungsproblem},
booktitle = {Il {{Feudalesimo}} Nell'{{Alto Medioevo}}},
% maintitle = {Il {{Feudalesimo}} Nell'{{Alto Medioevo}}}, %this works
author = {Goetz, Hans-Werner},
date = {2000},
pages = {85--143},
url = {http://opac.regesta-imperii.de/id/160891},
uniqueid = {160891},
keywords = {9. Jahrhundert,Deutschland,Europa,Feudalsystem,Frankenreich,Goetz,Hans-Werner (1947-),Reichsgeschichte,Staat,Staatlichkeit},
file = {/home/chris/Historische Wissenschaften/Zotero/storage/SJANFAN9/Goetz - 2000 - Staatlichkeit, herrschaftsordnung und lehnswesen i.PDF}
}
\end{filecontents}
\addbibresource{biblio.bib}
\onehalfspacing
\begin{document}
\fullcite{goetzStaatlichkeitHerrschaftsordnungUnd2000} \\
Empty line \\
\fullcite{haefeleNotkerBalbulusStammler-1999}
\printbibliography
\end{document}
答案1
感谢 cfr 的评论,我在 biblatex 文档中找到了相关部分。
4.5.3 数据的动态修改有一个关于如何将一个字段的值复制到另一个字段的示例,除非另一个字段已经存在。
这正是我所需要的,因为它可以很好地将 的内容复制booktitle
到maintitle
。
我使用的代码是这样的:
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map{
\step[fieldsource=booktitle]
\step[fieldset=maintitle, origfieldval]
}
}
}