生成表时缺少 $ 问题

生成表时缺少 $ 问题

首先,我非常感谢“创建简单表格(含图片)”主题的两位贡献者——由于我是匿名的,所以我无法标记正确答案;这两条建议都非常有用,即使是被删除的建议。

现在来谈谈问题:

\documentclass{article}

\usepackage{booktabs}
\usepackage{caption}
\usepackage{siunitx}


\usepackage{etoolbox}
\preto\tabular{\shorthandoff{-}}
%As I am using Czech babel, I have to include two aforementioned commands 
%(I was not able to use cline, cmidrule, bottomrule, toprule etc. without them)



\begin{document}

\begin{table}[h]
    \captionsetup%
    {%
        singlelinecheck = off,
        justification   = raggedright,
        labelfont       = bf,
    }
    \centering
    \begin{minipage}[b]{1.0\textwidth}
        \caption{name}%
        \begin{tabular}{@{}l SS }
            \toprule
                                & \multicolumn{2}{l}{blaaaa of Ah ($j$)}  \\
            \cmidrule{2-3}
          Blaueue ($i$) &   $i-2$       &   $i-1$     \\
    \midrule
    1       &   $X_{a,b}$   &   $\dots$ \\
    $j-1$       &   $999.9$ &   $\dots$ \\
    \bottomrule
        \end{tabular}
    \end{minipage}


\end{table}

\noindent Reference: J. Johnson -- Whatever

\end{document}

令我十分困扰的事情是:

1)我收到了大量的错误消息,例如:

! Missing $ inserted. 
<inserted text> 
                $
l.30           Blaueue ($i$)    &   $i-2$       &
                                            $i-1$     \\)

或者

! Missing $ inserted.
<inserted text> 
                $
l.33    $j-1$       &   $999.9$ &
                            $\dots$ \

或者

l.26    \midrule
l.34    \bottomrule

我想我是不是忘记在任何地方添加 $ 了?即使排除了,我也遇到了同样的问题

\usepackage{etoolbox}
\preto\tabular{\shorthandoff{-}}

2) 表格下面是否有任何可供参考的命令?Google 没有帮助我解决这个问题。

3)有什么方法可以避免表格大于页面的大小?

4) 我对 (La)TeX 还不熟悉。你的代码看起来和我的一样糟糕吗?我的意思是数学模式部分,那里似乎充满了 $$ :-)。

答案1

S规范来自siunitx,并期望列为十进制数。如果这些列中的某些条目不是小数,则需要用 将它们括起来才能{...}正确处理。因此,代码的直接修复方法是:

示例输出

\documentclass{article}

\usepackage[czech]{babel}
\usepackage{booktabs}
\usepackage{caption}
\usepackage{siunitx}

\usepackage{etoolbox}
\preto\tabular{\shorthandoff{-}}
%As I am using Czech babel, I have to include two aforementioned commands 
%(I was not able to use cline, cmidrule, bottomrule, toprule etc. without them)

\begin{document}

\begin{table}[h]
  \centering
  \captionsetup%
  {%
  singlelinecheck = off,
  justification   = raggedright,
  labelfont       = bf,
  }
  \begin{minipage}[b]{1.0\linewidth}
    \caption{name}%
    \begin{tabular}{@{}l SS }
      \toprule
      & \multicolumn{2}{l}{blaaaa of Ah ($j$)}  \\
      \cmidrule{2-3}
      Blaueue ($i$) & {$i-2$}     & {$i-1$}   \\
      \midrule
      1             & {$X_{a,b}$} & {$\dots$} \\
      $j-1$         & 999.9       & {$\dots$} \\
      \bottomrule
    \end{tabular}

    \smallskip \noindent Reference: J. Johnson -- Whatever
  \end{minipage}
\end{table}

\end{document}

将参考资料作为文本放在表格下方是最合理的。我已通过 将其垂直隔开\smallskip,您可以使用\medskip\bigskip代替。

具有规范的迷你页面1.0\textwidth会为主要文本生成一个当前宽度的框,因此如果材料比此宽度更宽,乳胶会向您发出警告。

在这个例子中,数学模式的切换几乎是不可避免的。该array包允许您设置默认处于数学模式的列,这样可以简化一些表格。

相关内容