ModernCV のヘブライ語が TeXLive 2019 XeLaTeX で失敗する

ModernCV のヘブライ語が TeXLive 2019 XeLaTeX で失敗する

次の MWE は、TexLive 2019 で実行すると失敗します。TeXLive 2017 および 2018 では動作します。

\documentclass[english,sans]{moderncv}

\moderncvstyle{banking}
\usepackage[unicode]{hyperref}
\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage{hebrew}
\firstname{J}
\lastname{D}
\title{T}

\newfontfamily\englishfont[Language=English,Script=Latin]{Latin Modern Sans}
\newfontfamily\hebrewfont[Language=Hebrew,Script=Hebrew]{DejaVu Sans}

\begin{document}

\makecvtitle{}{}

Lorem ipsum and such

\texthebrew{לורם איפסום}
\end{document}

Overleaf エンジンを使用する (それが重要である場合)。ここでの例は DejaVu を使用していますが、 (2019 年) David CLM、、Simple CLMまたはMiriam Mono CLM(2018 年では動作します) を使用した場合にも問題が発生します。

私が受け取ったエラーは(Latexでこれがどの程度意味があるかは分かりませんが)

! Package polyglossia Error: The current latin font DejaVuSans(0) does not cont
ain the "Hebrew" script!
(polyglossia)                Please define \hebrewfont with \newfontfamily comm
and.

See the polyglossia package documentation for explanation.
Type  H <return>  for immediate help.
 ...       

答え1

問題を見つけたようです。これはバグではなく、機能です。TeXLive 2019 の Polyglossia は単純に動作が優れています。

ドキュメントクラスには sans オプションがありますが、ヘブライ語には sans フォントが定義されていません。\newfontfamily\hebrewfont{}を に置き換えると、 \newfontfamily\hebrewfontsf{}「問題」は解決しました。

TeXLive 2017 (および 2018) では、documentclass定義はデフォルト (英語) フォントにのみ適用されました。 が\newfontfamily\hebrewfont{}定義されてから\texthebrew{}コマンドが使用されると、デフォルトで定義されたフォントが実際に使用されます。

TexLive 2019 では、sans オプションが宣言されて以来、\texthebrew{}が呼び出されると、polyglossia は sans ファミリー フォントを探しました。 で定義されているように、documentclass特に定義されていない限り、ドキュメントは sans でなければならないためです。

次の MWE はその違いを示しています。

\documentclass[english,sans]{article} %<--- The document default is defined as sans

\usepackage[unicode]{hyperref}
\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage{hebrew}

\newfontfamily\hebrewfont[Language=Hebrew,Script=Hebrew]{David CLM} %<--- notice David
\newfontfamily\hebrewfontsf[Language=Hebrew,Script=Hebrew]{DejaVu Sans}%<--- notice Sans


\begin{document}

Lorem ipsum and such

\textsf{\texthebrew{עברית בסנס}}

\texthebrew{עברית רגיל}
\end{document}

TexLive 2017 による出力は次のとおりです。

ここに画像の説明を入力してください

TexLive 2019 の出力は次のようになります。

ここに画像の説明を入力してください

質問の MWE には sans フォントが定義されていなかったため、エラーが発生しました。

関連情報