Вставить GIF в LaTeX

Вставить GIF в LaTeX

Я хотел бы вставить 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необходимо изменить соответствующим образом.

Связанный контент