将 mathpazo 的旧式数字(通过 tufte-latex)更改为衬线数字

将 mathpazo 的旧式数字(通过 tufte-latex)更改为衬线数字

我正在使用使用旧式数字tufte-latex的包mathpazo。要制作图形(图表),我想使用内衬数字。问题是,这些图形是使用 inkscape 从 svg 转换为 pdf 的,而且数字不是数学模式(在数学模式下,数字默认为内衬数字)。

我想到两种可能的解决方案:

\oldstylenumsa) 是否有类似且执行相反工作的命令?

b) inkscape 将图形的文本放在\smash{-22.22}命令中。有没有办法使用 sed、awk、perl 等将其更改为\smash{$-22.22}

答案1

tufte加载时mathpazo会使用osf定义\rmdefaultpplj(真实小型大写字母加旧式数字) 的选项。要为整个文档切换为内衬数字,您需要pplx(真实小型大写字母加内衬数字)。

\documentclass{tufte-book}

\renewcommand{\rmdefault}{pplx}

\begin{document}

0123456789

\end{document}

或者,您可以定义一个\liningnums宏来pplx在组内进行切换。注意:额外的一对括号是必要的,以使字体切换保持本地化。

\documentclass{tufte-book}

\newcommand{\liningnums}[1]{%
    {\fontfamily{pplx}\selectfont #1}}

\begin{document}

\liningnums{0123456789}

0123456789

\end{document}

相关内容