首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >LaTeX beamer:改变项目符号缩进的方法?

LaTeX beamer:改变项目符号缩进的方法?
EN

Stack Overflow用户
提问于 2010-04-10 06:10:52
回答 5查看 114.7K关注 0票数 49

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

我不知道如何将缩进项目符号分配更改为\itemize。

这一点很重要,因为我使用的是2列幻灯片,我不希望beamer窃取太多的水平空间。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-04-10 16:59:43

Beamer只是将管理itemize环境布局的责任委托给基本的LaTeX包,所以你不需要在Beamer本身做任何时髦的事情来改变列表的外观/布局。

由于Beamer重新定义了itemize、item等,因此处理诸如缩进之类的东西的完全正确的方法是重新定义Beamer模板。我得到的印象是,您并不打算走那么远,但如果不是这样,请让我知道,我会详细说明。

至少有三种方法可以在文档中实现您的目标,而无需使用Beamer模板。

使用itemize

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

这种方法的优点是列表的样式是正常的。缺点是Beamer对itemize\item的重新定义意味着可用于更改列表布局的参数数量有限。对于多行项目来说,很难获得正确的间距。

代码语言:javascript
运行
复制
\begin{itemize}
  \setlength{\itemindent}{0em}
  \item This is a normally-indented item.
\end{itemize}

使用list

在下面的代码片段中,\list的第二个参数是要使用的项目符号,第三个参数是要更改的布局参数列表。\leftmargin参数调整整个列表项及其所有行的缩进;\itemindent改变后续行的缩进。

这种方法的优点是,您拥有非波束LaTeX中列表的所有灵活性。缺点是您必须手动设置项目符号样式(和其他视觉元素)(或者为您正在使用的模板确定正确的命令)。请注意,如果将第二个参数保留为空,则不会显示项目符号,并且可以节省一些水平空间。

代码语言:javascript
运行
复制
\begin{list}{$\square$}{\leftmargin=1em \itemindent=0em}
  \item This item uses the margin and indentation provided above.
\end{list}

定义customlist环境

list解决方案的缺点可以通过定义一个新的customlist环境来改进,该环境基本上重新定义了Beamer的itemize环境,但也合并了\leftmargin\itemindent (等)。参数。在你的前言中加入以下内容:

代码语言:javascript
运行
复制
\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。

代码语言:javascript
运行
复制
\begin{customlist}{2.5em}{0em}
   \item Any normal item can go here.
\end{customlist}

可以使用\setbeamertemplate的标准波束机制将自定义项目符号样式合并到customlist解决方案中。(有关详细信息,请参阅TeX堆栈交换上的this问题解答。)

或者,可以直接在环境中修改项目符号样式,将\usebeamertemplate{itemize \beameritemnestingprefix item}替换为您想要使用的任何项目符号样式(例如$\square$)。

票数 74
EN

Stack Overflow用户

发布于 2010-04-10 20:44:23

我使用包枚举项。然后,您可以在声明列表(枚举、描述、分项)时设置这样的边距:

代码语言:javascript
运行
复制
\begin{itemize}[leftmargin=0cm]
    \item Foo
    \item Bar
\end{itemize}

当然,该包还为列表提供了许多其他很好的定制(使用'label=‘更改项目符号,使用'itemsep=’更改项目之间的间距,使用etc...)

票数 16
EN

Stack Overflow用户

发布于 2015-03-24 18:58:13

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

代码语言:javascript
运行
复制
\newenvironment{beameritemize}
{ \begin{itemize}
  \setlength{\itemsep}{1.5ex}
  \setlength{\parskip}{0pt}
  \setlength{\parsep}{0pt}   
  \addtolength{\itemindent}{-2em}  }
{ \end{itemize} } 
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2611276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档