我尝试执行以下代码...我想要的是,如果我使用的目录中没有“image2”,Latex 将删除第二页(我希望它是一个“动态”文档),可以吗?
\documentclass[10pt,a4paper]{article}
\usepackage{graphicx}
\usepackage{subfig}
\usepackage{float}
\usepackage{textpos}
\usepackage[margin=0.5in,includefoot]{geometry}
\begin{document}
\begin{textblock}{2.5}(0,0)
\raggedright
\begin{figure}[H]
\includegraphics[height=3.2in]{image1}
\centering
\end{figure}
\end{textblock}
\newpage
\begin{textblock}{2.5}(0,0)
\raggedleft
\begin{figure}
\includegraphics[height=3.2in]{image2}
\centering
\end{figure}
\end{textblock}
\end{figure}
\end{document}
答案1
如果您不想明确给出扩展,则必须测试所有可能的扩展。
\documentclass[10pt,a4paper]{article}
\usepackage{graphicx}
\usepackage{textpos}
\usepackage[margin=0.5in,includefoot]{geometry}
\makeatletter
\newcommand{\IfImageExists}[1]{%
\@tempswafalse
\@for\IIE@temp:=\Gin@extensions\do{% a similar test is in graphics.sty
\IfFileExists{#1\IIE@temp}{\@tempswatrue}{}%
}%
\if@tempswa
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi
}
\makeatother
\begin{document}
\IfImageExists{example-image}{%
\begin{textblock}{2.5}(0,0)
\raggedright
\includegraphics[height=3.2in]{example-image}
\end{textblock}}
{}
\newpage
\IfImageExists{./example-image}{%
\begin{textblock}{2.5}(0,0)
\raggedright
\includegraphics[height=3.2in]{./example-image}
\end{textblock}}
{}
\end{document}
这只会打印一张图片,因为我没有example-image.???
适合包含图形的扩展名的文件,但是在全局搜索目录(第一次调用)中有(mwe
包的一部分)。
第三个参数可以\IfImageExists
包含在未找到图像文件时要执行的代码。
如果你有一个固定的扩展名,那么.png
你可以使用
\IfFileExists{./image1.png}{<true>}{<false>}
而不是\IfImageExists
。
答案2
使用\IfFileExists
命令。生成第二个图形的代码块变为
\IfFileExists{image2}{%
\newpage
\begin{textblock}{2.5}(0,0)
\raggedleft
\begin{figure}
\includegraphics[height=3.2in]{image2}
\centering
\end{figure}
\end{textblock}%
}{}