polyglossia + biblatex + csquotes 的组合忽略自动标点设置

polyglossia + biblatex + csquotes 的组合忽略自动标点设置

我在使用时无法尊重包的选项biblatex。我想将我的参考资料打印为autopunctcsquotespolyglossia

IN 会议记录。“作品标题。” 收录于:2019 年。

不像

IN 会议记录。“作品标题”。2019 年。

.(请注意之前的 的位置)。

在下面的 MWE 中,我使用 Babel 实现了这一点,但是不是当我使用polyglossia

\documentclass{article}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
  @inproceedings{example,
    author = {Proceedings, I. N.},
    year = {2019},
    title = {Title of the Work},
  }
\end{filecontents}

\newif\ifusepolyglossia
\usepolyglossiatrue
%\usepolyglossiafalse
\ifusepolyglossia
  \usepackage{polyglossia}
  \setdefaultlanguage[variant=usmax]{english}
\else
 \usepackage[american]{babel}
\fi
\usepackage[autopunct]{csquotes}
\usepackage[backend=biber]{biblatex}
\addbibresource{\jobname.bib}

\begin{document}
\cite{example}

\printbibliography
\end{document}

我是不是做错了什么,还是我只是遇到了其中一个包中的错误?我使用 LuaLaTeX 编译我的文档。

答案1

biblatex这是由于和polyglossia的语言接口不兼容造成的。polyglossia biblatex只能检测主要语言(english在本例中)而不能检测语言变体( )。 通常,这个问题不会被注意到,但在某些极端情况下,例如这种情况,它可能会导致一些不良影响。 这就是为什么下一个会在与 一起使用时发出警告的american原因versionbiblatexpolyglossiahttps://github.com/plk/biblatex/issues/845


biblatex仅当检测到美式英语 ( )时,才会启用完整的美式引号标点方案,american而对于通用英语 ( english) 则不会启用,通用英语与美式英语完全相同。对于 ,polyglossia我们只检测,因此未启用美国标点方案。(需要说明的是:在参考书目中english,在 产生的引号周围移动标点完全由及其命令和控制。'选项对此没有发言权。)biblatexbiblatex\uspunctuation\stdpunctuationcsquotesautopunct

以下行将启用美国引号标点规则,即使使用普通的english

\DefineBibliographyExtras{english}{\uspunctuation}

或者,你可以english使用american

\DeclareLanguageMapping{english}{american}

但请注意,文档中明确不鼓励这样做biblatex。这种方法相对于特定方法的优势\DefineBibliographyExtras{english}{\uspunctuation}在于它会自动复制全部american设置,english而不仅仅是\uspunctuation

\documentclass{article}

\newif\ifusepolyglossia
\usepolyglossiatrue
%\usepolyglossiafalse
\ifusepolyglossia
  \usepackage{polyglossia}
  \setdefaultlanguage[variant=usmax]{english}
\else
 \usepackage[american]{babel}
\fi
\usepackage[autopunct]{csquotes}
\usepackage[backend=biber]{biblatex}

\DefineBibliographyExtras{english}{\uspunctuation}

\addbibresource{biblatex-examples.bib}

\begin{document}
\cite{sigfridsson}

\printbibliography
\end{document}

Emma Sigfridsson 和 Ulf Ryde。“从电势和电势矩推导原子电荷的方法比较。”《计算化学杂志》19.4(1998 年),第 377-395 页。doi:10.1002/(SICI)1096-987X(199803)19:4<377::AID-JCC1>3.0.CO;2-P。

相关问题讨论于Biblatex-Chicago 和非美国报价风格?使用 biblatex 和 polyglossia 进行本地化日期\DeclareLanguageMappingBiblatex 中的后缀、继承和多语种我们如何让 Polyglossia 语言变体与 Biblatex 书目兼容?处理biblatex和之间的兼容性问题polyglossia


不久前,我曾毫不含糊地建议polyglossia尽可能放弃babel,因为该语言babel正在积极发展(再次),而且polyglossia在很大程度上似乎处于休眠状态。实际上,它对大多数(西方)欧洲语言babel的效果一样好(如果不是更好的话)polyglossia,而且在传统上更强大的领域(希伯来语、阿拉伯语等)babel也取得了进展。参见polyglossia2019 年 LuaLaTeX 应该使用 Polyglossia 还是 Babel?。最近,polyglossiaGitHub 页面,所以也许这个项目又重新获得了动力。(顺便说一句,我认为如果这两个项目以某种形式合并,而不是继续以类似的目标独立开发,那么 LaTeX 社区将会受益。发展的起起伏伏只会让人们对选择哪个软件包感到困惑。)

相关内容