使用“显示注释”选项时,Beamer 幻灯片上 Tikz 图片的绝对定位

使用“显示注释”选项时,Beamer 幻灯片上 Tikz 图片的绝对定位

tikzpictureTiKz 允许您使用预定义的current page坐标将 s定位到页面上的任何位置。

然而,当您也使用 Beamer 的show notes选项(使用)时pgfpages,这会破坏绝对坐标系。

我以为我找到了解决方案(见使用“在第二个屏幕上显示注释”和绝对“pgf”定位时,标题图片在 Beamer 中错位)。这将使用该\nofiles命令,以便在第二次运行 LaTeX 时,我们保留原始 AUX 文件(以及tikzpicture使用该remember picture选项存储的位置)。

但是,这似乎只对第一次出现的带有 s 的幻灯片有效tikzpicture。所有后续幻灯片的绝对定位仍然混乱。

没有该\nofiles命令,tikzpicture大小和位置都是错误的。使用两步编译(hide notes后跟show noteswith\nofiles命令)后,大小正确,第一张幻灯片上图片的位置正确,其他所有位置都是错误的。

我感觉已经接近理解什么是错的/需要改变的/如何解决这个问题了。

最小工作示例:

\documentclass[11pt]{beamer}

%%%%% pick one of the following three lines:
%\setbeameroption{show only notes} 

%\setbeameroption{show notes}\nofiles

\setbeameroption{hide notes}

%% For the notes slides to work, we need to compile with 'hide notes' first,
%% this gets the position of all the tikz environments right. Then,
%% and only then, compile with the 'show notes' line, including the
%% \nofiles option. That will get the notes slides done properly.
%% [https://tex.stackexchange.com/questions/86378/title-picture-misplaced-in-beamer-when-using-show-notes-on-second-screen-and-a]
%%

\usetheme{Frankfurt} %% header, filled blocks, toc(line)

\usepackage{tikz}
\usetikzlibrary{calc}

%% the following puts a \notes{} command on every slide
\makeatletter
\def\beamer@framenotesbegin{% at beginning of slide
  \gdef\beamer@noteitems{}%
  \gdef\beamer@notes{{}}% used to be totally empty.
}
\makeatother


\title{TEST}
\author{Someone}

\begin{document}

\section{SECTION}

\subsection{CONTENT}


\begin{frame}[fragile,label=pic1]{Title}{subtitle}

  \begin{tikzpicture}[remember picture,overlay]
    \node (PIC1a) at ($(current page.south west)+(5mm,5mm)$) [anchor=south west,draw=red] {PIC1a};
  \end{tikzpicture}
  \begin{tikzpicture}[remember picture,overlay]
    \node (PIC1b) at ($(current page.south east)+(-5mm,5mm)$) [anchor=south east,draw=red] {PIC1b};
  \end{tikzpicture}

  \note{Simple note\\\alert{First slide}}
\end{frame}

\begin{frame}[fragile,label=pic2]{Title}{subtitle}

  \begin{tikzpicture}[remember picture,overlay]
    \node (PIC2a) at ($(current page.south west)+(5mm,5mm)$) [anchor=south west,draw=red] {PIC2a};
  \end{tikzpicture}
  \begin{tikzpicture}[remember picture,overlay]
    \node (PIC2b) at ($(current page.south east)+(-5mm,5mm)$) [anchor=south east,draw=red] {PIC2b};
  \end{tikzpicture}

  %% NO EXPLICIT \note
\end{frame}

\begin{frame}[fragile,label=pic3]{Title}{subtitle}

  \begin{tikzpicture}[remember picture,overlay]
    \node (PIC3a) at ($(current page.south west)+(5mm,5mm)$) [anchor=south west,draw=red] {PIC3a};
  \end{tikzpicture}
  \begin{tikzpicture}[remember picture,overlay]
    \node (PIC3b) at ($(current page.south east)+(-5mm,5mm)$) [anchor=south east,draw=red] {PIC3b};
  \end{tikzpicture}

  \note{Simple note\\\alert{Third slide}}
\end{frame}


\end{document}

以下是生成的 PDF(堆叠pdfnup并转换为 PNG 以便上传):

  1. 使用hide notes选项编译
  2. 使用show notes选项进行编译并\nofiles执行后 (1)
  3. 使用show notes选项进行编译,作为一次传递,无需使用\nofiles

带有隐藏注释的最小示例 最小示例,带有展示说明的第二个汇编 非常错误,最小示例一步编译,显示注释,不使用 nofiles 命令

在 AUX 文件中,我看到包括以下内容的行\pgfsyspdfmark,在读取时114.15 位置跟踪命令来自 pgfmanual (v3.0.1a),似乎是感兴趣的线。

我只是不明白为什么第一张幻灯片修复后没问题,\nofiles但后面的幻灯片却错了。我是不是漏掉了什么?

解决方案

确保您拥有最新的软件包。升级后:

  • beamer 2015/01/05 3.36
  • pgfcore 2010/04/11 v3.0.1 (rcs-修订版 1.7)
  • 使用 TeX Live 2013/Debian 进行编译(在 Ubuntu 上)

使用方法(4),show notes选项无需任何改动,即可\nofiles正常工作。

我不知道升级后发生了什么变化...上述问题来自使用 pgf v2.10。

相关内容