修补 beamerouterthemedefault.sty 以删除 Beamer 笔记页面上的迷你幻灯片

修补 beamerouterthemedefault.sty 以删除 Beamer 笔记页面上的迷你幻灯片

在一个上一个问题我指出,插入 Beamer 笔记页面的迷你幻灯片(缩略图)会导致标签重复和超链接损坏(请参阅 Percusse 的回答下的评论 2)。

我发现如果我转到beamerouterthemedefault.sty\defbeamertemplate*{note page}{default}注释掉该行下的行

\hfill\insertslideintonotes{0.25}\hskip-\Gm@rmargin\hskip0pt%
\vskip-0.25\paperheight%
\nointerlineskip

这解决了这个问题,因为迷你幻灯片不再插入。我现在需要与我的主管分享我的 LaTeX 代码,所以我想知道是否有类似于对另一个问题的回答我的可以用来“修补”这些行,以便在编译时进行注释,这样我就不必指示其他人手动注释掉这些行。在这个问题中,展示了如何使用来xpatch修改 Beamer 组件。

所以,我的主要问题是如何制作这个补丁。

我的后续问题或附加问题是,有没有更好的方法来解决迷你幻灯片的问题?我首先想到的是以下几点:

  1. 这似乎是 Beamer 的一个错误,而且很容易修复。迷你幻灯片在插入之前不能去掉标签吗?迷你幻灯片实际上只是一种视觉辅助工具,因此不需要在其中引用内容。

  2. 作为对 #1 的改进,如果在插入迷你幻灯片时,标签能够被 Beamer 或 Latex 自动重命名,那就更好了。

  3. 如果 #1 或 #2 可以通过补丁解决,那就太好了,但如果可以将其作为错误修复纳入 Beamer,那就更好了。这样做需要做什么,或者通常会如何发生?

谢谢。

答案1

如果您真正需要的是删除这些代码行,则无需更改原始的 .sty 文件(事实上,这是不可取的);相反,您只需在文档的序言中添加.tex以下代码行即可:

\makeatletter
\setbeamertemplate{note page}
{%
  {%
    \scriptsize
    \insertvrule{.25\paperheight}{white!90!black}
    \vskip-.25\paperheight
    \nointerlineskip
    \vbox{
      %\hfill\insertslideintonotes{0.25}\hskip-\Gm@rmargin\hskip0pt%
      %\vskip-0.25\paperheight%
      %\nointerlineskip
      \begin{pgfpicture}{0cm}{0cm}{0cm}{0cm}
        \begin{pgflowlevelscope}{\pgftransformrotate{90}}
          {\pgftransformshift{\pgfpoint{-2cm}{0.2cm}}%
          \pgftext[base,left]{\footnotesize\the\year-\ifnum\month<10\relax0\fi\the\month-\ifnum\day<10\relax0\fi\the\day}}
        \end{pgflowlevelscope}
      \end{pgfpicture}}
    \nointerlineskip
    \vbox to .25\paperheight{\vskip0.5em
      \hbox{\insertshorttitle[width=8cm]}%
      \setbox\beamer@tempbox=\hbox{\insertsection}%
      \hbox{\ifdim\wd\beamer@tempbox>1pt{\hskip4pt\raise3pt\hbox{\vrule
            width0.4pt height7pt\vrule width 9pt
            height0.4pt}}\hskip1pt\hbox{\begin{minipage}[t]{7.5cm}\def\breakhere{}\insertsection\end{minipage}}\fi%
      }%
      \setbox\beamer@tempbox=\hbox{\insertsubsection}%
      \hbox{\ifdim\wd\beamer@tempbox>1pt{\hskip17.4pt\raise3pt\hbox{\vrule
            width0.4pt height7pt\vrule width 9pt
            height0.4pt}}\hskip1pt\hbox{\begin{minipage}[t]{7.5cm}\def\breakhere{}\insertsubsection\end{minipage}}\fi%
      }%
      \setbox\beamer@tempbox=\hbox{\insertshortframetitle}%
      \hbox{\ifdim\wd\beamer@tempbox>1pt{\hskip30.8pt\raise3pt\hbox{\vrule
            width0.4pt height7pt\vrule width 9pt
            height0.4pt}}\hskip1pt\hbox{\insertshortframetitle[width=7cm]}\fi%
      }%
      \vfil}%
  }%
  \vskip.25em
  \nointerlineskip
  \insertnote
}
\makeatother

相关内容