我正在尝试创建一张包含三列的科学海报(在 Beamer 环境中)。效果很好,唯一的问题是列之间的间隔太大,而且我找不到覆盖 Beamer 指定的默认值的方法。
我知道,在表格环境中,我可以使用\renewcommand\tabcolsep{6pt}
是否有类似的column
环境?
我将\begin{columns} \column{.3\textwidth}
其用于我的专栏。我使用beamerposter
包,但据我了解,它嵌入在beamer
文档类中,因此我认为 beamer 的命令也可以正常工作。
谢谢。这是一个可行的示例。您可以看到两列之间的间距约为 2 厘米,我希望能够修改这个间距。
\documentclass{beamer}
\mode<presentation>
\usepackage{lipsum}
\usepackage[orientation=landscape,size=a0,scale=1.4,debug]{beamerposter}
% Display a grid to help align images
\beamertemplategridbackground[1cm]
\begin{document}
\begin{frame}[t]{}
\vspace{-40pt}
\begin{columns}[t]
\begin{column}[t]{0.305\linewidth}
\lipsum
\end{column}
\begin{column}[t]{0.305\linewidth}
\lipsum
\end{column}
\begin{column}[t]{0.305\linewidth}
\lipsum
\end{column}
\end{columns}
\end{frame}
\end{document}
答案1
减少列间距的唯一方法是增加列宽。您可以手动执行此操作,也可以定义辅助长度来为您进行计算;在下面的示例中,您只需设置所需的值,就会为\MyColSep
您\MyColWd
提供产生所需间隔的列宽:
\documentclass{beamer}
\usepackage[orientation=landscape,size=a0,scale=1.4,debug]{beamerposter}
\usepackage{lipsum}
\usepackage{calc}
\beamertemplategridbackground[1cm]
\newlength\MyColSep
\setlength\MyColSep{1cm}
\newlength\MyColWd
\setlength\MyColWd{0.3333\textwidth-0.6666666\MyColSep}
\begin{document}
\begin{frame}[t]{}
\begin{columns}[t]
\begin{column}[t]{\MyColWd}
\lipsum[1-3]
\end{column}
\begin{column}[t]{\MyColWd}
\lipsum[1-3]
\end{column}
\begin{column}[t]{\MyColWd}
\lipsum[1-3]
\end{column}
\end{columns}
\end{frame}
\end{document}
要控制边距,您可以使用\setbeamersize
,a 和onlytextwidth
环境选项columns
:
\documentclass{beamer}
\usepackage[orientation=landscape,size=a0,scale=1.4,debug]{beamerposter}
\usepackage{lipsum}
\usepackage{calc}
\beamertemplategridbackground[1cm]
\setbeamersize{text margin left=3cm,text margin right=3cm}
\newlength\MyColSep
\setlength\MyColSep{1cm}
\newlength\MyColWd
\setlength\MyColWd{0.3333\textwidth-0.66666\MyColSep}
\begin{document}
\begin{frame}[t]{}
\begin{columns}[onlytextwidth]
\begin{column}[t]{\MyColWd}
\lipsum[1-3]
\end{column}
\begin{column}[t]{\MyColWd}
\lipsum[1-3]
\end{column}
\begin{column}[t]{\MyColWd}
\lipsum[1-3]
\end{column}
\end{columns}
\end{frame}
\end{document}
答案2
为了得到你想要的,你需要调整两个都海报的外边距和列的大小。如果你只是增加列所占的比例\textwidth
,你的左右边距就会太窄,所以你也需要手动调整。以下是一个例子:
\documentclass{beamer}
\usepackage{beamerposter}
\setlength{\oddsidemargin}{1in} % adjust as necessary
\usepackage{lipsum}
\begin{document}
\begin{frame}
\begin{columns}
\column{.33\textwidth} % adjust this size as necessary (or use Gonzalo's command).
\lipsum[1-5]
\column{.33\textwidth}
\lipsum[1-5]
\column{.33\textwidth}
\lipsum[1-5]
\end{columns}
\end{frame}
\end{document}
答案3
我自己也为此苦恼过(虽然是为了演示而不是为了制作海报),我想到最简单的解决方案是插入负水平空间。这有点老套,但提供了很大的灵活性。
\documentclass{beamer}
\usepackage{beamerposter}
\usepackage{lipsum}
\begin{document}
\begin{frame}
\begin{columns}
\begin{column}{.33\textwidth}
\lipsum[1-5]
\end{column}
\hspace{-0.33cm}\begin{column}{.33\textwidth}
\lipsum[1-5]
\end{column}
\hspace{-0.33cm}\begin{column}{.33\textwidth}
\lipsum[1-5]
\end{column}
\end{columns}
\end{frame}
\end{document}