避免RawBlocks之间的换行

我有一个用 Lua 写的 Pandoc 过滤器,将某些 Div 转换为 RawBlock。我的问题是,Pandoc 在 LaTeX 输出中似乎在这些 RawBlock 之间插入了一个换行符,这会影响布局,因为 subfigure 之间的换行符是有意义的。

就我所看到的,我的过滤器并没有产生任何换行符:

if FORMAT ~= 'latex' then
  return {}
end

function Div(elem)
   if elem.classes:includes("subtikz") then
      return { pandoc.RawBlock('latex', '\\begin{subfigure}'),
               elem,
               pandoc.RawBlock('latex', '\\end{subfigure}') }
   end

   if elem.classes:includes("figure") then
      return { pandoc.RawBlock('latex', '\\begin{figure}'),
               elem,
               pandoc.RawBlock('latex', '\\end{figure}') }
   end

   return nil
end

然而,通过一个简单的 Markdown 输入文件,我们可以看到问题:

<div class="figure">
 \hspace{-2cm}
 <div class="subtikz"></div>
 <div class="subtikz"></div>

 \vspace{8ex}

 <div class="subtikz"></div>
</div>

(当然,这样非常简化了——在我的实际用例中,我可以在 <div class="subtikz"> 内部有内容,这就是为什么它是一个div的原因)。

这导致了:

$ pandoc --lua-filter latex-output-space.lua latex-output-space.md  -t latex
\begin{figure}

\hspace{-2cm}

\begin{subfigure}

\end{subfigure}

\begin{subfigure}

\end{subfigure}

\vspace{8ex}

\begin{subfigure}

\end{subfigure}

\end{figure}

请注意,在 \end{subfigure} 行之后多出了额外的行。 我如何摆脱它们? 我的预期输出应该是:

\begin{figure}
\hspace{-2cm}
\begin{subfigure}
\end{subfigure}
\begin{subfigure}
\end{subfigure}

\vspace{8ex}

\begin{subfigure}
\end{subfigure}
\end{figure}
点赞