Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I am writing a Beamer presentation that mixes normal-size font for some slides, and large-size font for other slides. When I use the itemize environment with a large font, the item symbol (a small ball) does not become larger, and the result is not aesthetically pleasant.

How can I make itemized lists with large item symbols, but only for those which have large text, not for the entire presentation (i.e., without globally changing the beamer template)?

share|improve this question
add comment

2 Answers

up vote 5 down vote accepted

itemize symbols have font size hardcoded in definition (look at beamerthemedefault.sty or beamerbaseauxtemplates.sty).

% Itemize items, circle

\defbeamertemplate{itemize item}{circle}{\small\raise0.5pt\hbox{\textbullet}}
\defbeamertemplate{itemize subitem}{circle}{\footnotesize\raise0.5pt\hbox{\textbullet}}
\defbeamertemplate{itemize subsubitem}{circle}{\footnotesize\raise0.5pt\hbox{\textbullet}}

Section 16.3 "Changing the Templates Used for Different Elements of a Presentation" form beamer manual explain how to change it. It seems that would be possible to define a template with an option for font size. I don't know how to do it but a fast solution could be redeclare itemize symbols with new hardcoded size, something like

\documentclass{beamer}

\begin{document}    
\begin{frame}[t]{Frame title}
  \begin{itemize}
  \item First item
  \item Second item
  \end{itemize}
\bigskip
{\setbeamertemplate{itemize item}{\small\raise1.25pt\hbox{\donotcoloroutermaths$\blaktriangleright$}}
  \begin{itemize}
  \item Second first item
  \item Second second item
  \end{itemize}
}
\bigskip
  \begin{itemize}
  \item Third first item
  \item Third second item
  \end{itemize}
\end{frame}
\end{document}

enter image description here

EDIT: Changing balls for Madrid Theme.

Madrid Theme (beamerthemeMadrid.sty) uses \useinnertheme[shadow]{rounded} which declares \setbeamertemplate{items}[ball]. So we need to look for ball in beamerbaseauxtemplates.sty. To do it short, in this file some 'spheres' are defined and used. You can make your own definition,

\documentclass{beamer}
\usetheme{Madrid}

\makeatletter
\pgfdeclareradialshading[bg,parent.bg]{mysphere}{\pgfpoint{0.15cm}{0.15cm}}%
{color(0cm)=(bg!15);
 color(0.15cm)=(bg!75);
 color(0.3cm)=(bg!70!black);
 color(0.301cm)=(parent.bg)}

\defbeamertemplate{itemize item}{myball}%
{\raise-0.2cm\beamer@usesphere{item projected}{mysphere}}
\makeatother

\begin{document}    
\begin{frame}[t]{Frame title}
  \begin{itemize}
   \item First item
   \begin{itemize}
     \item first subitem
     \item second subitem
   \end{itemize}
   \item Second item
  \end{itemize}
  \bigskip
{\setbeamertemplate{itemize item}[myball]
  \begin{itemize}
   \item Third first item
   \item Third second item
   \end{itemize}
}
\end{frame}
\end{document}

The result is

enter image description here

I think sphere sizes are related with font size because they are declared using ex units but I'm not able to change its size with just a fontsize declaration. May be somebody else can help us.

share|improve this answer
    
Thanks! But can you do the same with spheres (like in the Mardid theme)? –  Little Bobby Tables Jul 19 '11 at 7:19
    
I edited my answer with a new partial solution for Madrid theme. –  Ignasi Jul 19 '11 at 9:22
    
Thanks a million! The results still need a bit of fine-tuning, depending on usage, but this is a pointer in the right direction. –  Little Bobby Tables Jul 19 '11 at 9:59
add comment

Unfortunately the @Ignasi solution for change of the ball size is lacking in aliasing so the spheres have rough edges as you can see in the screenshot. To solve the problem, I modified the original definition in beamerbaseauxtemplates.sty by adding to preamble the following code:

% * original ball definition in beamerbaseauxtemplates.sty
%\pgfdeclareradialshading[bg,parent.bg]{bigsphere}{\pgfpoint{-0.1849315ex} {.2260273ex}}%
%{%
%  color(0cm)=(bg!15);
%  color(0.1643835ex)=(bg!75);
%  color(0.3287671ex)=(bg!70!black);
%  color(0.4520547ex)=(bg!50!black);
%  color(0.53ex)=(parent.bg)}

% modified by 1.4x multiplication factor
\pgfdeclareradialshading[bg,parent.bg]{bigsphere}{\pgfpoint{-0.2589041ex}{0.3164382ex}}%
{%
color(0cm)=(bg!15);
color(0.2301369ex)=(bg!75);
color(0.4602739ex)=(bg!70!black);
color(0.6328766ex)=(bg!50!black);
color(0.742ex)=(parent.bg)}  

\defbeamertemplate{itemize item}{myball}{\raise0.2pt\beamer@usesphere{item projected}{bigsphere}}

\setbeamertemplate{itemize item}[myball]

Now all item bullet balls are 1.4 times bigger then in default template and they have smooth edges.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.