引用时@inbook
,如果书籍作者与该书中所引用文本的作者相同,则参考书目样式authortitle-dw
会识别这一点并显示“idem”。在德语中,这是“Ders。”(或“Dies。”,带有女性或多位作者)。
现在我想知道如何让缩写“Ders。”/“Dies。”以小写字母显示。在下面的 MWE 中,我得到了以下内容:
黑格尔,格奥尔格·威廉·弗里德里希:《下级的法律、义务和宗教理论(1810 年及以后)》,载于:纽伦堡和海德堡出版社 1808-1817 年版,hrsg。 v. Eva Moldenhauer 和 Karl Markus Michel,Werke 4, 2. Aufl.,法兰克福/M. 1993 年,第 204-274 页。
我想要得到的是这个(我只使用粗体字母来突出显示单词;我不希望该单词在引用或参考书目中以粗体显示):
黑格尔,格奥尔格·威廉·弗里德里希:《下级的法律、义务和宗教理论(1810 年至 1810 年)》,载于:德斯:纽伦堡和海德堡书信 1808-1817,hrsg。 v. Eva Moldenhauer 和 Karl Markus Michel,Werke 4, 2. Aufl.,法兰克福/M. 1993 年,第 204-274 页。
这是我的 MWE:
\documentclass[12pt, a4paper, openany]{report}
\usepackage[left=5cm, top=2cm, right=3.5cm, bottom=3.5cm]{geometry}
\usepackage{mystyle}
\begin{document}
Blablabla.\footcite[456]{RPR}
\printbibliography[title={Literaturverzeichnis}, heading=bibnumbered]
\end{document}
以下是我的文件中的内容mystyle.sty
:
\ProvidesPackage{mystyle}[2020/05/21 FUX's custom LaTeX style]
%Custom preamble
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{betababel}
%Das Nachfolgende ist der Zitationsstil mit allen seinen Optionen:
\usepackage[
backend=biber,
style=authortitle-dw,
useprefix=true,
sortlocale=de_DE,
url=false,
doi=false,
eprint=false,
nopublisher=true,
nolocation=false,
citedas=true,
citeauthorname=firstfull,
firstfull=true,
acronyms=true,
idembib=true,
idembibformat=dash,
edbyidem=true,
editorstring=parens,
ibidtracker=false,
editionstring=true,
series=beforeedition,
seriesformat=standard,
shorthandinbib=false,
terselos=true,
pageref=false,
loccittracker=true,
idemtracker=false,
shorthandwidth=105pt,
citepages=separate,
]{biblatex}
\DeclareFieldFormat
[article, inbook, incollection]
{title}{\frqq{}#1\flqq}
%Das Nachfolgende greift auf die literatur.bib Datei zu:
\addbibresource{literatur.bib}
\endinput
以下是我的literatur.bib
文件内容:
@inbook{RPR,
author = {Hegel, Georg Wilhelm Friedrich},
editor = {Moldenhauer, Eva and Michel, Karl Markus},
title = {Rechts-, Pflichten- und Religionslehre für die Unterklasse (1810ff.\isdot)},
options = {acronym=true},
shorthand = {RPR},
booktitle = {Nürnberger und Heidelberger Schriften 1808-1817},
bookauthor = {Hegel, Georg Wilhelm Friedrich},
year = {1993},
edition = 2,
series = {Werke},
number = {4},
publisher = {Suhrkamp},
address = {Frankfurt/M.},
pages = {204-274},
keywords = {Hegel},
}
答案1
这是一个令人惊讶的棘手问题!我花了一些时间进行挖掘,但这里有 (1) 问题出现原因的解释(我称之为 当前版本的一个小错误authortitle-dw
)和 (2) 几个可能的解决方案。
错误原因
正如你所指出的,
引用时,
@inbook
如果该书的作者与该书中引用文本的作者相同,则书目样式authortitle-dw
会识别这一点并输出 [bibstring]idem
在德语本地化中,该字符串被实现为“dieselbe”/“dies”。(模数性别)。请注意,该字符串本身是小写的。尽管它可正确类型的大写标点(通常位于句首)。
此外,作者似乎authortitle-dw
完全考虑到了您的情况,并规定“ders。”等应该在出版物的这个特定位置以小写形式出现inbook
。这是来自的代码authortitle-dw.bbx
:
%% 'Ders.' bei inbook, wenn gleicher Autor
\renewbibmacro*{bybookauthor}{%
\ifnamesequal{author}{bookauthor}
{\ifbool{bbx:edbyidem}
{\midsentence*\bibstring[\mkidem]{idem\thefield{gender}}\addcolon}
{\printnames[byauthor]{bookauthor}%
\newunit\newblock}}
{\printnames[byauthor]{bookauthor}%
\newunit\newblock}}
注意,当author
和相同时,使用bookauthor
bistringidem
并且之前是命令。其biblatex
功能\midsentence
(带或不带星号)如下:“此命令后面的本地化字符串将不大写”(biblatex 文档,§4.7.6)。
由于我们是(它似乎) 句子中间,我们期望字符串“dies.”和 friends 应该以小写形式出现。但有趣的事实是:不是。
最终的原因是德国本地化中冒号的处理。具体来说,就是在“ders”之前的冒号。(包含 bibmacroin:
以标点命令 结尾\intitlepunct
,而该命令又定义为\addcolon\space
,正如预期的那样)。
biblatex 的主要本地化版本为德语(german.lbx
),通过规则\DeclareCapitalPunctuation
(参见文档,§4.7.5) 规定冒号后面的短语必须大写。我们真的不在句子中间。
\DeclareCapitalPunctuation{:.!?}
这与标准(英语)biblatex
规范(\DeclareCapitalPunctuation{:.!?}
)不同。这也是有争议的,而且太宽泛了,因为只有德语完整的句子在冒号后大写(每杜登)——但它仍然是国家的法律。
现在,biblatex-dw
从根继承了这一行为biblatex
——这意味着作者通过不改变规范的这一部分,有效地\midsentence
在当前情况下取消了他们自己的使用。
编辑:公平地说biblatex-dw
,此机制在软件包上次更新(2016 年)时有效,并且\midsentence*
在宏中biblatex-dw
产生了预期的效果。在 2019 年末, v3.15 改变了处理biblatex
方式,实际上抵消了此情况下的效果,因为现在出现得太早了。感谢 @moewe 在评论中指出了这一点。\intitlepunct
\midsentence*
\midsentence*
(为了测试,将 的副本german-dw.lbx
放在 Latex 的搜索路径中并添加\DeclareBibliographyExtras{\DeclareCapitalPunctuation{.!?}}
;大写问题便会消失。)
解决方案
(编辑:感谢@moewe 在评论中指出解决方案 (C)。)我可以设想三种解决方案;按通用性增加的顺序,它们是:
(A)编辑/修补宏bybookauthor
,使 bibstringidem
永远不会大写(为此,biblatex 提供了命令\bibncpstring
:“类似于\bibstring
但术语永远不会大写。”,§4.8)。
\usepackage{xpatch}
\xpatchbibmacro{bybookauthor}
{\bibstring[\mkidem]}
{\bibncpstring[\mkidem]}{}{}
(B)编辑命令\intitlepunct
以恢复所需的情况,即\midsentence
。
\renewcommand*{\intitlepunct}{\addcolon\midsentence\space}
(B) 相对于 (A) 的优势在于它的通用性:它适用于各种情况,而不仅仅是inbook
出版物。
(C)恢复 biblatex 的标准标点符号规则并禁用全部和任何自动大写:
。
\DefineBibliographyExtras{german}{\DeclareCapitalPunctuation{.!?}}
由于其适用范围广泛,此解决方案可能会产生意想不到的后果。如果这是您想要的结果,请注意,您有责任在需要时应用大写字母(根据 Duden)。
在此 MWE 中,取消注释三种解决方案中的任意一种即可获得所需的结果。
\begin{filecontents}[overwrite]{literatur.bib}
@inbook{RPR,
author = {Hegel, Georg Wilhelm Friedrich},
title = {Rechts-, Pflichten- und Religionslehre für die Unterklasse (1810ff.\isdot)},
booktitle = {Nürnberger und Heidelberger Schriften 1808-1817},
bookauthor = {Hegel, Georg Wilhelm Friedrich}}
\end{filecontents}
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[style=authortitle-dw]{biblatex}
\addbibresource{literatur.bib}
%% Solution (A)
%\usepackage{xpatch} % required for \xpatchbibmacro
%\xpatchbibmacro{bybookauthor}
% {\bibstring[\mkidem]}
% {\bibncpstring[\mkidem]}{}{}
%% Solution (B)
%\renewcommand*{\intitlepunct}{\addcolon\midsentence\space}
%% Solution (C)
%\DefineBibliographyExtras{german}{\DeclareCapitalPunctuation{.!?}}
\begin{document}
\cite{RPR}
\printbibliography
\end{document}