我正在使用biblatex
。我想在我的.bib
文件中存储具有以下语义的条目:
- 它指的是整本书
- 本书包含不同作者的文章
- 这本书本身没有作者
- 引用时,编辑被命名为
- 引用时必须能够区分,因为编辑者在引用时会加上“(Hg.)”(这是德语缩写“赫拉乌斯盖伯”也就是编辑(editor),而不是作者。
我该怎么做呢?
答案1
该@collection
条目看起来正是您想要的。
文档biblatex
说:
单卷合集,包含多位不同作者撰写的独立作品,每部作品都有自己的标题。整部作品没有总作者,但通常会有编辑。
@book
在这里不是最合适的选择,因为biblatex
期望@book
有一个作者。
然后可以将该作品中的条目输入@incollection
crossref
回@collection
。
语言文件需要稍微修补,所以我们有Hg.
和 没有Hrsg.
。编辑器字符串的格式可以从“Name, ed.”更改为“Name (ed.)”,只需多加两行。
\documentclass[ngerman, a4paper]{article}
\usepackage[utf8]{inputenc}% everyone loves UTF-8
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authortitle, backend=biber]{biblatex}
\addbibresource{\jobname.bib}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@incollection{WaContCont,
author = {Anna Wärnsby},
title = {On Controllability as a Contextual Variable},
crossref = {StEngMod},
pages = {69-98},
}
@collection{StEngMod,
editor = {Tsangalidis, Anastasios and Facchinetti, Roberta},
title = {Studies on English Modality},
date = {2009},
location = {Bern},
publisher = {Lang},
}
\end{filecontents}
% this is our language file with the new abbreviations for editor
\begin{filecontents}{ngerman-ed.lbx}
\ProvidesFile{ngerman-ed.lbx}
\InheritBibliographyExtras{ngerman}% extras are inherited from ngerman ...
\DeclareBibliographyStrings{%
inherit = {ngerman},% .... as well as all the keys
editor = {{Herausgeber}{Hg\adddot}},
editors = {{Herausgeber}{Hg\adddot}},
}
\end{filecontents}
\DeclareLanguageMapping{ngerman}{ngerman-ed}% use the new abbreviations
% editor string in parentheses
\DeclareFieldFormat{editortype}{\mkbibparens{#1}}% so editor is set in parentheses
% do not set the parentheses off with a comma
\DeclareDelimFormat{editortypedelim}{\addspace}
\begin{document}
The \verb|@collection| is \cite{StEngMod}, whereas \cite{WaContCont} is \verb|@incollection|.
\printbibliography
\end{document}
答案2
bibtex
以及如果没有指定字段,则biblatex
采用该字段。使用和条目类型,您可以轻松区分书中的单个章节或文章和书本身。editor
author
@inbook
@book
此外,crossref
的机制使得从 到条目的biblatex
引用变得非常容易。因此,您不必为每个条目重新输入书籍的所有信息,这也减少了冗余。@inbook
@book
@inbook
比较下面的例子:
\begin{filecontents}{\jobname.bib}
@book{test,
editor= {Some Name},
title = {Random Title},
year = {2013},
}
@inbook{test2,
author= {Another Name},
title = {Some Essay},
crossref = {test}
}
\end{filecontents}
\documentclass{article}
\usepackage{biblatex}
\usepackage[ngerman]{babel}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}