Skip to main content

Tar all files needed to re-compile your LaTeX project

Project description

tartex

PyPI - Version PyPI - Python Version Hatch project


TarTeX is a command-line utility to generate a tarball including all (non-system) source files needed to compile your LaTeX project.

Table of Contents

Features

  • Defaults to including the least number of files needed to recompile your LaTeX project in the output tar file.
  • Creates tarballs compatible with arXiv (and most journal) requirements.
  • Automatically determines pdf or ps processing based on source dir contents.
  • Supports different compression methods for output tarball.
  • Preserves directory structure in generated tarball, i.e. no flattening.
  • Handy options to allow edge cases.

Installation

Note: Unless you provide a prepared ".fls" file as filename input, you must have latexmk and pdflatex, as well as a full LaTeX env installed to allow compilation of your LaTeX project. tartex does not include any system-wide files, such as TeX style files, classes, etc. in the tar file.

Using pipx

This is the easy way to install tagged releases.

pipx install tartex

From GitHub sources:

Compile using hatch to generate a wheel, which may be then installed using pipx as follows:

git clone https://github.com/badshah400/tartex.git
cd tartex
hatch build
pipx install ./dist/*.whl

Usage

Supported OS: Potentially any POSIX-like, tested only on Linux.

sage: tartex [options] filename

Build a tarball including all source files needed to compile your LaTeX project (version 0.2.0).

positional arguments:
  filename              Input file name (with .tex or .fls suffix)

options:
  -h, --help            show this help message and exit
  -a ADD, --add ADD     Comma separated list of additional files (wildcards allowed!) to include (loc relative to main TeX file)
  -b, --bib             find and add bib file to tarball
  -l, --list            Print a list of files to include and quit (no tarball generated)
  -o OUTPUT, --output OUTPUT
                        Name of output tar file (suffix can determine tar compression)
  -s, --summary         Print a summary at the end
  -v, --verbose         Print file names added to tarball
  -x EXCL, --excl EXCL  Comma separated list of files (wildcards allowed!) to exclude (loc relative to main TeX file)
  -j, --bzip2           bzip2 (.tar.bz2) compression (overrides OUTPUT ext if needed)
  -J, --xz              lzma (.tar.xz) compression (overrides OUTPUT ext if needed)
  -z, --gzip            gzip (.tar.gz) compression (overrides OUTPUT ext if needed)
  -V, --version         Print tartex version

Options for latexmk processing:
  --latexmk_tex {dvi,luatex,lualatex,pdf,pdflua,ps,xdv,xelatex}
                        Force TeX processing mode used by latexmk
  -F, --force_recompile
                        Force recompilation even if .fls exists

Note: If the source dir of your LaTeX project already contains the .fls file previously generated by, say latex -record or latexmk, then tartex will directly use that file to determine which input files to include in the tarball. Otherwise, tartex will recompile your project using latexmk in a temp dir and use the .fls file generated there. To be precise, recompilation will invoke:

latexmk -f -<texmode> -cd -outdir=<tmpdir> -interaction=nonstopmode filename

texmode is one of pdf or ps by default, as detemined from the contents of the source dir. It may be overridden by the --latexmk_tex option.

License

tartex is distributed under the terms of the MIT license.

Similar utilities

  • bundledoc is a post-processor for the snapshot package that bundles together all the classes, packages and files needed to build a given LaTeX document.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tartex-0.2.0.tar.gz (133.1 kB view hashes)

Uploaded Source

Built Distribution

tartex-0.2.0-py3-none-any.whl (9.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page