我有包含以下信息的 bibtex 条目:
@book{AEEHHL2003a-ed,
address = {Berlin},
booktitle = {{Dependenz und Valenz} / {Dependency} and Valency: {Ein internationales Handbuch der zeitgenössischen Forschung} / {An} International Handbook of Contemporary Research},
doi = {10.1515/9783110141900.1},
editor = {Ágel, Vilmos and Eichinger, Ludwig M. and Eroms, Hans-Werner and Hellwig, Peter and Heringer, Hans Jürgen and Lobin, Henning},
number = {25},
publisher = walterdegruyter,
series = {Handbücher zur Sprach- und Kommunikationswissenschaft},
title = {{Dependenz und Valenz} / {Dependency} and Valency: {Ein internationales Handbuch der zeitgenössischen Forschung} / {An} International Handbook of Contemporary Research},
volume = {1},
year = {2003}}
书名和丛书(此处未显示)包含德语和英语部分。人们经常会在参考文献列表中找到所有这些内容,但我想在英语书籍中只显示英语信息,在德语书籍中只显示德语信息会更有意义。
另一个方面是这些条目会被其他条目交叉引用。因此,如果要复制英语和德语版本的条目,则必须复制其他条目。
我考虑编写一个命令 \gereng{德语文本}{英语文本},根据某些语言标志打印正确的语言。但这会干扰大写和其他内容。所以:问题是:这个问题有更好的解决方案吗?
答案1
这看起来是计划中的“多脚本”功能的一个很好的应用。参见https://github.com/plk/biblatex/issues/416. 开发版本现已可用(https://sourceforge.net/projects/biblatex/files/experimental/和https://sourceforge.net/projects/biblatex-biber/files/biblatex-biber/experimental/),但该功能及其实现对于发布版本而言还不够成熟。
在等待该功能可用时,最简单的模拟方法可能是通过@string
或@xdata
条目和单独的.bib
文件。您显然知道如何使用@string
(publisher = walterdegruyter,
),因此下面的示例仅显示@xdata
。
除了主文件之外,您还需要与要支持的语言.bib
数量相同的辅助文件。在本例中,我们为英语准备了一个辅助文件,为德语准备了一个辅助文件。.bib
.bib
将条目的多语言字段提取到辅助文件中同名的单独条目中.bib
。相应地翻译字段,然后@xdata
在主文件的条目中引用该条目.bib
。
.bib
然后,您可以通过选择包含的辅助文件来切换语言\addbibresource
。
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=authoryear]{biblatex}
\begin{filecontents}{\jobname-xdata-de.bib}
@xdata{AEEHHL2003a-ed-xdata,
title = {Dependenz und Valenz},
subtitle = {Ein internationales Handbuch der zeitgenössischen Forschung},
langid = {ngerman},
}
\end{filecontents}
\begin{filecontents}{\jobname-xdata-en.bib}
@xdata{AEEHHL2003a-ed-xdata,
title = {Dependency and Valency},
subtitle = {An International Handbook of Contemporary Research},
langid = {english},
}
\end{filecontents}
\begin{filecontents}{\jobname.bib}
@book{AEEHHL2003a-ed,
xdata = {AEEHHL2003a-ed-xdata},
address = {Berlin},
doi = {10.1515/9783110141900.1},
editor = {Ágel, Vilmos and Eichinger, Ludwig M.
and Eroms, Hans-Werner and Hellwig, Peter
and Heringer, Hans Jürgen and Lobin, Henning},
number = {25},
publisher = {De Gruyter},
series = {Handbücher zur Sprach- und Kommunikationswissenschaft},
volume = {1},
year = {2003},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{\jobname-xdata-en.bib}
%\addbibresource{\jobname-xdata-de.bib}
\begin{document}
Lorem \autocite{AEEHHL2003a-ed}
\printbibliography
\end{document}