'LaTeX beamer: way to change the bullet indentation?
I've checked the Beamer Class manual (PDF file).
I can't figure out how to change the indentation bullet assigns to \itemize.
[This is kind of important, as I'm using 2 column slides, and I don't want beamer to steal too much horizontal space].
Solution 1:[1]
I use the package enumitem. You may then set such margins when you declare your lists (enumerate, description, itemize):
\begin{itemize}[leftmargin=0cm]
\item Foo
\item Bar
\end{itemize}
Naturally, the package provides lots of other nice customizations for lists (use 'label=' to change the bullet, use 'itemsep=' to change the spacing between items, etc...)
Solution 2:[2]
Setting \itemindent for a new itemize environment solves the problem:
\newenvironment{beameritemize}
{ \begin{itemize}
\setlength{\itemsep}{1.5ex}
\setlength{\parskip}{0pt}
\setlength{\parsep}{0pt}
\addtolength{\itemindent}{-2em} }
{ \end{itemize} }
Solution 3:[3]
To set the indentation globally, without using enumitem (which doesn't work on Beamer),
put the following in your preamble:
\setlength{\leftmargini}{0.5cm}
\setlength{\leftmarginii}{0.5cm}
leftmargini and leftmarginii change the first and second list level, respectively.
This solution was given here.
Solution 4:[4]
Like Geoff's answer, I found a solution I like using enumitem. Set defaults with \setlist[?names?,?levels?]{?keys/values?} to inherit existing (theme?) attributes or \setlist*[?names?,?levels?]{?keys/values?} to fully reset. See the enumitem documentation.
The following sets indentation for the first four levels of nested lists as well as explicitly declares labels. The labels here defaults to bullets for itemized lists and arabic numbers for enumerated lists. It then resets the default labels for nested lists; long-hyphen for 2nd itemized, single hyphen for third itemized, etc. The last line resets default label for 2nd level itemized enumerated lists to be alphabetic (a, b, c).
\usepackage{enumitem}
\setlist[1]{leftmargin=0em}
\setlist[2]{leftmargin=2em} %list within a list
\setlist[3]{leftmargin=2.5em} %list within a list within a list
\setlist[4]{leftmargin=3em}
\setlist[itemize]{label=\textbullet}
\setlist[itemize,2]{label={--}}
\setlist[itemize,3]{label={-}}
\setlist[itemize,4]{label={\textperiodcentered}}
\setlist[enumerate]{label={\arabic*}}
\setlist[enumerate,2]{label={\alph*}}
With enumitem you can also declare a specific label or spacing for a particular instance by adding the options e.g. \begin{itemize}[label={*}] This is Geoff's answer.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | |
| Solution 2 | Gergely |
| Solution 3 | FedFranz |
| Solution 4 |
