在 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-math
TG 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}