Pandoc HTML 变量:`quotes` 和 `math`

Pandoc HTML variables: `quotes` and `math`

Pandoc 默认 HTML 模板包含这两个变量:

它们应该如何使用?

更具体地说,我看到 quotes 设置了标签 <q> 的值。此标记是否用于降价到 HTML 转换?

tl;dr:它们似乎大多是以前版本的 pandoc

的过时遗留物

quotes

pandoc 提交的一点考古表明,当 pandoc 从使用 <q> 标签切换到直接添加引号时,添加了 'quotes'。添加了一个新选项 --html-q-tags 以保持以前的行为:该选项在 <q> 中包装引号并将 quotes 设置为 true 以便 css按照 html 模板中的说明添加代码。参见 this commit to pandoc and this commit to pandoc-templates。查看以下文件的行为:

"hello world"

这个:

pandoc test.md -t html --smart --standalone

产生(跳过通常的头部,没有 css 影响 <q>

<p>“hello world”</p>

虽然这

pandoc test.md -t html --standalone --html-q-tags --smart

产生(跳过通常的 header)

  <style type="text/css">q { quotes: "“" "”" "‘" "’"; }</style>
</head>
<body>
<p><q>hello world</q></p>
</body>

不过你必须使用 --smart

math

看起来这是为了在独立文件中包含数学渲染脚本。请参阅 2010 年的 this commit。我认为一些 command-line 选择非(当前)默认数学渲染系统的选项,如 --mathml,将此变量设置为实际有意义的值(如复制数学渲染脚本)。尝试:

pandoc -t html --mathml

对于quotes变量,见@scoa。
关于 math 变量,我发现了以下内容。

使用MathML时,即选项--mathml,代码块:

$if(math)$
  $math$
$endif$

在默认的 HTML 转换模板中向 HTML 输出添加了一个可移植性脚本。 无论如何,Chrome 和 Edge 目前不支持 MathML 而 Firefox 似乎在没有这个脚本的情况下支持它。 因此,对于自定义模板,删除 $if(math)$ ... 代码块不会影响 MathML 渲染。

使用 MathJax 时,选项 --mathjax$if(math)$ ... 添加到 HTML 输出脚本块:

<script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_CHTML-full" type="text/javascript"></script>

这是呈现数学公式所必需的。

当使用 --latexmathml 时,$if(math)$ ... 代码块插入了一个巨大的 script,将 LaTeX 样式数学转换为 MathML。如果转换模板中没有此代码块,则不会插入脚本,也无法呈现数学。