![更改 beamer 类 itemize 环境中的左边距](https://linux22.com/image/233110/%E6%9B%B4%E6%94%B9%20beamer%20%E7%B1%BB%20itemize%20%E7%8E%AF%E5%A2%83%E4%B8%AD%E7%9A%84%E5%B7%A6%E8%BE%B9%E8%B7%9D.png)
我不知道如何将 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}