Suppose I am writing a document in Hebrew with English as the other language, using polyglossia:
\usepackage{xcolor}
\usepackage{polyglossia}
\setdefaultlanguage{hebrew}
\setotherlanguage{english}
\newfontfamily\hebrewfont[Script=Hebrew,Color=teal]{Hadasim CLM}
\newfontfamily\hebrewfontsf[Script=Hebrew,Color=cyan]{IBM Plex Sans Hebrew}
\newfontfamily\hebrewfonttt[Script=Hebrew,Color=magenta]{Miriam CLM}
\newfontfamily\englishfont{TeX Gyre Bonum}[Script=Latin,Language=English,Color=brown]
\newfontfamily\englishfontsf{CMU Sans Serif}[Script=Latin,Language=English,Color=olive]
\newfontfamily\englishfonttt{Logix Mono}[Script=Latin,Language=English,Color=orange]
\begin{document}
טקסט רגיל
\texttt{טקסט מונו}
\textsf{סנס סריף}
\begin{english}
These letters are in brown color.
\textsf{This should be in olive color, and it isn't.}
\end{english}
\end{document}
Note: All those fonts are available from overleaf online editor, for your convenience.
Now I want to insert English language text in various faces. To insert roman font, just do
\textenglish{Your text}
or
\begin{english}
Your text
\end{english}
Now how do I insert English text in mono space and sans serif faces?
The last input line in the example should be colored in olive, according to my specification for the font. It isn't, which means that TeX is using neither CMU Sans Serif
nor IBM Plex Sans Hebrew
?
What am I missing here?