我正在使用“snapshot”包来生成 filename.tex 文件的外部依赖项列表。此列表的结果存储在 filename.dep 文件中。
目标是使用这个 filename.dep 文件,提取一些有趣的数据,并使这些数据在我的 filename.tex 文件中可用。
filename.dep 文件如下所示:
\RequireVersions{
*{text #1 of variable length} {text #2 of variable length} {text #3 of variable length}
}
* 前面有 2 个空格,并且 {} {} 之间有一些不同的间距。
对我来说有趣的数据是文本 #2,但仅限于文本 #1 的一些值。文本 #3 对我来说没用。例如,我想在我的 filename.tex 文件中调用一个命令
\generate_useful_dependancies[criteria on text #1]{filename}
输出在 filename.dep 文件中写入的所有 #2 文本的列表。
这是起点,我的 filename.tex 文件 (MNWE)。我在 \begin{filecontents} 和 \end{filecontents} 之间创建了 loaddata 命令应该读取的内容(最终应该成为我的 \generate_useful_dependancies 命令)。接下来的几行就是我感兴趣的。
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{filename.dep}
\RequireVersions{
*{file} {mem10.clo} {2022/07/29 v0.5}
}
\end{filecontents*}
\makeatletter
\newread\myread
\def\loaddata#1{%
\def\linetomatch{Line with bar}% \edef is not required
\openin\myread=#1
\begingroup\endlinechar=-1
\@whilesw\unless\ifeof\myread\fi{%
\read\myread to \dataline
\noindent"\linetomatch"
\ifx\dataline\linetomatch\relax
equals
\else
does not equal
\fi
"\dataline"\par
}%
\endgroup
\closein\myread
}%
\makeatother
\begin{document}
\loaddata{filename.dep}
\end{document}
问题在于:
- 由于 \ 字符,第一行无法正确读取
- 最后一个也是,可能是因为}
- 然后,我不知道如何读取第二行才能得到文本#1和文本#2。
有人可以给我一些提示吗?