让我们以我最喜欢的符号“定义上等于”≝为例。
这是我到目前为止尝试获取此符号的短版本和长版本的方法(是的,我希望在同一个文档中同时拥有这两个版本):
\documentclass{article}
\pagestyle{empty}
\usepackage[math-style=ISO]{unicode-math}
\setmainfont[Ligatures=TeX]{TeX Gyre Termes}
\setsansfont{TeX Gyre Heros}[Scale=0.88]%%% Somewhat ok scaling.
\setmonofont{TeX Gyre Cursor}%%% No explicit turning on ligatures for the monospaced font.
\setmathfont[Ligatures=TeX]{TeX Gyre Termes Math}
\setmathfont[Ligatures=TeX,Extension=.otf,range={"2A3E},BoldFont=XITSMath-Bold]{XITSMath-Regular}%%% The fat semicolon comes from XITS.
\newcommand*{\longDefiningEquals}{\mathrel{\text{\setmathfont{latinmodern-math.otf}[Ligatures=TeX,Extension=.otf,range={"225D}]$≝$}}}%%% long equality symbol that is used to define stuff
\begin{document}
\begin{gather*}
R⨾
答案1
无需一次又一次地设置数学字体即可访问字体中的字符。
\documentclass{article}
\usepackage[math-style=ISO]{unicode-math}
\setmainfont{TeX Gyre Termes}
\setsansfont{TeX Gyre Heros}[Scale=MatchLowercase]
\setmonofont{TeX Gyre Cursor}[Scale=MatchLowercase]
\setmathfont{TeX Gyre Termes Math}
\setmathfont{XITS Math}[range={"2A3E},BoldFont=XITSMath-Bold]
\newfontface\latinmath{latinmodern-math.otf}
\newcommand*{\longDefiningEqualsB}{%
\mathrel{{\mbox{\latinmath ≝}}}}
\begin{document}
\begin{gather*}
u≝v \\
u\longDefiningEqualsB v \\
\end{gather*}
\end{document}
答案2
我看不出在同一文档中同时使用两者的理由,但肯定不是使用 的方式\setmathfont
,它确实很多事情。
相信(但不赞同)你的判断,即拥有两个不同风格的相同符号的副本,你使用的想法\text
很好,但你只需要选择一个文本字体,没有什么可以阻止您将数学字体声明为文本字体。相反的做法是有问题的:为了对数学有用,OpenType/TrueType 字体必须有特殊的表格。
适当的命令是\newfontface
。
请注意,除了等宽字体外,您几乎不需要Ligatures=TeX
,这是默认设置。加载字体时,请坚持一种选项样式。首选方式是选项后字体名称。
\documentclass{article}
\usepackage[math-style=ISO]{unicode-math}
\setmainfont{TeX Gyre Termes}
\setsansfont{TeX Gyre Heros}[Scale=0.88]
\setmonofont{TeX Gyre Cursor}
\setmathfont{TeX Gyre Termes Math}
\setmathfont{XITSMath-Regular}[
Extension=.otf,
range={"2A3E},
BoldFont=XITSMath-Bold,
]
\newfontface{\latinmodernmath}{latinmodern-math.otf}
\newcommand*{\longDefiningEquals}{\mathrel{\text{\latinmodernmath\symbol{"225D}}}}
\begin{document}
\texttt{``aa''}% see? No ligatures
$A\longDefiningEquals B$
$\scriptstyle A\longDefiningEquals B$ % scales!
\begin{gather*}
R⨾