创建模块化文档时包含图形的正确方法是什么?
我的目录结构如下:
/root
--report.tex
--mystyle.sty
--/tex
----/literature
------literature.tex
--/img
----biological_neuron.eps
我的主文件是report.tex,其内容如下:
\documentclass[11pt, a4paper, twoside, openright]{book}
\usepackage{graphicx}
\usepackage{my_style}
\begin{document}
\mainmatter
\include{tex/literature/literature}
\bibliographystyle{plain}
\bibliography{../../../Bibliography/Bibtex/SNN}
\end{document}
文件literature.tex的内容如下:
\chapter{A review}
\begin{figure}[h]
\includegraphics{../../img/biological_neuron}
\caption{A biological neuron}
\label{Fig:BN}
\end{figure}
每次我尝试生成 pdf 时都会收到错误:文件“../../img/biological_neuron”未找到。我尝试使用“/img/biological_neuron”而不是“../../img/biological_neuron”,但这也不起作用。有一件事确实有效,那就是添加\graphicspath{img/}
到 report.tex。但我不知道这是否是正确的方法。因为即使我这样做,\graphicspath{img/}
我也必须将包含文件中任何图形的路径指定为“../../img/biological_neuron”,并且我认为在添加 \graphicspath{img/}` 后,我们应该只写“/biological_neuron”。我不知道这是错误还是我做错了什么。请指教。谢谢。
答案1
一种方法是将图像放在同一个文件夹中,然后给出位置命令\graphicspath{{folder},{folder},...}
。
使用模块化文档时,尤其是当各个部分由不同的用户独立编辑时,我更喜欢使用不同的方法。我通常为每个部分创建一个__before.tex
和一个__after.tex
文件。在从文件夹中包含任何 tex 文件之前,我总是先创建\input
文件__before.tex
,然后__after.tex
再创建文件。
所以我有这样的结构:
/root
--main.tex
--*.tex
--/1_<part1name>
----__before.tex
----__after.tex
----*.tex
--/2_<part2name>
----__before.tex
----__after.tex
----*.tex
--/img
----*.*
----/<part1name> % without numbering
------*.*
----/<part2name>
------*.*
----/misc
------/gen_ba
--------gen_ba.sh
--------gen_ba.cmd
--/* % other folders
我使用脚本生成这些文件__before.tex
和__after.tex
文件夹中的文件。在本例中,我将在其中输入以下命令:
\def\imgfolder{img/partxname}
在__before.tex
\def\imgfolder\relax
在__after.tex
我使用包含位置信息的\includegraphics
内容\imgfolder
。