以下代码无法编译。可以通过以下任何更改来编译
- 移除
\usepackage{siunitx}
S
从tabular
列说明符中删除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}
仅当满足三个条件时才会发生错误
- 字母
d
或e
出现在表中, - 在标有 的列中
S
, - 当
siunitx
包加载时
我到底该如何调试这个问题?
答案1
该siunitx
包使用S
数字对齐列类型:它将cellspace
一移动到C
。因此,您有一个数字列,但带有d
: ,这是一个指数标记,但没有数字内容,它是一个无效数字(类似 的内容1d4
将是有效的;D
和e
/E
也是指数标记)。如果您想要一cellspace
列,请使用C
;如果您想要一siunitx
S
列,请提供完整的数字或将文本括在括号中(这样就不会被解析)。