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

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

私は、次のようなコマンドを使用して作成された、多くの図を含む長いLaTeX文書を持っています。

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

page=pdfLaTeX ではすべて正常にコンパイルされます。TeX4ht を使用してドキュメントを HTML に変換する予定でしたが、TeX4ht はの属性を理解していないようです\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 を使用します。ただし、 PDF ファイルも複数ページのファイルも読み取ることはできません。ページ 10 は、次のようdvipsにして抽出し、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}

関連情報