Por que o fontspec interfere nas fontes metafont?

Por que o fontspec interfere nas fontes metafont?

Preciso criar um documento usando algumas fontes. Duas ou três serão metafontfontes usadas para a maior parte do documento em um idioma baseado em latim, e então eu preciso usar outra fonte para um idioma do sudeste asiático (provavelmente uma fonte TrueType ou similar, pois não consigo encontrar nenhuma fonte baseada em TeX fontes que funcionam com idiomas do Sudeste Asiático). Pelo que entendi, posso combinar fontes facilmente para idiomas baseados em latim:

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

me dá o efeito desejado:

insira a descrição da imagem aqui

mas assim que adiciono o fontspec, que é exigido pelo polyglossia, a fonte Zapf Chancery( pzc) não funciona mais:

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

produz:

insira a descrição da imagem aqui

Existe alguma maneira de evitar esse problema? Para ser claro, eupensarDevo usar polyglossiaos idiomas do sudeste asiático edeveuse várias metafontfontes também.

Responder

Como apontado porUlrike Fischer, e ainda elucidado poregrégia, \fontencodingprecisa ser especificado ao usar fontes metafont em fontspecporque o último espera EU1enquanto o primeiro precisa T1(estou resumindo pelo que entendi sobre fontencoding, o que não é muito).

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

produz a saída correta:

insira a descrição da imagem aqui

Responder1

Muitas vezes você consegue encontrar substitutos OpenType/TrueType para as fontes que você precisa e este é o caso do Zapf Chancery: um clone está disponível como TeX Gyre Chorus. Mas também fontes TeX/Metafont nativas podem ser usadas: segue um exemplo com a fonte 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}

O que \textdurm{ABCDE}significa é, essencialmente,

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

and \fontencoding{OT1}(ou \fontencoding{T1}) é o que estava faltando, porque a codificação padrão com XeLaTeX and fontspecé EU1.

insira a descrição da imagem aqui

informação relacionada