将文件路径和名称存储在数组或列表中,以用作 \catchfilebetweentags 或 \insertgraphics 的参数

将文件路径和名称存储在数组或列表中,以用作 \catchfilebetweentags 或 \insertgraphics 的参数

已编辑解决---感谢@Skillmon 我有许多分隔的 tex 文件,每个文件都有三个标签(所有文件都由具有相同标签名称的相同模板构建)。这些文件是 20001.tex、20002.tex……每个文件都有标签:%<*TagA>、%<*TagB>、%<*TagC>。我想编译一个 tex 文档,该文档插入每个文件中“A”标签的所有内容(按顺序),然​​后是“B”标签,最后是“C”标签。

小文件位置示例:C:\Users\User\Documents\Project\Small-Files-Here\20001\20001.tex

主文件:C:\Users\User\Documents\Project\Main-Files\The-Main-File.tex

使用此结构是为了使相对路径具有相同的级别数,以便在处理单个小文件或主文件(对于包含的图像等)时相对路径相同。

Small-File-Paths.csv 位于 The-Main-File.tex 同一文件夹中,包含“路径”标题下的所有小文件的单独路径。

此代码完成该作业的组装:

\documentclass{book}
\setlength{\parskip}{0.8em}
\usepackage[utf8]{inputenc}
\usepackage[document]{ragged2e}
\usepackage[margin=1.00 in]{geometry}
\usepackage{enumitem}
\usepackage{datatool}
\usepackage{catchfilebetweentags}
\begin{document}
    \DTLloaddb{pathlist}{Small-File-Paths.csv}
%   \DTLdisplaydb{pathlist}

    \section*{Put TagA Content Here}
    \begin{enumerate}[leftmargin=*]
    \DTLforeach*{pathlist}{\smallfilepath=path}{
        \item
        \ExecuteMetaData[\smallfilepath]{TagA}
        }
    \end{enumerate}

    \section*{Put TagB Content Here}
    \begin{enumerate}[leftmargin=*]
        \DTLforeach*{pathlist}{\smallfilepath=path}{
            \item
            \ExecuteMetaData[\smallfilepath]{TagB}
        }
    \end{enumerate}

    \section*{Put TagC Content Here}
    \begin{enumerate}[leftmargin=*]
        \DTLforeach*{pathlist}{\smallfilepath=path}{
            \item
            \ExecuteMetaData[\smallfilepath]{TagC}
        }
    \end{enumerate}
\end{document}  
    

相关内容