这一页提供了一些模板,让您在 Org-Mode 中制作 Beamer 演示文稿。但如果我使用stmaryrd
包中的某些符号,则在使用 Org-Mode 导出为 PDF 时,它们不会被渲染。
以下是撰写本文时该页面的 2.1(Beamer 特定设置)和 2.2(框架(幻灯片)的大纲级别)的模板,导入stmaryrd
包(#+LATEX_HEADER: \usepackage{stmaryrd}
)、一些示例文本和使用一些符号的公式stmaryrd
(llbracket
,\rrbracket
)。
#+TITLE: Writing Beamer presentations in org-mode
#+AUTHOR: Eric S Fraga
#+EMAIL: [email protected]
#+DATE: 2010-03-30 Tue
#+DESCRIPTION:
#+KEYWORDS:
#+LANGUAGE: en
#+LATEX_HEADER: \usepackage{stmaryrd}
#+OPTIONS: H:3 num:t toc:t \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
#+OPTIONS: TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc
#+INFOJS_OPT: view:nil toc:nil ltoc:t mouse:underline buttons:0 path:http://orgmode.org/org-info.js
#+EXPORT_SELECT_TAGS: export
#+EXPORT_EXCLUDE_TAGS: noexport
#+LINK_UP:
#+LINK_HOME:
#+startup: beamer
#+LaTeX_CLASS: beamer
#+LaTeX_CLASS_OPTIONS: [bigger]
* Introduction
Some text here
A formula:
\[ \llbracket 234 \rrbracket \]
将其导出到 pdf 文件不起作用,因为符号\llbracket
和\rrbracket
不会被渲染。导出到 tex 文件,然后使用pdflatex
将 tex 文件编译为 pdf 也是如此;这是我收到的错误消息之一:
! Undefined control sequence.
.73 \[ \llbracket
234 \rrbracket \]
但是如果 org-file 中的这一行被注释掉:
#+LaTeX_CLASS: beamer
符号被渲染了。但是 pdf 文件看起来不再像 beamer 演示文稿了(这并不奇怪)。同样,如果我导出到 tex,然后在 tex 文件中注释掉此行:
\mode<{{{beamermode}}}>
符号渲染正确。我在编译 tex 文件时遇到很多错误,生成的 pdf 也不太好,但至少符号渲染正确。
stmaryrd 包可以在非 beamer org 文件里工作吗?是的;以下文档可以正确编译为pdf:
#+LATEX_HEADER: \usepackage{stmaryrd}
This is rendered: \llbracket
.emacs 设置:这是我在文件中使用的 beamer 设置.emacs
。它取自这篇博文。代码将 beamer 类添加到org-latex-classes
变量中。
(add-to-list 'org-latex-classes
;; beamer class, for presentations
'("beamer"
"\\documentclass[11pt]{beamer}\n
\\mode<{{{beamermode}}}>\n
\\usetheme{{{{beamertheme}}}}\n
\\usecolortheme{{{{beamercolortheme}}}}\n
\\beamertemplateballitem\n
\\setbeameroption{show notes}
\\usepackage[utf8]{inputenc}\n
\\usepackage[T1]{fontenc}\n
\\usepackage{hyperref}\n
\\usepackage{color}
\\usepackage{listings}
\\lstset{numbers=none,language=[ISO]C++,tabsize=4,
frame=single,
basicstyle=\\small,
showspaces=false,showstringspaces=false,
showtabs=false,
keywordstyle=\\color{blue}\\bfseries,
commentstyle=\\color{red},
}\n
\\usepackage{verbatim}\n
\\institute{{{{beamerinstitute}}}}\n
\\subject{{{{beamersubject}}}}\n"
("\\section{%s}" . "\\section*{%s}")
("\\begin{frame}[fragile]\\frametitle{%s}"
"\\end{frame}"
"\\begin{frame}[fragile]\\frametitle{%s}"
"\\end{frame}")))
答案1
对于我的.emacs
beamer 设置代码,我将问题中描述的代码替换为以下代码,如下所示在此网页上在撰写本文时。
(require 'ox-latex)
(add-to-list 'org-latex-classes
'("beamer"
"\\documentclass\[presentation\]\{beamer\}"
("\\section\{%s\}" . "\\section*\{%s\}")
("\\subsection\{%s\}" . "\\subsection*\{%s\}")
("\\subsubsection\{%s\}" . "\\subsubsection*\{%s\}")))
上述网站似乎比我最初使用的博客文章更新得更快。从我发现的情况来看,它似乎这现在就为 Org-mode 设置 Beamer 的方法。
至于投影仪演示的模板,我使用交互功能org-beamer-insert-options-template
,选择“全局”选项来生成模板。
现在,stmaryrd
在 beamer 演示文稿中使用该包可以正常工作:
...
#+LATEX_HEADER: \usepackage{stmaryrd}
This is rendered: \llbracket
...