我正在尝试排版此表,但一直遇到以下错误:
! Missing $ inserted.
<inserted text> $
l.34 ...{Global data expressed in \qty{e10}{\gram}
.\\%
我的最小工作示例如下:
\documentclass[a4paper]{article}
\usepackage[sfdefault]{atkinson}
\usepackage{hyperref}
\usepackage{siunitx}
\sisetup{mode=text}
\sisetup{range-phrase=--}
\sisetup{range-units=single}
\sisetup{separate-uncertainty=true}
\sisetup{detect-all}
\sisetup{inter-unit-product=\ensuremath{{\cdot}}}
\sisetup{open-bracket=\, ,
close-bracket=\,}
\sisetup{tight-spacing=true}
\DeclareSIUnit[number-unit-product = ]\percent{\%}
\usepackage{threeparttable}
\usepackage{booktabs}
\begin{document}
\begin{table}[h!]
\begin{threeparttable}
\caption{Estimated biomass.}
\begin{tabular}{l c c }
\toprule
\textbf{Family}&\textbf{Global}&\textbf{Local}\\
\midrule
Family1&8.8&4.5\\
Family2&10.7&3.4\\
Family3&10.7&2.6\\
Family4&11.8&3.2\\
Family5&15.4&5.1\\
Family6&17.4&3.9\\
Family7&31.2&7.4\\
\bottomrule
\end{tabular}
\footnotesize{Global data expressed in \qty{e10}{\gram}.\\%
Local data expressed in \qty{e8}{\gram}.%
}
\end{threeparttable}
\end{table}
\end{document}
当我注释掉文本的 siunitx 部分时,一切正常。我是否遗漏了某个设置?
答案1
这是由siunitx
: 中的一个排序错误引起的,具体如何处理紧密间距和文本模式是一个棘手的问题。我已登录为https://github.com/josephwright/siunitx/issues/553. 到达 CTAN 之前的临时修复:
\documentclass{article}
\usepackage{siunitx}
\sisetup{mode=text, tight-spacing=true}
\ExplSyntaxOn
\makeatletter
\cs_gset_protected:Npn \__siunitx_print_text_replace:n #1
{
\group_begin:
\tl_if_head_eq_meaning:nNTF {#1} \mathchoice
{ \__siunitx_print_text_replace:Nnnnn #1 }
{
\tl_set:Nn \l__siunitx_print_tmp_tl {#1}
\__siunitx_print_replace_font:N \l__siunitx_print_tmp_tl
\cs_set:Npn \mathord ##1 {##1}
\cs_set:Npn \pm { \exp_not:N \textpm }
\cs_set:Npn \mp { \exp_not:n { \ensuremath { \mp } } }
\cs_set:Npn \cdot { \exp_not:N \textperiodcentered }
\cs_set:Npn \times { \exp_not:N \texttimes }
\protected@edef \l__siunitx_print_tmp_tl { \l__siunitx_print_tmp_tl }
\__siunitx_print_text_replace:N \l__siunitx_print_tmp_tl
\tl_use:N \l__siunitx_print_tmp_tl
}
\group_end:
}
\cs_gset_protected:Npx \__siunitx_print_text_replace:N #1
{
\exp_not:N \__siunitx_print_text_replace:NNn #1
-
{ \exp_not:N \textminus }
\char_generate:nn { `\_ } { 8 }
{ \exp_not:N \__siunitx_print_text_sub:n }
^
{ \exp_not:N \__siunitx_print_text_super:n }
\exp_not:N \q_recursion_tail
{ ? }
\exp_not:N \q_recursion_stop
}
\makeatother
\ExplSyntaxOff
\begin{document}
Global data expressed in $\qty{e10}{\gram}$
\end{document}