Une longue table en beamer latex
J'ai une longue table comme suit. Je veux placer la table dans un seul cadre.
J'ai lu l'article sur ce site. Mais je ne peux toujours pas y parvenir. Pourriez-vous m'aider?
\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}
Réponses
Étant donné que le matériau du tableau est censé tenir dans un seul cadre, je pense que vous devez passer à la \scriptsize
taille de police relative.
Je donnerais au tableau un "aspect" plus ouvert en supprimant toutes les lignes verticales et en utilisant beaucoup moins de lignes horizontales, mais bien espacées. J'utiliserais également certaines des machines du siunitx
package pour aligner les nombres sur leurs marqueurs décimaux respectifs.

\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}
longtable
dans beamer ne conserve pas toutes les fonctionnalités telles qu'elles sont dans les classes de document telles quellesarticle
,book
etc. Par conséquent, vous devez insérer manuellement les en-têtes de colonne (si vous souhaitez les avoir) dans chaque diapositive dans le cadre.Dans votre MWE, vous utilisez l'
table
environnement, ce qui peut signifier, que vous êtes réellement intéressé par cette tableframe
. Cela peut être réalisé si vous réduisez suffisamment la taille de la police comme l'a été o @Mico dans sa réponse.Dans le cas où vous aimeriez avoir des polices plus grandes dans le tableau, vous pouvez imiter
longtable
de la manière suivante:- tableau divisé en deux parties
- chaque
tabular
environnement de table d' utilisation de pièce - dans chaque pièce insérer les en-têtes de colonnes
\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}
