【问题标题】:pandoc-mode: how to express pandoc command option with pandoc-mode?pandoc-mode:如何用 pandoc-mode 表达 pandoc 命令选项?
【发布时间】:2017-03-21 08:36:05
【问题描述】:

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

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

如何使用 pandoc-mode 达到同样的效果?

我学过pandoc-mode,好像和指定选项有关。但我试过了,不能让它工作。

谢谢,

【问题讨论】:

    标签: emacs pandoc


    【解决方案1】:

    一般方式

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

    pandoc-mode方式

    但是,在这个特定的示例中(在绝大多数情况下使用 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(可能多次)返回主菜单,但实际上您可能不必这样做,具体取决于您的操作方式和操作。

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

      • 认为“t”在这种情况下有效,尽管它被保存为字符串而不是真实值。如果您在此处不指定任何内容,则会在执行以下步骤时引发错误。
      • nb.,要取消它(所有变量),请键入 o w C-u C-u v(从主菜单)。
      • 手册 (*info*) 警告:

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

    5. 运行:要生成 PDF,请键入 p(或者,如果它来自缓冲区,则序列为 C-c / p。或者,通过工具栏,导航“Pandoc”>“创建 PDF” )
      • nb. 再次强调,PDF 创建非常出色;对于pandoc 的任何其他运行,它是c(运行 Pandoc)

    最后,必须正确设置命令搜索路径,以便 pandoc-mode 可以找到命令 pandocpdflatex(或类似)。我的.emacs 包含以下几行:

    (setq exec-path (append exec-path '("/usr/local/bin")))
    (setenv "PATH" (concat (getenv "PATH") ":/Library/TeX/texbin"))
    

    就是这样。希望它对你有用。

    【讨论】:

      【解决方案2】:

      我对 pandoc 了解不多,对 pandoc-mode 更是知之甚少。所以这是一个通用的答案:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-20
        • 2016-02-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多