\documentclass{beamer}
\usetheme{Madrid}
\begin{document}
\begin{frame}
aaa
\end{frame}
\begin{frame}
bbb
\end{frame}
\end{document}
上面的 tex 文件要转换成 html。我使用以下命令
make4ht filename.tex
但是它抛出了错误。基本问题是“是否可以使用 make4ht 将 beamer 演示文稿转换为 html?”
答案1
在 中有一些对 Beamer 的支持tex4ht
,但它似乎有点老了——可以追溯到 2003 年。它似乎不再起作用了,因为 Beamer 自那时以来发生了很大变化。例如,它似乎支持环境slide
而不是frame
。
因此,我们似乎只能放弃当前的 Beamer 支持并创建一个新的支持。在将其添加到源之前tex4ht
,您可以使用以下beamer.4ht
文件:
\let\Hy@EveryPageAnchor\relax
\def\pgf@trimright@final{0pt}
\def\pgf@trimleft@final{0pt}
\let\origEndP\EndP
\AtBeginDocument{\def\EndP{\let\EndP\origEndP}\SaveEndP}
\endinput
它只是修复了基本问题 - 在每个页面中插入了虚假元素、缺少一些 PGF 命令以及段落问题。此版本将只创建一个没有框架的纯文本文档。如果我们想保留框架,我们可以在 .cfg 文件中配置它们:
\Preamble{xhtml}
\ConfigureEnv{beamer@frameslide}
{\ifvmode\IgnorePar\fi\EndP
\HCode{<section class="slide">}\RecallEndP\par\ShowPar
}
{\ifvmode\IgnorePar\fi\EndP \HCode{</section>}}
{} {}
\Css{section.slide {border:solid black 0.4pt;margin-bottom:1em;}}
\begin{document}
\EndPreamble
这将为<section class="slide">
每一帧插入元素。
结果:
<section class="slide">
<ul class="itemize1">
<li class="itemize">
first
</li>
<li class="itemize">
second</li></ul>
<!--l. 16--><p class="noindent" >aaa
</p>
</section>
<section class="slide">
<!--l. 19--><p class="noindent" >bbb
</p>
</section>