How can I repeat a beamer frame with Org-mode?
使用 Beamer 可以通过标记应该重复的帧来重复帧,例如
1 2 3
| \\begin{frame}[label=framelabel]
...
\\end{frame} |
,然后在要重复该帧的地方使用 \\againframe{framelabel}。
这种方法如何与 Org-mode\\ 的 Beamer 导出一起使用?标签显然可以通过将其放在 BEAMER_envargs 中来添加,例如:
1 2 3 4
| * Org-mode section
:PROPERTIES:
:BEAMER_envargs: [label=questions]
:END: |
但是通过Org-mode使用\\againframe有两个问题:
\\againframe 放在 Org-mode 部分下和直接放在 Org-mode 部分中都不好。问题在于,在前一种情况下,当它应该放在框架之间时,它被放置在框架内。后一种情况的问题是它被放置在 \\frametitle 内。
\\againframe 要么被 Org 模式部分吞下,要么被标记为 1。两者都是其功能的不良逻辑表示。
那么是否有一些有效的方法可以将 \\againframe 与 Beamer 一起使用,或者是否有其他方法可以在我忽略的 Org 模式下重复帧?
我已经查看了 http://lists.gnu.org/archive/html/emacs-orgmode/2011-05/msg00954.html 试图解决这个问题。
我在 Emacs 23.3.1 中运行 Org-mode 7.6,我使用 Beamer 3.13。
- 这不是一个最佳解决方案,但过去我只是简单地折叠该部分,然后杀死并拉出与该部分对应的区域。再拉一次,你就有了该部分的另一个副本。或者,使用 Beamer only<> 构造可以满足您的需求吗?
-
@cm2 感谢您的建议。如果我正确理解您的建议,那么两者在不同方面都是脆弱的。您的意思是使用 C-c C-x C-w 简单地制作该部分的两个副本并根据需要放置它们?这将是脆弱的,因为如果一个部分被更改,它的副本将不会自动更改。如果我正确理解了 \\only 方法,它将需要计算到应该重复的正确幻灯片,因此,如果在其间插入幻灯片,它会中断,对吗?
-
是的,两者都很脆弱。 \\only 的建议是,如果您想重复一张幻灯片,只做一些小的改动——就像逐步显示幻灯片的某些部分一样。实际上,如果您想在演示文稿的稍后位置完全重复幻灯片,\\only 将不起作用。
-
@cm2 完全重复是我所追求的。
当前的组织模式支持againframe。只需创建一个框架并将投影仪选项 BEAMER_env = againframe 添加到相应的部分。或者,如果您在 org-startup 上初始化了 beamer 模式,则使用 C-c C-b a 插入它。
更多信息可以在 org-mode 文档中找到。
在语法的原始提案中提供了一个示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| * section
** My frame title :B_frame:
:PROPERTIES:
:BEAMER_env: frame
:END:
Some text. Some text. Some text. Some text.
Some text. Some text. Some text. Some text.
** section :B_againframe:
:PROPERTIES:
:BEAMER_env: againframe
:BEAMER_act: 2
:BEAMER_ref: *My frame title
:END:
This section will create"\\againframe<2>{sec-1-2}".
** Following frame
etc. |
我认为目前这是不可能的。限制在于组织文档的树结构。据我从您的问题中了解到, \\againframe{...} 命令基本上按原样重复幻灯片。在组织方面,这意味着用于生成幻灯片的原始树被重复。由于 org 文档格式不允许您拥有任何不属于树的内容(除了文件顶部的frontmatter/header),我相信这是不可能的。这已经在邮件列表上讨论过几次,据我了解,没有计划实施这样的事情。
- 正如我在回答中所写的那样,可以将参数传递给框架。您只需将 :BEAMER_envargs: [label=questions] 添加到部分的属性中,即可将参数 [label=questions] 添加到 \\begin{frame}。如果您阅读了我的问题,您会发现问题在于如何将 \\againframe 宏与 Org-mode 一起使用。
-
@NN对不起,我完全误解了你的问题。现在我明白了,我仍然认为这是不可能的。至少不是微不足道的。我将编辑我的原始答案来解释。