在主文件中使用样式时子文件出现错误

在主文件中使用样式时子文件出现错误

我想在 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}

相关内容