如何更改Pandoc在LaTeX中将幻灯片级别下的标头从{block}
环境转换为\structure{}
命令的方式?
想象一下这样的Markdown文件(foo.md
)
# Slide title
## Header
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
让我们使用以下命令将其转换为LaTeX:
pandoc -t beamer --slide-level 1 foo.md -o foo.tex
生成的LaTeX文件类似于:
\begin{frame}{Slide}
\begin{block}{Header}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
\end{block}
\end{frame}
是否有一个简单而优雅的解决方案,以便pandoc生成如下内容?
\begin{frame}{Slide}
\structure{Header}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
\end{frame}
答案 0 :(得分:1)
通过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。