使用 \input 输入 gnuplot 图形时未找到文件

使用 \input 输入 gnuplot 图形时未找到文件

我有一张图fig_name.eps,其中周围有文字fig_name.tex

它们位于名为 fig_dir 的子目录中。我在文档开头使用以下内容更改了路径input

\makeatletter
\def\input@path{{/path/to/fig_dir/}}
\makeatother

我正在使用\input{fig_name}它来包含该图。编译时显示文件未找到的错误。我做错了什么?

编辑:我在下面添加了 MWE。

\documentclass[a4paper,fleqn,usenatbib]{mnras}

\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{epsfig}

%TO INCLUDE FIGURES FROM FOLDER NAMED fig_dir
\makeatletter
\def\input@path{{/path/to/fig_dir/}}
\makeatother

\begin{document}
%THIS ONE WORKS FINE
   \begin{figure}
      \includegraphics[width=7cm]{fig_dir/bla_bla.png}
      \caption{bla_bla}
   \end{figure}

%THIS ONE DOESN'T
   \begin{figure}
       \centering
       \resizebox{!}{0.30\textwidth}{\input{fig_name}}
       \caption{fig_name}
   \end{figure}
\end{document}

答案1

gnuplot 的epslatex终端会创建两个文件fig_name.texfig_name.eps。您必须使用fig_name.tex从主文件中调用\input{fig_name},但此文件将fig_name.eps使用\includegraphics命令加载。fig_name.tex使用编辑器打开并会发现一行内容:

\put(0,0){\includegraphics{fig_name}}%

因此,最简单的解决方案是添加一个\graphicspath带有文件夹的命令subfiles.tex用 调用该文件\input{subfile/fig_name}

现在假设 gnuplot 创建了mytest.texmytest.eps,并且都存储在子文件夹中gnuplot。以下代码有效:

\documentclass{article}
\usepackage{graphicx}

\graphicspath{{gnuplot/}}

\begin{document}

\input{gnuplot/mytest}

\end{document}

答案2

评论太长了。下面的评论对我来说很好:

% My standard header for TeX.SX answers:
\documentclass[a4paper]{article} % To avoid confusion, let us explicitly 
                                 % declare the paper format.

\usepackage[T1]{fontenc}         % Not always necessary, but recommended.
% End of standard header.  What follows pertains to the problem at hand.

\usepackage{graphics}

\makeatletter
\def\input@path{{Sub_dir/}}
\makeatother



\begin{document}

Some random text.
\begin{figure}[tbp]
    \centering
    \resizebox{0.5\textwidth}{!}{Where are you? \input{HereAmI}}
    \caption{My figure}
\end{figure}

\end{document}

将上述代码保存在某个目录中,然后在同一目录中创建一个名为的子目录Sub_dir;将以下代码保存在名为的文件中,该文件HereAmI.tex位于Sub_dir

Here am~I\@!

这能正常工作吗?

相关内容