\texttt
在希伯来语的片段中,与 polyglossia 包一起使用时,即使实际要设置的文本是拉丁文,也无法按预期工作。我尝试阅读fontspec
文档,但被材料的数量所淹没,我尝试的修复方法不起作用:
\documentclass{article} % Compile with xelatex
\usepackage{polyglossia}
\setmainlanguage{hebrew}
\setotherlanguage{english}
\newfontfamily\hebrewfont[Script=Hebrew]{David CLM}% or whatever
\begin{document}
\setLTR
The following should be mono-spaced, but isn't: \texttt{This should be mono-spaced.}
\end{document}
根据以下建议,我也尝试了以下方法,但这没有帮助:
\documentclass{article} % Compile with xelatex
\usepackage{polyglossia}
\setmainfont[Script=Hebrew]{Ezra SIL}%
\setmonofont[Script=Hebrew]{FreeMono}%
\setmainlanguage{hebrew} % Document main language is Hebrew
\setotherlanguage{english} % But it uses English every so often
\begin{document}
\setLTR\textenglish{The following should be mono-spaced, but isn't:
\texttt{This should be mono-spaced.}
}
\end{document}
答案1
好吧,\texttt
切换到 tt-家庭。这是默认的拉丁现代字体系列的 tt 字体,不包含希伯来语文字。因此您无法在希伯来语环境中使用它。
您应该定义一个“tthebrewfamily”:
\newfontfamily\tthebrewfamily[Script=Hebrew]{...}%
\DeclareTextFontCommand{\texttthebrew}{\tthebrewfamily}
或者,您使用\setmainfont
,setmonofont
将标准字体设置为包含并激活希伯来语的字体。在这种情况下,您可能必须\ttfamilylatin
在英语部分使用 etc(并且可能必须定义此字体)。
补充:我确实花了一些时间才找到两种具有 opentype 功能“Script hebrew”的不同字体。有了它,下面的操作就可以无错误地运行:
\documentclass{article} % Compile with xelatex
\usepackage{polyglossia}
\setmainfont[Script=Hebrew]{Ezra SIL}%
\setmonofont[Script=Hebrew]{DejaVu Sans}%
\setmainlanguage{hebrew}
\setotherlanguage{english}
\begin{document}
\setLTR
This should be \texttt{mono-spaced}\ldots
\end{document}
但是当我浏览字体时,我发现很多字体都有希伯来语字符,但只有很少的字体是希伯来文。所以我想知道 polyglossia (gloss-hebrew) 要求它是否是个好主意。输入希伯来语是否需要它?