![巴别塔 (Babel) 丢弃了内衬数字?](https://linux22.com/image/350603/%E5%B7%B4%E5%88%AB%E5%A1%94%20(Babel)%20%E4%B8%A2%E5%BC%83%E4%BA%86%E5%86%85%E8%A1%AC%E6%95%B0%E5%AD%97%EF%BC%9F.png)
我使用 Baskervaldx 的 Baskerville 作为正文(带osf
选项),使用 Newtx 的 Times 作为数学(带baskervaldx
选项)。
pdflatex
编译时未babel
启用,文本图形为旧式,数学图形为直线。由于babel
启用,所有图形都切换为旧式,我不想让数学图形变成这样……
如何才能将旧式数字保留为文本,将线条保留为数学?
分数维:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
%\usepackage[english]{babel}
\usepackage[osf]{Baskervaldx}
\usepackage[baskervaldx]{newtxmath}
\begin{document}
Baskervaldx text with old-style figures: 012345.
Math font is NewTXmath with baskervaldx option,
in \emph{inline math} ($x = 425^{28}$)
and \emph{display math:}
\[x = 425^{28}\]
\end{document}
答案1
奇怪的是,您没有提到查看文档newtxmath
,其中包含使用 Babel 时使用衬线数字进行数学运算和悬挂进行文本的详细说明。
不幸的是,它们似乎只有在使用字体时才适用newtxtext
,尽管文档实际上并没有这么说。
因此最直接的选择可能就是明确重写所需的配置。
例如,
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[american]{babel}
\usepackage[osf]{Baskervaldx}
\usepackage[baskervaldx]{newtxmath}
\SetSymbolFont{operators} {normal}{T1}{Baskervaldx-LF} {m}{n}
\SetSymbolFont{operators} {bold} {T1}{Baskervaldx-LF} {b}{n}
\begin{document}
Baskervaldx text with old-style figures: 012345.
Math font is NewTXmath with baskervaldx option,
in \emph{inline math} ($x = 425^{28}$)
and \emph{display math:}
\[x = 425^{28}\]
\end{document}