Emacs 系列(五):Org 模式之文件與簡報

2018-12-12 22:59:00

這是 Emacs 和 Org 模式系列的第五篇。

這篇博文是由 Org 模式的原始檔生成的,其有幾種格式:部落格頁面簡報PDF 文件

1 Org 模式的輸出

1.1 背景

Org 模式不僅僅只是一個議程生成程式,它也能輸出許多不同的格式: LaTeX、PDF、Beamer、iCalendar(議程)、HTML、Markdown、ODT、普通文字、手冊頁和其它更多的複雜的格式,比如說網頁檔案。

這也不只是一些事後的想法,這是 Org 模式的設計核心部分並且整合的很好。

這一個檔案可以同時是原始碼、自動生成的輸出、任務列表、文件和展示。

有些人將 Org 模式作為他們首選的標記格式,甚至對於 LaTeX 文件也是如此。Org 模式手冊中的 輸出一節 有更詳細的介紹。

1.2 開始

對於任意的 Org 模式的文件,只要按下 C-c C-e 鍵,就會彈出一個讓你選擇多種輸出格式和選項的選單。這些選項通常是次鍵選擇,所以很容易設定和執行。例如:要輸出一個 PDF 文件,按 C-c C-e l p,要輸出 HMTL 格式的, 按 C-c C-e h h

對於所有的輸出選項,都有許多可用的設定;詳情參見手冊。事實上,使用 LaTeX 格式相當於同時使用 LaTeX 和 HTML 模式,在不同的模式中插入任意的前言和設定等。

1.3 第三方外掛

ELPA 中也包含了許多額外的輸出格式,詳情參見 ELPA

2 Org 模式的 Beamer 演示

2.1 關於 Beamer

Beamer 是一個生成簡報的 LaTeX 環境. 它包括了以下特性:

  • 在簡報中自動生成結構化的元素(例如 Marburg 主題)。 在簡報中,這個特性可以為觀眾提供了視覺參考。
  • 對組織簡報有很大的幫助。
  • 主題
  • 完全支援 LaTeX

2.2 Org 模式中 Beamer 的優點

在 Org 模式中用 Beamer 有很多好處,總的來說:

  • Org 模式很簡單而且對視覺化支援的很好,同時改變結構可以快速的重組你的材料。
  • 與 org-babel 係結在一起,實時語法高亮原始碼和內嵌結果。
  • 語法通常更容易使用。

我已經完全用 Org 模式和 beamer 替換掉使用 LibreOffice/Powerpoint/GoogleDocs。事實上,當我必須使用其中一種工具時,這是相當令人沮喪的,因為它們在視覺化表示演講稿結構方面遠遠比不上 Org 模式。

2.3 標題層次

Org 模式的 Beamer 會將你文件中的部分(文中定義了標題的)轉換成幻燈片。當然,問題是:哪些部分?這是由 H 輸出設定org-export-headline-levels)決定的。

針對不同的人,有許多不同的方法。我比較喜歡我的簡報這樣:

#+OPTIONS: H:2#+BEAMER_HEADER: \AtBeginSection{\frame{\sectionpage}}

這將為每個主題提供了獨立部分,以突出主題的改變然後使用級別 2(兩個星號)的標題來設定幻燈片。許多 Beamer 主題也有第三個間接層次,所以你可以將 H 設為 3。

2.4 主題和設定

你可以在 Org 模式的檔案頂部來插入幾行來設定 Beamer 和 LaTeX。在本文中,例如,你可以這樣定義:

#+TITLE:  Documents and presentations with org-mode#+AUTHOR: John Goerzen#+BEAMER_HEADER: \institute{The Changelog}#+PROPERTY: comments yes#+PROPERTY: header-args :exports both :eval never-export#+OPTIONS: H:2#+BEAMER_THEME: CambridgeUS#+BEAMER_COLOR_THEME: default

2.5 高階設定

我比教喜歡修改顏色、專案符號樣式等。我的設定如下:

# We can't just +BEAMER_INNER_THEME: default because that picks the theme default.# Override per https://tex.stackexchange.com/questions/11168/change-bullet-style-formatting-in-beamer#+BEAMER_INNER_THEME: default#+LaTeX_CLASS_OPTIONS: [aspectratio=169]#+BEAMER_HEADER: \definecolor{links}{HTML}{0000A0}#+BEAMER_HEADER: \hypersetup{colorlinks=,linkcolor=,urlcolor=links}#+BEAMER_HEADER: \setbeamertemplate{itemize items}[default]#+BEAMER_HEADER: \setbeamertemplate{enumerate items}[default]#+BEAMER_HEADER: \setbeamertemplate{items}[default]#+BEAMER_HEADER: \setbeamercolor*{local structure}{fg=darkred}#+BEAMER_HEADER: \setbeamercolor{section in toc}{fg=darkred}#+BEAMER_HEADER: \setlength{\parskip}{\smallskipamount}

在這裡,aspectratio=169 將縱橫比設為 16:9, 其它部分都是標準的 LaTeX/Beamer 設定。

2.6 縮小 (適應螢幕)

有時你會遇到一些非常大的程式碼範例,你可能更傾向與將幻燈片縮小以適應它們。

只要按下 C-c C-c pBEAMER_opt 屬性設為 shrink=15\。(或者設為更大的 shrink 值)。上一張幻燈片就用到了這個。

2.7 效果

這就是最終的效果:

screenshot1

3 幻燈片之間的互動

3.1 互動式的 Emacs 幻燈片

使用 org-tree-slide 這個外掛的話,就可以在 Emacs 的右側顯示幻燈片了。 只要按下 M-x,然後輸入 org-tree-slide-mode,回車,然後你就可以用 C->C-< 在幻燈片之間切換了。

你可能會發現 C-c C-x C-v (即 org-toggle-inline-images)有助於使系統顯示內嵌的影象。

3.2 HTML 幻燈片

有許多方式可以將 Org 模式的演講稿彙出為 HTML,並有不同級別的 JavaScript 整合。有關詳細資訊,請參見 Org 模式的 wiki 中的 非 beamer 演講稿一節

4 更多

4.1 本文中的附加資源

4.2 下一個 Emacs 系列

mu4e 郵件!