更改 Beamer 中注释的文本宽度(从 SO 转发)

更改 Beamer 中注释的文本宽度(从 SO 转发)

我问过这个问题所以并没有得到很好的答案,所以我在这里重新发布它。


我一直在使用 beamer 类在 LaTeX 中创建演示文稿,我很喜欢它。最近我开始使用 \note 命令为我的讲义添加注释,这样我就有了一个打印版本,其中包含一些提示,可以提醒自己我想在讲座中讲的内容。
我对注释环境中较长的行感到困扰,因为它们似乎溢出了页面的右端,格式不正确。我不知道这是否是有原因的,但无论如何,我想找出如何更改它。显然,我不想在任何地方更改文本的宽度,只想在注释环境中更改文本的宽度。

这是一个简单的例子:

\documentclass[beamer]{beamer}
\title{An example of itemize in notes not working in beamer}
\usetheme{Boadilla}
\setbeameroption{show notes}
\begin{document}
\begin{frame}
$$  e^{i\pi}+1=0$$
\end{frame}
\note[itemize]{
\item At vero eos et accusamus et iusto odio dignissimos ducimus qui blandiis pra
}
\end{document}

结果是:替代文本

如果没有 [itemize] 选项,它也可以正常工作。如果您手动设置 \begin{itemize}...\end{itemize} 环境,结果是一样的。

有任何想法吗?

谢谢

答案1

我已将问题归结为infolines外部主题,特别是以下这一行:

\setbeamersize{text margin left=1em,text margin right=1em}

快要结束了。似乎发生的是笔记模板没有正确配置改变页边距。itemize使用注释时,环境用来计算宽度的某些长度设置不正确。由于我不太清楚这些长度是多少,也不太清楚哪个投影仪会弄乱这些长度,所以我不太清楚如何正确修复这个问题。

不过,我有办法不当修复这个问题。我发现,将笔记放在minipage正确宽度的环境中就可以了。这样可以将所有正确的宽度重置为正确的宽度,而我无需知道任何“可怕的细节”!当然,每次都这样做有点烦人,因此可以通过修改笔记页面的 beamer 模板来强制执行。复制出默认模板,并添加必要的行,我得到了:

\makeatletter
\defbeamertemplate{note page}{infolines}
{%
  {%
    \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
  \begin{minipage}{\textwidth} % this is an addition
  \insertnote
  \end{minipage}               % this is an addition
}
\makeatother

\setbeamertemplate{note page}[infolines]

看起来效果还不错!

答案2

如果您想要校正“纯色”样式的笔记页的右边距:

\makeatletter
\defbeamertemplate{note page}{plain2}
{
  \vskip.25em
  \nointerlineskip
  \begin{minipage}{\textwidth} % this is an addition
  \insertnote
  \end{minipage}               % this is an addition
}
\makeatother

\setbeamertemplate{note page}[plain2]
\setbeameroption{show notes on second screen}

相关内容