我注意到,在 Beamer 中,放置在“itemize”环境内的“Columns”环境不尊重项目的缩进:
\documentclass{beamer}
\begin{document}
\begin{frame}
\begin{itemize}
\item item 1
\begin{columns}[t] % contents are top vertically aligned
\begin{column}{0.5\textwidth}
Contents of first column \\ split into two lines
\end{column}
\begin{column}{0.5\textwidth}
Contents of second column \\ split into two lines
\end{column}
\end{columns}
\item item 2
\end{itemize}
\end{frame} %
\end{document}
这种行为正常吗? 是否应该包含缩进以将列与项目内容对齐?
我知道我可以通过在开头插入一个空列来解决这个问题:
\begin{column}{\leftmargini}
\end{column}
但我想知道是否存在更优雅的本地解决方案。
答案1
我认为,您应该改变环境的使用方式。在外部,使用columns
-environment 来定义特定幻灯片的布局。然后用内容填充您的列,例如 -environment itemize
。
-environmentitemize
没有提供columns
-environment,因此必然会像您的示例中那样失败。
编辑
正如建议的那样:这是与类似环境的用法tabular
:
\documentclass{beamer}
\usepackage{tabularx} % adapts columnwidth
\usepackage{array} % for creating new columntypes
\usepackage{ragged2e} % for line wrapping within words
%% Define a new column for your tabular in the itemize environment.
\newcolumntype{L}{>{\RaggedRight\arraybackslash}X}
\begin{document}
\begin{frame}
\frametitle{Two columns in \texttt{itemize}}
\begin{itemize}
\item item 1
\begin{tabularx}{\linewidth}{@{} *{2}{L} @{}} % @{} to remove
% white space at the left and right
% border of the table
Contents of first column \newline split into two lines
& Contents of second column \newline split into two lines
\end{tabularx}
\item item 2
\end{itemize}
\end{frame}
\end{document}
其结果如下: