我有一张图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.tex
和fig_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.tex
和mytest.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\@!
这能正常工作吗?