我正在尝试为多个用户设置一个 LaTex 项目。每个用户在每个项目子文件夹中都有自己的子文件夹。我希望每周也能生成独立文档。我遇到的问题是 LaTeX 似乎不喜欢子文件夹中的相对路径。我该怎么做才能解决这个问题?
├── example.tex
├── Project1
│ ├── name1
│ │ ├── name1.tex
│ ├── name2
│ │ ├── name2.tex
│ ├── name3
│ │ ├── name3.tex
│ └── week1.tex
├── Project2
│ ├── name1
│ │ ├── name1.tex
│ ├── name2
│ │ ├── name2.tex
│ ├── name3
│ │ ├── name3.tex
│ └── week2.tex
└── Project3
├── name1
│ ├── name1
├── name2
│ ├── name2.tex
├── name3
│ ├── name3.tex
└── week3.tex
谢谢,怀利
答案1
受到蒂莫西提供的链接的启发,我想到了一些略有不同的东西:
主要.tex:
\documentclass{article}
\usepackage{subfiles}
\usepackage{graphicx}
\begin{document}
% First subfile
\newcommand{\subdir}{Project1/name1}
\subfile{\subdir/name1.tex}
% Second subfile
\renewcommand{\subdir}{{Project1/name2}}
\subfile{\subdir/name2.tex}
% ... etc
\end{document}
名称1.tex:
\documentclass[../../main.tex]{subfiles}
\providecommand{\subdir}{.}
% When compiling main.tex, "\subdir" is already defined; no effect
% When compiling this file, "\subdir" is defined as "."
% Either way: paths relative to "\subdir" will be relative to this file's directory
\begin{document}
\includegraphics{\subdir/Figures/A}
% Always includes "[project dir]/Project1/name1/Figures/A"
\end{document}
使用这种方法,有关目录布局的信息仅在一个文件(“main.tex”)中跟踪。Timothy 的链接中建议的两个选项都要求每个子文件记录自己的位置,如果目录结构发生变化,则需要更新更多文件(因此更有可能出现不同步的情况)。
答案2
我找到了这个
http://www.latex-community.org/forum/viewtopic.php?f=5&t=13267
详细解释了使用带有子文件夹的子数据包的问题以及可能的解决方案。
修正案
它基本上是说,对资源(特别是图形)的引用必须被声明为好像子文件与主文件位于同一目录中,并且必须在子文件的前言中重定向。
\documentclass[../../main.tex]{subfiles}
%redirection for access from actual file location
\let \originalcmd \graphicspath
\renewcommand{\graphicspath}[1]{\originalcmd{{Figures/}}}
\begin{document}
% resource path from root folder
\graphicspath{{Chapters/Chapter_1/Figures/}}
...
\includegraphics{example.pdf}
...
\end{document}
再见
蒂莫西·特拉克尔