Parse and index LaTeX files

PyPI Python 3.11 Build Status

This library parses and indexes includes and macros in latex files. This package can be used as a command line tool or an API. The following are parsed and reported:

  • Package imports using \usepackage to create dependency trees.

  • Macro defined with \newcommand.

Documentation

See the full documentation. The API reference is also available.

Obtaining

The library can be installed with pip from the pypi repository:

pip3 install zensols.latidx

Usage

This package can be used as a command line tool or an API.

Command Line

To get the dependencies of a LaTeX project (in this case using the test case project for the example), use

latidx deps test-resources/proj

Output:

root
 +-- child.sty
 +-- root.tex
     +-- child.sty
     +-- orphan.sty

API

>>> from pathlib import Path
from pathlib import Path
>>> from zensols.latidx import LatexIndexer, ApplicationFactory
from zensols.latidx import LatexIndexer, ApplicationFactory
>>> idx: LatexIndexer = ApplicationFactory.get_indexer()
idx: LatexIndexer = ApplicationFactory.get_indexer()
>>> proj = idx.create_project((Path('test-resources') / 'proj',))
proj = idx.create_project((Path('test-resources') / 'proj',))
>>> proj.write()
proj.write()
files:
    path: test-resources/proj/root.tex
    usepackages:
        child @ 16
        orphan @ 46
    newcommands:
        rootcmd @ 90
...

Changelog

An extensive changelog is available here.

License

MIT License

Copyright (c) 2024 - 2025 Paul Landes