Siunitx 逗号作为单位指数的分隔符

Siunitx 逗号作为单位指数的分隔符

我正在用法语写一份报告,其中我想显示非整数指数的单位:

\documentclass[10pt,letterpaper]{article}
\usepackage{siunitx}
\begin{document}
    \sisetup{locale=FR}
    Value of \SI{39.2}{\mega\pascal\metre\tothe{0.5}}.
\end{document}

在法语中,逗号用作小数分隔符。它适用于 39.2 这个值,但指数中没有逗号。

在此处输入图片描述

宏也发生同样的情况\raiseto。有什么想法可以解决此问题吗?

答案1

目前代码中存在疏忽。目前,使用

\documentclass[10pt,letterpaper]{article}
\usepackage{siunitx}
\ExplSyntaxOn
\cs_set_protected:Npn \__siunitx_unit_format_power_aux: {
  \str_if_eq:VnTF \l__siunitx_per_mode_tl { repeat }
    { \__siunitx_unit_format_power_repeat: }
    { \__siunitx_unit_format_power_per: }
  \str_if_eq:VnF \l__siunitx_tmpa_tl { 1 }
    {
      \__siunitx_unit_format_power_brackets:
      \tl_put_right:Nx \l__siunitx_unit_current_tl
        {
          \exp_not:N \PrintSuperscript
            {
              \__siunitx_unit_format_power_aux:n
                { \exp_after:wN \__siunitx_unit_format_power:w \l__siunitx_tmpa_tl . . \q_stop }
            }
        }
    }
}
\cs_new:Npn \__siunitx_unit_format_power:w  #1 . #2 . #3 \q_stop
  {
    \exp_not:n {#1}
    \tl_if_blank:nF {#2}
      {
        \exp_not:V \l__siunitx_output_decimal_tl
        \exp_not:n {#2}
      }
  }
\ExplSyntaxOff
\begin{document}
    \sisetup{locale=FR}
    Value of \SI{39.2}{\mega\pascal\metre\tothe{0.5}}.
\end{document}

相关内容