如何转换siunitx新版本3中的宏“\si”?

如何转换siunitx新版本3中的宏“\si”?

在手册中,除非我弄错了,它说用\si替换\unit

但是我有这个错误:

包 siunitx 错误:发现没有单位的前缀部分。

如何使该文档与siunitx的新版本3兼容?

\documentclass[aspectratio=1610,10pt,french]{beamer}

\usepackage[french]{babel} 
\usepackage[output-decimal-marker={,}]{siunitx}  

    
\begin{document}
\begin{frame}
%  \sisetup{color = blue}

  \begin{tabular}{l l l}
   kilo $=1000$ & noté \unit{\kilo} &\rule[2mm]{0pt}{5mm} Exemples:\ \unit{\kilo\metre}; \unit{\kilo\gram};% \\
%   hecto $=100$ & \repete{noté} \si{\hecto} &\rule[2mm]{0pt}{5mm}\repete{Exemple:}\ \  \si{\hecto\meter}; \si{\hecto\gram}; \si{\hecto\liter}\\
%   deca $=10$ & \repete{noté} \si{\deca}& \rule[2mm]{0pt}{5mm}\repete{Exemple:}\ \  \si{\deca\meter}; \si{\deca\gram}; \si{\deca\liter}\\
%      déci $=0.1=\dfrac{1}{10}$ & \repete{noté} \si{\deci} & \rule[2mm]{0pt}{5mm}\repete{Exemple:}\ \ \si{\deci\meter}; \si{\deci\gram}; \si{\deci\liter} \\
%   centi $=0.01=\dfrac{1}{100}$ & \repete{noté} \si{\centi} & \rule[2mm]{0pt}{5mm}\repete{Exemple:}\ \ \si{\centi\meter}; \si{\centi\gram}; \si{\centi\liter}\\
%    milli $=0.001=\dfrac{1}{1000}$ & \repete{noté} \si{\milli} & \rule[2mm]{0pt}{5mm}\repete{Exemple:}\ \ \si{\milli\meter}; \si{\milli\gram}; \si{\milli\liter}
  \end{tabular}

\end{frame}
\end{document}

答案1

首先,你\si也可用于版本siunitx3,但已被弃用并且为了向后兼容而存在。

第二:前缀必须后面跟着一个单位;在版本 2 中它没有被强制执行,但现在被强制执行了。

稍微伸展一下,你就可以定义一个\siprefix命令:

\documentclass{article}
\usepackage{siunitx}

\NewDocumentCommand{\siprefix}{m}{%
  \unit{#1\nonexistentunitjustforprefixes}%
}
\DeclareSIUnit{\nonexistentunitjustforprefixes}{\relax}

\begin{document}

\siprefix{\kilo}

\end{document}

您实际上可以这样做\unit{k},但这违背了包的目的。

相关内容