使用 siunitx、kpfonts 和 lualatex 的斜体(数学)单位

使用 siunitx、kpfonts 和 lualatex 的斜体(数学)单位

这个简单的文档:

\documentclass{article}
\usepackage{kpfonts}
\usepackage{siunitx}
\DeclareSIUnit\foo{\text{\ensuremath{F}}}

\begin{document}

\ensuremath{F} \si{\foo}

\end{document}

我用它来编译它pdflatex并且它看起来很好:

在此处输入图片描述

但是lualatex,第二个 F 是直立的:

在此处输入图片描述

如果没有 ,kpfonts我会得到两个看起来相似的斜体 F。 有没有什么(简单的)方法可以解决这个问题kpfonts

答案1

在 v3 中,siunitx旨在尽可能地创建与手动排版单元相同的数学模式中间内容:此处\mathrm{F}使用标准设置。因此,您可以有效地使用

\mathrm{\text{\ensuremath{F}}

它会直立显示。如果您确实想要获得“任何内容”,则可以禁用unit-font-command,例如

\makeatletter
\DeclareSIUnit[unit-font-command = \@firstofone]\foo{\text{\ensuremath{F}}}
\makeatother

(正如评论中指出的那样,按照惯例,单位应该用直立罗马字体排版:这是标准设置的目的。)

相关内容