我有类似的问题这个。
我有一个 markdown 文档,想将其转换为 pdf。我发现这些图形被放置在 latex 最适合的位置,但我希望它们准确地出现在 markdown 代码中的标签所在的位置。我希望 pandoc 生成以下图形代码:
\begin{figure}[H]
\centering
\fbox{\includegraphics[scale=0.4]{somepic.png}}
\caption{Some caption}
\end{figure}
我想要 scale 参数、[H] 和 fbox。此外,pandoc 会创建一个“图 N”标题,其他语言呢?我已经查看了很多关于这个问题的帖子,但我对提出的 latex 解决方案感到非常困惑(我有一些 latex 技能,但不是专家,我只是想从 markdown 创建一个像样的 pdf)。谢谢。
答案1
请务必阅读浮动放置 [H] 是否被认为是令人发指的?然后才能继续。
好吧。如果你真的想这样做,可以写一个类似下面的 lua 过滤器:短字幕.lua:
if FORMAT ~= "latex" then
return
end
local function latex(str)
return pandoc.RawInline('latex', str)
end
function figure_image(elem)
local image = elem.content and elem.content[1]
return (image.t == 'Image' and image.title == 'fig:')
and image
or nil
end
function Para(para)
local img = figure_image(para)
if not img or not img.caption then
return nil
end
return pandoc.Para {
latex("\\begin{figure}[H]\n\\centering\n"),
latex("\\fbox{"), img, latex("}"),
latex("\n\\caption"), pandoc.Span(img.caption),
latex("\n\\end{figure}\n")
}
end
这将转变![Some caption](somepic.png){width=40%}
为
\begin{figure}[H]
\centering
\fbox{\includegraphics[width=0.4\textwidth,height=\textheight]{somepic.png}}
\caption{Some caption}
\end{figure}