到目前为止,我使用该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}
输出:
编辑:全局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
?
使用 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}