最后,当我引用一个条目时,我几乎拥有了完美的引用风格@incollection
。
作者(年份)。“标题”。在:编辑 A 和编辑 B (Hrsg.):标题
括号中的“(Hrsg.):”非常重要。但当我直接引用该合集时,我希望不加括号,而是在括号前加逗号(否则当我使用作者年份样式时,它看起来很愚蠢)
编辑 A,编辑 B,Hrsg。(年份)。标题。
这是一个最小的例子,也许有人有一个很好的解决方案——会很有帮助!
\documentclass[12pt,a4paper,]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{libertine}
\usepackage[natbib=true,backend=biber,
style=ext-authoryear-icomp,innamebeforetitle,innameidem=true]{biblatex}
\DefineBibliographyStrings{ngerman}{editor = (Hrsg\adddot):}
\DefineBibliographyStrings{ngerman}{editors = (Hrsg\adddot):}
\DeclareDelimFormat{editortypedelim}{\addspace}
\usepackage{hyperref}
\usepackage{filecontents}
\begin{filecontents}{example.bib}
@incollection{Hoffmann.2010,
author = {Hoffmann, Thomas},
title = {Erste Natur, Zweite Natur und das Gute f{\"u}r den Menschen},
pages = {75--104},
editor = {Hoffmann, Thomas and Reuter, Michael},
booktitle = {Nat{\"u}rlich gut. Aufs{\"a}tze zur Philosophie von Philippa Foot},
year = {2010},
address = {Frankfurt am Main (u. a.)}
}
@book{Hoffmannetal.2010,
year = {2010},
title = {Nat{\"u}rlich gut. Aufs{\"a}tze zur Philosophie von Philippa Foot},
address = {Frankfurt am Main (u. a.)},
editor = {Hoffmann, Thomas and Reuter, Michael}
}
\end{filecontents}
\addbibresource{example.bib}
\begin{document}
\cite{Hoffmann.2010} \cite{Hoffmannetal.2010}
\printbibliography[]
\end{document}
答案1
括号之类的格式和冒号之类的尾随标点符号绝不应包含在参考文献字符串及其翻译中。
在这种情况下,正确的更改方法是通过editortype
字段格式、editortypedelim
分隔符和innametitledelim
分隔符。
biblatex-ext
的bbx:in:editor
宏(用于打印 的编辑器innamebeforetitle
)重用了editortype
字段格式,其他宏也使用该格式来打印编辑器字符串。因此,获取不同格式的最简单方法是在 中本地覆盖全局设置bbx:in:editor
。
\documentclass[12pt,a4paper,]{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{libertine}
\usepackage{csquotes}
\usepackage[natbib=true,backend=biber,
style=ext-authoryear-icomp,innamebeforetitle,innameidem=true]{biblatex}
\usepackage{hyperref}
\DeclareDelimFormat[bib]{innametitledelim}{\addcolon\space}
\makeatletter
\renewbibmacro*{bbx:in:editor}[1]{%
\ifboolexpr{
test \ifuseeditor
and
not test {\ifnameundef{editor}}
}
{\DeclareFieldFormat{editortype}{\mkbibparens{##1}}%
\DeclareDelimFormat{editortypedelim}{\addspace}%
\ifboolexpr{togl {bbx:innameidem} and test {\bbx@ineditoridem}}
{\bibstring[\mkibid]{idem\thefield{gender}}}
{\printnames[ineditor]{editor}}%
\setunit{\printdelim{editortypedelim}}%
\usebibmacro{#1}%
\clearname{editor}}
{}}
\makeatother
\begin{filecontents}{\jobname.bib}
@incollection{Hoffmann.2010,
author = {Hoffmann, Thomas},
title = {Erste Natur, Zweite Natur und das Gute für den Menschen},
pages = {75--104},
crossref = {Hoffmannetal.2010},
}
@collection{Hoffmannetal.2010,
year = {2010},
title = {Natürlich gut},
subtitle = {Aufsätze zur Philosophie von Philippa Foot},
address = {Frankfurt am Main and others},
editor = {Hoffmann, Thomas and Reuter, Michael}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\cite{Hoffmann.2010} \cite{Hoffmannetal.2010}
\printbibliography
\end{document}
请注意示例条目的细微变化:使用biblatex
和 Biber,您可以直接使用非 ASCII 字符,如ü
,而不必将它们转义为{\"u}
。您还可以使用该crossref
功能避免重复。最后,父条目应该是@collection
而不是@book
(毕竟子条目是@incollection
而不是@inbook
)。