使用其他软件包中的“mathbb”字体

使用其他软件包中的“mathbb”字体

mathpazo我目前正在使用和的组合mathspec来进行数学排版。具体来说,我的序言包含以下内容:

\usepackage{amssymb}

\usepackage{mathrsfs}
\usepackage{mathpazo}

\usepackage{mathtools}

\usepackage{mathspec}

\usepackage{xltxtra,xunicode}
\defaultfontfeatures{映射=tex-文本}

\setmainfont[Numbers=OldStyle]{Palatino Linotype}
\setsansfont{最优}
\setmonofont{控制台}
\setmathsf{最优}
\setmathfont(希腊语){Palatino Linotype}

\exchangeforms{φ}

但是,我希望使用 AMS 黑板粗体字体mathbb,或者 STIX 提供的字体(或任何其他 Unicode 数学字体),而不是 提供的字体mathpazo。到目前为止,我尝试过的方法都没有\setmathbb奏效。

我对 有类似的问题\setmathcal,而且我注意到如果我使用calrsfs而不是mathrsfs则不会有任何效果。

答案1

我会直接去unicode 数学

\documentclass[a4paper]{article}
\usepackage{mathtools} % loads amsmath that should go before unicode-math
\usepackage{unicode-math}
\setmainfont[Numbers=OldStyle]{Palatino Linotype}
\setsansfont{Optima}
\setmonofont{Consolas}
\setmathfont{Asana Math}

Asana Math 基于 MathPaZo 字体。

如果您确实需要 MathPaZo 字体中的括号和圆括号,则可以这样做:

\DeclareSymbolFont{brackets}       {OT1}{zplm}{m}{n}
\SetSymbolFont{brackets}{bold}     {OT1}{zplm}{b}{n}
\DeclareSymbolFont{largebrackets}  {OMX}{zplm}{m}{n}
\SetSymbolFont{largebrackets}{bold}{OMX}{zplm}{m}{n}
\DeclareMathDelimiter{(}{\mathopen} {brackets}{"28}{largebrackets}{"00}
\DeclareMathDelimiter{)}{\mathclose}{brackets}{"29}{largebrackets}{"01}
\DeclareMathDelimiter{[}{\mathopen} {brackets}{"5B}{largebrackets}{"02}
\DeclareMathDelimiter{]}{\mathclose}{brackets}{"5D}{largebrackets}{"03}

对于 Knuth 书法字体,添加

\setmathfont[range={\mathcal,\mathbfcal},StylisticSet=1]{XITS Math}

对于“更好”的\vDash符号,添加

\setmathfont[range=\vDash]{XITS Math}

“不属于”符号应该总是\notin用 而不是 来指定\not\in

最后,对于AMS黑板粗体:

\DeclareSymbolFont{AMSb}{U}{msb}{m}{n}
\protected\def\mathbb#1{{\mathchar\numexpr256*\symAMSb+`#1\relax}}

相关内容