¿Por qué fontspec interfiere con las fuentes metafont?

¿Por qué fontspec interfiere con las fuentes metafont?

Necesito crear un documento usando algunas fuentes. Se utilizarán dos o tres metafontfuentes para la mayor parte del documento en un idioma latino, y luego necesito usar otra fuente para un idioma del sudeste asiático (probablemente una fuente TrueType o similar, ya que no puedo encontrar ninguna basada en TeX). fuentes que funcionan con idiomas del sudeste asiático). Según tengo entendido, puedo combinar fuentes con bastante facilidad para idiomas latinos:

\documentclass{book}
\usepackage[T1]{fontenc}
\begin{document}
Regular {\fontfamily{pzc}\selectfont and special} fonts.
\end{document}

me da el efecto deseado:

ingrese la descripción de la imagen aquí

pero tan pronto como agrego fontspec, que es requerido por polyglossia, la fuente Zapf Chancery ( pzc) ya no funciona:

\documentclass{book}
\usepackage[T1]{fontenc}
\usepackage{fontspec}
\usepackage{polyglossia}
\newfontfamily\thaifont{Norasi}
\setdefaultlanguage{english}
\setotherlanguage{thai}
\begin{document}
English regular {\fontfamily{pzc}\selectfont and special} fonts.\\
\begin{thai}ตัวพิมพ์ภาษาไทย\end{thai}
\end{document}

produce:

ingrese la descripción de la imagen aquí

¿Hay alguna manera de evitar este problema? Para ser claro, yopensarDebo utilizar polyglossialos idiomas del sudeste asiático, ydebeUtilice metafonttambién varias fuentes.

Respuesta

Como lo señalaUlrike Fischer, y aclarado aún más poregreg, \fontencodingdebe especificarse cuando se usan fuentes de metafuente fontspecporque este último espera EU1mientras que el primero necesita T1(estoy resumiendo por lo que entiendo fontencoding, que no es mucho).

\documentclass{book}
\usepackage[T1]{fontenc}
\usepackage{fontspec}
\usepackage{polyglossia}
\newfontfamily\thaifont{Norasi}
\setdefaultlanguage{english}
\setotherlanguage{thai}
\begin{document}
English regular {\fontencoding{T1}\fontfamily{pzc}\selectfont and special} fonts.\\
\begin{thai}ตัวพิมพ์ภาษาไทย\end{thai}
\end{document}

produce la salida correcta:

ingrese la descripción de la imagen aquí

Respuesta1

A menudo puedes encontrar sustitutos OpenType/TrueType para las fuentes que necesitas y este es el caso de Zapf Chancery: hay un clon disponible como TeX Gyre Chorus. Pero también se pueden utilizar fuentes nativas TeX/Metafont: a continuación se muestra un ejemplo con la fuente Dürer.

\documentclass{book}
\usepackage{fontspec}
\usepackage{polyglossia}

\newfontfamily\thaifont{Sathu} % I don't have Norasi
\newfontfamily\specialfont{TeX Gyre Chorus}

\setmainlanguage{english}
\setotherlanguage{thai}

\usepackage{duerer} % for a MF font

\begin{document}

English regular {\specialfont and special} fonts.\\
\begin{thai}ตัวพิมพ์ภาษาไทย\end{thai}

\textdurm{ABCDE} % duerer has only uppercase

\end{document}

Lo que \textdurm{ABCDE}hace es, esencialmente,

{\fontencoding{OT1}\fontfamily{durm}\selectfont ABCDE}

y \fontencoding{OT1}(o \fontencoding{T1}) es lo que te faltaba, porque la codificación predeterminada con XeLaTeX y fontspeces EU1.

ingrese la descripción de la imagen aquí

información relacionada