El hebreo en ModernCV falla con TeXLive 2019 XeLaTeX

El hebreo en ModernCV falla con TeXLive 2019 XeLaTeX

El siguiente MWE falla cuando se ejecuta con TexLive 2019. Funciona con TeXLive 2017 y 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}

Usando el motor al dorso (si eso es de alguna importancia). El ejemplo aquí es con DejaVu, pero el problema también surge (en 2019) al usar David CLM, Simple CLMo Miriam Mono CLM(funciona en 2018).

El error que recibo es (no sé cuánto significa esto en 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.
 ...       

Respuesta1

Parece que encontré el problema: no es un error, es una característica. Polyglossia en TeXLive 2019 simplemente funciona mejor.

La clase de documento tiene una opción sans, pero no se define ninguna fuente sans para hebreo. Reemplazar \newfontfamily\hebrewfont{}con \newfontfamily\hebrewfontsf{}resolvió el "problema".

En TeXLive 2017 (y 2018), la documentclassdefinición solo se aplicaba a la fuente predeterminada (inglés). Si \newfontfamily\hebrewfont{}se definió y luego \texthebrew{}se usó el comando, entonces se usaría la fuente definida por defecto.

En TexLive 2019 desde que se declaró la opción sans, cuando \texthebrew{}se llamó poliglosia buscó la fuente de la familia sans. Porque, como se define en documentclass, el documento debe estar en formato sans a menos que se defina lo contrario.

El siguiente MWE demuestra la diferencia.

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

El resultado con TexLive 2017 es el siguiente:

ingrese la descripción de la imagen aquí

El resultado con TexLive 2019 es este:

ingrese la descripción de la imagen aquí

El MWE en la pregunta no tenía definida una fuente sans, por lo que recibí un error.

información relacionada