Emacs, org和beamer - `org-export-latex-classes`中没有`beamer`类的定义

11

我正在按照教程操作,当我尝试将演示文稿导出为latex时,遇到了以下错误:

No definition for class `beamer' in `org-export-latex-classes'

注意:
我在Ubuntu的软件仓库中安装了emacs。以下是我系统中可用的相关软件包:

emacs-snapshot
emacs-snapshot-bin-common
emacs-snapshot-common
emacsen-common
latex-beamer
latex-xcolor
preview-latex-style
texlive-latex-base
texlive-latex-extra
texlive-latex-recommended

我有什么遗漏吗?我需要配置其他东西吗?


你能发布 M-x org-version 的输出结果并指明你是如何安装它的吗?我想你需要 org-beamer.el,但不确定随 Emacs 一起提供的 org-mode 是否包含它。当我执行 $ locate org-beamer 命令时,唯一的命中结果是在我当前版本或 org-mode 的 git 克隆中的 org-beamer.el 文件。 - Hendy
提醒一下,在版本8中,导出方式进行了重大改革,但尚未包括beamer的合理默认设置。代码导出现在全部使用ox-* - tacaswell
4个回答

16

我发现我需要运行M-x org-beamer-export-to-pdf才能使其正常工作。


谢谢!这对我也起作用了,但制作PDF花费的时间有点长。 - Jeel Shah
1
这是唯一一个在我的安装中有效的答案。 - Reb.Cabin

10

是的,你应该在org-latex-export-classes中定义beamer类。如何定义的示例可以在这篇博客文章中找到。


1
更新:现在所涉及的变量是 org-latex-classes - Musa Al-hassy

4

编辑: 更新至2022年,并使再现更加直观明了。

原始答案如下,未经修改自2011年以来。我仍然认为在2022年,最受赞同的答案和被采纳的答案并不必要,而且org-mode很难排除故障,而不是基础知识:

  • .emacs和其他配置文件
  • 使用的确切的.org文件

在尝试重新创建引用的worg教程时,我认为它不再按原样工作。请注意,手册现在引用了不同的例子

无论如何,这里是一个github repo,我创建的内容如下,以帮助任何其他人发现此问题:

  • 一个min-config(没有自定义的beamer org-latex-classes定义,如接受的答案建议所示)
  • 修改后的beamer_test.org,使用min-config导出;一些小调整是必要的
  • PDF和org文件,名称中带有_ref;当用户导出时,他们可以比较生成的pdf和tex文件(下载的repo中的文件将被覆盖)与这些参考文件,以研究差异并更好地识别问题

希望这能更好地消除任何困惑。

最后注意:我认为我下面的答案一直可能是错误的,或者在过去10年中的某个时刻变得错误了,因为它应该是C-c C-e lP,而不是p(常规latex pdf)作为最终选项(beamer pdf)。我不记得org-mode那么久以前是否像p这样使用,考虑到#+latex_class: beamer设置。

编辑2正如ceochronos在评论中指出的那样,我的答案可能一直都是错误的,因为在导出选项C-c C-e pC-c C-e l p之间,我忽略了小写的L。再次声明,C-c C-e是一个交互式菜单,没有p选项,因此希望它没有在过去的几年中对太多人产生影响!


接受的答案不再必要。现在有一个内置的函数可以导出Beamer文件。有关详细信息,请参见本教程。本质上,只需在任何标题之前,在org文件顶部添加以下内容:

#+startup: beamer
#+LaTeX_CLASS: beamer
#+BEAMER_FRAME_LEVEL: 2

第一个选项引入了一些beamer特定的选项,第二个选项确保导出到LaTeX时使用beamer类,第三个选项意味着顶级标题是章节,第二级标题是幻灯片。将值更改为1,仅使每个顶级标题成为幻灯片。

然后使用C-c C-e p进行导出。


1
你建议的教程是OP正在跟随的那个。我也在做同样的事情,导出功能对我和OP都返回相同的错误。 - SabreWolfy
@SabreWolfy:哎呀!很抱歉错过了那个。我会在上面发表评论以获取更多信息。 - Hendy
从 org-mode 9.4 开始,C-c C-e p 不起作用了。 - ceochronos
@ceochronos 在2022年(或者可能一直如此),应该是 C-c C-e l P。(这是小写字母L,不是数字1)。看起来我至少错过了 l,并且可能应该始终使用 P 而不是 p。不过,考虑到 #+latex_class: beamer 选项,org 可能曾经使用过 p。无论如何,请查看更新后的答案,并查看我的存储库,其中包含一个完全可重现的配置和文件,您可以进行测试。 - Hendy

0

只有在先使用org-beamer-export-to-latex将文件导出为TeX格式,然后才能成功地导出到PDF格式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接