如何使用 beamer 结构而不是块使 pandoc 生成 header
How to make pandoc generate header using beamer structure instead of blocks
我如何更改 headers 幻灯片下方的方式在 LaTeX 中由 pandoc 从 {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}
通过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。
我如何更改 headers 幻灯片下方的方式在 LaTeX 中由 pandoc 从 {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}
通过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。