我想在文本中插入 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
这是 pdfLaTeX 的 MWE,假设你有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
必须进行相应的修改。