在希伯来语文档中,我更改了字体,如下面的 MWE 所示。
问题是,当我在里面输入一些文本时\text{…}
,用于打印它的字体不是用于数学的字体。
我如何解决它?
我尝试了no-math
fontspec,但没有帮助。
现在的输出:
而我希望将“sec”打印为“拉丁现代数学”:
梅威瑟:
\documentclass{article}
\usepackage{amsmath}
\usepackage[no-math]{fontspec}
\usepackage{polyglossia}
\newfontfamily\hebrewfont{Arial}[Script=Hebrew]
\newfontfamily\englishfont{TeX Gyre Bonum}[Script=Latin, Language=English]
\setmathrm{Latin Modern Math}
\setdefaultlanguage{hebrew}
\setotherlanguage{english}
\DeclareTextFontCommand{\emph}{\boldmath\bfseries}
\begin{document}
אבג דהו $\Delta t=1\ \text{sec}$ זחט יכל.
\end{document}
答案1
最简单的解决方案是使用\mathrm
而不是 \text。这将默认为主文档字体,但您可以使用 进行更改\setmathrm{Latin Modern Roman}
。还可~
用于不间断空格。
\documentclass{article}
\tracinglostchars=3 % Make it an error to use the wrong font for the current language.
\usepackage{amsmath}
\usepackage{polyglossia}
\defaultfontfeatures{ Scale=MatchLowercase, Ligatures=TeX }
\newfontfamily\hebrewfont{Arial}[Script=Hebrew]
\newfontfamily\englishfont{TeX Gyre Bonum}[Script=Latin, Language=English]
\setmathrm{Latin Modern Roman}
\setdefaultlanguage{hebrew}
\setotherlanguage{english}
\DeclareTextFontCommand{\emph}{\boldmath\bfseries}
\begin{document}
אבג דהו $\Delta t=1\mathrm{~sec}$ זחט יכל.
\end{document}
实际上,您可能希望为此创建命令,例如\sec
或\unit{s}
,但那时您可能会认真考虑siunitx
。稍后您会非常感激自己使用语义标记,它允许您在一个地方更改单位或向量的格式。否则,当您以后必须更改它时,寻找所有\mathrm
格式化单位的命令(并且只查找那些格式化单位的命令)将是一个很大的难题。
我擅自添加了一个命令,以阻止您尝试使用不支持的字体显示希伯来语,并自动将字体重新缩放到相同的 x 高度。
附注
顺便说一句,我按照要求回答了这个问题,但这不是我会选择的字体。您可能会得到一些看起来更和谐的传统字体:
\documentclass{article}
\tracinglostchars=3 % Make it an error to use the wrong font for the current language.
\usepackage{unicode-math}
\usepackage{polyglossia}
\defaultfontfeatures{ Scale=MatchUppercase, Ligatures=TeX }
% The Culmus fonts are available at https://culmus.sourceforge.io/download.html
\newfontfamily\hebrewfont{Frank Ruehl CLM}[Script=Hebrew]
\newfontfamily\englishfont{TeX Gyre Schola}
\setmathfont{TeX Gyre Schola Math}
\setmathrm{TeX Gyre Schola}
\setdefaultlanguage{hebrew}
\setotherlanguage{english}
\DeclareTextFontCommand{\emph}{\boldmath\bfseries}
\begin{document}
אבג דהו $\Delta t=1\mathrm{~sec}$ זחט יכל.
\end{document}
这使用来自Culmus 项目。
或者,如果您想继续使用 Arial 并使用与其更匹配的数学字体:
\documentclass{article}
\tracinglostchars=3 % Make it an error to use the wrong font for the current language.
\usepackage{unicode-math}
\usepackage{polyglossia}
\defaultfontfeatures{ Scale=MatchLowercase, Ligatures=TeX }
\newfontfamily\hebrewfont{Arial}[Script=Hebrew]
\newfontfamily\englishfont{Fira Sans}
\setmathfont{Fira Math}
\setmathrm{fira Sans}
\setdefaultlanguage{hebrew}
\setotherlanguage{english}
\DeclareTextFontCommand{\emph}{\boldmath\bfseries}
\begin{document}
אבג דהו $\increment t=1\mathrm{~sec}$ זחט יכל.
\end{document}
(还有 [Fira 的一个分支,菲拉戈,支持希伯来语。)
或者,Computer Modern 的一个好的配套字体可能是:
\documentclass{article}
\tracinglostchars=3 % Make it an error to use the wrong font for the current language.
\usepackage{fontspec}
\usepackage{polyglossia}
\defaultfontfeatures{ Scale=MatchLowercase, Ligatures=TeX }
% Frank Ruhl Libre is available from:
% https://opensiddur.org/wp-content/uploads/fonts/display-font-charmap.php?fnt=FrankRuhlLibre
\defaultfontfeatures[FrankRuhlLibre]{ UprightFont = *-Light ,
BoldFont = *-Medium ,
Extension = .ttf ,
Scale = 0.85 }
\newfontfamily\hebrewfont{FrankRuhlLibre}[Script=Hebrew, Language=Hebrew]
\newfontfamily\englishfont{Latin Modern Roman}
\setmathrm{Latin Modern Roman}
\setdefaultlanguage{hebrew}
\setotherlanguage{english}
\DeclareTextFontCommand{\emph}{\boldmath\bfseries}
\begin{document}
\emph{ אבג דהו $\Delta t=1\mathrm{~sec}$ זחט יכל}
אבג דהו $ \Delta t=1\mathrm{~sec}$ זחט יכל.
\end{document}
在哪里可以下载希伯来字体来自 OpenSiddur。
顺便提一下历史,哈伊姆·塞利格·斯洛尼姆斯基(Hayyim Selig Slonimski)是十九世纪蒙面法师的领袖,也是最早用希伯来语出版科学著作的人之一,他在华沙出版的书籍中使用了德鲁林。 这在今天会是一个不寻常的选择!(但如果你愿意的话,Culmus 的 Taamey Ashkenaz 字体和 Times 的字体非常接近。)
后记
根据要求,使用以下示例siunitx
:
\documentclass{article}
\tracinglostchars=3 % Make it an error to use the wrong font for the current language.
\usepackage{amsmath}
\usepackage{polyglossia}
\usepackage[mode=math,
propagate-math-font=true,
reset-math-version=false
]{siunitx}
\defaultfontfeatures{ Scale=MatchLowercase, Ligatures=TeX }
\newfontfamily\hebrewfont{Arial}[Script=Hebrew]
\newfontfamily\englishfont{TeX Gyre Bonum}
\setmathrm{Latin Modern Roman}
\setboldmathrm{LM Roman 10 Bold}
\setdefaultlanguage{hebrew}
\setotherlanguage{english}
\DeclareTextFontCommand{\emph}{\boldmath\bfseries}
\begin{document}
\emph{ אבג דהו $\Delta t=\qty{1}{\second}$ זחט יכל} \\
אבג דהו
\( \Delta t=\qty{1}{\second} \)
זחט יכל.
\end{document}
我关闭了reset-math-version
包选项,因为重新定义\emph
表明您正在使用\boldmath
并希望它传播到您的单位。您可能希望\setboldmathrm
使其正常工作。
在某些情况下,您还可以使用该选项减少间距,或者使用该选项tight-spacing
以外的字体。\mathrm
unit-font-command=