我有一张如下的长表。我想将表格放入一个框架中。
我读邮报在这个网站上。但我仍然无法实现。你能帮助我吗?
\documentclass[mathserif]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[english]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usetheme{Berlin}
\usepackage{graphics}
\usepackage{times}
\usepackage{amsmath}
\usepackage{tabularx}
\usepackage{longtable}
\graphicspath{{figures/}}
\usepackage{subfig}
\usepackage{hyperref}
\usepackage{cleveref}
\PassOptionsToPackage{force}{filehook}
\begin{document}
\begin{frame}[allowframebreaks]
\begin{table}[hbt!]
\begin{center}
\begin{tabular}{|c|c|c|c|c|c|c|}\hline
$x$&$t$&$U_{{\it numeric}} \left( x,t \right) $&$U_{{\it exact}} \left( x,t \right) $&${\it Error}$&${\it Refsolution}$&${\it RefError}$\\ \hlin\hline
$0$&$0$&$ 0.7938824$&$1$&$ 0.2061176$&$ 1.0$&$ 0.0\, \mathrm{E}^{+00}$ \\ \hline
$0$&$ 0.2$&$ 1.006211$&$ 0.9955687$&$ 0.0106423$&$ 0.9902$&$ 5.400\, \mathrm{E}^{-03}$ \\ \hline
$0$&$ 0.4$&$ 0.9876852$&$ 0.9824309$&$ 0.0052543$&$ 0.9627$&$ 1.980\, \mathrm{E}^{-02}$ \\ \hline
$0$&$ 0.6$&$ 0.9503579$&$ 0.9610430$&$ 0.0106851$&$ 0.9235$&$ 3.750\, \mathrm{E}^{-02}$ \\ \hline
$0$&$ 0.8$&$ 0.8949527$&$ 0.9321290$&$ 0.0371763$&$ 0.8827$&$ 4.950\, \mathrm{E}^{-02}$ \\ \hline
$0$&$ 1.0$&$ 0.8224107$&$ 0.8966296$&$ 0.0742189$&$ 0.8542$&$ 4.250\, \mathrm{E}^{-02}$ \\ \hline
$ 0.5$&$0$&$ 1.009713$&$ 0.9845362$&$ 0.0251768$&$ 0.9845$&$ 0.0\, \mathrm{E}^{+00}$ \\ \hline
$ 0.5$&$ 0.2$&$ 0.9953282$&$ 0.9966049$&$ 0.0012767$&$ 0.9994$&$ 2.800\, \mathrm{E}^{-03}$ \\ \hline
$ 0.5$&$ 0.4$&$ 0.9988702$&$ 0.9999306$&$ 0.0010604$&$ 0.9946$&$ 5.300\, \mathrm{E}^{-03}$ \\ \hline
$ 0.5$&$ 0.6$&$ 0.9953922$&$ 0.9943961$&$ 0.0009961$&$ 0.9734$&$ 2.100\, \mathrm{E}^{-02}$ \\ \hline
$ 0.5$&$ 0.8$&$ 0.9850632$&$ 0.9801960$&$ 0.0048672$&$ 0.9459$&$ 3.430\, \mathrm{E}^{-02}$ \\ \hline
$ 0.5$&$ 1.0$&$ 0.9683171$&$ 0.9578230$&$ 0.0104941$&$ 0.9316$&$ 2.620\, \mathrm{E}^{-02}$ \\ \hline
$ 1.0$&$0$&$ 0.940015$&$ 0.9400148$&$ 0.0000002$&$ 0.9400$&$ 0.0\, \mathrm{E}^{+00}$ \\ \hline
$ 1.0$&$ 0.2$&$ 0.9671292$&$ 0.9671279$&$ 0.0000013$&$ 0.9775$&$ 1.040\, \mathrm{E}^{-02}$ \\ \hline
$ 1.0$&$ 0.4$&$ 0.9865112$&$ 0.9865114$&$ 0.0000002$&$ 0.9974$&$ 1.090\, \mathrm{E}^{-02}$ \\ \hline
$ 1.0$&$ 0.6$&$ 0.9975042$&$ 0.9975042$&$ 0.0$&$ 0.9974$&$ 1.0\, \mathrm{E}^{-04}$ \\ \hline
$ 1.0$&$ 0.8$&$ 0.9997222$&$ 0.9997222$&$ 0.0$&$ 0.9801$&$ 1.960\, \mathrm{E}^{-02}$ \\ \hline
$ 1.0$&$ 1.0$&$ 0.9930872$&$ 0.9930876$&$ 0.0000004$&$ 0.9556$&$ 3.750\, \mathrm{E}^{-02}$ \\ \hline
\end{tabular}
\end{center}
\end{table}
\end{frame}
\end{document}
答案1
由于表格材料应该适合单个框架,因此我认为您需要切换到\scriptsize
相对字体大小。
我会删除所有垂直线,使用更少但间距适当的水平线,让表格看起来更开放。我还会使用软件包中的一些机制siunitx
将数字对齐到各自的小数点标记上。
\documentclass[mathserif]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
%%% \usepackage{lmodern} % is overridden by 'times' package
\usepackage[english]{babel}
\usepackage{amsmath}
%%% \usepackage{amsfonts} % is loaded automatically by 'amssymb' package
\usepackage{amssymb}
\usepackage{graphicx}
\graphicspath{{figures/}}
%%% \usepackage{graphics} % don't load both 'graphicx' and 'graphics'
\usetheme{Berlin}
\usefonttheme{professionalfonts}
\usepackage{newtxtext,newtxmath}
\usepackage{booktabs,siunitx}
\usepackage{amsmath}
\usepackage{tabularx}
\usepackage{longtable}
\usepackage{subfig}
%%% \usepackage{hyperref} % is loaded automatically by 'beamer'
\usepackage{cleveref}
\PassOptionsToPackage{force}{filehook}
\begin{document}
\begin{frame}%[allowframebreaks]
\sisetup{group-digits=false}
%\begin{table}[hbt!]
%\begin{center}
\centering
\scriptsize
\begin{tabular}{@{}
*{2}{S[table-format=1.1]}
*{3}{S[table-format=1.7]}
S[table-format=1.4]
S[table-format=1.3e-1]
@{} }
\toprule
{$x$} & {$t$} & {$U_{\mathit{numeric}} ( x,t )$} & {$U_{\mathit{exact}} ( x,t )$}
& {$\mathit{Error}$} & {$\mathit{RefSolution}$} & {$\mathit{RefError}$} \\
\midrule
0 & 0 & 0.7938824 & 1 & 0.2061176 & 1.0 & 0.0e+00 \\
0 & 0.2 & 1.006211 & 0.9955687 & 0.0106423 & 0.9902 & 5.400e-03 \\
0 & 0.4 & 0.9876852 & 0.9824309 & 0.0052543 & 0.9627 & 1.980e-02 \\
0 & 0.6 & 0.9503579 & 0.9610430 & 0.0106851 & 0.9235 & 3.750e-02 \\
0 & 0.8 & 0.8949527 & 0.9321290 & 0.0371763 & 0.8827 & 4.950e-02 \\
0 & 1.0 & 0.8224107 & 0.8966296 & 0.0742189 & 0.8542 & 4.250e-02 \\
\addlinespace
0.5 & 0 & 1.009713 & 0.9845362 & 0.0251768 & 0.9845 & 0.0e+00 \\
0.5 & 0.2&0.9953282 & 0.9966049 & 0.0012767 & 0.9994 & 2.800e-03 \\
0.5 & 0.4&0.9988702 & 0.9999306 & 0.0010604 & 0.9946 & 5.300e-03 \\
0.5 & 0.6&0.9953922 & 0.9943961 & 0.0009961 & 0.9734 & 2.100e-02 \\
0.5 & 0.8&0.9850632 & 0.9801960 & 0.0048672 & 0.9459 & 3.430e-02 \\
0.5 & 1.0&0.9683171 & 0.9578230 & 0.0104941 & 0.9316 & 2.620e-02 \\
\addlinespace
1.0 & 0 &0.940015 & 0.9400148 & 0.0000002 & 0.9400 & 0.0e+00 \\
1.0 & 0.2&0.9671292 & 0.9671279 & 0.0000013 & 0.9775 & 1.040e-02 \\
1.0 & 0.4&0.9865112 & 0.9865114 & 0.0000002 & 0.9974 & 1.090e-02 \\
1.0 & 0.6&0.9975042 & 0.9975042 & 0.0 & 0.9974 & 1.0e-04 \\
1.0 & 0.8&0.9997222 & 0.9997222 & 0.0 & 0.9801 & 1.960e-02 \\
1.0 & 1.0&0.9930872 & 0.9930876 & 0.0000004 & 0.9556 & 3.750e-02 \\
\bottomrule
\end{tabular}
%\end{center}
%\end{table}
\end{frame}
\end{document}
答案2
longtable
在 beamer 中不会保留文档类中的所有功能,例如article
、book
等。因此,您需要在框架中的每个幻灯片中手动插入列标题(如果您愿意的话)。在您使用的 MWE
table
环境中,这意味着您实际上感兴趣的是表格是否适合一个frame
。如果您像@Mico 在他的回答中那样充分减小字体大小,则可以实现这一点。如果您希望表格中的字体更大,可以
longtable
按照以下方式操作:- 桌子分成两部分
- 每个部分都使用
tabular
表环境 - 在每个部分中插入列标题
\documentclass[mathserif]{beamer}
\usetheme{Berlin}
\setbeamertemplate{frametitle continuation}%
{(\insertcontinuationcount)%
}% end frame title continuation
\usepackage[T1]{fontenc}
\usepackage{times}
\usepackage[english]{babel}
\usepackage{siunitx}
\begin{document}
\begin{frame}[allowframebreaks]
\frametitle{My longtable}
\sisetup{table-format=1.7,
tight-spacing=true}
\setlength\tabcolsep{3pt}
\setlength\extrarowheight{1pt}
\small
\begin{tabular}{|*{2}{S[table-format=1.1]|}
S|S|S|
S[table-format=1.3]|
S[table-format=1.3e-1]|}
\hline
{x} & {t} & {$U_{\mathrm{numeric}}(x,t)$}
& {$U_{\mathrm{exact}}(x,t)$}
& {Error}
& {Ref\textsubscript{solution}}
& {Ref\textsubscript{Error}} \\ \hline\hline
0 & 0 & 0.7938824 & 1 & 0.2061176 & 1.0 & 0.0 e0 \\ \hline
0 & 0.2 & 1.006211 & 0.9955687 & 0.0106423 & 0.9902 & 5.400 e-03 \\ \hline
0 & 0.4 & 0.9876852 & 0.9824309 & 0.0052543 & 0.9627 & 1.980 e-02 \\ \hline
0 & 0.6 & 0.9503579 & 0.9610430 & 0.0106851 & 0.9235 & 3.750 e-02 \\ \hline
0 & 0.8 & 0.8949527 & 0.9321290 & 0.0371763 & 0.8827 & 4.950 e-02 \\ \hline
0 & 1.0 & 0.8224107 & 0.8966296 & 0.0742189 & 0.8542 & 4.250 e-02 \\ \hline
0.5 & 0 & 1.009713 & 0.9845362 & 0.0251768 & 0.9845 & 0.0 E0 \\ \hline
0.5 & 0.2 & 0.9953282 & 0.9966049 & 0.0012767 & 0.9994 & 2.800 e-03 \\ \hline
0.5 & 0.4 & 0.9988702 & 0.9999306 & 0.0010604 & 0.9946 & 5.300 e-03 \\ \hline
\end{tabular}
%---------------------------------------------------------------%
\begin{tabular}{|*{2}{S[table-format=1.1]|}
S|S|S|
S[table-format=1.3]|
S[table-format=1.3,
table-figures-exponent=2]|}
\hline
{x} & {t} & {$U_{\mathrm{numeric}}(x,t)$}
& {$U_{\mathrm{exact}}(x,t)$}
& {Error}
& {Ref\textsubscript{solution}}
& {Ref\textsubscript{Error}} \\ \hline\hline
0.5 & 0.6 & 0.9953922 & 0.9943961 & 0.0009961 & 0.9734 & 2.100 e-02 \\ \hline
0.5 & 0.8 & 0.9850632 & 0.9801960 & 0.0048672 & 0.9459 & 3.430 e-02 \\ \hline
0.5 & 1.0 & 0.9683171 & 0.9578230 & 0.0104941 & 0.9316 & 2.620 e-02 \\ \hline
1.0 &0 & 0.940015 & 0.9400148 & 0.0000002 & 0.9400 & 0.0 e0 \\ \hline
1.0 & 0.2 & 0.9671292 & 0.9671279 & 0.0000013 & 0.9775 & 1.040 e-02 \\ \hline
1.0 & 0.4 & 0.9865112 & 0.9865114 & 0.0000002 & 0.9974 & 1.090 e-02 \\ \hline
1.0 & 0.6 & 0.9975042 & 0.9975042 & 0.0 & 0.9974 & 1.0 e-4 \\ \hline
1.0 & 0.8 & 0.9997222 & 0.9997222 & 0.0 & 0.9801 & 1.960 e-02 \\ \hline
1.0 & 1.0 & 0.9930872 & 0.9930876 & 0.0000004 & 0.9556 & 3.750 e-02 \\ \hline
\end{tabular}
\end{frame}
\end{document}