有没有一种方法可以根据其中一个位于\ttfamily
、\sffamily
或中来自动触发 XeTeXinterchartoks 的激活\rmfamily
?我想为我的主要字体使用一些基于 interchartok 的字距,但这些字距与我的 sans 和 mono 字体配合使用会产生绝对的畸形。
答案1
您可以重新定义\ttfamily
(或使用该命令的更高级别命令)来设置,\XeTeXinterchartokenstate=0
以便字符类在与字体更改相同的范围内处于非活动状态。
答案2
受到大卫卡莱尔 (David Carlisle) 接受的答案的启发/窃取,我在代码中实现了这一点:
\let\myttfamily\ttfamily
\def\ttfamily{\XeTeXinterchartokenstate=0\myttfamily\relax}
\let\myrmfamily\rmfamily
\def\rmfamily{\XeTeXinterchartokenstate=1\myrmfamily\relax}
\let\mysffamily\sffamily
\def\sffamily{\XeTeXinterchartokenstate=0\mysffamily\relax}
\let\mynormalfont\normalfont
\def\normalfont{\XeTeXinterchartokenstate=1\mynormalfont\relax}