更改 beamer 类 itemize 环境中的左边距

更改 beamer 类 itemize 环境中的左边距

我不知道如何将 beamer 中 itemize 环境的符号与正文的左侧部分对齐。换句话说,我想抑制 beamer itemize 列表中的左边距。

如果解决方案适用于任何使用以下方式定义的 itemize 标签,那就太好了

\setbeamertemplate{itemize item}[]

为了使我更清楚,beamer 默认生成的内容如下:

Main text. Main text. Main text...
   * Item 1
   * Item 2
   * Item 3
   ....

期望的结果是

Main text. Main text. Main text...
* Item 1
* Item 2
* Item 3
....

答案1

beamer 类使用与基类相同的左边距默认长度:\leftmargini\leftmarginii。因此您可以调整这些长度。例如:

\setlength{\leftmargini}{0pt}

您可以插入任何0pt适合您的值。

进一步的要求可能需要重新定义或修补 beamer 的 itemize 环境。如果您希望完全控制 itemize 环境,您可以在序言中以这种方式重新定义它:

\makeatletter
\renewcommand{\itemize}[1][]{%
  \beamer@ifempty{#1}{}{\def\beamer@defaultospec{#1}}%
  \ifnum \@itemdepth >2\relax\@toodeep\else
    \advance\@itemdepth\@ne
    \beamer@computepref\@itemdepth% sets \beameritemnestingprefix
    \usebeamerfont{itemize/enumerate \beameritemnestingprefix body}%
    \usebeamercolor[fg]{itemize/enumerate \beameritemnestingprefix body}%
    \usebeamertemplate{itemize/enumerate \beameritemnestingprefix body begin}%
    \list
      {\usebeamertemplate{itemize \beameritemnestingprefix item}}
      {\def\makelabel##1{%
          {%
            \hss\llap{{%
                \usebeamerfont*{itemize \beameritemnestingprefix item}%
                \usebeamercolor[fg]{itemize \beameritemnestingprefix item}##1}}%
          }%
        }%
      }
  \fi%
  \beamer@cramped%
  \raggedright%
  \beamer@firstlineitemizeunskip%
}
\makeatother

到目前为止,它只是原件的副本!但既然它在你的序言中,你可以修改它。

例如,替换\hss\llap\rlap,项目符号将与周围的文本对齐:

...
      {\def\makelabel##1{%
          {%
            \rlap{{%
                \usebeamerfont*{itemize \beameritemnestingprefix item}%
...

在此重新定义中,您可以调整 LaTeX 列表长度宏。这需要知道如何使用 LaTeX 列表环境。

答案2

这似乎对我有用:

\settowidth{\leftmargini}{\usebeamertemplate{itemize item}}
\addtolength{\leftmargini}{\labelsep}

相关内容