旧代码

旧代码

最近我从 切换到pdflatex以便xelatex能够使用 OpenType 字体。我喜欢使用突出显示的变量来\mathcal表示特定变量,而我过去使用\mathscr-typeset 变量来表示矩阵。但是当我使用 XeLaTeX 编译时,它们看起来完全一样。

旧代码

\documentclass{standalone}
\usepackage{mathrsfs}
\begin{document}
$\mathcal{C} = \mathscr{C}$
\end{document}

输出

老的

新代码

\documentclass{standalone}
\usepackage{unicode-math}
\begin{document}
$\mathcal{C} = \mathscr{C}$
\end{document}

输出

新的

破译密码

我试图从中找回字形mathrsfs,但是却失败了。

\documentclass{standalone}
\usepackage{unicode-math}
\usepackage{mathrsfs}
\begin{document}
$\mathcal{C} = \mathscr{C}$
\end{document}

输出

破碎的

问题:我怎样才能恢复这种行为?原则上,我希望获得Computer/Latin Modern 版本的旧\mathcal字母。pdflatex


替代解决方案(附录 2016/05/11)

答案1

您有多种选择

不要使用unicode-math

除非您有特殊的理由使用它,否则您不必使用它,并且您的旧代码应该可以正常工作。

\documentclass{standalone}
\usepackage{mathrsfs}
\begin{document}
$\mathcal{C} = \mathscr{C}$
\end{document}

在此处输入图片描述

使用不同的数学字体

一些 OpenType 数学字体(如 XITS Math)既有数学书法字母,也有数学脚本字母。默认情况下,XITS Math 有数学脚本字母,数学书法字母可通过样式集 1 获得。我们可以使用unicode-math

\documentclass{standalone}
\usepackage{unicode-math}
\setmathfont{XITS Math}
\setmathfont[range={\mathcal,\mathbfcal},StylisticSet=1]{XITS Math}
\begin{document}
$\mathcal{C} = \mathscr{C}$
\end{document}

在此处输入图片描述

使用\mathscr不同的字体

默认字体 Latin Modern Math 仅包含数学书法字母;我们可以使用 XITS Math 中的数学脚本。虽然unicode-math默认情况下会加载 Latin Modern Math,但出于某种原因我们必须明确使用它,否则事情会不太正确。

\documentclass{standalone}
\usepackage{unicode-math}
\setmathfont{Latin Modern Math}
\setmathfont[range={\mathscr,\mathbfscr}]{XITS Math}
\begin{document}
$\mathcal{C} = \mathscr{C}$
\end{document}

在此处输入图片描述

话虽如此,这种复杂情况的根源在于,编码 Unicode 数学符号的人无法找到任何令人信服的证据证明在数学中,书法字母和数学脚本在相同的语境中具有不同的含义,因此他们认为这只是一种风格上的差异,而不是语义上的差异,所以它们在编码上是统一的。

答案2

当 Unicode 添加数学字母块时,他们决定不将脚本和书法视为不同的,我认为 unicode-math 或多或少作为设计原则遵循了这一点。

如果你查看日志,你会看到

Missing character: There is no 

答案3

您可以对不同的范围使用不同的字体;XITS Math 具有与通常的字体类似的书法字母。

\documentclass{standalone}
\usepackage{unicode-math}
\setmathfont{Latin Modern Math}
\setmathfont[range={\mathcal,\mathbfcal},StylisticSet=1]{XITS Math}
\setmathfont[range=\mathscr]{XITS Math}
\begin{document}
$\mathcal{ABCDEF} = \mathscr{ABCDEF}$
\end{document}

在此处输入图片描述

相关内容