![将文件路径和名称存储在数组或列表中,以用作 \catchfilebetweentags 或 \insertgraphics 的参数](https://linux22.com/image/443307/%E5%B0%86%E6%96%87%E4%BB%B6%E8%B7%AF%E5%BE%84%E5%92%8C%E5%90%8D%E7%A7%B0%E5%AD%98%E5%82%A8%E5%9C%A8%E6%95%B0%E7%BB%84%E6%88%96%E5%88%97%E8%A1%A8%E4%B8%AD%EF%BC%8C%E4%BB%A5%E7%94%A8%E4%BD%9C%20%5Ccatchfilebetweentags%20%E6%88%96%20%5Cinsertgraphics%20%E7%9A%84%E5%8F%82%E6%95%B0.png)
已编辑解决---感谢@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}