包括来自多个目录的图形

包括来自多个目录的图形

我尝试了两种方法来包含来自多个目录的图形,一种使用graphicspath,另一种使用宏。

图形路径方法是:

\documentclass{beamer}
\usepackage{graphicx}
\graphicspath{{/path\_1/figs/}{/path\_2/figs}}
\begin{document}
    \begin{frame}
        \includegraphics[options]{fig.png} % where fig.png is in one of the two directories
    \end{frame}
\end{document}

该方法的错误graphicspath如下:

[1{/home/user/.texlive2016/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
LaTeX Warning: File `fig.png' not found on input line [x].
! Package pdftex.def Error: File `fig.png' not found.

宏方法包括定义保存图像路径的“变量”(宏/命令),然后使用变量(目录)和文件名(字符串文字)构建完整路径。我尝试使用defnewcommand,也尝试使用以确保首先扩展expandafter参数(includegraphics12)。

\documentclass{beamer}
\usepackage{graphicx}
\def\mydir{/path\_1/figs/} % defining via \def
%\newcommand{\mydir}{/path\_1/figs/} % also tried defining via \newcommand
\begin{document}
   \begin{frame}
        % all the following fail
        \includegraphics[options]{\mydir{}fig.png}% 1
        \expandafter\includegraphics[options]{\mydir{}fig.png}% 2
        \expandafter\includegraphics\expandafter[options]{\mydir{}fig.png}% 3
        \expandafter{\includegraphics[options]}{\mydir{}fig.png}% 4
    \end{frame}
\end{document}

宏方法的错误各不相同;下面的错误根据上面每行的注释进行编号。

错误 #1-3:

[1{/home/user/.texlive2016/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
! Missing number, treated as zero.
                   N
l.[x]  \end{frame}

#4 的错误:

[1{/home/user/.texlive2016/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
! Argument of \beamer@readarg has an extra }.
<inserted text> 
                \par 
l.[x]  \end{frame}

我很想知道如何让这两种方法都发挥作用,以及对替代方法的建议。使用“变量”(宏)的一个优点是,由于明确指定了所需目录,因此同名文件可以存在于各种图像目录中,而不会引起歧义。

答案1

问题第一部分的解决方案:

不要_在图形路径中逃避

答案2

我遇到了完全相同的问题。通过在第二个目录名称后面添加一个斜杠解决了该问题。

应该:

\graphicspath{{/path_1/figs/}{/path_2/figs/}}

相关内容