Beamer 只是委托管理布局的责任itemize
环境回到基本的 LaTeX 包,因此您不需要在 Beamer 本身中做任何奇怪的事情来改变列表的外观/布局。
由于 Beamer 重新定义了 itemize、item 等,因此操作缩进等操作的完全正确方法是重新定义 Beamer 模板。我的印象是您不想走那么远,但如果情况并非如此,请告诉我,我会详细说明。
至少有三种方法可以在文档中实现您的目标,而无需使用 Beamer 模板。
With itemize
在下面的代码片段中,您可以更改\itemindent
from 0em
任何你喜欢的东西,包括负值。0em
是默认的项目缩进。
此方法的优点是列表的样式正常。缺点是Beamer重新定义了itemize
and \item
意味着可以操作来更改列表布局的参数数量是有限的。对于多行项目来说,获得正确的间距可能非常困难。
\begin{itemize}
\setlength{\itemindent}{0em}
\item This is a normally-indented item.
\end{itemize}
With list
在下面的代码片段中,第二个参数为\list
是要使用的项目符号,第三个参数是要更改的布局参数列表。这\leftmargin
参数调整整个列表项及其所有行的缩进;\itemindent
改变后续行的缩进。
此方法的优点是您拥有非 Beamer LaTeX 中列表的所有灵活性。缺点是您必须手动设置项目符号样式(和其他视觉元素)(或为您正在使用的模板确定正确的命令)。请注意,如果将第二个参数留空,则不会显示项目符号,并且您将节省一些水平空间。
\begin{list}{$\square$}{\leftmargin=1em \itemindent=0em}
\item This item uses the margin and indentation provided above.
\end{list}
定义一个customlist
环境
其缺点list
可以通过定义一个新的解决方案来改进customlist
环境基本上重新定义了itemize
来自 Beamer 的环境,还包含\leftmargin
and \itemindent
(等)参数。将以下内容放入序言中:
\makeatletter
\newenvironment{customlist}[2]{
\ifnum\@itemdepth >2\relax\@toodeep\else
\advance\@itemdepth\@ne%
\beamer@computepref\@itemdepth%
\usebeamerfont{itemize/enumerate \beameritemnestingprefix body}%
\usebeamercolor[fg]{itemize/enumerate \beameritemnestingprefix body}%
\usebeamertemplate{itemize/enumerate \beameritemnestingprefix body begin}%
\begin{list}
{
\usebeamertemplate{itemize \beameritemnestingprefix item}
}
{ \leftmargin=#1 \itemindent=#2
\def\makelabel##1{%
{%
\hss\llap{{%
\usebeamerfont*{itemize \beameritemnestingprefix item}%
\usebeamercolor[fg]{itemize \beameritemnestingprefix item}##1}}%
}%
}%
}
\fi
}
{
\end{list}
\usebeamertemplate{itemize/enumerate \beameritemnestingprefix body end}%
}
\makeatother
现在,要使用具有自定义缩进的逐项列表,您可以使用以下环境。第一个参数是为了\leftmargin
第二个是为了\itemindent
。默认值分别为 2.5em 和 0em。
\begin{customlist}{2.5em}{0em}
\item Any normal item can go here.
\end{customlist}
自定义项目符号样式可以合并到customlist
使用标准Beamer机制的解决方案\setbeamertemplate
。 (参见以下问题的答案this https://tex.stackexchange.com/questions/11168/change-bullet-style-formatting-in-beamer请在 TeX Stack Exchange 上提问以获取更多信息。)
或者,可以直接在环境中修改项目符号样式,方法是替换\usebeamertemplate{itemize \beameritemnestingprefix item}
使用您想要使用的任何项目符号样式(例如$\square$
).