TypeWriter-Schriftarten haben mit dem Polyglossia-Paket keinen Effekt

TypeWriter-Schriftarten haben mit dem Polyglossia-Paket keinen Effekt

Mit der XeLaTeX-Engine funktioniert MWE1 mit dem Fontspec- und Ucharclasses-Paket einwandfrei. Aber wenn ich Fontspec in Polyglossia (MWE2) ändere, gibt es keinen TypeWriter-Schrifteffekt. Außerdem ist der erste Satz des englischen Textes nicht in der Schriftart Times New Roman. Gibt es eine Lösung?

MWE1

\documentclass[11pt,a4paper]{article}
\usepackage{fontspec}
\newfontfamily\khmerfont[Script=Khmer,Scale=0.9]{Khmer OS}
\newfontfamily\khmerfonttt[Script=Khmer,Scale=0.9]{Khmer OS}
\newfontfamily\englishfont{Computer Modern Roman}
\usepackage{ucharclasses}
\setTransitionTo{Khmer}{\khmerfont}
\setTransitionFrom{Khmer}{\englishfont}
\usepackage{fancyvrb}
\begin{document}
\noindent What is wrong? តើមានអ្វីប្លែក? What is wrong? តើមានអ្វីប្លែក?
\begin{Verbatim}
What is wrong? តើមានអ្វីប្លែក? What is wrong? តើមានអ្វីប្លែក?
\end{Verbatim}
\end{document}

MWE2

\documentclass[11pt,a4paper]{article}
\usepackage{polyglossia}
\newfontfamily\khmerfont[Script=Khmer,Scale=0.9]{Khmer OS}
\newfontfamily\khmerfonttt[Script=Khmer,Scale=0.9]{Khmer OS}
\newfontfamily\englishfont{Computer Modern Roman}
\setdefaultlanguage[numerals=khmer]{khmer}
\setotherlanguage{english}
\usepackage{ucharclasses}
\setTransitionTo{Khmer}{\khmerfont}
\setTransitionFrom{Khmer}{\englishfont}
\usepackage{fancyvrb}
\begin{document}
\noindent What is wrong? តើមានអ្វីប្លែក? What is wrong? តើមានអ្វីប្លែក?
\begin{Verbatim}
What is wrong? តើមានអ្វីប្លែក? What is wrong? តើមានអ្វីប្លែក?
\end{Verbatim}
\end{document}

Khmer OS-Schriftarthttp://www.khmeros.info/en/fonts

Antwort1

Ich erhalte in beiden Fällen eine falsche Ausgabe. Zumindest im englischen Text sind mehr Schriftfamilien beteiligt, sodass Sie eine etwas anspruchsvollere Schriftartänderung benötigen. Versuchen Sie stattdessen Folgendes:

\documentclass[11pt,a4paper]{article}
\usepackage{fontspec}
\usepackage{polyglossia}
\newfontfamily\khmerfont[Script=Khmer,Scale=0.9]{Khmer OS}
\setdefaultlanguage[numerals=khmer]{khmer}
\setotherlanguage{english}
\usepackage{ucharclasses}
\makeatletter
\setTransitionTo{Khmer}{%
 \global\let\orif@family\f@family
 \khmerfont}
\setTransitionFrom{Khmer}{%
 \fontfamily{\orif@family}\selectfont}
 \makeatother
\usepackage{fancyvrb}
\begin{document}
\noindent What is wrong? តើមានអ្វីប្លែក ? What is wrong? តើមានអ្វីប្លែក?
\begin{Verbatim}
What is wrong? តើមានអ្វីប្លែក? What is wrong? តើមានអ្វីប្លែក?
\end{Verbatim}
\end{document}

Wenn Sie eine dedizierte TT-Schriftart für Khmer haben, können Sie einige Tests für die aktuelle Familie hinzufügen.

Bildbeschreibung hier eingeben

verwandte Informationen