pandoc-mode:如何用pandoc-mode表达pandoc命令选项?

时间:2017-03-21 08:36:06

标签: emacs pandoc

在命令行中,我需要执行以下操作:

pandoc --variable=subparagraph try.md -o try.pdf

如何使用pandoc-mode实现相同的目标?

我研究了pandoc-mode,它似乎与指定选项有关。但我尝试过,无法让它发挥作用。

谢谢,

2 个答案:

答案 0 :(得分:1)

我不太了解pandoc,更不用说pandoc-mode。所以这是一个通用答案:

使用M-x compile运行命令(异步)并在*compilation*缓冲区中获取输出。如果正确设置了某些正则表达式,您将获得编译缓冲区中警告和错误的超链接。

您可以将compile-command设置为文件本地变量(Emacs: set compilation command per-buffer)。

我使用包multi-compile来拥有许多编译命令模板。

答案 1 :(得分:1)

一般方式

如果你想进行精确控制,@ jpkotta所指出的一般方式也许是前进的方法。也就是说,键入M-x compilepandoc的整个命令,包括缓冲区的文件名(try.md)。我不知道如何为markdown文件设置每个缓冲区的编译命令。

pandoc-mode way

然而,在这个特定的例子中(以及在pandoc的大多数情况下),使用本机pandoc-mode方式会更好(更容易);也就是说,首先设置所需的选项,并在每次需要时运行转换命令。以下是基于GNU Emacs Ver.25.3.1和pandoc-mode Ver.20180122.108的过程。

pandoc-mode中,您可以通过pandoc-mode选项面板设置环境,该面板通过从您正在编辑的缓冲区中键入C-c /M-x pandoc-main-hydra/body来调用({{1} } 在这种情况下)。然后,执行以下操作。

请注意,以下过程基于命令界面。或者,如果工具栏在您的Emacs环境中可用,则可以通过GUI单击工具栏中的try.md选项卡来实现相同的操作(我不详细说明)。另外,为了清楚起见,我假设您在每个步骤后按Pandoc(可能多次)返回主菜单,尽管您可能不必实际操作,具体取决于您的操作方式和内容。

  1. 输入格式:按b(输入格式)和I(Markdown)选择。
    • 似乎此命令退出选项面板;所以你需要在此之后再次调用m
  2. 输出格式:按C-c /(输出格式)和O(LaTeX)选择。这里没有PDF选项。请参阅author's description以了解它为什么是LaTeX。我相信原生pandoc也在内部(你可以通过l选项查看)。
  3. (可选)输出文件名:按pandoc --verbose设置(选项→文件→输出文件)。在这种特定情况下,您可以跳过此步骤,因为o f o YOUR_OUTPUT.pdf[RET]是从try.pdf转换的默认PDF文件名。
    • nb。,如果要取消它,即将其设置回默认设置,请键入try.md(从主菜单中)。
  4. 命令行选项:要设置o f C-u o,请键入--variable=subparagraph(选项→常规编写选项→变量)

    • 认为" t"在这种情况下工作,虽然它保存为字符串而不是真值。如果您在此处未指定任何内容,则会在执行以下步骤时引发错误。
    • nb。,要取消它(所有变量),请输入o w v subparagraph[RET] t[RET](从主菜单中)。
    • 手册(* info *)警告:

        

      它们仅适用于当前文件当前输出格式。

  5. 运行:要生成PDF,请键入o w C-u C-u v(或者,如果它来自缓冲区,则序列为p。另外,通过工具栏,导航& #34; Pandoc">"创建PDF")
    • nb。再次,PDF创作是特殊的;对于C-c / p的任何其他运行,它是pandoc(运行Pandoc)
  6. 最后,必须正确设置命令搜索路径,以便pandoc-mode可以找到命令cpandoc(或类似命令)。我的pdflatex包含以下行:

    .emacs

    那就是它。希望它适合你。