| Einleitung.tex | ||
| fs.cpp | ||
| fs.hpp | ||
| main.cpp | ||
| Makefile | ||
| memory_string.hpp | ||
| README.md | ||
| test.tex | ||
Description
texdepends is a small tool that scans given latex files for the following macros:
- \input{}
- \include{}
- \lstinputlisting{} and lists all the files included using these macros in a file with either a given name or with the name of the processed file and a .d extension, using makefile dependency syntax.
This means for a file that uses e.g. \input{Intro.tex} somewhere (the file is named document.tex},
a call to texdepends document.tex will generate a file called document.d with the following content:
document.tex: Intro.tex\
This file can be used to trigger a rebuild using make of the document if there were changes in files affecting it.
Command line options
There are two possible switches:
| Name | Description |
|---|---|
| --target | |
| -t | Can be used to set the string output before the colon char |
| --output: | |
| -o: | modifies the behaviour so all file dependencies of all input files will be written to the given file, instead of creating one file per input. |
Note: The --output switch should be used in combination with --target, because otherwise no target will be present in the output file!
Building
The Program is currently only written for Linux, i will see if a windows port is feasible (should be straight forward).
Linux
Under Linux, a call to make should build produce a binary called texdepends.
A simple test can be performed using make test
Notes
- The program will follow all found *.tex links and parse them too, if possible. Files included in included files will therefore also show up as dependencies. It will only parse a file once
- This is no latex parser, it has two major drawbacks:
- No Parsing of
\if-directives, which means, that files included via\ifwill always show up - No parsing of arguments to macros. The Only macro-supsitution happens inside
\includeor\inputarguments. The only macro definitions supsituted are those made via\def. Therefore the following include will not show up in the output because it happend in a macro-argument.
- No Parsing of
\frame{
\include{Intro.tex}
}