在 TeX Live 2020 及更早版本中,我的 MVE 看起来就像我想要的那样:
但在 TeX Live 2021 中,它看起来像这样:
注意第二个分数(数学模式中的 sfrac)是如何变化的。
我发现文件中有两行被删除了sty
。我敢打赌这是开发人员故意为之,但为什么呢?这样更美观吗?是否有一些我应该知道的印刷原因,可能会改变我的想法?我认为可以通过使用旧参数定义来恢复更改。包中instance
是否有设置?oldmath
\documentclass{minimal}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[utf8]{inputenc}
\usepackage{xfrac}
\begin{document}
A \(\frac12\) B \(\sfrac12\) C \sfrac12
\end{document}
答案1
变化的出现是因为(长期存在的)错误xtemplate
,在此基础上xfrac
构建。修复中的问题xtemplate
突出显示了中的问题xfrac
,该问题现已修复,但这意味着我需要解决中的另一个问题xfrac
。这已在源代码中修复,但可能还需要一段时间才能发布。目前,请尝试
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{xfrac}
\ExplSyntaxOn
\DeclareRestrictedTemplate { xfrac } { text } { math }
{
numerator-font = \number \fam ,
slash-symbol = / ,
slash-symbol-font = \number \fam ,
denominator-font = \number \fam ,
scale-factor = 0.7 ,
scale-relative = false ,
scaling = true ,
denominator-bot-sep = 0 pt ,
math-mode = true ,
phantom = ( % )
}
\DeclareInstance { xfrac } { mathdefault } { math }
{ numerator-top-sep = 0pt }
\ExplSyntaxOff
\begin{document}
A \(\frac12\) B \(\sfrac12\) C \sfrac12
\end{document}
重新声明该机制的适当部分。