使用 Pandoc 允许 LaTeX 代码中包含原始 HTML

使用 Pandoc 允许 LaTeX 代码中包含原始 HTML

我知道使用 Pandoc 可以在 Markdown 文档中包含原始 HTML,所以我想知道是否有办法在 LaTeX 文档中允许这样做。

当包含在 LaTeX 文档中(即使在逐字记录中)时,Pandoc 会将小于和大于字符转换为 HTML 实体。这很有意义,但这不是我想要的。

答案1

最好的方法是使用专门标记的verbatim环境,然后可以通过Lua 过滤器。例如,添加一个%%%html标签作为 verbatim 环境的第一行,然后插入您想要保留的 HTML:

\begin{verbatim}
%%%html
<aside>Embedding raw HTML can be helpful</aside>
\end{verbatim}

Pandoc 会将其读取为普通代码块,但我们想要原始 HTML 块。我们使用过滤器来转换它:

function CodeBlock(cb)
  local rawHtml = cb.text:match('^%s*%%%%%%html\n(.*)')
  if rawHtml then
    return pandoc.RawBlock('html', rawHtml)
  end
end

将以上内容保存到文件中,并将其用作 pandoc 选项的参数--lua-filter

相关内容