我正在尝试在 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}