“siunitx”、“cellspace”与字母“d”和“e”之间的冲突

“siunitx”、“cellspace”与字母“d”和“e”之间的冲突

以下代码无法编译。可以通过以下任何更改来编译

  1. 移除\usepackage{siunitx}
  2. Stabular列说明符中删除
  3. d将表中的替换为任何不包含字母d或字母的文本e

\documentclass{minimal}    

\usepackage{cellspace}
\usepackage{siunitx}

\begin{document}
\begin{tabular}{Sc}
  d
\end{tabular}
\end{document}

错误是

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! siunitx error: "invalid-number"
! 
! Invalid numerical input 'd'.
! 
! See the siunitx documentation for further information.
! 
! For immediate help type H <return>.
!...............................................  

l.9     \end
            {tabular}

仅当满足三个条件时才会发生错误

  1. 字母de出现在表中,
  2. 在标有 的列中S
  3. siunitx包加载时

我到底该如何调试这个问题?

答案1

siunitx包使用S数字对齐列类型:它将cellspace一移动到C。因此,您有一个数字列,但带有d: ,这是一个指数标记,但没有数字内容,它是一个无效数字(类似 的内容1d4将是有效的;De/E也是指数标记)。如果您想要一cellspace列,请使用C;如果您想要一siunitx S列,请提供完整的数字或将文本括在括号中(这样就不会被解析)。

相关内容