Skip to main content

A tool to package LaTeX sources for journal submission, forked from arxiv-collector. Adds LuaTeX/XeLaTeX support and a flatten option.

Project description

UploadAssist Logo

UploadAssist is a modern fork of arxiv-collector, designed to help researchers and authors package their LaTeX sources for submission to journals and repositories. This project builds on the original arxiv-collector, adding support for contemporary workflows and requirements.

About This Fork

UploadAssist began as a fork of the abandoned arxiv-collector tool. While the original focused on preparing submissions for arXiv, UploadAssist expands its capabilities to support a wider range of journal and repository requirements.

Key improvements over arxiv-collector:

  • LuaTeX and XeLaTeX support: Works seamlessly with projects that use LuaTeX or XeLaTeX, in addition to standard pdfLaTeX.
  • Flatten by default: UploadAssist now flattens your project structure by default, placing all files in a single directory and updating all referenced paths—essential for journals that require flat submissions. Use --noflatten to preserve the original directory structure.
  • Retains and improves all original features, including comment stripping and dependency tracking.

If you are looking for the original package, see arxiv-collector on GitHub.


Features

  • Automatic packaging: Collects all files needed for your LaTeX project, including images, bibliographies, and custom packages.
  • Comment stripping: Removes potentially embarrassing comments from .tex files (disable with --no-strip-comments).
  • Smart dependency tracking: Only includes files actually used in your project.
  • LuaTeX/XeLaTeX support: Handles modern TeX engines and their dependencies.
  • Flattening: By default, all files (including those referenced via \input, \include, and \includegraphics) are placed in a single directory, and all LaTeX source paths are updated accordingly. Use --noflatten to disable this behavior.
  • System package inclusion: Optionally includes system packages or directories you specify.

Installation

UploadAssist is a stand-alone Python script with no dependencies. You can:

  • Download uploadassist.py directly.
  • (Coming soon) Install via PyPI: pip install uploadassist

Works with any reasonable version of Python 3.


Usage

From your project's main directory, run:

uploadassist

Or specify your main .tex file if needed:

uploadassist main.tex

For help and options:

uploadassist --help

By default, UploadAssist flattens your project for journal submission. To preserve the original directory structure, use:

uploadassist --noflatten

Requirements

  • A working installation of latexmk on your PATH.
    • If latexmk is not on your PATH, use --latexmk ./path/to/latexmk.
    • Note: latexmk version 4.63b has broken dependency tracking. Please use a newer version.

Caveats

  • Unusual project layouts may require manual adjustment; always check your output before submission.
  • All referenced files (including those in subdirectories) are collected and placed at the top level when flattening, and all LaTeX source paths are rewritten to match.
  • Absolute paths in commands like \includegraphics{/home/me/image.png} may not be handled as expected. Prefer relative paths or use --include-packages to specify additional directories.
  • If you encounter issues, please open an issue and include a copy of your problematic project if possible.

Using on Overleaf

You can configure Overleaf to run UploadAssist on each compilation, ensuring your project is always ready for submission. The process is similar to the original arxiv-collector—see their documentation for details.


UploadAssist is not affiliated with arXiv or any journal. This project is maintained independently and welcomes contributions.


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

uploadassist-0.0.1.dev1.tar.gz (38.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

uploadassist-0.0.1.dev1-py3-none-any.whl (16.2 kB view details)

Uploaded Python 3

File details

Details for the file uploadassist-0.0.1.dev1.tar.gz.

File metadata

  • Download URL: uploadassist-0.0.1.dev1.tar.gz
  • Upload date:
  • Size: 38.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for uploadassist-0.0.1.dev1.tar.gz
Algorithm Hash digest
SHA256 134a1b88bd5476dba73354dac193917bd1bbe7705512f6c0a134e4c268020668
MD5 55a43d9077ba28713000fe31e5b2a0ea
BLAKE2b-256 f22712325fd27e1cbaff48614a5d8ddfeefdf54f6fac84e90db8d38878a35cd9

See more details on using hashes here.

Provenance

The following attestation bundles were made for uploadassist-0.0.1.dev1.tar.gz:

Publisher: publish.yml on cvanelteren/UploadAssist

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uploadassist-0.0.1.dev1-py3-none-any.whl.

File metadata

File hashes

Hashes for uploadassist-0.0.1.dev1-py3-none-any.whl
Algorithm Hash digest
SHA256 0246fe8ee2b25baf9772009b7e3b6056f649342195aa29187aad3f13c963824d
MD5 0bc56c8284d0eb31a1755e56d6973d0f
BLAKE2b-256 525f8630f62a84416dbee7e8f2d2365ec5ddc6a0b1a789ed314e39ec25d9b9db

See more details on using hashes here.

Provenance

The following attestation bundles were made for uploadassist-0.0.1.dev1-py3-none-any.whl:

Publisher: publish.yml on cvanelteren/UploadAssist

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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