Beamer 在 TexLive2013 上使用 XeLaTeX:枚举黑色数字

Beamer 在 TexLive2013 上使用 XeLaTeX:枚举黑色数字

使用 TeX Live 2013,其组合如下:

  • Beamer(版本 3.26)哥本哈根主题。
  • 使用 XeLaTeX 编译。
  • 使用枚举环境。

我得到了黑色字体的数字(通常是蓝色圆圈内的白色字体)。

使用 TeX Live 2012 时,数字是白色的,正如预期的那样。

例如:

\documentclass[10pt,table]{beamer}
\usetheme{Copenhagen}

\begin{document}
\begin{frame}
\begin{enumerate}
    \item num
    \item num
    \item num
    \item num
\end{enumerate}
\end{frame}
\end{document}

使用TexLive2012制作:

在此处输入图片描述

使用 TexLive2013:

在此处输入图片描述

怎样才能让数字再次变白?(我希望它们这样,因为与蓝色背景的对比更好)。


更新:

根据@JosephWright 的要求,这是相关文件列表:

beamer.cls    2013/01/04 3.26 A class for typesetting presentations (rcs-revision e81e0c94bcc6)
beamerbasercs.sty    2013/01/04 (rcs-revision 9a97a4eee358)
beamerbasemodes.sty    2012/04/15 (rcs-revision cc6557182d97)
beamerbasedecode.sty    2010/05/01 (rcs-revision efa082c6111d)
beamerbaserequires.sty    2010/05/01  (rcs-revision efa082c6111d)
beamerbasecompatibility.sty    2012/05/01  (rcs-revision 67c48b3b652d)
beamerbasefont.sty    2012/09/19  (rcs-revision 733629cd0c6c)
beamerbasetranslator.sty    2010/06/11  (rcs-revision 85fd1cc7fc42)
beamerbasemisc.sty    2012/02/24  (rcs-revision 2ff5461be705)
beamerbasetwoscreens.sty    2010/05/01  (rcs-revision efa082c6111d)
beamerbaseoverlay.sty    2012/11/11  (rcs-revision 6afbc49b1109)
beamerbasetitle.sty    2010/09/21  (rcs-revision f0446ed0b6ae)
beamerbasesection.sty    2013/01/04  (rcs-revision 54309ceef997)
beamerbaseframe.sty    2012/12/26  (rcs-revision 1443917db2cf)
beamerbaseverbatim.sty    2012/08/30  (rcs-revision dfdb135076b3)
beamerbaseframesize.sty    2011/09/12  (rcs-revision 70f9d8411e54)
beamerbaseframecomponents.sty    2012/09/13  (rcs-revision dcd846607320)
beamerbasecolor.sty    2010/06/06  (rcs-revision d1a9b48be06d)
beamerbasenotes.sty    2012/12/19  (rcs-revision 1686da3db3c9)
beamerbasetoc.sty    2012/10/02  (rcs-revision 5ed0f4010e8a)
beamerbasetemplates.sty    2010/05/01  (rcs-revision efa082c6111d)
beamerbaseauxtemplates.sty    2012/05/01  (rcs-revision 67c48b3b652d)
beamerbaseboxes.sty    2012/05/13  (rcs-revision 56972908a390)
beamerbaselocalstructure.sty    2012/11/13  (rcs-revision ddfba79dac19)
enumerate.sty    1999/03/05 v3.00 enumerate extensions (DPC)
beamerbasenavigation.sty    2012/04/03  (rcs-revision 42a0f21a412d)
beamerbasetheorems.sty    2010/06/06  (rcs-revision 7e7cc5e53e9d)

答案1

我发现了一个简单的技巧来枚举用我们设置的颜色或主题本身绘制的球。

该解决方案意味着再次定义beamer templatefor enumerate item,但要求仅在打印 itemize 编号时使用前景色item projected(而不是在定义的开始处,就像到目前为止的情况一样):

\setbeamertemplate{enumerate item}
{
  \begin{pgfpicture}{-1ex}{-0.65ex}{1ex}{1ex}
    \usebeamercolor[fg]{item projected}
    {\pgftransformscale{1.75}\pgftext{\normalsize\pgfuseshading{bigsphere}}}
    {\pgftransformshift{\pgfpoint{0pt}{0.5pt}}
      \pgftext{\usebeamercolor[fg]{item projected}\usebeamerfont*{item projected}\insertenumlabel}}
  \end{pgfpicture}%
}

\setbeamertemplate{enumerate subitem}
{
  \begin{pgfpicture}{-1ex}{-0.55ex}{1ex}{1ex}
    \usebeamercolor[fg]{subitem projected}
    {\pgftransformscale{1.4}\pgftext{\normalsize\pgfuseshading{bigsphere}}}
    \pgftext{%
      \usebeamercolor[fg]{subitem projected}%
      \usebeamerfont*{subitem projected}%
      \insertsubenumlabel}
  \end{pgfpicture}%
}

\setbeamertemplate{enumerate subsubitem}
{
  \begin{pgfpicture}{-1ex}{-0.55ex}{1ex}{1ex}
    \usebeamercolor[fg]{subsubitem projected}
    {\pgftransformscale{1.4}\pgftext{\normalsize\pgfuseshading{bigsphere}}}
    \pgftext{%
      \usebeamercolor[fg]{subsubitem projected}%
      \usebeamerfont*{subitem projected}%
      \insertsubsubenumlabel}
  \end{pgfpicture}%
}

一些说明:

  1. 唯一的变化是:\usebeamercolor[fg]{item projected}(以及它们在需要时对应的subitemsubsubitem)就在 的左边\usebeamerfont*{item projected}

  2. 肯定存在一个原因导致\usebeamercolor[fg]{item projected}第一个命令pgfpicture不能与 XeLaTeX 和 TexLive2013 一起使用。

  3. 当然,可能有一个更简单的解决方法,显然不用考虑破解文件texmf-dist/tex/latex/beamer/beamerbaseauxtemplates.sty

相关内容