使用 \texttt 进行多语希伯来语

使用 \texttt 进行多语希伯来语

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

或者,您使用\setmainfontsetmonofont将标准字体设置为包含并激活希伯来语的字体。在这种情况下,您可能必须\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) 要求它是否是个好主意。输入希伯来语是否需要它?

相关内容