具有数学模式的表头,与小数点对齐

具有数学模式的表头,与小数点对齐

我必须创建一个表格,其中标题为数学符号,正文为数字。我想将所有数字与小数点对齐。为此,我使用了 siunitx 包。问题是,由于标题,我收到“缺少 $ 插入”错误,尽管所有 $ 都在正确的位置。有人能帮助我吗?

以下是 MWE:

\documentclass{article}
\usepackage{booktabs}
\usepackage{siunitx}
\begin{document}
\begin{table}
    \centering
    \begin{tabular}{*7S[table-format=-3.2]}
        \toprule
        $\varphi$ & a & $\xi$ & $\alpha$ & $\beta$  & $\dot{W}^{M1}$ & $\dot{W}^{M2}$  \\
        \midrule
        0.00 &  45.00 & 22.48 & 0.02 &  0.17 &  250.00 &    250.00  \\
        1.00 &  45.50 & 52.21 & 44.82 & 38.39 & 236.86 &    236.72  \\
        \bottomrule
    \end{tabular}
\end{table}
\end{document}

谢谢

答案1

列标题S应该用括号括起来,除非它们是\multicolumn

在某些情况下,siunitx包能够恢复缺少的括号,但在整个过程中添加它们要容易得多。

\documentclass{article}
\usepackage{booktabs}
\usepackage{siunitx}
\begin{document}
\begin{table}
\centering
\begin{tabular}{@{}S[table-format=1.2]
              *{4}{S[table-format=2.2]}
              *{2}{S[table-format=3.2]}@{}}
\toprule
{$\varphi$} & {a} & {$\xi$} & {$\alpha$} & {$\beta$} & {$\dot{W}^{M1}$} & {$\dot{W}^{M2}$} \\
\midrule
0.00 & 45.00 & 22.48 &  0.02 &  0.17 & 250.00 & 250.00 \\
1.00 & 45.50 & 52.21 & 44.82 & 38.39 & 236.86 & 236.72 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}

在此处输入图片描述

一般而言,输入诸如$\dot{W}^{M1}$是完全合法的,并且不会对 产生任何影响${\dot{W}}^{M1}$,这与其他答案所说的相反。这里的问题有所不同,最好使用外括号来解决。

答案2

-columntypeS来自siunitx,您当然已经知道了。它会尝试解析在每个单元格中找到的数字。因此,当它找到一些文本(如您的 toprow 中)时,它也会尝试解析该文本。通过在{}每个标题文本周围放置花括号来解决这个问题。请注意,siunitx这有点智能,因此只有那些可能被误认为是数字的文本才需要保护。这可以在siunitx-manual 部分中看到4.6 表格材料

如果材料可能被误认为是数字的一部分,则应该用括号保护起来。

代码

\documentclass{article}
\usepackage{booktabs}
\usepackage{siunitx}
\begin{document}
\begin{table}
    \centering
    \begin{tabular}{*7S[table-format=-3.2]}
        \toprule
        $\varphi$ & {a} & $\xi$ & $\alpha$ & $\beta$  & ${\dot{W}^{M1}}$ & ${\dot{W}^{M2}}$  \\ \\
        \midrule
        0.00 &  45.00 & 22.48 & 0.02 &  0.17 &  250.00 &    250.00  \\
        1.00 &  45.50 & 52.21 & 44.82 & 38.39 & 236.86 &    236.72  \\
        \bottomrule
    \end{tabular}
\end{table}
\end{document}

答案3

您收到“缺少 $ 插入”错误消息的原因是siunitx无法正确解析术语$\dot{W}^{M1}$$\dot{W}^{M2}$正如所写,这些术语满足 LaTeX 自己的数学公式语法规则。请参阅以下段落,了解有助于解析器的修改siunitx

一种解决方案是将术语括在花括号中,从而有效地将它们隐藏在siunitx的解析器中。第二种解决方案是将两个\dot{W}术语括在花括号中,即分别写为${\dot{W}}^{M1}$${\dot{W}}^{M2}$。使用此方法,无需将完整的术语括在花括号中 -siunitx正确解析它们,它们将自动居中。

顺便说一句,列规范*7S[table-format=-3.2]并不是真正最佳的,因为(例如)没有一个数字带有减号(或加号)。如果您想要间距适当(且居中)的列,则值得为第 1 列、第 2-5 列以及第 6 列和第 7 列指定不同的格式,就像下面的代码中使用的一样。

在此处输入图片描述

\documentclass{article}
\usepackage{booktabs}
\usepackage{siunitx}
\begin{document}
\begin{table}
\centering
\begin{tabular}{@{}S[table-format=1.2]
              *{4}{S[table-format=2.2]}
              *{2}{S[table-format=3.2]}@{}}
\toprule
$\varphi$ & a & $\xi$ & $\alpha$ & $\beta$ & ${\dot{W}}^{M1}$ & ${\dot{W}}^{M2}$ \\
\midrule
0.00 & 45.00 & 22.48 &  0.02 &  0.17 & 250.00 & 250.00 \\
1.00 & 45.50 & 52.21 & 44.82 & 38.39 & 236.86 & 236.72 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}

相关内容