我问这个问题不久前,现在想从和cfr-lm
移动pdflatex
到newcomputermodern
和fontenc
。LuaLaTeX
chemmacros
\iupac{}
也就是说,除了内部环境之外,我想在任何地方使用旧式数字。
我不知道如何改编代码上一个答案但我不知道如何从\plstyle
当前位置移动到\liningnums{}
仅覆盖括号内文本的位置。或者,我确信fontspec
有某种方法可以手动调整这些字体功能直到环境结束,但我不确定如何在不更改整个文档的字体的情况下做到这一点。(chemformula
有一个内置命令,但chemmacros
没有。)
\documentclass{article}
\usepackage{fontspec}
\defaultfontfeatures+{Numbers=OldStyle}
\usepackage{newcomputermodern}
\usepackage{chemmacros}
\begin{document}
\iupac{(1\textit{R},2\textit{R})-\trans-1,2-Cyclohexanedicarboxylate} Old style
\iupac{\liningnums{(1\textit{R},2\textit{R})-\trans-1,2-Cyclohexanedicarboxylate}} Lining
\iupac{2,2':6',2''-terpyridine} Old style
\iupac{\liningnums{2,2':6',2''-terpyridine}} Lining
1234567890
\liningnums{1234567890}
\end{document}
答案1
您可以重复使用其他答案。要本地切换到不同的数字样式,请使用\addfontfeature
,或定义具有正确数字设置的新字体系列。我还建议限制 \defaultfontfeatures 命令,以避免您收到来自数学字体的大量警告。
\documentclass{article}
\usepackage{fontspec}
\defaultfontfeatures+[\rmfamily,\sffamily,\ttfamily]{Numbers=OldStyle}
\usepackage{newcomputermodern}
\newfontfamily\ncmliningnums{NewCM10-Book.otf}[
Numbers=Lining,
ItalicFont=NewCM10-BookItalic.otf,%
BoldFont=NewCM10-Bold.otf,%
BoldItalicFont=NewCM10-BoldItalic.otf,%
SlantedFont=NewCM10-Book.otf,%
SlantedFeatures={FakeSlant=0.25},
BoldSlantedFont=NewCM10-Bold.otf,%
BoldSlantedFeatures={FakeSlant=0.25}]
\begin{document}
1234567890
{\addfontfeatures{Numbers=Lining}1234567890}
{\ncmliningnums 1234567890}
\end{document}