包括 DVI 和 PNG 的图形

包括 DVI 和 PNG 的图形

我问的问题与这个问题非常相似(我似乎无法发表评论):

尝试生成 DVI 时,PNG 图像出现 MikTex 错误

我正在制作 PDF 文档,但制作过程中使用了 LeD 中的 DVI 预览器。添加图形有点问题。假设我想添加一个文件 simple_ambiguity.png。

\includegraphics[width=\textwidth]{simple_ambiguity.png}

由于边界框错误,无法与 DVI 配合使用。这很麻烦,因为我实际上并不关心图形是否在 DVI 内准确显示,甚至不关心它是否占用了正确的空间——我只希望它能够编译。

目前,我正在使用一种解决方法:我正在创建一个虚拟的“空图片”文件 simple_ambiguity.eps,我并不真正关心它的尺寸,然后写入

\includegraphics[width=\textwidth]{simple_ambiguity}

但这很麻烦,因为每次添加新图片时我都必须手动创建 eps。我正在寻找一些简单的即发即弃解决方案,让 DVI 只需编译即可。

(在我链接到的问题的答案中,第一个似乎涉及手动创建边界框,第二个涉及在每次编译时调用 ImageMagick,这会不必要地缓慢并引入相当尴尬的依赖关系。)

答案1

如果您只是希望图像在模式下消失,dvi/dvips那么:

\makeatletter
\def\temp{dvips.def}
\ifx\Gin@driver\temp
\def\Ginclude@graphics#1{\def\temp{#1}---image \expandafter\strip@prefix\meaning\temp---}
\fi
\makeatother

在你的序言中就会产生这样的效果。

答案2

您也可以使用 png 或 gif 图像进行 dvi 路由,但您必须为转换定义一些图形规则。以下需要

latex <file>
dvips -R0 <file>
ps2pdf <file>.ps

convert必须安装该程序。它是 ImageMagick 软件包的一部分

\documentclass{article}
\usepackage[dvips]{graphicx}    
\DeclareGraphicsRule{.png}{eps}{.bb}{`convert #1 eps:-}
\DeclareGraphicsRule{.gif}{eps}{.bb}{`convert #1 eps:-}
\usepackage{grfext}
\AppendGraphicsExtensions*{.png,.gif}
\usepackage{bmpsize}

\makeatletter
\newcommand*{\IncludeGraphics}[2][]{{%
    \let\@found\@empty
    \@for\@type:=\bmpsize@types\do{%
      \ifx\@found\@empty
        \@nameuse{bmpsize@read@\@type}{#2.\@type}%
        \ifbmpsize@ok
          \let\@found=\@type
        \fi
      \fi
    }%
    \ifx\@found\@empty\includegraphics[{#1}]{#2}%
    \else\includegraphics[{natwidth=\bmpsize@width,natheight=\bmpsize@height,#1}]{#2}%
    \fi}}
\makeatother

\begin{document}
  \IncludeGraphics{lion.png} % a png image
  \IncludeGraphics{lion.gif} % a gif image
\end{document}

答案3

您还可以手动向每个图像添加natwidth和属性,例如:natheight

\includegraphics[natwidth=800,natheight=600,width=\textwidth]{simple_ambiguity.png}

这应该与latex和都兼容pdflatex

答案4

如果您不关心图片的大小,您可以简单地使用包demo的选项graphicx

\documentclass[a4paper,12pt]{article}
\usepackage[demo]{graphicx}

\begin{document}

\includegraphics[width=\textwidth]{dontexist.png}

\end{document}

或者你可以重新定义\includegraphics

\documentclass[a4paper,12pt]{article}
\usepackage{graphicx}
\renewcommand\includegraphics[2][]{\fbox{here graphic #2}}
\begin{document}

\includegraphics[width=\textwidth]{dontexist.png}

\end{document}

相关内容