XeLatexとpolyglossiaの間隔が悪い
Xelatexとfontspec
レンダリング用のパッケージを使用する多言語ラテックスドキュメントがあります。私のレンダリングされたドキュメントは、特に英語で不十分な間隔を示しています。多くの場合、句読点の後の空白は広すぎます。私はこれまでこの問題を経験したことがなかったので、私が怒ったのか、またはいくつかのパッケージの更新で何かが変更されたのかどうかを自問しています。

ハイフネーションが行われていないことは非常に印象的です。しかし、これは単なる偶然かもしれません。ドキュメントの後半でハイフネーションのケースがありますが、多くはありません。ドイツ語での私の結果はより良いです。誰かがここで私を助けてくれませんか。
コード例は次のとおりです。
\documentclass[a4paper,10pt,twoside]{memoir}
\usepackage{polyglossia}
\usepackage{xltxtra}
\usepackage{fontspec}
\setmainlanguage[spelling=old,babelshorthands=true,script=latin]{german}
\setotherlanguage[variant=polytonic]{greek}{}
\setotherlanguages{english, french, italian, spanish, latin, portuguese}
\usepackage{blindtext}
\begin{document}
\blinddocument
\begin{english}
\blinddocument
\end{english}
\end{document}
回答
デビッド・カーライルはコメントで述べている、これは予想される動作です:デフォルトのTeXでは単語間よりも文末の句読点の後に少し大きめのスペースを残します。この動作は、TeXコマンドで認識され\nonfrenchspacing
ます。
これは英語のタイポグラフィでは一般的です(または少なくとも完全に珍しいことではありません)が(私は収集しますが、ピリオドなどの後に大きなスペースを残すのが良いかどうかについての議論があります)、通常は他の言語では行われません言語。このような状況では、TeXにコマンド\frenchspacing
があります。これにより、句読点の後のスペースが単語間のスペースと同じになります。
それで、あなたが\frenchspacing
それを見れば、あなたはこの振る舞いに対抗すると言うでしょう。
ローカライズパッケージが似た場合babel
とpolyglossia
関与している、これらのパッケージは変更される可能性があり\frenchspacing
/\nonfrenchspacing
言語は、国家規則に従って切り替えられた場合の状態を。
の最新バージョンでpolyglossia
は、常に完全に無効に\nonfrenchspacing
して強制する方法があります。常に発行するように設定されて\frenchspacing
いる内部マクロ\polyglossia@lang@frenchspacing:n
を再定義するだけです。\(non)frenchspacing
\frenchspacing
\documentclass[a4paper,10pt,twoside]{memoir}
\usepackage{polyglossia}
\usepackage{fontspec}
\makeatletter
\ExplSyntaxOn
\cs_set_nopar:Nn{\polyglossia@lang@frenchspacing:n}{\frenchspacing}
\ExplSyntaxOff
\makeatother
\setmainlanguage[spelling=old,babelshorthands=true,script=latin]{german}
\setotherlanguage[variant=polytonic]{greek}{}
\setotherlanguages{english, french, italian, spanish, latin, portuguese}
\usepackage{blindtext}
\begin{document}
\blinddocument
\begin{english}
\blinddocument
\end{english}
\end{document}
しかし、このアプローチに代わるものがあります。たとえば、ポリグロシア:すべての言語、どこでも「\ frenchspacing」を設定する方法は?。
別の非常に急進的な代替案(おそらく物事を壊す可能性がある)は
\def\nonfrenchspacing{\frenchspacing}
\AtBeginDocument{\frenchspacing}