LaTeX 中未找到图像文件

LaTeX 中未找到图像文件

我尝试使用该includegraphics命令和自定义命令将图像包含到我的 PDF 文件中,但是我遇到了一个问题,即 LaTeX 似乎无法找到我的系统中存在的文件。

以下是出现问题的行:

\includegraphics[width=0.6\textwidth]{\matlabgraph{rplot}}

这些是在类文件中定义的:

\newcommand{\matlabvalue}[1]{\input{\datadir{value/#1.dat}}}
\newcommand{\matlabgraph}[1]{\datadir{graph/#1.png}}

\datadir在命令行中定义:

pdflatex "\newcommand\datadir[1]{\detokenize{C:/Users/<user>/AppData/...}/#1}\input{D:/Users/<user>/path/to/tex}"

奇怪的是,\matlabvalue命令运行正常,但\matlabgraph命令不运行。它给出了以下错误:

LaTeX Error: File `C:/Users/<user>/AppData/.../graph/rplot.png` not found.

当我导航到错误中列出的目录时,我看到了该rplot.png文件并且可以毫无问题地打开它。我能想到的唯一可能导致这种情况的问题是文件路径(在<user>)中有一个波浪符号(~)。但是,我希望\detokenize命令行中的能够解决这个问题……因为它可以与\matlabvalue命令一起使用。

有人知道这里发生了什么吗?我是否需要在将路径传递到之前清理路径\includegraphics

更新:我发现问题出在\matlabgraph命令上。

我将这两行放入我的 tex 文件中:

\includegraphics{\datadir{graph/rplot.png}}
\includegraphics{\matlabgraph{rplot}}

第一行可以工作,但第二行会导致错误。考虑到这实际上是为什么会出现错误的\matlabgraph{rplot}一种简写?\datadir{graph/rplot.png}\includegraphics\matlabgraph

答案1

此代码不起作用:

\usepackage{graphicx}

\begin{document}
  \newcommand\myimage[1]{#1}
  \newcommand\mymyimage[1]{\myimage{#1}}
  \includegraphics[scale=.5]{\myimage{/usr/local/texlive/2014/texmf-dist/tex/latex/mwe/example-image-a.png}}
  \includegraphics[scale=.5]{\mymyimage{/usr/local/texlive/2014/texmf-dist/tex/latex/mwe/example-image-b.png}}
\end{document}

这是因为命令尝试包含该文件{/usr/local/texlive/2014/texmf-dist/tex/latex/mwe/example-image-b.png},即它被视为单个东西。

进行以下更改可使代码正常工作:

  \newcommand\mymyimage[1]{\myimage#1}

这是因为导致分组效果的额外花括号被删除了。

至少我是这么认为的。无论如何,它确实有效。

相关内容