Skip to main content

Local LaTeX project scaffolder

Project description

newtex-cli

Scaffold local LaTeX projects from reusable templates.

1. Installation

pipx install newtex-cli

Common pip install alternative:

python -m pip install newtex-cli

Works on macOS, Linux, and Windows (with Python/pipx).

2. Configuration

Bundled templates are discovered dynamically from src/newtex/resources/templates. By default, acm-conf and ntu-report-template are included and resolve to package://<template-name>.

2.2 Global template config (recommended)

Configure templates once and use newtex from anywhere:

newtex --template-set acm-conf=/absolute/path/or/url/to/template
newtex --default-template-set acm-conf
newtex --templates-list

This writes to ~/.config/newtex/templates.yml.

3. CLI Commands

3.0 Terminal UX

  • newtex interactive mode now uses an adaptive Rich landing design with a retro ASCII-style banner.
  • The layout auto-adjusts to terminal width (wide vs compact rendering).
  • Utility workflows (--version, --tests, --publish-check, template management flags) keep concise output with light visual polish.

3.1 Command reference

Command Description
newtex --help Show CLI help
newtex --version Show current installed version
newtex --update Update to the latest published version
newtex --upgrade Alias of --update
newtex --tests Run the full test suite
newtex --publish-check Validate build/upload prerequisites
newtex --template-set <alias>=<path-or-url> Add or update a global template alias
newtex --template-set <alias>=<path-or-url> --template-description "..." Add alias with description
newtex --default-template-set <alias> Set the global default template alias
newtex --set-default-template <alias> Backward-compatible alias for --default-template-set
newtex --templates-list Show configured global templates
newtex Start interactive project creation
newtex <project-name> <template> Create a project in non-interactive mode
newtex <project-name> <template> --no-git Skip git init
newtex <project-name> <template> --track-pdf Keep compiled PDFs tracked
newtex <project-name> <template> --no-vscode Exclude shared .vscode/ settings
newtex <project-name> <template> --open Open generated project in VS Code

3.2 Quick examples

newtex --help
newtex --version
newtex --update
newtex --upgrade
newtex
newtex exlang-paper acm-conf
newtex exlang-paper acm-conf --no-git
newtex exlang-paper acm-conf --track-pdf
newtex exlang-paper acm-conf --no-vscode
newtex exlang-paper acm-conf --open

Interactive flow now shows a scaffold plan summary before generation and asks for confirmation.

Advanced commands
newtex --tests
newtex --publish-check
newtex --template-set acm-conf=/absolute/path/to/template
newtex --default-template-set acm-conf
newtex --templates-list

4. Notes

  • Project names must be lowercase kebab-case (example: exlang-paper).
  • If a template path is invalid, the CLI exits with an error message.
  • Template sources support three modes:
    • local directory path (copied as-is)
    • package://<name> (copied from bundled package resources)
    • remote template URL (scaffolded via Copier)

5. Maintainer Release (optional)

End users can skip this section.

5.1 Build distributions

python -m pip install -e ".[publish]"
newtex --publish-check
python -m build

5.2 Upload to PyPI

You need a PyPI account to publish public packages.

Set token-based auth (recommended):

export TWINE_USERNAME=__token__
export TWINE_PASSWORD=<your-pypi-api-token>
python -m twine upload dist/*

5.3 Install on another machine (cross-platform)

pipx install newtex-cli
python -m pip install newtex-cli

Then configure templates on that machine:

newtex --template-set acm-conf=/absolute/path/or/url/to/template
newtex --default-template-set acm-conf

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

newtex_cli-0.1.6.tar.gz (1.5 MB view details)

Uploaded Source

Built Distribution

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

newtex_cli-0.1.6-py3-none-any.whl (1.5 MB view details)

Uploaded Python 3

File details

Details for the file newtex_cli-0.1.6.tar.gz.

File metadata

  • Download URL: newtex_cli-0.1.6.tar.gz
  • Upload date:
  • Size: 1.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for newtex_cli-0.1.6.tar.gz
Algorithm Hash digest
SHA256 92658021adc6e48afe4bcfde24f38adf43fa9457a7f4959267b4df35e97e5ea3
MD5 dce406fc482dfcafcffec1ba1b0bfe27
BLAKE2b-256 beb4f472c22472d7a285da21c0c797dfc592f3b46e3a8bdc4afcac8080b4118b

See more details on using hashes here.

File details

Details for the file newtex_cli-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: newtex_cli-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for newtex_cli-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 05de305e906e5b2f0257d45c88591c6ec7a3f6606bf4fbef9d7df506e788623d
MD5 917f6c4de7c7e236de69b7546c9b93e6
BLAKE2b-256 c4322dd5cf845258c381014927b69b6c913f5d0209e214f0f629b17b9f70df03

See more details on using hashes here.

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