У меня есть длинный документ LaTeX с большим количеством рисунков, которые были включены с помощью команд вида
\includegraphics[page=10]{foo.pdf}
Все отлично компилируется с pdfLaTeX. Я планировал преобразовать документ в HTML с помощью TeX4ht, но, похоже, TeX4ht не понимает атрибуты page=
в \includegraphics
.
Есть ли какие-то простые решения? В идеале я бы предпочел оставить свой основной исходный код Latex без изменений и просто подправить преамбулу.
решение1
Извините за опоздание. Следующий код, вероятно, поможет Юкке:
\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 не использует pdfTeX в режиме PDF, а вместо этого использует 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}