在 beamer 环境中制作大型表格

在 beamer 环境中制作大型表格

我正在尝试在 beamer 环境中制作表格以供演示。不幸的是,longtable 根本不起作用。这是我的尝试:

\documentclass{beamer}
\usetheme{AnnArbor}
\usecolortheme{beaver}
\setbeamercolor{titlelike}{parent=structure,bg=white}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{wrapfig}
\usepackage{blindtext}
\usepackage{amssymb}
\usepackage{makecell, longtable}
\usepackage[caption=false]{subfig}
\usepackage{multirow}
\usepackage{booktabs}
\usepackage{adjustbox}

\begin{frame}
I calibrate the model according to the following parameters:    
    \begin{tabular}{|c|c|c|c|c|c|c|c|} \hline
    $\alpha_n$ & $\alpha_o$ & $\alpha_k$ & $\alpha_s$ & $\mu$ & $\eta$ & $\rho$ & $\nu$  \\ 
    \hline
        0.1 & 0.05 & 0.3 & 0.2 & 0.8 & 1.095 & 0.05 & 0.01\\
        \hline

    \end{tabular}

The model is simulated numerically and gives the following results:

    \begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|} \hline
    $g_D^{\ast}$ & $E^{\ast}$ & $w_n^{\ast}$ & $k_n^{\ast}$ & $\iota_n^{\ast}$ & $\iota_o^{\ast}$ & $\iota_k^{\ast}$ & $\zeta^{\ast}$ & $N_n^{\ast}$
    & $N_o^{\ast}$ &  $N_k^{\ast}$ &
    $N_s^{\ast}$
    \\
    \hline
    0.103& 1.16 & 1.15 & 0.21 & 0.46 & 1.74 & 0.28 & 0.33 & 0.19 & 0.41 & 0.11 & 0.29\\
    \hline
    
\end{tabular}

\end{frame}

第一个问题是我应该调整第二个表格的大小,因为它太大了。第二个问题是我无法在表格上方或下方书写,因为文字会附着在表格上。此外,在这种情况下我该如何添加标题(作为 longtable)?

答案1

  • 第一个问题是我应该调整第二个表的大小,因为它太大了。

    你选择合适的字体大小,例如,\tiny或者(更好的)重新调整你的表格,这样你的观众就不需要放大镜了

  • 另外,在这种情况下我如何添加标题(如 longtable)?

    如果您使用table表格周围的环境,则可以通过\caption宏添加标题

无关:

无需加载 graphicx、hyperref 或 amssymb,beamer 会自动为您加载它们。

wrapfig 包仅在没有文本墙的幻灯片上才有用。在大多数情况下,列应该比 wrapfig 更容易使用。


\documentclass{beamer}
\usetheme{AnnArbor}
\usecolortheme{beaver}
\setbeamercolor{titlelike}{parent=structure,bg=white}
%\usepackage{graphicx}
%\usepackage{hyperref}
%\usepackage{wrapfig}
\usepackage{blindtext}
%\usepackage{amssymb}
\usepackage{makecell, longtable}
\usepackage[caption=false]{subfig}
\usepackage{multirow}
\usepackage{booktabs}
\usepackage{adjustbox}
\begin{document}
\begin{frame}
I calibrate the model according to the following parameters:    
\begin{table}
    \begin{tabular}{|c|c|c|c|c|c|c|c|} \hline
    $\alpha_n$ & $\alpha_o$ & $\alpha_k$ & $\alpha_s$ & $\mu$ & $\eta$ & $\rho$ & $\nu$  \\ 
    \hline
        0.1 & 0.05 & 0.3 & 0.2 & 0.8 & 1.095 & 0.05 & 0.01\\
        \hline
    \end{tabular}
\caption{some caption for the table}
\label{foo}    
\end{table}

The model is simulated numerically and gives the following results:

\begin{table}
{\tiny
    \begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|c|} \hline
    $g_D^{\ast}$ & $E^{\ast}$ & $w_n^{\ast}$ & $k_n^{\ast}$ & $\iota_n^{\ast}$ & $\iota_o^{\ast}$ & $\iota_k^{\ast}$ & $\zeta^{\ast}$ & $N_n^{\ast}$
    & $N_o^{\ast}$ & $N_o^{\ast}$ & $N_k^{\ast}$
   & $N_s^{\ast}$
    \\
    \hline
    0.103& 1.16 & 1.15 & 0.21 & 0.46 & 1.74 & 0.28 & 0.33 & 0.19 & 0.41 & 0.11 & 0.29 & ???\\
    \hline
