如何在 Beamer 演示文稿中为某些列表获取更大的项目符号?

如何在 Beamer 演示文稿中为某些列表获取更大的项目符号?

我正在编写一个 Beamer 演示文稿,其中有些幻灯片使用普通字体,而有些幻灯片使用大字体。当我使用itemize大字体环境时,项目符号(小球)不会变大,结果并不美观。

我怎样才能制作带有大项目符号的逐项列表,但只针对那些具有大文本的列表,而不是针对整个演示文稿(即,不全局更改投影仪模板)?

答案1

项目化符号的字体大小在定义中是硬编码的(查看 beamerthemedefault.sty 或 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}}

beamer 手册的第 16.3 节“更改用于演示文稿不同元素的模板”解释了如何更改它。似乎可以定义一个带有字体大小选项的模板。我不知道该怎么做,但一个快速的解决方案是重新声明带有新硬编码大小的 itemize 符号,例如

\documentclass{beamer}
\begin{document}    
\begin{frame}[t]{}
    \begin{itemize}
        \item First item
        \item Second item
    \end{itemize}
    \bigskip
    {\setbeamertemplate{itemize item}{\Large\raise1.25pt\hbox{\donotcoloroutermaths$\blacktriangleright$}}
        \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}

在此处输入图片描述

编辑:将球更换为马德里主题。

马德里主题 ( beamerthemeMadrid.sty) 使用\useinnertheme[shadow]{rounded}来声明\setbeamertemplate{items}[ball]。所以我们需要在 中寻找球beamerbaseauxtemplates.sty。简而言之,在这个文件中定义并使用了一些“球体”。您可以自己定义,

\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}

结果是

在此处输入图片描述

我认为球体大小与字体大小有关,因为它们是使用 ex 单位声明的,但我无法仅通过字体大小声明来更改其大小。也许其他人可以帮助我们。

答案2

不幸的是,@Ignasi 的球体尺寸改变解决方案缺乏混叠,因此球体的边缘很粗糙,如屏幕截图所示。为了解决这个问题,我修改了原始定义,在序言中beamerbaseauxtemplates.sty添加了以下代码:

% * 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]

现在所有物品子弹球都比默认模板大 1.4 倍,并且边缘光滑。

答案3

如果需要大子弹(备用或球形),只需对枚举进行一点修改即可

\documentclass[11pt]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usetheme{Madrid}
\begin{document}
\begin{frame}{Bullets}
\begin{enumerate}
    \item  Item One
    \item  Item Two
    \item  Item Three
    \item  Item Four
\end{enumerate}

\begin{enumerate}[.]
    \item  Item One
    \item  Item Two
    \item  Item Three
    \item  Item Four
\end{enumerate}

\begin{enumerate}[....]
    \item  Item One
    \item  Item Two
    \item  Item Three
    \item  Item Four
\end{enumerate}

\begin{itemize}
    \item  Item One
    \item  Item Two
    \item  Item Three
    \item  Item Four
\end{itemize}
\end{frame}
\end{document}

结果是

在此处输入图片描述

答案4

作为一个快速而肮脏的破解方法,您可以使用当前字体大小缩放球体:

\documentclass{beamer}

\usetheme{Warsaw}

\makeatletter
\def\beamer@usesphere#1#2{\hbox{\usebeamercolor{#1}\scalebox{0.1}{\scalebox{\f@size}{\normalsize\pgfuseshading{#2}}}}}
\makeatother

\begin{document}    
\begin{frame}[t]
  \frametitle{Frame title}
  \begin{itemize}
  \item First item
  \item Second item
  \end{itemize}
\bigskip
{\Huge
  \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}

在此处输入图片描述

相关内容