我注意到 Beamercolumns
环境内部和外部的项目未水平对齐。 有办法解决这个问题吗?
代码
\documentclass{beamer}
\begin{document}
\begin{frame}[t]{Title}
\begin{itemize}
\item item outside columns
\item item outside columns
\end{itemize}
\begin{columns}
\column{.6\textwidth}
\begin{itemize}
\item item in first column
\end{itemize}
\column{.4\textwidth}
text in second column
\end{columns}
\end{frame}
\end{document}
输出
答案1
\documentclass{beamer}
\begin{document}
\begin{frame}[t]{Title}
\begin{itemize}
\item item outside columns
\item item outside columns
\end{itemize}
\begin{columns}[totalwidth=\textwidth]
\column{.6\textwidth}
\begin{itemize}
\item item in first column
\end{itemize}
\column{.4\textwidth}
text in second column
\end{columns}
\end{frame}
\end{document}
对于文档范围的解决方案,您可以使用onlytextwidth
类选项(需要 beamer v3.65 或更新版本)
\documentclass[onlytextwidth]{beamer}
\begin{document}
\begin{frame}[t]{Title}
\begin{itemize}
\item item outside columns
\item item outside columns
\end{itemize}
\begin{columns}
\column{.6\textwidth}
\begin{itemize}
\item item in first column
\end{itemize}
\column{.4\textwidth}
text in second column
\end{columns}
\end{frame}
\end{document}
答案2
添加到萨姆卡特[totalwidth=\textwidth]
的回答,下图说明了将选项(或等效地[onlytextwidth]
)传递给环境的效果columns
。
从场景 4 中可以看出,默认情况下,columns
环境会占据整个\paperwidth
。因此在场景 3 中,当两列的总宽度只有 时,它们之间会有额外的空间\textwidth
,这比 短\paperwidth
。onlytextwidth
指定选项后,columns
环境会占用与 相同的宽度\textwidth
,因此项目的水平对齐是正确的,如场景 2 所示。
代码
\documentclass[handout]{beamer}
\usepackage{tikz}
\newcommand\colwidth[1]{\tikz{
\draw[|-|](0,0)-- node[fill=white]{\texttt{#1}} (\textwidth,0);
}}
\newcommand\colenv[3][]{
\begin{columns}[#1]
\column{.6 #2}
\begin{itemize}
\item item in first column
\end{itemize}
\colwidth{.6\textbackslash{}#3}
\column{.4 #2}
text in second column
\colwidth{.4\textbackslash{}#3}
\end{columns}
}
\begin{document}
\begin{frame}
\alert{1. Outside \texttt{columns} environment}
\begin{itemize}
\item item outside columns
\end{itemize}
\colwidth{\textbackslash{}textwidth}
\bigskip
\alert{2. \texttt{columns} environment with width options}
\colenv[onlytextwidth]{\textwidth}{textwidth} % equivalently, [totalwidth=\textwidth]
\bigskip
\alert{3. \texttt{columns} environment w/o width option, width=\texttt{\textbackslash{}textwidth}}
\colenv{\textwidth}{textwidth}
\bigskip
\alert{4. \texttt{columns} environment w/o width option, width=\texttt{\textbackslash{}paperwidth}}
\colenv{\paperwidth}{paperwidth}
\end{frame}
\end{document}