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
newtexinteractive 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file newtex_cli-0.1.6.dev0.tar.gz.
File metadata
- Download URL: newtex_cli-0.1.6.dev0.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ab41564e40e6f7f4e24a4df3fbdf63c381fb9fa36e2cba2b69cee150ee28883
|
|
| MD5 |
a0eb09df0333cde9148f2a064b6d6ffb
|
|
| BLAKE2b-256 |
52a01dc321d6dbc7787cd59cb644e7a0016a46c239e5360b3ec32a548a75e12c
|
File details
Details for the file newtex_cli-0.1.6.dev0-py3-none-any.whl.
File metadata
- Download URL: newtex_cli-0.1.6.dev0-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ac3ebd4fd911e3fa3fd7cd783c7d6483bf9f5dac9286fde349048595870304eb
|
|
| MD5 |
12557cf9ec19bbcbbe2887adc42b8217
|
|
| BLAKE2b-256 |
e0efe2e37df8e725496846d616ac9c3a0a2cd2924d5e0f7125d54b1206585631
|