\hline 未对齐并将表格移至左侧

\hline 未对齐并将表格移至左侧

我使用列类型来定义表格的宽度,但它显示“\hline未对齐”的错误消息。如果我只使用\begin{tabular}{| l | c | c | c | c |},错误消息就会消失,但列真的很窄。另外,我怎样才能将表格移到文档的左侧。非常感谢您的帮助。

- - - - - - - 代码 - - - - - - - - -

\documentclass{article}
\usepackage{array}
\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}

\begin{document}

\begin{table}[!h]
\begin{tabular}{| L{4.2cm} | C{2.6cm}}  | C{2.6cm} | C{2.6cm} | C{2.61cm} |} 
\hline 
& {\bf 1988} & {\bf 1989} & {\bf 1990} & {\bf Change} \\
\hline
Score & 249 & 234 & 266 & +17 \\
\hline
Percent High & 14 & 9 & 26 & +12 \\
\hline
\end{tabular}
\end{table}

\end{document}

答案1

第一列中有一个额外的虚假右括号C{2.6cm};删除它。我使用了一个\makebox将表格相对于文本区域居中:

\documentclass{article}
\usepackage{array}

\newcolumntype{L}[1]{>{\raggedright\arraybackslash}m{#1}}
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}

\begin{document}

\begin{table}
\makebox[\linewidth][c]{\begin{tabular}{| L{4.2cm} | C{2.6cm}  | C{2.6cm} | C{2.6cm} | C{2.61cm} |} 
\hline 
& \bfseries 1988 & \bfseries 1989 & \bfseries 1990 & \bfseries Change \\
\hline
Score & 249 & 234 & 266 & +17 \\
\hline
Percent High & 14 & 9 & 26 & +12 \\
\hline
\end{tabular}}
\end{table}

\end{document}

一些评论:

  • 我改变了你的列的定义,抑制了\let\hspace命令。

  • \bf是一个旧命令,不应再使用;请改用\bfseries;由于单元格形成一个组,因此无需明确分组。

  • 建议不要使用过于严格的选项[!h]作为位置说明符;请使用限制较少的选项(或者根本不要使用)。

  • 请(作为建议)考虑使用booktabs为您的表格打包(它们看起来会好很多;但没有垂直规则)。

  • 由于您的表格中有数值,因此您可以考虑使用siunitx以进行可能的对齐。

仅供比较,原始表格和使用 booktabs 的同一张表格:

\documentclass{article}
\usepackage{array}
\usepackage{booktabs}

\newcolumntype{L}[1]{>{\raggedright\arraybackslash}m{#1}}
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}

\begin{document}

\begin{table}
\makebox[\linewidth][c]{\begin{tabular}{| L{4.2cm} | C{2.6cm}  | C{2.6cm} | C{2.6cm} | C{2.61cm} |} 
\hline 
& \bfseries 1988 & \bfseries 1989 & \bfseries 1990 & \bfseries Change \\
\hline
Score & 249 & 234 & 266 & +17 \\
\hline
Percent High & 14 & 9 & 26 & +12 \\
\hline
\end{tabular}}
\end{table}

\begin{table}[!ht]% [!ht] used just for the example
\makebox[\linewidth][c]{\begin{tabular}{ L{4.2cm} C{2.6cm} C{2.6cm} C{2.6cm} C{2.61cm}} 
\toprule
& \bfseries 1988 & \bfseries 1989 & \bfseries 1990 & \bfseries Change \\
\midrule
Score & 249 & 234 & 266 & +17 \\
Percent High & 14 & 9 & 26 & +12 \\
\bottomrule
\end{tabular}}
\end{table}

\end{document}

在此处输入图片描述

相关内容