Biblatex/Biber:标题后“in”前的逗号

Biblatex/Biber:标题后“in”前的逗号

我想要实现这样的目标:

斯塔赫尔豪斯,托马斯:“如果我不这样做,那又怎么样?”——弗朗茨·卡夫卡的《死亡的迁移》和保罗·奥斯特的《玻璃之城》中的身份与身份欲望, 在:Schlicht,Corinna (Hrsg.):身份。奥伯豪森:Verlag Karl Maria Laufen 2010(作者在 Kontext – 杜伊斯堡学生会第 11 馆),第 122–136 页。

我现在的位置是:

斯塔赫尔豪斯,托马斯:“如果没有它,那还有什么?” – 弗朗茨·卡夫卡的《身份与身份转换》和保罗·奥斯特的《玻璃城》。 在:Schlicht,Corinna (Hrsg.):身份。屋宇署11. 奥伯豪森:Verlag Karl Maria Laufen 2010(作者:Duisburger Studienbögen)Bd. 11,第122-136页。

我一般不希望标题后面有逗号,只有当有“in:”(也应该是小写)时才需要,到目前为止,我已经为文章和InCollection类型得到了它。

这是我的示范围兜:

@InCollection{Stachelhaus.2010,
  Title                    = {{\dq}Ist er noch wer, wenn er nicht mehr er ist?{\dq} -- Identit{\"a}t und Identit{\"a}tsverlus in Franz Kafkas 'Die Verwandlung' und Paul Austers 'Stadt aus Glas'},
  Author                   = {Stachelhaus, Thomas},
  Booktitle                = {Identit{\"a}t},
  Publisher                = {Verlag Karl Maria Laufen},
  Year                     = {2010},
  Address                  = {Oberhausen},
  Editor                   = {Schlicht, Corinna},
  Pages                    = {122--136},
  Series                   = {Autoren im Kontext -- Duisburger Studienb{\"o}gen},
  Volume                   = {11},
}

我希望这里不需要 MWE,如果它很重要,我会使用 ibid-verbose 样式。

非常感谢您的帮助:-)

附言:我知道音量存在一些问题,希望能够在这里得到解决:Biblatex/Biber:将系列、卷数和编号放在末尾

答案1

由于biblatex标点符号跟踪器的工作方式,我们可以通过一些欺骗手段来避免修补驱动程序。

\renewbibmacro*{in:}{%
  \setunit{\addcomma\space}%
  \printtext{%
    \bibstring{in}\intitlepunct}}

我们只需用 替换标点符号缓冲区中的当前标点符号\addcomma\space,之后会立即使用该缓冲区,因为\printtext后面跟着一个指令。

平均能量损失

\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber,style=authortitle]{biblatex}
\usepackage{microtype}

\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@InCollection{Stachelhaus.2010,
  title     = {\enquote{Ist er noch wer, wenn er nicht mehr er ist?} -- Identit{\"a}t und Identit{\"a}tsverlus in Franz Kafkas \enquote{Die Verwandlung} und Paul Austers \enquote{Stadt aus Glas}},
  author    = {Stachelhaus, Thomas},
  booktitle = {Identit{\"a}t},
  publisher = {Verlag Karl Maria Laufen},
  year      = {2010},
  address   = {Oberhausen},
  editor    = {Schlicht, Corinna},
  pages     = {122--136},
  series    = {Autoren im Kontext -- Duisburger Studienb{\"o}gen},
  number    = {11},
}
\end{filecontents*}
\addbibresource{\jobname.bib}

\renewbibmacro*{in:}{%
  \setunit{\addcomma\space}%
  \printtext{%
    \bibstring{in}\intitlepunct}}

\begin{document}

\nocite{*}

\printbibliography
\end{document} 

请注意,在 MWE 中,我已将手绘的引号更改为csquotes',并结束了对应该使用的字段\enquote的滥用。volumenumber

MWE 的输出

答案2

这是驱动程序的一个小补丁InCollection。您可能必须对所有使用该in:宏的驱动程序执行相同的操作:

\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber,style=authortitle]{biblatex}
\usepackage{microtype}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@InCollection{Stachelhaus.2010,
  Title = {{\dq}Ist er noch wer, wenn er nicht mehr er ist?{\dq} -- Identit{\"a}t und Identit{\"a}tsverlus in Franz Kafkas 'Die Verwandlung' und Paul Austers 'Stadt aus Glas'},
  Author = {Stachelhaus, Thomas},
  Booktitle = {Identit{\"a}t},
  Publisher = {Verlag Karl Maria Laufen},
  Year = {2010},
  Address = {Oberhausen},
  Editor = {Schlicht, Corinna},
  Pages = {122--136},
  Series = {Autoren im Kontext -- Duisburger Studienb{\"o}gen},
  Volume = {11},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\usepackage{xpatch}

\xpatchbibdriver{incollection}{%
  \newunit\newblock
  \usebibmacro{in:}}{%
  \setunit{\addcomma\space}\newblock
  \usebibmacro{in:}}{}{}

\begin{document}

\nocite{*}

\printbibliography
\end{document} 

在此处输入图片描述

答案3

@moewe 的回答仍然非常有用。我现在想从以下来源获取:

巴布卡,安娜 (Anna Babka):女性写作 – 耶利内克阅读。以异体书写(女性)的视角看埃尔弗里德·耶利内克斯(由埃莱娜·西苏、露西·伊利格瑞和朱莉娅·克里斯蒂娃撰写)的文本,出自:朱利安·穆勒和刘炜(Hrsg.):女性写作。维也纳:Praesens Verlag 2014(奥地利文学在中国,第2卷),第17-52页。

巴布卡,安娜 (Anna Babka):女性写作 – 耶利内克阅读。以异体书写(女性)为主题的文本艾尔弗里德·耶利内克斯(作者:埃莱娜·西苏、露西·伊利格瑞和朱莉娅·克里斯蒂娃)收录于:女性写作,hrsg.v。刘炜和朱利安·穆勒。维也纳:Praesens Verlag 2014(奥地利文学在中国,第2卷),第17-52页。

并使用以下代码实现了这一点:

\renewbibmacro*{byeditor+others}{%
  \setunit{\addcomma\space}% <---- this is new ...
  \ifnameundef{editor}
    {}
    {\usebibmacro{byeditor+othersstrg}%
     \setunit{\addspace}%
     \printnames[byeditor]{editor}%
     \clearname{editor}%
     \newunit}%
  \usebibmacro{byeditorx}%
  \usebibmacro{bytranslator+others}}%}% <---- and this

\DefineBibliographyStrings{german}{% 
  byeditor={hrsg\adddot\thinspace v\adddotspace}, 
  } 

\renewbibmacro*{in:}{%
  \setunit{\addcomma\space}%
  \printtext{%
    \bibstring{in}\intitlepunct}}

以防万一有人想要实现类似的目标(并且想要覆盖“ed. by”DefineBibliographyStrings行)。

如果有人感到疑惑,这是相应的 bib 条目:

@InCollection{Babka2014,
  author    = {Babka, Anna},
  title     = {Frauen.Schreiben -- Jelinek-Lesen. Aspekte einer allo-\'{e}criture (f\'{e}minine) in Texten Elfriede Jelineks (nach H\'{e}l\`{e}ne Cixous, Luce Irigaray und Julia Kristeva)},
  booktitle = {Frauen.Schreiben},
  publisher = {Praesens Verlag},
  year      = {2014},
  editor    = {Liu Wei and Julian Müller},
  series    = {Österreichische Literatur in China, Bd. 2},
  pages     = {17--52},
  address   = {Wien},
}

相关内容