如何使用YAML块指定pandoc的降价扩展?

时间:2015-09-10 02:30:10

标签: yaml markdown rstudio r-markdown pandoc

背景

Pandoc的降价促使您specify extensions了解您希望如何处理降价:

  

通过将+EXTENSION-EXTENSION附加到格式名称,可以单独启用或禁用Markdown语法扩展。因此,例如,markdown_strict+footnotes+definition_lists是严格的降价,脚注和定义列表已启用,而markdown-pipe_tables+hard_line_breaks是pandoc的降价,没有管道表和硬换行符。

我的具体问题

对于给定的pandoc转换,例如,我在源代码中使用grid tables

pandoc myReport.md --from markdown+pipe_tables --to latex -o myReport.pdf

如何编写pandoc YAML block来完成同样的事情(指定我的源包含网格表?)

我的问题的一般形式

如何使用pandoc YAML打开和关闭扩展程序?

Stack Overflow我认为不完全回答我的问题的问题

可能还没有办法做到这一点

pandoc始终可能不允许您在YAML中指定这些扩展名。虽然,我希望它是。

5 个答案:

答案 0 :(得分:5)

您可以使用Markdown Variants在Rmarkdown文档中执行此操作。从本质上讲,您可以在variant文件开头的YAML标题栏中的.Rmd选项中输入您的扩展程序。

例如,要使用网格表,您的YAML标题栏中会出现类似这样的内容:

--- title: "Habits" author: John Doe date: March 22, 2005 output: md_document variant: markdown+grid_tables ---

然后您可以在pandoc中直接编译为PDF,方法是键入以下命令行:

pandoc yourfile.md -o yourfile.pdf

有关RStudio中降价变体的更多信息:http://rmarkdown.rstudio.com/markdown_document_format.html#markdown_variants

有关RStudio中markdown / Rmarkdown中Pandoc扩展的更多信息: http://rmarkdown.rstudio.com/authoring_pandoc_markdown.html#pandoc_markdown

答案 1 :(得分:1)

您可以使用每种输出格式中包含的md_extension参数在yaml标头中指定pandoc markdown扩展名。

---
title: "Your title"
output:
  pdf_document:
    md_extensions: +grid_tables
---

这将激活扩展。有关详细信息,请参见Rmarkdown Definitive Guide

答案 2 :(得分:1)

对于在 2021 年或之后遇到此问题的人,无需 Rmarkdown 即可完成此操作。您可以指定一个 YAML“默认”文件,它基本上包含您想要配置的任何内容。

为了做 OP 想要的,你需要做的就是

from: markdown+pipe_tables

在默认文件中,然后在编译时传递它。 您还可以指定输入和输出文件,因此您最终可以使用最少的命令 pandoc --defaults=defaults.yaml 并让它为您处理剩下的事情。请参阅 https://pandoc.org/MANUAL.html#extensions 了解更多信息。

答案 3 :(得分:0)

在Rmarkdown范围之外,您可以使用Pandocomatic或Ruby使用Paru

---
 title: My first pandocomatic-converted document
 pandocomatic_:
     pandoc:
         from: markdown+footnotes
         to: html
 ...

答案 4 :(得分:0)

正如 Mercako 所指出的,接受的答案是特定于 rmarkdown 的。例如,Atom md_extensions: 不起作用。

更通用的方法是将扩展名放在命令行选项中。这个例子工作正常:

----
title: "Word document with emojis"
author: me
date: June 9, 2021
output:
  word_document:
    pandoc_args: ["--standalone", "--from=markdown+emoji"]
----