Шрифт TypeWriter не имеет эффекта с пакетом polyglossia

Шрифт TypeWriter не имеет эффекта с пакетом polyglossia

Используя движок XeLaTeX, MWE1 отлично работает с пакетом fontspec и ucharclasses. Но когда я меняю fontspec на polyglossia (MWE2), эффекта шрифта TypeWriter нет. Более того, первое предложение английского текста не набрано шрифтом Times New Roman. Есть ли какое-нибудь исправление?

МВЭ1

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

МВЭ2

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

Шрифт кхмерской ОСhttp://www.khmeros.info/en/fonts

решение1

Я получаю неправильный вывод в обоих случаях. По крайней мере, в английском тексте они больше связаны с семейством шрифтов, поэтому вам нужно немного более сложное изменение шрифта. Попробуйте это вместо этого:

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

Если у вас есть специальный шрифт tt для кхмерского языка, вы можете добавить тест для текущего семейства.

введите описание изображения здесь

Связанный контент