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}}