如何使用 beamer 结构而不是块使 pandoc 生成 header

How to make pandoc generate header using beamer structure instead of blocks

我如何更改 headers 幻灯片下方的方式在 LaTeX 中由 pandoc 从 {block} 环境转换为 \structure{} 命令?

是否有一个简单而优雅的解决方案,使 pandoc 产生如下内容?

\begin{frame}{Slide}

\structure{Header}

Lorem ipsum dolor sit amet, consectetuer adipiscing elit.

\end{frame}

通过Lua filters很容易实现:

function Header (header)
  if header.level == 2 then
    local inlines = pandoc.List:new{}
    inlines:extend {pandoc.RawInline('tex', '\structure{')}
    inlines:extend(header.content)
    inlines:extend {pandoc.RawInline('tex', '}')}
    return pandoc.Plain(inlines)
  end
end

将过滤器安全保存到文件中,并通过 --lua-filter 选项将该文件传递给 pandoc。