【发布时间】:2017-03-21 08:36:05
【问题描述】:
在命令行上,我需要执行以下操作:
pandoc --variable=subparagraph try.md -o try.pdf
如何使用 pandoc-mode 达到同样的效果?
我学过pandoc-mode,好像和指定选项有关。但我试过了,不能让它工作。
谢谢,
【问题讨论】:
在命令行上,我需要执行以下操作:
pandoc --variable=subparagraph try.md -o try.pdf
如何使用 pandoc-mode 达到同样的效果?
我学过pandoc-mode,好像和指定选项有关。但我试过了,不能让它工作。
谢谢,
【问题讨论】:
如果您想进行精确控制,@jpkotta 指出的通用方式也许是一种前进的方式。也就是说,键入M-x compile 和pandoc 的整个命令,包括缓冲区的文件名(try.md)。我不知道如何为 Markdown 文件设置每个缓冲区的编译命令。
但是,在这个特定的示例中(在绝大多数情况下使用 pandoc),使用本机 pandoc 模式方式会更好(更容易);也就是说,首先设置所需的选项并在每次需要时运行转换命令。这是基于 GNU Emacs Ver.25.3.1 和 pandoc-mode Ver.20180122.108 的过程。
在pandoc-mode 中,您可以通过pandoc-mode 选项面板设置环境,该面板通过在您正在编辑的缓冲区中键入C-c / 或M-x pandoc-main-hydra/body 来调用(在本例中为try.md)。然后,执行以下操作。
注意以下过程是基于命令界面的。或者,如果工具栏在您的 Emacs 环境中可用,则应该通过 GUI 通过单击工具栏中的Pandoc 选项卡来实现相同的操作(我不详细说明)。另外,为了清楚起见,我假设您在每个步骤后按b(可能多次)返回主菜单,但实际上您可能不必这样做,具体取决于您的操作方式和操作。
I(输入格式)和m(Markdown)选择。
C-c /。O(输出格式)和l(LaTeX)选择。这里没有 PDF 选项。请参阅author's description 了解为什么它是 LaTeX。我相信原生 pandoc 也在内部这样做(您可以通过 pandoc --verbose 选项检查它)。o f o YOUR_OUTPUT.pdf[RET] 设置(选项→ 文件→ 输出文件)。在这种特定情况下,您可以跳过此步骤,因为try.pdf 是从try.md 转换而来的默认 PDF 文件名。
o f C-u o(从主菜单)。命令行选项:要设置 --variable=subparagraph,请键入 o w v subparagraph[RET] t[RET](选项 → 常规编写器选项 → 变量)
o w C-u C-u v(从主菜单)。手册 (*info*) 警告:
它们只适用于当前文件和当前输出格式。
p(或者,如果它来自缓冲区,则序列为 C-c / p。或者,通过工具栏,导航“Pandoc”>“创建 PDF” )
pandoc 的任何其他运行,它是c(运行 Pandoc)最后,必须正确设置命令搜索路径,以便 pandoc-mode 可以找到命令 pandoc 和 pdflatex(或类似)。我的.emacs 包含以下几行:
(setq exec-path (append exec-path '("/usr/local/bin")))
(setenv "PATH" (concat (getenv "PATH") ":/Library/TeX/texbin"))
就是这样。希望它对你有用。
【讨论】:
我对 pandoc 了解不多,对 pandoc-mode 更是知之甚少。所以这是一个通用的答案:
使用M-x compile 运行命令(异步)并在*compilation* 缓冲区中获取输出。如果某些正则表达式设置正确,您会在编译缓冲区中获得指向警告和错误的超链接。
您可以将compile-command 设置为文件局部变量(Emacs: set compilation command per-buffer)。
我使用包multi-compile有很多编译命令模板。
【讨论】: