我的表格包含 10 列,但当我运行代码时,完整的表格并未显示出来。最后两列也未显示出来。
你能帮忙吗?
代码如下:
\begin{table}[H]
\begin{center}
\caption{Table 1}
\begin{tabular}{||c| c| c| c| c| c| c| c| c| c||}
\hline
$ \sigma $ & $V_0$ & a(1) & b(1) & (b-a)(1) & $ \hat{\tau}$(1) & a(2) & b(2) & (b-a)(2) & $ \hat{\tau}$(2)\\
\hline\hline
1 & 1 & 0.4151 & 2.4093 & 1.9942 & 0 & 0.6180 & 1.6180 & 1.0000 & 3.1416 \\
\hline
5 & 2.2361 & 0.2306 & 4.3367 & 4.1061 & 0 & 0.3820 & 2.6180 & 2.2360 & 3.1416 \\
\hline
10 & 3.1623 & 0.1830 & 5.4640 & 5.2810 & 0 & 0.2897 & 3.4520 & 3.1623 & 3.1416 \\
\hline
\end{tabular}
\end{center}
\end{table}
答案1
这取决于文档的边距。如果加载geometry
,您将获得更合理的边距。
除此之外,您还可以调整表中使用的字体大小和值\tabcolsep
。
我提出了两种不带 的解决方案geometry
,一种是使用代码的一般外观(水平和垂直规则),在 和 的帮助下进行了改进hhline
,cellspace
它定义了在以字母为前缀的说明符的列中单元格顶部和底部的最小垂直填充S
(Sc
这里是 而不是c
)。如果没有几何图形,我们必须将字体大小减小到\footnotesize
和。\tabcolsep
5pt
另一个解决方案只使用水平规则,使用booktabs
,它定义了不同粗细规则周围的一些垂直填充。中间规则使用 参数略微修剪(lr)
。字体大小为\normalsize
,并且\tabcolsep
为3.5pt
。
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{showframe}
\usepackage{mathtools}
\usepackage{array, caption, hhline, cellspace, booktabs}
\setlength\cellspacetoplimit{4pt}
\setlength\cellspacebottomlimit{4pt}
\renewcommand*\ShowFrameLinethickness{.3pt}
\begin{document}
\begin{table}[!ht]
\centering\footnotesize\setlength\tabcolsep{5pt}
\caption{Table 1}
\begin{tabular}{||*{10}{Sc|}|}
\hline
$ σ$ & $V₀$ & a(1) & b(1) & (b-a)(1) & $ \hat{τ}$(1) & a(2) & b(2) & (b-a)(2) & $ \hat{τ}$(2) \\
\hhline{*{10}{=}}
1 & 1 & 0.4151 & 2.4093 & 1.9942 & 0 & 0.6180 & 1.6180 & 1.0000 & 3.1416 \\
\hhline{||*{10}{-}||}
5 & 2.2361 & 0.2306 & 4.3367 & 4.1061 & 0 & 0.3820 & 2.6180 & 2.2360 & 3.1416 \\
\hhline{||*{10}{-}||}
10 & 3.1623 & 0.1830 & 5.4640 & 5.2810 & 0 & 0.2897 & 3.4520 & 3.1623 & 3.1416 \\
\hline
\end{tabular}
\end{table}
\begin{table}[!hb]
\centering\setlength\tabcolsep{3.5pt}
\caption{Table 1}
\begin{tabular}{@{\,\,}*{10}{c}@{\,\,}}
\toprule
$ σ$ & $V₀$ & a(1) & b(1) & (b-a)(1) & $ \hat{τ}$(1) & a(2) & b(2) & (b-a)(2) & $ \hat{τ}$(2) \\
\cmidrule(l{3pt}r{3pt}){1-10}
1 & 1 & 0.4151 & 2.4093 & 1.9942 & 0 & 0.6180 & 1.6180 & 1.0000 & 3.1416 \\
\addlinespace
5 & 2.2361 & 0.2306 & 4.3367 & 4.1061 & 0 & 0.3820 & 2.6180 & 2.2360 & 3.1416 \\
\addlinespace
10 & 3.1623 & 0.1830 & 5.4640 & 5.2810 & 0 & 0.2897 & 3.4520 & 3.1623 & 3.1416 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
答案2
您应该 (a) 删除所有竖线和大约一半的横线,使表格更加整洁;(b) 认真问问自己,您的读者是否真的需要看到 4 位有效数字;3 位数字(甚至 2 位数字?!)是否能传达同样多的信息?如果显示更少的数字是更好的选择(就我个人而言,我认为这是更好的选择),我建议您加载软件包siunitx
并让 LaTeX 为您执行舍入,就像下面显示的第二个表格一样。
顺便说一句,在下面的代码中我使用array
环境而不是tabular
环境,因为大多数表的内容由数学公式和数字组成。
\documentclass{article}
\usepackage{booktabs,caption,siunitx}
\begin{document}
\begin{table}[ht!]
\setlength\arraycolsep{3pt} % default: 5pt
\centering
\caption{Four digits of precision}
$\begin{array}{@{} *{10}{c} @{}}
\toprule
\sigma & V_0 & a(1) & b(1) & (b-a)(1) &
\hat{\tau}(1) & a(2) & b(2) & (b-a)(2) & \hat{\tau}(2)\\
\midrule
1 & 1 & 0.4151 & 2.4093 & 1.9942 & 0 & 0.6180 & 1.6180 & 1.0000 & 3.1416 \\
5 & 2.2361 & 0.2306 & 4.3367 & 4.1061 & 0 & 0.3820 & 2.6180 & 2.2360 & 3.1416 \\
10 & 3.1623 & 0.1830 & 5.4640 & 5.2810 & 0 & 0.2897 & 3.4520 & 3.1623 & 3.1416 \\
\bottomrule
\end{array}$
\end{table}
\begin{table}[h!]
\sisetup{round-mode=places,round-precision=3,
table-format=1.3}
\centering
\caption{Three digits of precision (automatic rounding)}
$\begin{array}{@{} c *{4}{S} c *{4}{S} @{}}
\toprule
\sigma & {V_0} & {a(1)} & {b(1)} & {(b-a)(1)} &
\hat{\tau}(1) & {a(2)} & {b(2)} & {(b-a)(2)} & {\hat{\tau}(2)}\\
\midrule
1 & 1 & 0.4151 & 2.4093 & 1.9942 & 0 & 0.6180 & 1.6180 & 1.0000 & 3.1416 \\
5 & 2.2361 & 0.2306 & 4.3367 & 4.1061 & 0 & 0.3820 & 2.6180 & 2.2360 & 3.1416 \\
10 & 3.1623 & 0.1830 & 5.4640 & 5.2810 & 0 & 0.2897 & 3.4520 & 3.1623 & 3.1416 \\
\bottomrule
\end{array}$
\end{table}
\end{document}