\end{tabular}}
\caption{some caption for the table}
\label{bar}
\end{table}

\end{frame}

\end{document}

答案2

由于beamer文档没有“浮动”对象(在 LaTeX 特定意义上的“浮动”),因此我不会使用table环境。而且,由于每个表格前面的文本几乎说明了每个表格的内容,因此也不需要\caption语句。

我将为tabular*第二个表格使用环境并将其整体宽度设置为\textwidth。然后,将其设置\tabcolsep为 0pt 并使用该@{\extracolsep{\fill}}设备让 LaTeX 计算出可用的最大列间空白量。

观察通过使用tabular*环境,它是不是需要将字体大小调整\tiny为使表格适合文本块。事实上,字体大小根本不必减小。

在此处输入图片描述

\documentclass{beamer}
\usepackage{booktabs,array}
\newcolumntype{C}{>{$}c<{$}} % centered, automatic inline math mode

\begin{document}
\begin{frame}
I calibrate the model according to the following parameters:
\[
\begin{array}{@{} *{8}{c} @{}}
%\multicolumn{8}{c}{\mbox{Calibration}} \\[1ex]
\alpha_n & \alpha_o & \alpha_k & \alpha_s & \mu & \eta & \rho & \nu \\
\midrule
0.1 & 0.05 & 0.3 & 0.2 & 0.8 & 1.095 & 0.05 & 0.01 
\end{array}
\]


\bigskip
I simulate the model numerically and obtain the 
following values for the endogenous variables:
\[
\setlength\tabcolsep{0pt}
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} *{12}{C} }
%\multicolumn{12}{c}{\mbox{Benchmark simulation}}\\[1ex]
g_D^{\ast} & E^{\ast} & w_n^{\ast} & k_n^{\ast} & \iota_n^{\ast} & \iota_o^{\ast} & 
\iota_k^{\ast} & \zeta^{\ast} & N_n^{\ast} & N_o^{\ast} & N_k^{\ast} & N_s^{\ast} \\
\midrule
0.103 & 1.16 & 1.15 & 0.21 & 0.46 & 1.74 & 0.28 & 0.33 & 0.19 & 0.41 & 0.11 & 0.29 
\end{tabular*}
\]

\end{frame}
\end{document}

附录,受到@samcarter_is_at_topanswers.xyz 的评论的启发:

  • 虽然上面的答案表明,在一行中显示所有 12 个内生变量的值是可行的,但间距非常小。特别是对于文档而言beamer,最好不要进行这种视觉超载。相反,只需将 12 列表格拆分为两个较小的表,分别包含(例如)7 列和 5 列。

  • 在文档中提供丰富的视觉指示几乎不会出错。例如,可以使用环境和两个指令beamer为页面提供更明确的视觉结构。itemize\item

实施这些想法将导致以下结果:

在此处输入图片描述

\documentclass{beamer}
\usepackage{booktabs} % for \midrule macro

\begin{document}
\begin{frame}
\begin{itemize}

\item Calibrate the model. 

Choice of values for the 8 parameters:
\[
\begin{array}{@{} *{8}{c} @{}}
\alpha_n & \alpha_o & \alpha_k & \alpha_s & \mu & \eta & \rho & \nu \\
\midrule
0.1 & 0.05 & 0.3 & 0.2 & 0.8 & 1.095 & 0.05 & 0.01 
\end{array}
\]

\item Simulate the model numerically. 

Solution values for the 12~endogenous variables:
\begin{gather*}
\begin{array}{@{} *{7}{c} @{}}
g_D^* & E^* & w_n^* & k_n^* & \iota_n^* & \iota_o^* & \iota_k^* \\
\midrule
0.103 & 1.16 & 1.15 & 0.21 & 0.46 & 1.74 & 0.28 
\end{array}\\[2mm]
\begin{array}{@{} *{5}{c} @{}}
\zeta^* & N_n^* & N_o^* & N_k^* & N_s^* \\
\midrule
0.33 & 0.19 & 0.41 & 0.11 & 0.29 
\end{array}
\end{gather*}

\end{itemize}

\end{frame}
\end{document}

相关内容