unicode-math
我在序言中这样使用:
\usepackage{unicode-math}
\setmathfont{Latin Modern Math}
使用 XeLaTeX 进行编译,$g \circ f$
得到以下结果:
但这与我删除前两行代码得到的结果不同:
值得注意的是,\circ
没有前两行代码时得到的值比有前两行代码时得到的值要大。
我想知道:有没有一种方法可以让我仍然使用unicode-math
(使用前两行代码)但又可以获得\circ
没有它们时的效果?
这是一个 MWE:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{unicode-math}
\setmathfont{Latin Modern Math}
\begin{document}
\[
g \circ f
\]
\end{document}
答案1
显然,Latin Modern 的开发人员认为 Computer Modern\circ
符号太大(我并不反对他们)。当您不加载字体包(包括unicode-math
)时,XeLaTeX 的默认数学字体是标准的 Computer Modern 系列。当您加载时unicode-math
,默认为 Latin Modern Math(无论是否选择\setmathfont
)。
另一方面,\accentset{\circ}{U}
使用 Computer Modern 数学字体给出不错的结果更多的是偶然而不是特性:这只是因为符号是大的它看起来正好位于字母上方。
让我们尝试一些基于
\documentclass{article}
\usepackage{amsmath}
\usepackage{accents}
%\usepackage{unicode-math} % for 2 and 3
%\setmathfont{Latin Modern Math} % for 2
%\setmathfont{NewCMMath-Regular.otf} % for 3
\begin{document}
\begin{gather*}
g \circ f \\
\mathring{U}\accentset{\circ}{U}
\end{gather*}
\end{document}
示例 1 – 否unicode-math
示例 2 – 拉丁现代
示例 3 – 使用 NewCMMath
评论
正如您所见,NewCM 汲取了拉丁现代主义的精髓。
看完结果后,我强烈支持\mathring
。\accentset{\circ}
但由于这只是意见,让我们看看我们能怎么做。
\documentclass{article}
\usepackage{amsmath}
\usepackage{accents}
\usepackage{unicode-math}
\setmathfont{Latin Modern Math}
\DeclareSymbolFont{CMsymbols}{OMS}{cmsy}{m}{n}
\DeclareMathSymbol{\CMcirc}{\mathbin}{CMsymbols}{"0E}
\begin{document}
\begin{gather*}
g \circ f \\
\mathring{U}\accentset{\CMcirc}{U}
\end{gather*}
\end{document}
这定义\CMcirc
为计算机现代\circ
符号,因此您可以在 中使用它\accentset
。