オートパンク設定を無視した polyglossia + biblatex + csquotes の組み合わせ

オートパンク設定を無視した polyglossia + biblatex + csquotes の組み合わせ

使用時にパッケージのオプションbiblatexを尊重するのに問題があります。参照を次のように印刷したいです。autopunctcsquotespolyglossia

IN Proceedings。「作品のタイトル。」In:2019年。

ではない

IN Proceedings。「作品のタイトル」。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ため、米国の句読法は有効になりません。(明確にするために: 参考文献で によって生成された引用符の周りの句読点の移動は、とそのコマンドbiblatexによってのみ制御され、. 'オプションはこれに影響を与えません。)biblatex\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。「静電ポテンシャルとモーメントから原子電荷を導出する方法の比較。」Journal of Computational Chemistry 19.4 (1998)、pp. 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を放棄することを断固として勧めていたでしょう。 は(再び)活発に開発されており、大部分は休眠状態にあるように思われるからです。 実際には、ほとんどの(西)ヨーロッパ言語と同等(またはそれ以上)に機能しますが、が伝統的に強力だった分野(ヘブライ語、アラビア語など)でも進歩しています。babelbabelpolyglossiababelpolyglossiababelpolyglossia2019 年の LuaLaTeX では Polyglossia と Babel のどちらを選ぶべきかごく最近、polyglossiaGitHub ページなので、プロジェクトは再び勢いを増しているのかもしれません。(余談ですが、2 つのプロジェクトが同様の目的で個別に開発され続けるのではなく、何らかの形で統合された方が LaTeX コミュニティにとって有益だと思います。開発の浮き沈みは、どちらのパッケージを採用すべきか人々を混乱させるだけです。)

関連情報