保留 Latin Modern 作为数学等式中使用的字体

保留 Latin Modern 作为数学等式中使用的字体

在希伯来语文档中,我更改了字体,如下面的 MWE 所示。

问题是,当我在里面输入一些文本时\text{…},用于打印它的字体不是用于数学的字体。

我如何解决它?

我尝试了no-mathfontspec,但没有帮助。

现在的输出:

图片 01

而我希望将“sec”打印为“拉丁现代数学”:

图片 02

梅威瑟:

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

Frank Ruehl CLM + Schola 样本

这使用来自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 示例

(还有 [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}

Frank Ruhl Libre + 拉丁现代样本

在哪里可以下载希伯来字体来自 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}

糟糕的字体样本,但 \emph 可以正常工作。

我关闭了reset-math-version包选项,因为重新定义\emph表明您正在使用\boldmath并希望它传播到您的单位。您可能希望\setboldmathrm使其正常工作。

在某些情况下,您还可以使用该选项减少间距,或者使用该选项tight-spacing以外的字体。\mathrmunit-font-command=

答案2

\newfontfamily\lmmath{Latin Modern Math}
\NewCommandCopy{\oldtext}{\text}
\RenewDocumentCommand{\text}{m}{\oldtext{\lmmath #1}}

将这些添加到序言中。 在此处输入图片描述

相关内容