最近在研究如何将org文件导出PDF。org-mode的强大之处就不用我说了,可以做笔记、GTD等。 org-mode虽好,但是懂的人相对较少。直接分享org文件会有些不人性化。随着Github开始支持org-mode,相信这么优秀的文件格式将来越来越被接受,学习的人也会越来越多。 PDF文件出众的文字渲染效果让人有着更好的阅读体验。如果可以将org文件导出PDF与人分享那当然是最好的了。其实org-mode是默认是支持转成PDF文件的,但是其默认对中文支持不好。 另外,作为一个程序员,整天要跟代码打交道。org文件中也会嵌入些代码,导出PDF如果可以支持代码高亮,那自是最好不过了。 我花了两个周末时间去研究去尝试,现在终于可以完美的支持中文和代码语法高亮了。现在写出来与大家分享。
需要注意的是,笔者一直在macOS下工作,本文如无特殊说明均默认操作系统为macOS。
1 安装
1.1 安装Emacs
sudo brew cask install emacs |
1.2 安装Mactex
brew cask install mactex |
2 导出配置
2.1 基础导出配置
基础导出配置放在文档的开头,主要终于文档的全局配置,包括支持中文、代码语法高亮、页面大小等。 以下是我的导出配置:
#+LATEX_HEADER: \documentclass{article} #+LATEX_CLASS_OPTIONS: [a4paper] #+LATEX_HEADER: \usepackage{xeCJK} #+LATEX_HEADER: \usepackage{minted} #+LATEX_HEADER: \usepackage[margin=2cm]{geometry} #+LATEX_HEADER: \setminted{fontsize=\small,baselinestretch=1} |
简单解释下以上导出设置的含义。上述配置设置导出的文档类型为article,页面为A4纸大小,使用xeCJK包支持中文,使用minted支持语法高亮,设置页面距为2cm。
2.2 内容相关导出配置
这里我只给出几种我遇到的情况,如果你遇到其他问题可以参考org-mode手册的 LaTeX export 部分
2.2.1 防止内容溢出页面
- 表格
#+ATTR_LATEX: :environment longtable :align l|lp{3cm}r|l | ..... | ..... | | ..... | ..... | |
具体的可以参见org-mode manual。
3 Emacs配置
3.1 LaTeX导出设置
设置编译器
(require 'ox-latex) |
3.2 源代码语法高亮
;; use minted to hightlight the source code |
3.3 中文表格对齐
Emacs默认不支持含有中文的表格的自动对齐,这让人看起来很不舒服,可以用以下配置来解决这个问题。
;; ----------------------------------------------------------------------------- |
4 导出
导出的快捷键是 C-x C-e l o
。
如果在导出的过程中,出现一些package不存在的提示,可以用如下命令安装:
sudo tlmgr install <package name> |
5 总结
本文简单介绍了下如何将org-mode文件导出PDF文件,并支持中文和源代码语法高亮。我的Emacs的配置可以参见Github。 另外我也建议使用YasSnippet这个插件来记录我提到的一些导出配置,这样可以节省你的一些时间,让你更加专注于写作。