如何从 numprint 迁移到 siunitx 同时保持相同的字体?

如何从 numprint 迁移到 siunitx 同时保持相同的字体?

到目前为止,我使用该numprint包可以正确显示单位。但由于@egreg 给出了这个问题的解决方案:包 eurosym:如何更改小数点分隔符?,我尝试用一​​个包来编码所有内容:siunitx

问题是我无法获得与 相同的显示numprint

例如,升的缩写是“l”(小写“ell”)。在 下beamer,它没有衬线,这给刚开始学习计量单位的小学生带来了阅读困难,因为他们可能会将它与程式化的数字“1”混淆。

\documentclass[a4paper, 11pt]{beamer} % Présentation générale et mise en page

\usepackage[french]{babel}
\usepackage[np]{numprint}
\usepackage{siunitx}
\sisetup{locale=FR}
\begin{document}
Avec numprint: Le bol contient \numprint[l]{0.3} de thé vert.

Avec siunitx: La bouteille contient \SI{0.75}{\litre} de vin. 
\end{document}

输出:

numprint-siuntix-beamer


编辑:全局detect-all选项不能解决这个问题。具体来说,该dectect-all选项不会影响单位使用的字体;请参阅以下代码和屏幕截图。

\documentclass[a4paper, 11pt]{beamer} % Présentation générale et mise en page

\usepackage[french]{babel}
\usepackage[np]{numprint}
\usepackage{siunitx}
\sisetup{locale=FR,detect-all}
\begin{document}
Avec numprint: Le bol contient \numprint[l]{0.3} de thé vert.

Avec siunitx: La bouteille contient \SI{0.75}{\litre} de vin.
\end{document}

numprint-siunitx-beamer-detect-all

如何获得与numprint打印时相同的字体组合siunitx

使用 www.DeepL.com/Translator 翻译

答案1

我建议您创建一个名为(比如说)的新宏\SInp,来修改的操作\SI以符合的风格\numprint

  • 设置选项detect-mode以更改小数点逗号的形状。设置detect-mode比设置 更不具侵入性detect-all

  • 将 的第二个参数放在包装器\SI\textrm{...}。这样,即使文档的其余部分(包括 的第一个参数\SI)使用无衬线字体(beamer文档中通常如此),也会使用“罗马”(即衬线)字形。

在此处输入图片描述

\documentclass[a4paper, 11pt]{beamer}
\usepackage[french]{babel}
\usepackage[np]{numprint}
\usepackage[locale=FR]{siunitx}
\newcommand\SInp[2]{\SI[detect-mode]{#1}{\textrm{#2}}}

\begin{document}
\begin{frame}
La bouteille contient \numprint[l]{0.75} de vin. --- numprint

La bouteille contient \SInp{0.75}{\litre} de vin. --- siunitx
\end{frame}
\end{document}

相关内容