我正在使用使用旧式数字tufte-latex
的包mathpazo
。要制作图形(图表),我想使用内衬数字。问题是,这些图形是使用 inkscape 从 svg 转换为 pdf 的,而且数字不是数学模式(在数学模式下,数字默认为内衬数字)。
我想到两种可能的解决方案:
\oldstylenums
a) 是否有类似且执行相反工作的命令?
b) inkscape 将图形的文本放在\smash{-22.22}
命令中。有没有办法使用 sed、awk、perl 等将其更改为\smash{$-22.22}
?
答案1
类tufte
加载时mathpazo
会使用osf
定义\rmdefault
为pplj
(真实小型大写字母加旧式数字) 的选项。要为整个文档切换为内衬数字,您需要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}