TeX4ht:\includegraphics[page=10]{foo.pdf}

TeX4ht:\includegraphics[page=10]{foo.pdf}

我有一份很长的 LaTeX 文档,其中包含大量使用以下形式的命令包含的图表

\includegraphics[page=10]{foo.pdf}

使用 pdfLaTeX 编译一切都很好。我计划使用 TeX4ht 将文档转换为 HTML,但 TeX4ht 似乎不理解page=中的属性\includegraphics

有什么简单的解决方案吗?理想情况下,我宁愿保持我的主要 Latex 源不变,只调整序言。

答案1

抱歉我来晚了。以下代码可能对 Jukka 有帮助:

\makeatletter

\@ifundefined{Configure}
 {\def\Includegraphics[#1]#2{\includegraphics[page={#1}]{#2}}}
 {\def\Includegraphics[#1]#2{\def\GPT@page{#1}\includegraphics{#2}}
  \Configure{graphics*}
   {pdf}
   {\Needs{"
    pdftops -eps -f \GPT@page\space -l \GPT@page\space \[email protected] \Gin@base-\[email protected]"
    ;
    convert \Gin@base-\[email protected] \Gin@base-\[email protected]
    "}%
    \Picture[pict]{\Gin@base-\[email protected]}%
   }%
  }%
\makeatother

\Includegraphics[10]{foo.pdf}现在应该可以与 pdfLaTeX 和 TeX4ht 一起使用。

答案2

TeX4ht 不使用 PDF 模式的 pdfTeX,而是使用 dvips。但是它既dvips不能读取 PDF 文件,也不能读取多页文件。第 10 页可以提取出来并转换为 eps,方法epstopdfxpdf

epstopdf -eps -f 10 -l 10 foo.pdf foo-10.eps

或者也ghostscript可以使用,例如:

gs -dFirstPage=10 -dLastPage=10 -sDEVICE=epswrite -dBATCH -dNOPAUSE -sOutputFile=foo-10.eps foo.pdf

然后在源中:

\ifpdf
  \includegraphics[page=10]{foo.pdf}
\else
  \includegraphics{foo-10.eps}
\fi

并且ifpdf在序言中需要包:

\usepackage{ifpdf}

相关内容