![更改数字字体(从不同字体导入)](https://linux22.com/image/335095/%E6%9B%B4%E6%94%B9%E6%95%B0%E5%AD%97%E5%AD%97%E4%BD%93%EF%BC%88%E4%BB%8E%E4%B8%8D%E5%90%8C%E5%AD%97%E4%BD%93%E5%AF%BC%E5%85%A5%EF%BC%89.png)
答案1
这个答案被无耻地从 Alan Munn 的答案中窃取而来在某些字体中行号不起作用,并修改为 Merriweather 字体。此处,数字被替换为 Helvetica。
请注意,这确实需要您使用宏
\lining
来设置字体。因此,它不会更改每个数字,我相信这正是您所要求的。在这里,您必须在节号和基本上所有地方使用宏。这只是局部更改。
正如其他人和我在本帖和其他帖子中指出的那样,从字体中切换某些符号通常看起来不太好。我要么切换到其他字体,要么接受字体中包含的旧式数字。
\documentclass[11pt]{article}
\usepackage{fontspec}
\usepackage[sfdefault]{merriweather}
\newfontface\lining[Numbers=Lining]{Helvetica}
\begin{document}
Foo\lining 1234567890
\end{document}
答案2
这符合您的需求吗?(大部分内容来自[菲舍尔(2010)])
\documentclass{article}
\usepackage[sfdefault]{merriweather}
\usepackage{mathastext}
\DeclareSymbolFont{numbers}{T1}{phv}{m}{n}
\SetSymbolFont{numbers}{bold}{T1}{phv}{bx}{n}
\DeclareMathSymbol{0}\mathalpha{numbers}{"30}
\DeclareMathSymbol{1}\mathalpha{numbers}{"31}
\DeclareMathSymbol{2}\mathalpha{numbers}{"32}
\DeclareMathSymbol{3}\mathalpha{numbers}{"33}
\DeclareMathSymbol{4}\mathalpha{numbers}{"34}
\DeclareMathSymbol{5}\mathalpha{numbers}{"35}
\DeclareMathSymbol{6}\mathalpha{numbers}{"36}
\DeclareMathSymbol{7}\mathalpha{numbers}{"37}
\DeclareMathSymbol{8}\mathalpha{numbers}{"38}
\DeclareMathSymbol{9}\mathalpha{numbers}{"39}
\begin{document}
Hello Text 1234
$Hello Math 1234$
\end{document}