LaTeX beamer:改变子弹缩进的方法?

我检查了Beamer Class手册(PDF文件)。

我无法弄清楚如何将缩进子弹分配给\ itemize。

[这是非常重要的,因为我使用了2列幻灯片,而且我不希望投影仪偷走太多的水平空间]。

Beamer只是将分项环境的布局pipe理委托给基本的LaTeX包,所以在Beamer本身中没有任何时髦可以改变列表的布局。

由于Beamer重新定义了itemize,item等,所以操作缩进等东西的完全正确的方法是重新定义Beamer模板。 我得到的印象是你不想走那么远,但如果不是这样,让我知道,我会详细说明。

至less有三种方法可以在你的文档中实现你的目标,而不用担心Beamer模板。

随着项目

在下面的代码片段中,您可以将\itemindent的值从\itemindent更改为任何您想要的值,包括负值。 0em是默认项目缩进。

这种方法的优点是列表的样式是正常的。 缺点是Beamer对itemize\item的重新定义意味着可以被操作来改变列表布局的参数的数量是有限的。 使用多行项目来获得正确的间距可能非常困难。

 \begin{itemize} \setlength{\itemindent}{0em} \item This is a normally-indented item. \end{itemize} 

随着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} 

定义一个自定义列表环境

list解决scheme的缺点可以通过定义一个新的自定义list环境来改善,这个环境基本上从Beamer重新定义了itemize环境,同时也包含\leftmargin\itemindent (等等)参数。 在序言中join以下内容:

 \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} 

我使用包enumitem 。 您可以在声明您的列表(枚举,说明,项目大小)时设置这样的边距:

 \begin{itemize}[leftmargin=0cm] \item Foo \item Bar \end{itemize} 

当然,这个包为列表提供了很多其他很好的自定义(使用'label ='来改变项目符号,使用'itemsep ='来改变项目之间的间距等 )

为新的itemize环境设置\itemindent解决了这个问题:

 \newenvironment{beameritemize} { \begin{itemize} \setlength{\itemsep}{1.5ex} \setlength{\parskip}{0pt} \setlength{\parsep}{0pt} \addtolength{\itemindent}{-2em} } { \end{itemize} }