TeX4ht: \includegraphics[página=10]{foo.pdf}

TeX4ht: \includegraphics[página=10]{foo.pdf}

Eu tenho um longo documento LaTeX com muitas figuras que foram incluídas usando comandos do formulário

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

Tudo compila bem com o pdfLaTeX. Planejei converter o documento em HTML usando TeX4ht, mas parece que o TeX4ht não entende os page=atributos em \includegraphics.

Existem soluções fáceis? Idealmente, eu preferiria manter minha fonte principal de Latex inalterada e apenas ajustar o preâmbulo.

Responder1

Desculpe por estar atrasado. O código a seguir provavelmente ajudará o 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}deve funcionar agora tanto com pdfLaTeX quanto com TeX4ht.

Responder2

TeX4ht não usa pdfTeX no modo PDF, mas sim dvips. No entanto, dvipsnão é possível ler arquivos PDF nem arquivos de várias páginas. A página 10 pode ser extraída e convertida para eps epstopdfcom xpdf:

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

Ou ghostscriptpode ser usado, por exemplo:

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

Então na fonte:

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

E o pacote ifpdfé necessário no preâmbulo:

\usepackage{ifpdf}

informação relacionada