LaTeX helpers — export to .tex, render preview images, vector formatting — standalone module from the SciTeX ecosystem
Project description
scitex-tex
LaTeX helpers — export to .tex, compile to PDF, preview images, vector formatting.
Full Documentation · uv pip install scitex-tex[all]
Problem and Solution
| # | Problem | Solution |
|---|---|---|
| 1 | Hand-authored .tex from Python is brittle — escaping _ / & / % and locating the right pdflatex invocation eats hours per paper |
export_tex + compile_tex — writer doc → .tex → .pdf in two calls; CompileResult exposes the pdf path + log on failure |
| 2 | Previewing a math snippet means firing up a full LaTeX project | preview(r"$\sum x_i$", "out.png") — single-call rendering via matplotlib; no system TeX install required |
| 3 | Sig-fig formatting for vectors / scalars is reinvented per script | to_vec(value, sig_figs=N) — consistent scientific notation for tables and captions |
Architecture
scitex_tex/
├── _export.py # writer doc → .tex string + file
├── _compile.py # .tex → .pdf via pdflatex/xelatex
├── _preview.py # snippet → .png (matplotlib, no system TeX needed)
└── _vec.py # numeric → sig-fig vector strings
flowchart LR
Doc[Writer Doc<br/>Python dict/object] --> Exp[export_tex]
Exp --> Tex[manuscript.tex]
Tex --> Cmp[compile_tex]
Cmp --> Pdf[manuscript.pdf]
Snip[r'\$\\sum x_i\$'] --> Prv[preview]
Prv --> Png[preview.png]
Val[1.234e-3] --> Vec[to_vec]
Vec --> Str[formatted string]
Figure 1. Module layout. Four small helpers — export, compile, preview, sig-fig formatting — each callable independently.
Installation
pip install scitex-tex
Quick Start
import scitex_tex as tx
# Convert a SciTeX-style writer doc → .tex
tx.export_tex(doc, "manuscript.tex")
# Compile .tex → .pdf (returns CompileResult)
result = tx.compile_tex("manuscript.tex")
# Render a snippet to a preview image
tx.preview(r"$\sum_{i=1}^N x_i$", "preview.png")
# Format a numeric value with sig-fig rules
tx.to_vec(1.234e-3, sig_figs=3)
1 Interfaces
Python API
import scitex_tex as tx
# Export — writer doc → .tex string + file
tx.export_tex(doc, "manuscript.tex")
# Compile — .tex → .pdf via pdflatex/xelatex; returns CompileResult
res = tx.compile_tex("manuscript.tex")
print(res.pdf_path, res.log)
# Preview — render a snippet to a PNG
tx.preview(r"$\frac{1}{2}\sum x_i$", "preview.png")
# Vector formatting helpers
tx.to_vec(1.234e-3, sig_figs=3)
Demo
import scitex_tex as tx
# 1) Render a math preview to PNG (no system TeX required)
tx.preview(r"$\hat{\beta} = (X^\top X)^{-1} X^\top y$", "preview.png")
# 2) Export + compile a manuscript end-to-end
tx.export_tex(doc, "manuscript.tex")
result = tx.compile_tex("manuscript.tex")
print(result.pdf_path) # → manuscript.pdf
flowchart LR
A[Python writer doc] -->|export_tex| B[manuscript.tex]
B -->|compile_tex| C[manuscript.pdf]
D["r'\$\\hat\\beta\$'"] -->|preview| E[preview.png]
style C fill:#27ae60,stroke:#2c3e50,color:#fff
style E fill:#27ae60,stroke:#2c3e50,color:#fff
Figure 2. Demo flow. preview is matplotlib-only; compile_tex shells out to pdflatex/xelatex.
Status
Standalone fork of scitex.tex. Only dep is matplotlib (for preview rendering).
The umbrella package's scitex.tex import path is preserved via a
sys.modules-alias bridge.
Part of SciTeX
scitex-tex is part of SciTeX. Install via
the umbrella with pip install scitex[tex] to use as
scitex.tex (Python) or scitex tex ... (CLI).
Four Freedoms for Research
- The freedom to run your research anywhere — your machine, your terms.
- The freedom to study how every step works — from raw data to final manuscript.
- The freedom to redistribute your workflows, not just your papers.
- The freedom to modify any module and share improvements with the community.
AGPL-3.0 — because we believe research infrastructure deserves the same freedoms as the software it runs on.
License
AGPL-3.0-only (see LICENSE).
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
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 scitex_tex-0.1.7.tar.gz.
File metadata
- Download URL: scitex_tex-0.1.7.tar.gz
- Upload date:
- Size: 29.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1fdb40251f834a577a9182a53afdf6100cf3cc3b646b064a1d21a073ed1cd9ab
|
|
| MD5 |
a3bf0b8b98b0efd789dd70d5e99bfcb3
|
|
| BLAKE2b-256 |
fe41654df0ed286fd0dba698dde0b568053c32f8f213a2ec36940e7b75e2eb1b
|
Provenance
The following attestation bundles were made for scitex_tex-0.1.7.tar.gz:
Publisher:
pypi-publish-and-github-release-on-tag.yml on ywatanabe1989/scitex-tex
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
scitex_tex-0.1.7.tar.gz -
Subject digest:
1fdb40251f834a577a9182a53afdf6100cf3cc3b646b064a1d21a073ed1cd9ab - Sigstore transparency entry: 1571588068
- Sigstore integration time:
-
Permalink:
ywatanabe1989/scitex-tex@b455e9fdc39d0eb1cbc6188996487e343a0668a7 -
Branch / Tag:
refs/tags/v0.1.7 - Owner: https://github.com/ywatanabe1989
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish-and-github-release-on-tag.yml@b455e9fdc39d0eb1cbc6188996487e343a0668a7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file scitex_tex-0.1.7-py3-none-any.whl.
File metadata
- Download URL: scitex_tex-0.1.7-py3-none-any.whl
- Upload date:
- Size: 29.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
981be1bfae687e48ec161c2ef56c53ce47051e5799394915f36f1a7ef0bb7c12
|
|
| MD5 |
1523e9f93ffb4d94da05aa70c0e65b74
|
|
| BLAKE2b-256 |
8062d23f796faef498d35f6e13960b4a9cc49ef59cc7b3d849da0dd0de6c8f88
|
Provenance
The following attestation bundles were made for scitex_tex-0.1.7-py3-none-any.whl:
Publisher:
pypi-publish-and-github-release-on-tag.yml on ywatanabe1989/scitex-tex
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
scitex_tex-0.1.7-py3-none-any.whl -
Subject digest:
981be1bfae687e48ec161c2ef56c53ce47051e5799394915f36f1a7ef0bb7c12 - Sigstore transparency entry: 1571588102
- Sigstore integration time:
-
Permalink:
ywatanabe1989/scitex-tex@b455e9fdc39d0eb1cbc6188996487e343a0668a7 -
Branch / Tag:
refs/tags/v0.1.7 - Owner: https://github.com/ywatanabe1989
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish-and-github-release-on-tag.yml@b455e9fdc39d0eb1cbc6188996487e343a0668a7 -
Trigger Event:
push
-
Statement type: