Pandoc默认HTML模板包含以下两个变量:
quotes
,
math
。
他们应该如何使用?
更具体地说,我看到quotes
设置了代码<q>
的值。此标记是否用于HTML转换的标记?
答案 0 :(得分:1)
tl; dr:它们似乎是以前版本的pandoc中过时的遗产
quotes
pandoc提交的一些小考古显示,当pandoc从使用<q>
标签切换到直接添加引号时,添加了“引号”。添加了一个新选项--html-q-tags
以保留以前的行为:该选项在<q>
中包含引号并将quotes
设置为true
,以便添加一段css代码作为在html模板中解释。请参阅this commit to pandoc并将此提交至pandoc-templates。请参阅以下文件的行为:
"hello world"
此:
pandoc test.md -t html --smart --standalone
生成(跳过通常的头部,没有影响<q>
的css)
<p>“hello world”</p>
虽然这个
pandoc test.md -t html --standalone --html-q-tags --smart
生成(跳过通常的标题)
<style type="text/css">q { quotes: "“" "”" "‘" "’"; }</style>
</head>
<body>
<p><q>hello world</q></p>
</body>
你必须使用--smart
。
math
看起来这是为了在独立文件中包含数学渲染脚本。请参阅2010年的this commit。我认为选择非(当前)默认数学渲染系统的一些命令行选项(如--mathml
)会将此变量设置为实际有意义的值(如复制数学渲染脚本)。尝试:
pandoc -t html --mathml
答案 1 :(得分:0)
对于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。如果转换模板中没有此代码块,则不会插入脚本,也无法呈现数学。