我使用列类型来定义表格的宽度,但它显示“\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}