使用 beamer 类的 \includegraphics 的 tex4ht 问题

使用 beamer 类的 \includegraphics 的 tex4ht 问题

我已设法让 tex4ht 在 debian jessie 上工作,处理带有 article 类的中等复杂文档(包含多个 \includegraphics、bibliography)。但是,对于 beamer 类,即使是以下简单文档 (t.tex) 也失败了:

\documentclass{beamer}
\usetheme{default}

\title{Simple beamer doc}
\author{John D}
\date{12 Aug 2014}
\usepackage{graphicx}

\begin{document}

\begin{frame}
  \titlepage
\end{frame}

\begin{frame}{frame title}

  \includegraphics{xml-proc.eps}

\end{frame}

\end{document}

“latex t.tex” 工作正常,但“mk4ht htlatex t.tex” 会导致错误:

! TeX capacity exceeded, sorry [input stack size=5000].
<to be read again> 
                   \def 
l.19 \end{frame}

罪魁祸首是\includegraphics。删除\includegraphics可消除上述错误,生成包含所有幻灯片(但显然没有图片)的 html 文件。尝试将堆栈大小增加到 50000,但出现同样的错误。此外,仅指定\includegraphics{}(无文件名)也会产生同样的错误。

日志文件(由“mk4ht htlatex t.tex”生成)中的以下行可能是该问题的可能提示:

LaTeX 信息:在输入行 16 上重新定义 \includegraphics。

当使用文章类 tex 文件时,日志文件中不存在上述行(在这种情况下\includegraphics不会出现问题)。

知道为什么\includegraphicsbeamer 会失败吗?还有其他解决方法吗?

答案1

我认为您会发现tex4ht对 beamer 的支持存在很多问题,因为它是一个非常复杂的软件包,重新定义了许多命令,这也是它所做的tex4ht。被和\includegraphics都修补了,这会产生冲突。 为了轻松修复此问题,您可以定义将与普通 LaTeX 一起使用的自定义命令,否则将使用特殊命令。beamertex4ht\includegraphicstex4ht

创建文件mypic.sty

\RequirePackage{graphicx}
\newcommand\mypic[1]{\includegraphics{#1}}
\endinput

tex4ht和文件的定义mypic.4ht

\renewcommand\mypic[1]{\Picture[picture]{#1}\special{t4ht+@File: #1}}

请注意,这只对网络浏览器支持的图片有效,即pngjpg和。gifsvg

\documentclass[trans]{beamer}
\usetheme{default}

\title{Simple beamer doc}
\author{John D}
\date{12 Aug 2014}
\usepackage{mypic}


\begin{document}


\begin{frame}
  \titlepage
\end{frame}

\begin{frame}{frame title}

  \mypic{xml-proc.png}

\end{frame}

\end{document}

请注意,我已经添加了trans选项。这会在使用命令\documentclass{beamer}时抑制创建多张幻灯片。\only

相关内容