我有一份很长的 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,方法epstopdf
是xpdf
:
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}