![オートパンク設定を無視した polyglossia + biblatex + csquotes の組み合わせ](https://rvso.com/image/399808/%E3%82%AA%E3%83%BC%E3%83%88%E3%83%91%E3%83%B3%E3%82%AF%E8%A8%AD%E5%AE%9A%E3%82%92%E7%84%A1%E8%A6%96%E3%81%97%E3%81%9F%20polyglossia%20%2B%20biblatex%20%2B%20csquotes%20%E3%81%AE%E7%B5%84%E3%81%BF%E5%90%88%E3%82%8F%E3%81%9B.png)
使用時にパッケージのオプションbiblatex
を尊重するのに問題があります。参照を次のように印刷したいです。autopunct
csquotes
polyglossia
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
理由です。version
biblatex
polyglossia
https://github.com/plk/biblatex/issues/845。
biblatex
引用符の完全な米国式句読法は、 が米国英語 ( american
)を検出する場合にのみ有効になりenglish
、それ以外は米国英語と同一である一般英語 ( ) では有効になりません。 ではpolyglossia
のみが検出されるenglish
ため、米国の句読法は有効になりません。(明確にするために: 参考文献で によって生成された引用符の周りの句読点の移動は、とそのコマンドbiblatex
によってのみ制御され、. 'オプションはこれに影響を与えません。)biblatex
\uspunctuation
\stdpunctuation
csquotes
autopunct
次の行は、プレーンテキストでも米国の引用符と句読点の規則を有効にします。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}
関連する問題については、Biblatex-Chicago と米国以外の引用スタイル?。Biblatex と Polyglossia によるローカライズされた日付、\DeclareLanguageMappingBiblatex におけるサフィックス、継承、多言語化そしてPolyglossia の言語バリアントを Biblatex の書誌で動作させるにはどうすればよいですか?biblatex
と間の互換性の問題に対処しますpolyglossia
。
しばらく前なら、可能であればpolyglossia
を放棄することを断固として勧めていたでしょう。 は(再び)活発に開発されており、大部分は休眠状態にあるように思われるからです。 実際には、ほとんどの(西)ヨーロッパ言語と同等(またはそれ以上)に機能しますが、が伝統的に強力だった分野(ヘブライ語、アラビア語など)でも進歩しています。babel
babel
polyglossia
babel
polyglossia
babel
polyglossia
2019 年の LuaLaTeX では Polyglossia と Babel のどちらを選ぶべきかごく最近、polyglossia
GitHub ページなので、プロジェクトは再び勢いを増しているのかもしれません。(余談ですが、2 つのプロジェクトが同様の目的で個別に開発され続けるのではなく、何らかの形で統合された方が LaTeX コミュニティにとって有益だと思います。開発の浮き沈みは、どちらのパッケージを採用すべきか人々を混乱させるだけです。)