Ich will für die itemize-Umgebung für die erste Ebene einen Kreis und für die zweite Ebene ein Quadrat verwenden, jeweils mittig zu einem großen Buchstaben ist. Das vordefinierte circle bzw. square ist zu klein bzw. zu groß:

alt text

Für square hab ich einen Ersatz gefunden, der optisch gut passt. Ich weiß aber nicht, ob das eine saubere Lösung ist. Für den circle find ich nichts entsprechendes.

Open in writeLaTeX
\documentclass[12pt]{beamer}
\usepackage[utf8]{inputenc}
\usepackage{fontenc}
\usepackage[ngerman]{babel}
\usepackage{libertine}

\setbeamerfont{itemize/enumerate subbody}{size=\normalsize}
\setbeamertemplate{itemize item}[circle]
\setbeamertemplate{itemize subitem}{\rule[0.5ex]{0.5ex}{0.5ex}}

\begin{document}
\begin{frame}
  \begin{itemize}
    \item ABCggg
      \begin{itemize}
        \item ABCggg
        \item ggglll
      \end{itemize}
  \end{itemize}
\end{frame}
\end{document}

Ich hatte noch die Alternative

\setbeamertemplate{itemize item}{\textbullet}

probiert, aber da war der Kreis nicht groß genug. Was mir noch eingefallen wäre ist, das \textbullet mit einer \scalebox zu vergrößern und einer \raisebox zu verschieben.

Gibt es vielleicht eine einfache Möglichkeit?

gefragt 22 Jan '15, 17:24

tom75's gravatar image

tom75
1.9k1545
Akzeptiert: 83%

bearbeitet 23 Jan '15, 05:41

Henri's gravatar image

Henri
10.0k31730


Hier ist eine Lösung mit TikZ, bei der Du im Aufruf von \setbeamertemplate selbt die Größe der Elemente bestimmen kannst.

Open in writeLaTeX
\documentclass[20pt]{beamer}
\usepackage{tikz,libertine}

% \makebox requires width, which we don't want
\newcommand\centerbox[1]{$\vcenter{\hbox{#1}}$}

\defbeamertemplate*{itemize item}{custom circle}[1][.5ex]{%
  \centerbox{\tikz\fill (0,0) circle (#1);}}
\defbeamertemplate*{itemize subitem}{custom circle}[1][.4ex]{%
  \centerbox{\tikz\fill (0,0) circle (#1);}}
\defbeamertemplate*{itemize subsubitem}{custom circle}[1][.3ex]{%
  \centerbox{\tikz\fill (0,0) circle (#1);}}

\defbeamertemplate*{itemize item}{custom square}[1][.5ex]{%
  \centerbox{\tikz\fill (-#1,-#1) rectangle (#1,#1);}}
\defbeamertemplate*{itemize subitem}{custom square}[1][.4ex]{%
  \centerbox{\tikz\fill (-#1,-#1) rectangle (#1,#1);}}
\defbeamertemplate*{itemize subsubitem}{custom square}[1][.3ex]{%
  \centerbox{\tikz\fill (-#1,-#1) rectangle (#1,#1);}}

\setbeamertemplate{itemize item}[custom circle]
\setbeamertemplate{itemize subitem}[custom square]

\begin{document}
\begin{frame}
  \begin{itemize}
    \item ABCggg
      \begin{itemize}
        \item ABCggg
        \item ggglll
      \end{itemize}
  \end{itemize}

  \setbeamertemplate{itemize item}[custom circle][1pt]
  \setbeamertemplate{itemize subitem}[custom square][1ex]
  \begin{itemize}
    \item ABCggg
      \begin{itemize}
        \item ABCggg
        \item ggglll
      \end{itemize}
  \end{itemize}
\end{frame}
\end{document}

alt text

Permanenter link

beantwortet 23 Jan '15, 03:30

Henri's gravatar image

Henri
10.0k31730

bearbeitet 23 Jan '15, 04:56

@Henri Danke, das gefällt mir schon sehr gut. Es gibt noch ein Problem. Wenn ich z.B. die Schriftgröße auf 20pt ändere, sind die Items nicht mehr mittig. Ich kann das dann manuell bei raisebox anpassen. Kann man das irgendwie automatisieren, dass ein Item immer genau mittig zur Schrift ist?

(23 Jan '15, 04:33) tom75
1

@tom75 Kein Problem. Eigentlich sollte man für so etwas das LaTeX Makro \makebox verwenden, welches allerdings eine Breite als Argument haben will. Das ist auch kein Problem, aber dann müsste ich jedes Mal die Breite ausrechnen bevor ich das Symbol platziere. Deshalb gehe ich den (undokumentierten) Umweg über plainTeX und benutzt eine \hbox in \vcenter.

(23 Jan '15, 04:58) Henri

@Henri Danke!

(23 Jan '15, 07:49) tom75

Noch eine Nachfrage: Warum wurde die *-Variante von \defbeamertemplate verwendet?

In der Anleitung steht:

"The starred version of the command installs the predefined template option, but then immediately calls \setbeamertemplate for this option. This is useful for the default templates. If there are any arguments necessary, these are set to \relax."

Ich vermute, es geht um den letzten Punkt. Kann mir das jemand bitte erklären? Ich hab den * mal weggelassen und es gab das selbe Ergebnis.

(23 Jan '15, 11:13) tom75
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×94
×15

Frage gestellt: 22 Jan '15, 17:24

Frage wurde angeschaut: 2,538 Mal

Zuletzt aktualisiert: 23 Jan '15, 11:13