我使用它biblatex-chicago
作为我的参考系统,因为它在历史相关领域相当常见,并且它具有我需要的所有功能(注释样式而不是作者日期、速记等)。
然而,一个不便之处是标点符号和引号的美式格式,即标点符号放在引号内,而不是根据上下文放在引号内或引号外,这是欧洲的惯例和我的偏好。显然,作为美国风格,它遵循美国偏好是完全合理的,如果我在追逐幻想,请务必告诉我 :)
在阅读文档时,我发现(v. 1.0rc4 p. 52)
[i] 与其他美国引用格式一样,该手册要求将参考文献中各部分之间的逗号和句号放在引号内
但(同一段)
...
biblatex
包含真正出色的代码,可以几乎完全通用地处理这种情况,检测右引号后的标点符号并在必要时将其移入,还可以控制哪些标点符号可以打印在哪些其他标点符号之后,无论引号是否插入。此功能现已成熟,并biblatex-chicago-notes
依靠此代码将标点符号置于“美式风格”中。
文档biblatex
本身 (v. 3.7 p. 4) 参考了使用csquotes
和polyglossia
使用非美式英语进行书写。
总而言之,这表明人们可能能够覆盖这种biblatex-chicago
行为,但我没有成功做到这一点。
问题:
- 这能做到吗?如果能,怎么做?
- 如果没有,那么下一个最适合我需求的选项是什么
biblatex
(我希望我没有遗漏任何重要的东西)。
我不受出版商任何特定风格的约束,因此可以根据需要进行切换。
下面是一个 MWE,它说明了这个问题以及我未能充分解决这个问题。
\documentclass{memoir}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@inbook{Bouzon1995,
Author = {E. Bouzon},
Booksubtitle = {Mélanges von Soden},
Booktitle = {Vom alten Orient zum alten Testament},
Editor = {Manfried Dietrich and Oswald Loretz},
Hyphenation = {german},
Location = {Neukirchen},
Number = {240},
Pages = {11--30},
Publisher = {Neukirchener Verlag},
Series = {Alter Orient und altes Testament},
Shorthand = {\textsc{aoat}~240:2},
Shorthandsort = {aoat 240:2},
Shorttitle = {\emph{ṣimdat-šarrim}},
Title = {Die soziale Bedeutung des \emph{ṣimdat-šarrim}-Aktes nach den Kaufverträgen der Rim--Sin-Zeit},
Volume = {2},
Year = {1995}}
}
\end{filecontents}
\usepackage[style=british,english=british]{csquotes}
\usepackage{polyglossia}
\setdefaultlanguage[variant=british]{english}
\usepackage[annotation,backend=biber,notes]{biblatex-chicago}
\addbibresource{\jobname.bib}
\begin{document}
\mainmatter
Let's have a full citation from Bouzon.\autocite[some ref]{Bouzon1995}
\backmatter
\printbibliography
\end{document}
答案1
您正在寻找
\DefineBibliographyExtras{english}{\stdpunctuation}
biblatex-chicago
english
将和都映射american
到cms-american.lbx
。cms-american.lbx
继承了 的参考书目附加内容,american.lbx
执行\DeclareBibliographyExtras{\uspunctuation}
。\uspunctuation
启用美国引用风格,其中标点符号始终放在引号内。 使用 可恢复“正常”行为\stdpunctuation
。
biblatex
british
无法检测到的语言变体polyglossia
,因此它使用english
而不是british
,就像您使用 一样babel
。在这种情况下,不需要进行任何更改,因为british
被重新映射到cms-brtish.lbx
,而 反过来又从未执行的british.lbx
位置获取其定义。\uspunctuation