包含子文件的相对/绝对路径

包含子文件的相对/绝对路径

我在路径管理方面遇到问题。让我向您解释一下:

我使用的子文件排列如下:

报告
--Main.tex
--lab1
----Matlab
------CodeLab1.m
----报告
------Report_P1_1.tex
--lab2
----Matlab
------CodeLab2.m
----报告
------Report_P2_1.tex

我希望能够将代码“CodeLab1.m”包含在“Report_P1_1.tex”文件中,将“CodeLab2.m”包含在“Report_P2_1.tex”文件中,并能够单独或从主文件中编译它们(因为我使用子文件,所以这是可能的)。我使用的技巧如下:

主文本:

\documentclass[]{article}

\usepackage{xcolor, listings, subfiles}
\definecolor{grey}{rgb}{0.96,0.96,0.96}
\lstset{backgroundcolor=\color{grey}}

\newcommand{\myPathLstONE}[0]{
    \ifx\mainCmp\undefined  \renewcommand{\myPathLstONE}{../Matlab} 
    \else                   \renewcommand{\myPathLstONE}{lab1/Matlab}
    \fi}    
\newcommand{\myPathLstTWO}[0]{
    \ifx\mainCmp\undefined  \renewcommand{\myPathLstTWO}{../Matlab} 
    \else                   \renewcommand{\myPathLstTWO}{lab2/Matlab}
    \fi}    

\begin{document}
\def\mainCmp{}

\part{Labo 1}
\subfile{lab1/Report/Report_P1_1.tex}

\part{Labo 2}
\subfile{lab2/Report/Report_P2_1.tex}

\end{document}

报告_P1_1.tex:

\documentclass[../../Main.tex]{subfiles}
\begin{document}

\section{Part 1}

There's a listing:

\lstinputlisting[]{\myPathLstONE/CodeLab1.m}

\end{document}

报告_P2_1.tex:

\documentclass[../../Main.tex]{subfiles}
\begin{document}

\section{Part 2}

There's a listing:

\lstinputlisting[]{\myPathLstTWO/CodeLab2.m}

\end{document}

它运行得很好,唯一的问题是(除了每次执行这些命令时都定义不太实际)在我得到的输出中,总是有代码文件的名称,如您所见。我没有找到避免这种情况的方法。

Main.pdf 的输出

由于可以为图形定义多条路径,因此包含列表是我在使用此架构时遇到的唯一问题。

有人可以帮忙或者建议其他方法来做到这一点吗?

多谢!

相关内容