Я хотел бы вставить GIF-изображение в свой текст и нашел этоКонвертируйте GIF-изображение в PNG на лету.
Итак, я вставил в свой документ
\documentclass[a4paper]{article}
\usepackage{graphicx}
\DeclareGraphicsRule{.JPG}{eps}{.JPG}{`convert #1 eps:-}
\begin{document}
\framebox{\includegraphics[0,0][150,200]{DSC00121-SMALL.JPG}}
\end{document}
А именно у меня есть
\usepackage{graphicx}
\DeclareGraphicsRule{.JPG}{eps}{.JPG}{`convert #1 eps:-}
а потом
\framebox{\includegraphics[0,0][150,200]{nn.JPG}}
Также я переименовал картинку какnn.JPG
Но это не работает! Есть ли помощь?
решение1
Вот MWE для pdfLaTeX, предполагая, что у вас есть командная convert
строкаИзображение Магияустановлен и использует .png
маршрут, как pdfLaTeX
уже есть метод для PNG:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
% loading epstopdf package might be needed,
% but is often automatically loaded by graphicx when running pdfLaTeX
%\usepackage{epstopdf}
% epstopdf setup for GIF
\DeclareGraphicsRule{.gif}{png}{.png}{%
\noexpand\epstopdfcall{convert #1 \noexpand\OutputFile}%
}
\AppendGraphicsExtensions{.gif}
\begin{document}
\subsection*{This is a GIF version}
\includegraphics[width=0.5\linewidth]{tmp.gif}
% The GIF file is converted to tmp-gif-converted-to.png
\subsection*{This is a jpg version}
\includegraphics[width=0.5\linewidth]{tmp.jpg}
\subsection*{This is a png version}
\includegraphics[width=0.5\linewidth]{tmp.png}
\subsection*{This is a pdf version}
\includegraphics[width=0.5\linewidth]{tmp}
\end{document}
РЕДАКТИРОВАТЬ:
С помощью старого LaTeX (в режиме dvi) пришлось бы конвертировать GIF в EPS. Для этого можно заменить вышеприведенное \DeclareGraphicsRule
на следующее:
\DeclareGraphicsRule{.gif}{eps}{.gif.bb}{`convert #1 eps:-}
Затем команда преобразования записывается дословно в .dvi
файл и выполняется при dvips
условии, что она запущена с -R0
опцией. Наконец, файл PDF может быть создан с помощью ps2pdf
.
Однако этот метод имеет ряд недостатков:
- преобразованные цифры огромны;
- это не работает с
dvipdfm(x)
. - это работает только в том случае, если
.gif.bb
файл был создан, что можно сделать с помощью такой команды:identify tmp.gif |sed -r -e "s/(.*)\s+([0-9]{2,})x([0-9]{2,})\s+(.*)/%%BoundingBox: 0 0 \2 \3/" > tmp.gif.bb
для каждого графического файла tmp.gif
.
В этом контексте становится гораздо эффективнее написать пакет для выполнения преобразования всех файлов за пределами LaTeX/dvips
, используя convert
с подходящими параметрами или Netpbm
, или Irfanview
(только Windows) и т. д.
ПРАВКА 2:В Windows эта convert
команда является инструментом обработки диска, а последние версии ImageMagick используют imagemagick convert
(с пробелом) вместо голого convert
. Затем ее \epstopdfcall
необходимо изменить соответствующим образом.