是否可以使 Beamer 暂停讲义模式与 SageTeX 兼容?

是否可以使 Beamer 暂停讲义模式与 SageTeX 兼容?

我在课堂上使用 SageTeX 和 Beamer。我需要两套 pdf 文件,一套是用于屏幕暂停,另一套是用于保存树木的讲义。我在 Windows 下使用 MikTeX。

为了同时获得两者,我从两行开始

%\documentclass[handout]{beamer}
\documentclass{beamer}

并注释掉其中一个。

要使用 SageTeX,我需要使用 Linux 虚拟机再次编译我的文件,以获得计算结果,例如

\[2+2={\sage{2+2}}\]

我希望对这两个版本只执行一次,但是在以下 MWE 中遇到了以下困难:

%\documentclass[handout]{beamer}
\documentclass{beamer}
\usepackage{sagetex}% To compute with SAGE within the text
\begin{document}
\begin{frame}[fragile]{Minimum Working Example}

\textit{Compatibility SageTeX - Beamer in HandOut - Pause mode}

This is the first slide with a first Sage operation
\[2+2={\sage{2+2}}\]
Result should be $4$! and we pause

\pause

\

We add some new text before the next slide

\

\end{frame}

\begin{frame}[fragile]{Minimum Working Example}

\textit{Compatibility SageTeX - Beamer in HandOut - Pause mode}

A new Sage operation on this second slide
\[3+3={\sage{3+3}}\]
Result should be $6$!

Beamer requests three inline formulas from SageTeX in pause mode but only two in Handout mode.

So the result is six in pause mode and four in handout mode.
\end{frame}
\end{document}

正如 MWE 中所描述的,似乎不可能仅在 SageTeX 中编译一次即可获得暂停和讲义文档。

如果你以暂停形式编译,Beamer 将从 sageTeX 请求三个内联公式,两次 2+2(因为暂停)和一次 3+3,因此当你以 Handout 形式再次进行 Texify 时,Beamer 只需要前两个内联公式并给出 3+3=4!

如果您从讲义形式开始,那么 Beamer 只会向 SageTeX 请求两个公式。当然,对于讲义来说,它工作正常,但是当您想要暂停版本时,您会在暂停前得到 2+2=4,在暂停后得到 2+2=6,而在第二张幻灯片上您会得到 3+3=??

这是一个双输的局面。当然,我可以通过编译两个版本来解决这个问题,但这会让讲义选项变得毫无用处,因为我需要更改 TeX 源的名称,以避免使用 SageTeX 重新编译。

暂停 SagetEx 编译的讲义版本第 1 页 暂停 SagetEx 编译的讲义版本第 2 页

答案1

这个问题还没有得到一个答案。我真的认为这两个包至少在想要使用 Beamer 覆盖和 SageTeX 计算时是不兼容的。

从设计的角度看,很明显的是,如果您的幻灯片有五个覆盖层,并且您需要 Sage 进行相当长的计算,比如说 5 分钟,那么调用相同计算 5 次的技术是效率低下的。

因此,作为一种解决方法,我认为应该避免使用 SageTeX 和 Beamer 的叠加层,除非您在幻灯片的最后一个叠加层(最后一个 \pause 指令和 \end{frame} 之间)调用 SageTeX。在这种情况下,一切都运行良好。两个用户手册中都应该有关于它的警告。要使用这个,应该将关键字“叠加层”和“讲义”添加到此帖子中(我不认为我能做到)。

答案2

sagesilient我同意 - 一个可能的解决方案是在框架开始之前创建一个环境,为结果分配一个变量,然后使用\sage{var}命令在框架中引用该变量。

这将解决您提到的 ?? 问题 - 只需确保使用 [handout] 选项编译 sagetex 文件即可。然后您应该能够[handout]根据需要进行切换,而无需重新编译 sagetex 文件。

否则,当您切换到讲义模式时,只需重新编译 sagetex 文件,您的 MWE 就可以正常工作。

相关内容