这个表的代码有错误吗?

这个表的代码有错误吗?

我正在尝试使用ScribTeX使用以下代码:

\documentclass[12pt,oneside,reqno]{amsart}
\usepackage{amssymb}
\usepackage{mathtools}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\makeatletter
\def\@setcopyright{}
\def\serieslogo@{}
\makeatother
\begin{document}
\begin{center}
\label{T1} 
\begin{tabular}{|1|1|1|1|1|1|1|}              
\hline 
$r/r_b$ & $\frac{8\pi G}{c^4}pr_b^2$ & $\frac{8\pi G}{c^2}\rho r_b^2$ & $\Big (    \frac{p}{\rho c^2} \Big )$ & $\frac{1}{c^2}\Big(\frac{dp}{d\rho}\Big)$ & $Z$ & $E\times r_b^2$ \\ \hline
0 & 0.095358 & 1.753927 & 0.054368 & 0.141513 & 0.502225 & 0 \\ \hline
0.1 & 0.093012 & 1.741188 & 0.053419 & 0.140512 & 0.499676 & 0.0000044\\ 
\hline
\end{tabular}
\end{center}
\end{document}​

当我运行代码时,它返回 7 个错误,尽管表格制作得很完美。这些无害错误的原因是什么,我该如何消除它们。我想问的第二个问题是如何给表格添加标题?

答案1

是的,您需要使用lrc作为tabular列说明符,而不是1,除非您将其设为\newcolumntype{1}{<col spec>}使用array。您可以将标题作为普通文本放在之前tabular,或使用语句将其作为表格的一部分插入\multicolumn{7}{c}{<heading>} \\

在此处输入图片描述

\documentclass{amsart}
\begin{document}
\begin{center}
\textbf{This is a heading}
\begin{tabular}{|l|l|l|l|l|l|l|}              
\hline 
$r/r_b$ & $\frac{8\pi G}{c^4}pr_b^2$ & $\frac{8\pi G}{c^2}\rho r_b^2$ & $\Big (    \frac{p}{\rho c^2} \Big )$ & $\frac{1}{c^2}\Big(\frac{dp}{d\rho}\Big)$ & $Z$ & $E\times r_b^2$ \\ \hline
0 & 0.095358 & 1.753927 & 0.054368 & 0.141513 & 0.502225 & 0 \\ \hline
0.1 & 0.093012 & 1.741188 & 0.053419 & 0.140512 & 0.499676 & 0.0000044\\ 
\hline
\end{tabular}
\end{center}
\end{document}

答案2

正如 Martin 和 Werner 所说,1 不是列格式说明符,您可以改用它l。七个 1 导致七个错误。

关于您的第二个问题:要获取表格的标题,请使用\caption{title}。为此,建议使用table环境,请参见下文。

一些建议:

  • 您无需编写七次相同的格式,只需加载array包并说

    \begin{tabular}{|*7{l|}}
    
  • 您可以提高\arraystretch以获得更好的垂直间距。

  • 避免使用垂直规则,而仅使用水平规则可能会更好。

  • booktabs包提供了很好的规则。

  • \label如果没有之前请勿使用\caption

  • 考虑使用浮动环境,例如tableLaTeX 实现的良好放置。

  • 也许可以使用 将标题单元格居中\multicolum{1}{c}{...}

表格示例

\documentclass[12pt,oneside,reqno]{amsart}
\usepackage{amssymb}
\usepackage{mathtools}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\makeatletter
\def\@setcopyright{}
\def\serieslogo@{}
\makeatother
\usepackage{booktabs}
\begin{document}
\begin{table}[ht]
\centering
\caption{First table}
\label{T1}
\renewcommand*{\arraystretch}{1.6}
\begin{tabular}{*7l}
\toprule[1.5pt]
  $r/r_b$ & $\frac{8\pi G}{c^4}pr_b^2$ & $\frac{8\pi G}{c^2}\rho r_b^2$ &
    $\Big (    \frac{p}{\rho c^2} \Big )$ &
    $\frac{1}{c^2}\Big(\frac{dp}{d\rho}\Big)$ & $Z$ & $E\times r_b^2$ \\
\midrule
  0 & 0.095358 & 1.753927 & 0.054368 & 0.141513 & 0.502225 & 0 \\
  0.1 & 0.093012 & 1.741188 & 0.053419 & 0.140512 & 0.499676 & 0.0000044\\ 
\bottomrule[1.5pt]
\end{tabular}
\end{table}
\end{document}​

答案3

问题在于您使用1(一)而不是l(小写 L)作为列规范:

这意味着:

\begin{tabular}{|1|1|1|1|1|1|1|}

应该:

\begin{tabular}{|l|l|l|l|l|l|l|}

在您使用的字体中这可能很难区分。

相关内容