`fontspec` 反复(累积)打开字体功能

`fontspec` 反复(累积)打开字体功能

我使用具有该功能的 OpenType 字体tnum,并且我想使用漂亮的等宽数字制作表格,如下所示:

\def\tabnumbers{\addfontfeatures{Numbers=Monospaced}}

\begin{tabular}{l>{\tabnumbers}r}
Name & Value\\
One & 1\\
Ten & 10\\
Eleven & 11\\
\end{tabular}

{Numbers=Monospaced}根据需要,这会在每个数字输入前插入字体特征。然而,它会重复执行此操作:到第三行时,fontspec正在创建第三个字体系列,其特点是{Numbers=Monospaced,Numbers=Monospaced,Numbers=Monospaced}

在实际示例中,这会导致编译极其缓慢。我该如何禁用这种重复的字体功能添加?我尝试了一些简单的解决方法,\def\tabnumbers{\rmfamily \addfontfeature{Numbers=Monospaced}}但结果是一样的。

我可能只为该功能定义一个全新的字体系列并在数字列中调用它,但这会使整个设置取决于\begin{tabular}调用时哪种字体是当前的......我也想\tabnumbers在其他适当的上下文中使用,例如在事项表和版本历史记录中,所以我更喜欢使用简单的宏来修改过多的表格设置。

相关内容