我尝试从 OpenType 字体文件中加载一个符号并在数学环境中使用它。但是,在我看来,我只能在“普通”文本中使用该符号,而不能在数学模式下使用该符号。这是一个最简单的例子:
\documentclass{article}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmainfont{Latin Modern Roman}
\setmathfont{Latin Modern Math}
\newfontfamily\foo{Untitled1.otf}
\newcommand{\foobar}{\foo\symbol{1}}
\begin{document}
\foobar
\[x \foobar y\]
\end{document}
在普通文本中会出现符号,但在数学模式下则不会出现。我是否必须使用一些特殊命令来加载数学环境的符号?
或者反过来。我如何排版一个公式,其中公式的第一部分用字体 A 输入,而第二部分用字体 B 输入(其中 A != B)?
更新
这个问题针对的是以下问题。我创建了一个新符号,但 Unicode 中尚不清楚它是否可用。因此,我创建了一个新符号并将其保存在文件 Untitled1.otf 中。现在我想将此符号加载到我的文档中并在数学公式中使用它。由于该符号在 Unicode 中尚不清楚,因此我无法使用“标准”符号来引用它。因此,我想使用命令并通过 OTF 文件的索引引用该符号。
答案1
仅对于一个符号,可能不值得进行数学设置,只需将其定义为
\newcommand{\foobar}{\text{\foo\symbol{1}}}
因此它将使用文本字体设置在数学模式下工作。(如果您需要它在下标中变小,请加载amsmath
将定义的字体\text
来执行此操作)。
答案2
在此示例中,第一个 1 取自拉丁现代数学,所有其他的 1 取自 XITS 数学:
\documentclass{article}
\usepackage{unicode-math}
\setmainfont{Latin Modern Roman}
\setmathfont{XITS Math}
\begin{document}
{\setmathfont[range="0031]{Latin Modern Math}
\[x 1 y\] }
\[x 1 y\]
\end{document}
另一个例子:
\documentclass{article}
\usepackage{unicode-math}
\setmainfont{Latin Modern Roman}
\setmathfont[version=XITS]{XITS Math}
\setmathfont[version=LMM]{Latin Modern Math}
\begin{document}
\mathversion{XITS}
\[x \mbox{\mathversion{LMM}$1$} y\]
\[x 1 y\]
\end{document}