我已设法让 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
不会出现问题)。
知道为什么\includegraphics
beamer 会失败吗?还有其他解决方法吗?
答案1
我认为您会发现tex4ht
对 beamer 的支持存在很多问题,因为它是一个非常复杂的软件包,重新定义了许多命令,这也是它所做的tex4ht
。被和\includegraphics
都修补了,这会产生冲突。 为了轻松修复此问题,您可以定义将与普通 LaTeX 一起使用的自定义命令,否则将使用特殊命令。beamer
tex4ht
\includegraphics
tex4ht
创建文件mypic.sty
:
\RequirePackage{graphicx}
\newcommand\mypic[1]{\includegraphics{#1}}
\endinput
tex4ht
和文件的定义mypic.4ht
\renewcommand\mypic[1]{\Picture[picture]{#1}\special{t4ht+@File: #1}}
请注意,这只对网络浏览器支持的图片有效,即png
、jpg
和。gif
svg
\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