Polyglossia + biblatex + csquotes 的組合忽略 autopunct 設置

Polyglossia + biblatex + csquotes 的組合忽略 autopunct 設置

使用時我無法尊重軟體包的biblatex選項。我想將我的參考文獻打印為autopunctcsquotespolyglossia

在訴訟中。 “作品的標題。”時間:2019 年。

不作為

在訴訟中。 「作品名稱」。時間: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的語言介面之間不相容的結果。 Withpolyglossia biblatex只能偵測主要語言(english在本例中),而無法偵測語言變體 ( american)。通常這個問題會被忽視,但在像這樣的某些邊緣情況下,它可能會導致一些不必要的影響。這就是為什麼 next versionof再次biblatex使用時會發出警告的原因polyglossiahttps://github.com/plk/biblatex/issues/845


biblatex只有在偵測到美式英語 ( american) 而不是通用英語 ( )時,才會啟用完整的美式引文標點方案english,否則與美式英語相同。由於polyglossia我們只偵測過english,因此未啟用美國標點符號方案。 (需要明確的是:biblatex參考書目中產生的標點符號在引號周圍的移動完全由其biblatex命令\uspunctuation\stdpunctuation. csquotes'autopunct選項控制。)

以下行將啟用美國引號標點規則,即使是簡單的english

\DefineBibliographyExtras{english}{\uspunctuation}

或者,您可以映射englishamerican

\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}

艾瑪·西格弗里德森和烏爾夫·賴德。 “從靜電勢和力矩導出原子電荷的方法比較。”參見:《計算化學期刊》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它(再次)正在積極開發,並且在很大程度上似乎處於休眠狀態。實際上,對於大多數(西)歐洲語言來說,它的效果和(如果不是更好的話)一樣好,而且在以下領域也取得了進展:babelbabelpolyglossiababelpolyglossiababelpolyglossia(希伯來語、阿拉伯語……)也取得了進展。看2019 年 LuaLaTeX 在 Polyglossia 和 Babel 之間做選擇。最近,在這方面有了一些進展polyglossiaGitHub 頁面,所以也許該項目再次獲得動力。 (順便說一句,我認為如果這兩個項目以某種形式合併,而不是繼續以類似的目標獨立開發,那麼 LaTeX 社區將會受益。開發的起起落落只會讓人們困惑於該選擇哪個包.)

相關內容