这篇教程将带你遍历在 Emacs 使用强大的开源排版系统 LaTex 来创建文档的全过程。
一篇由 Aaron Cocker 写的很棒的文章 “在 LaTeX 中创建文件的介绍” 中,介绍了 LaTeX 排版系统 并描述了如何使用 TeXstudio 来创建 LaTeX 文档。同时,他也列举了一些很多用户觉得创建 LaTeX 文档很方便的编辑器。
Greg Pittman 对这篇文章的评论吸引了我:“当你第一次开始使用 LaTeX 时,他似乎是个很差劲的排版……” 事实也确实如此。LaTeX 包含了多种排版字体和调试,如果你漏了一个特殊的字符比如说感叹号,这会让很多用户感到沮丧,尤其是新手。在本文中,我将介绍如何使用 GNU Emacs 来创建 LaTeX 文档。
创建你的第一个文档
启动 Emacs:
emacs -q --no-splash helloworld.org参数
-q确保 Emacs 不会加载其他的初始化配置。参数--no-splash-screen防止 Emacs 打开多个窗口,确保只打开一个窗口,最后的参数helloworld.org表示你要创建的文件名为helloworld.org。
GNU Emacs 打开文件名为 helloworld.org 的窗口时的样子。
现在让我们用 Emacs 添加一些 LaTeX 的标题吧:在菜单栏找到 “Org” 选项并选择 “Export/Publish”。
导入一个默认的模板
在下一个窗口中,Emacs 同时提供了导入和导出一个模板。输入
#(“[#] Insert template”)来导入一个模板。这将会使光标跳转到一个带有 “Options category:” 提示的 mini-buffer 中。第一次你可能不知道这个类型的名字,但是你可以使用Tab键来查看所有的补全。输入 “default” 然后按回车,之后你就能看到如下的内容被插入了:#+TITLE: helloworld #+DATE: <2018-03-12 Mon> #+AUTHOR: #+EMAIL: makerpm@nubia #+OPTIONS: ':nil *:t -:t ::t <:t H:3 \n:nil ^:t arch:headline #+OPTIONS: author:t c:nil creator:comment d:(not "LOGBOOK") date:t #+OPTIONS: e:t email:nil f:t inline:t num:t p:nil pri:nil stat:t #+OPTIONS: tags:t tasks:t tex:t timestamp:t toc:t todo:t |:t #+CREATOR: Emacs 25.3.1 (Org mode 8.2.10) #+DESCRIPTION: #+EXCLUDE_TAGS: noexport #+KEYWORDS: #+LANGUAGE: en #+SELECT_TAGS: export根据自己的需求修改标题、日期、作者和 email。我自己的话是下面这样的:
#+TITLE: Hello World! My first LaTeX document #+DATE: \today #+AUTHOR: Sachin Patil #+EMAIL: [email protected]我们目前还不想创建一个目录,所以要将
toc的值由t改为nil,具体如下:#+OPTIONS: tags:t tasks:t tex:t timestamp:t toc:nil todo:t |:t现在让我们添加一个章节和段落吧。章节是由一个星号(
*)开头。我们从 Aaron 的贴子(来自 Lipsum Lorem Ipsum 生成器)复制一些文本过来:* Introduction \paragraph{} Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras lorem nisi, tincidunt tempus sem nec, elementum feugiat ipsum. Nulla in diam libero. Nunc tristique ex a nibh egestas sollicitudin. \paragraph{} Mauris efficitur vitae ex id egestas. Vestibulum ligula felis, pulvinar a posuere id, luctus vitae leo. Sed ac imperdiet orci, non elementum leo. Nullam molestie congue placerat. Phasellus tempor et libero maximus commodo.
helloworld.org 文件
将内容修改好后,我们要把它导出为 PDF 格式。再次在 “Org” 的菜单选项中选择 “Export/Publish”,但是这次,要输入
l(“export to LaTeX”),紧跟着输入o(“as PDF file and open”)。这次操作不止会打开 PDF 文件让你浏览,同时也会将文件保存为helloworld.pdf,并保存在与helloworld.org的同一个目录下。
将 helloworld.org 导出为 helloworld.pdf
打开 helloworld.pdf 文件
你也可以按下
Alt + x键,然后输入org-latex-export-to-pdf来将 org 文件导出为 PDF 文件。可以使用Tab键来自动补全命令。Emacs 也会创建
helloworld.tex文件来让你控制具体的内容。
Emacs 在三个不同的窗口中分别打开 LaTeX,org 和 PDF 文档。
你可以使用命令来将
.tex文件转换为pdflatex helloworld.tex你也可以将
.org文件输出为 HTML 或是一个简单的文本格式的文件。我最喜欢.org文件的原因是他们可以被推送到 GitHub 上,然后同 markdown 一样被渲染。创建一个 LaTeX 的 Beamer 简报
现在让我们更进一步,通过少量的修改上面的文档来创建一个 LaTeX Beamer 简报,如下所示:
#+TITLE: LaTeX Beamer presentation #+DATE: \today #+AUTHOR: Sachin Patil #+EMAIL: [email protected] #+OPTIONS: ':nil *:t -:t ::t <:t H:3 \n:nil ^:t arch:headline #+OPTIONS: author:t c:nil creator:comment d:(not "LOGBOOK") date:t #+OPTIONS: e:t email:nil f:t inline:t num:t p:nil pri:nil stat:t #+OPTIONS: tags:t tasks:t tex:t timestamp:t toc:nil todo:t |:t #+CREATOR: Emacs 25.3.1 (Org mode 8.2.10) #+DESCRIPTION: #+EXCLUDE_TAGS: noexport #+KEYWORDS: #+LANGUAGE: en #+SELECT_TAGS: export #+LATEX_CLASS: beamer #+BEAMER_THEME: Frankfurt #+BEAMER_INNER_THEME: rounded * Introduction *** Programming - Python - Ruby *** Paragraph one Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras lorem nisi, tincidunt tempus sem nec, elementum feugiat ipsum. Nulla in diam libero. Nunc tristique ex a nibh egestas sollicitudin. *** Paragraph two Mauris efficitur vitae ex id egestas. Vestibulum ligula felis, pulvinar a posuere id, luctus vitae leo. Sed ac imperdiet orci, non elementum leo. Nullam molestie congue placerat. Phasellus tempor et libero maximus commodo. * Thanks *** Links - Link one - Link two我们给标题增加了三行:
#+LATEX_CLASS: beamer #+BEAMER_THEME: Frankfurt #+BEAMER_INNER_THEME: rounded导出为 PDF,按下
Alt + x键后输入org-beamer-export-to-pdf。
用 Emacs 和 Org 模式创建的 Latex Beamer 简报
希望你会爱上使用 Emacs 来创建 LaTex 和 Beamer 文档(注意:使用快捷键比用鼠标更快些)。Emacs 的 Org 模式提供了比我在这篇文章中说的更多的功能,你可以在 orgmode.org 获取更多的信息.

如何使用 Emacs 创建 LaTeX 文档
分享






