我想在 latex 中构建一个模块化文档。我的主目录(我将主文件“thesis.tex”放在其中)称为“tesi”。在“tesi”中,我有另一个名为“capitoli”的目录,我想在其中存储名为“chapter1.tex”、“chapter2.tex”等的章节。此外,我想从我的主文件或直接从我的子文件进行编译,因此我使用了子文件包。
另外,我还使用了位于主目录“tesi”中的名为 mystyle.sty 的样式文件。主目录中还有一个名为“immagini”的目录(我在其中存储我的图像)。
如果我使用以下代码
% main file "thesis.tex" in the main directory "tesi" %
\documentclass[a4paper,12pt]{memoir}
\usepackage{./tesi/mystyle.sty}
\begin{document}
\subfile{../tesi/capitoli/chapter1.tex}
\end{document}
% subfile "chapter1.tex" in the subdirectory "capitoli" %
\documentclass[../thesis.tex]{subfiles}
\begin{document}
\begin{figure}
\centering
\includegraphics{../immagini/image1.jpg}
\end{figure}
\end{document}
我可以从子文件“chapter1.tex”进行编译,但无法从主文件“thesis.tex”进行编译(错误消息指的是图像文件的路径)
如果我使用以下代码(只需更改 mystyle.sty 和 image1.jpg 的相对/绝对路径)
% main file "thesis.tex" in the main directory "tesi" %
\documentclass[a4paper,12pt]{memoir}
\usepackage{../tesi/mystyle.sty}
\begin{document}
\subfile{../tesi/capitoli/chapter1.tex}
\end{document}
% subfile "chapter1.tex" in the subdirectory "capitoli" %
\documentclass[../thesis.tex]{subfiles}
\begin{document}
\begin{figure}
\centering
\includegraphics{./immagini/image1.jpg}
\end{figure}
\end{document}
我无法从子文件“chapter1.tex”进行编译(错误消息无法找到mystyle.sty),但可以从主文件“thesis.tex”进行编译。
有人可以解决这个问题,谢谢。
编辑
我也发布 mystyle.sty
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{subfiles}
\usepackage{graphicx}
答案1
这似乎是不可能的。你可以向subfiles
软件包的维护者报告此行为。问题是它subfiles
误解了你的路径。在我看来,你有三个选择:
1.您可以省略mystyle.sty
并将标题复制到中thesis.tex
。
tesi/论文.tex
% arara: pdflatex
\documentclass[a4paper,12pt]{memoir}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{subfiles}
\usepackage[demo]{graphicx}
\begin{document}
\subfile{capitoli/chapter1.tex}
Test for main file
\end{document}
tesi/capitoli/chapter1.tex
% arara: pdflatex
\documentclass[../thesis.tex]{subfiles}
\begin{document}
\begin{figure}
\centering
\includegraphics{./immagini/image1.jpg}
\end{figure}
Test for subfile
\end{document}
2.或者您必须将最新的内容复制mystyle.sty
到文件夹中tesi/capitoli
并保留其实际内容(快捷方式不起作用)。
在这种情况下,它看起来像:
tesi/论文.tex
% arara: pdflatex
\documentclass[a4paper,12pt]{memoir}
\usepackage{mystyle}
\begin{document}
\subfile{capitoli/chapter1.tex}
Test for main file
\end{document}
就像chapter1.tex
我的第一个例子一样。
3.第三种可能性是省略文件夹tesi/capitoli
并将所有章节放入该tesi
文件夹中。
编辑
正如 Steve B 在他的回答在这里(感谢 Clément 在他的评论中链接该内容),您也可以通过将其放入thesis.tex
较低的文件夹级别来省略该问题。
tesi/main/论文.tex
% arara: pdflatex
\documentclass[a4paper,12pt]{memoir}
\usepackage{../main/mystyle}
\begin{document}
\subfile{../capitoli/chapter1.tex}
Test for main file
\end{document}
tesi/capitoli/chapter1.tex
% arara: pdflatex
\documentclass[../main/thesis.tex]{subfiles}
\begin{document}
\begin{figure}
\centering
\includegraphics{../immagini/image1.jpg}
\end{figure}
Test for subfile
\end{document}