如何使用 mathspec 更改 \mathtt 字体?

如何使用 mathspec 更改 \mathtt 字体?

我有一个文档,其主要字体是 Gotham Narrow Book,但数字设置为 Gotham Narrow Light,这是使用mathspec包。我想排版一个表格,其中的数字来自等宽字体,以便它们能够更好地排列。但我的调用\setmathtt没有效果。

这是我的示例文档:

\documentclass{article}
\usepackage{mathspec}
\setmainfont[BoldFont=Gotham Narrow Medium]{Gotham Narrow Book}
\setmathrm{Gotham Book}
\setmathfont(Latin){Gotham Narrow Book}
\setmathfont(Digits){Gotham Narrow Light}
%:FIXME seems to have no effect
\setmathtt{Courier} 
\begin{document}
\begin{tabular}{cc}
 Normal         & TT \\
 $123456789$ & $\mathtt{123456789}$ \\
 $111111111$ & $\mathtt{111111111}$
\end{tabular}
\end{document}

是否\setmathfont(Digits){Gotham Narrow Light}排除\setmathtt{Courier}

答案1

mathspec 中似乎有一个错误;如果我要求

\showthe\mathcode`1

我得到1841,即"0731。这似乎7是 Gotham Narrow Light 的数学组,因此数学代码应该是"7731。事实上,如果我说

\mathcode`\0=\numexpr\mathcode`0+"7000\relax
\mathcode`\1=\numexpr\mathcode`1+"7000\relax
\mathcode`\2=\numexpr\mathcode`2+"7000\relax
\mathcode`\3=\numexpr\mathcode`3+"7000\relax
\mathcode`\4=\numexpr\mathcode`4+"7000\relax
\mathcode`\5=\numexpr\mathcode`5+"7000\relax
\mathcode`\6=\numexpr\mathcode`6+"7000\relax
\mathcode`\7=\numexpr\mathcode`7+"7000\relax
\mathcode`\8=\numexpr\mathcode`8+"7000\relax
\mathcode`\9=\numexpr\mathcode`9+"7000\relax

我得到了期望的行为。

答案2

它可以与\setmathtt{Courier New}类似的东西一起工作\mathtt{f(x)},因为数字是用 Gotham 设置的。

相关内容