我正在使用biblatex
并希望选择创建像这样的参考书目条目(当然没有换行符)
Luther, Martin (1530). Von der Stadtmaus und der Feldmaus.
In: Martin Luthers Fabeln und Sprichwörter.
Hrsg. von Reinhard Dithmar. 2., korr. Aufl. 1995.
Darmstadt: Wiss. Buchges. Kap. XII.
基于bib.bib
@incollection{Luther1530,
title = {Von der Stadtmaus und der Feldmaus},
booktitle = {Martin Luthers Fabeln und Sprichwörter},
author = {Luther, Martin},
editor = {Dithmar, Reinhard},
chapter = {XII},
address = {Darmstadt},
publisher = {Wiss. Buchges},
origdate = {1530},
date = {1995},
edition = {2., korr. Aufl.},
}
为什么会这样?从上面的例子中可以看出,有些文本在另一本书中被重印或翻译。因此,两本书的日期不同 - 文本的原始日期和重印/翻译的日期。
问题:
- 如何
origdate
为authoryear
-style 创建一个新字段? - 如何完成
origdate
在 之后author
和date
之后的格式化edition
?
答案1
一个超级简单且非黑客的方式来获得关闭您想要的是改变的定义以更\DeclareLabeldate
喜欢:origdate
date
这只需要将其添加到您的序言中:
\DeclareLabeldate{%
\field{origdate}
\field{date}
\field{year}
\field{eventdate}
\field{urldate}
\literal{nodate}
}
平均能量损失
\documentclass{article}
\begin{filecontents}[overwrite]{\jobname.bib}
@incollection{Luther1530,
title = {Von der Stadtmaus und der Feldmaus},
booktitle = {Martin Luthers Fabeln und Sprichwörter},
author = {Luther, Martin},
editor = {Dithmar, Reinhard},
chapter = {XII},
address = {Darmstadt},
publisher = {Wiss\adddot\space Buchges},
origdate = {1530},
date = {1995},
edition = {2., korr\adddot\space Aufl\adddot}
}
\end{filecontents}
\usepackage[ngerman]{babel}
\usepackage{csquotes}
\usepackage[style=authoryear]{biblatex}
\addbibresource{\jobname.bib}
\DeclareLabeldate{%
\field{origdate}
\field{date}
\field{year}
\field{eventdate}
\field{urldate}
\literal{nodate}
}
\begin{document}
\autocite{Luther1530}
\printbibliography
\end{document}
如果这还不够好,那么您将必须单独修补每个驱动程序。这并不难,但有点麻烦:
\usepackage{xpatch}
\xpatchbibdriver{incollection}
{\printfield{edition}}
{\printfield{edition}%
\newunit
\printdate
\clearfield{year}}
{}
{}
平均能量损失
\documentclass{article}
\begin{filecontents}[overwrite]{\jobname.bib}
@incollection{Luther1530,
title = {Von der Stadtmaus und der Feldmaus},
booktitle = {Martin Luthers Fabeln und Sprichwörter},
author = {Luther, Martin},
editor = {Dithmar, Reinhard},
chapter = {XII},
address = {Darmstadt},
publisher = {Wiss\adddot\space Buchges},
origdate = {1530},
date = {1995},
edition = {2., korr\adddot\space Aufl\adddot}
}
\end{filecontents}
\usepackage[ngerman]{babel}
\usepackage{csquotes}
\usepackage[style=authoryear]{biblatex}
\addbibresource{\jobname.bib}
\DeclareLabeldate{%
\field{origdate}
\field{date}
\field{year}
\field{eventdate}
\field{urldate}
\literal{nodate}
}
\usepackage{xpatch}
\xpatchbibdriver{incollection}
{\printfield{edition}}
{\printfield{edition}%
\newunit
\printdate
\clearfield{year}}
{}
{}
\begin{document}
\autocite{Luther1530}
\printbibliography
\end{document}