\mathbbm{1} 与 XeLaTeX/mathspec 配合不佳

\mathbbm{1} 与 XeLaTeX/mathspec 配合不佳

在 XeLaTeX 中,当使用不同的字体时,似乎\mathbbm{1}不会显示双线mathspec。例如,下面的 MWE 使用 Palatino,但我无法让它与任何其他字体(Times New Roman 等)一起使用。

\setmathsfont(Digits){Palatino}当我尝试在序言中指定将数学字体应用于数字时,就会出现问题:\mathbbm{1}如果删除,符号会正确显示(Digits),但数学环境中的数字与文本中的数字不匹配。

如果这是字体问题,有没有办法在数学环境中暂时更改字体,以便我可以调用类似的方法\LatinModern{ \mathbbm{1} }

作为一个独立但相关的问题,我甚至不知道如何使用 XeLaTeX 包含 Latin Modern(或任何默认的 LaTeX 字体),因为它不是我的库中的字体。

感谢您提供的任何帮助。MWE 如下。

最小工作示例:

\documentclass{article}
\usepackage{bbm, dsfont}
\RequirePackage{mathspec} 

\setmathsfont(Digits){Palatino} % causes problem

\begin{document}

This blackboard bold $\mathbbm{1}$ isn't double lined. 
Doublestroke package doesn't work either, $\mathds{1}$.

\end{document}

答案1

与字体包的交互mathspec实际上不可预测。你可以用这个技巧来欺骗包:

\documentclass{article}
\usepackage{amsmath}
\usepackage{mathspec}

\setmainfont{Palatino}
\setmathsfont(Digits){Palatino}

\newcommand{\mathbbm}[1]{\text{\usefont{U}{bbm}{m}{n}#1}} % from mathbbm.sty

\begin{document}

This blackboard bold $\mathbbm{1}$ is double lined.

\end{document}

在此处输入图片描述

类似的定义dsfont

\newcommand{\mathds}[1]{\text{\usefont{U}{dsrom}{m}{n}#1}}

或者,如果希望使用无衬线版本,则dsss用 代替。dsrom

另一种方法是使用unicode-mathTG Pagella Math 字体:

\documentclass{article}
\usepackage{amsmath}
\usepackage{bbm}
\usepackage{unicode-math}

\setmainfont{Palatino}
\setmathfont{TG Pagella Math}


\begin{document}

This blackboard bold $\mathbbm{1}$ is double lined.

\end{document}

相关内容