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 頁可以使用epstopdfof提取並轉換為 eps 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}

相關內容