Skip to main content

LaTeX helpers — export to .tex, render preview images, vector formatting — standalone module from the SciTeX ecosystem

Project description

scitex-tex

SciTeX

LaTeX helpers — export to .tex, compile to PDF, preview images, vector formatting.

Full Documentation · uv pip install scitex-tex[all]

PyPI Python Tests Coverage Docs License: AGPL v3


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

  1. The freedom to run your research anywhere — your machine, your terms.
  2. The freedom to study how every step works — from raw data to final manuscript.
  3. The freedom to redistribute your workflows, not just your papers.
  4. 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).


SciTeX

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

scitex_tex-0.1.6.tar.gz (29.6 kB view details)

Uploaded Source

Built Distribution

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

scitex_tex-0.1.6-py3-none-any.whl (29.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: scitex_tex-0.1.6.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

Hashes for scitex_tex-0.1.6.tar.gz
Algorithm Hash digest
SHA256 c8859e147642b3094f5ce8861b5d49b7c9769c485b817a0f28ac4ea5da643d84
MD5 516ae4c9bd98b318cceda877ca3ad02c
BLAKE2b-256 769f0a454c291e4090fd70b0825139e69f79835c6bf43ffa532628d953e7af1b

See more details on using hashes here.

Provenance

The following attestation bundles were made for scitex_tex-0.1.6.tar.gz:

Publisher: publish-pypi.yml on ywatanabe1989/scitex-tex

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

File details

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

File metadata

  • Download URL: scitex_tex-0.1.6-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

Hashes for scitex_tex-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 9d3ecdf36a1e2af05eecb1b7d08533574fffed211c2b0601a9a388f8f1a204af
MD5 c1c35785d306de0b4d94cf5446423770
BLAKE2b-256 d0fd27492b65ed77feb97e063e419772e63e1e67cc2cea5ab99ff283d6725527

See more details on using hashes here.

Provenance

The following attestation bundles were made for scitex_tex-0.1.6-py3-none-any.whl:

Publisher: publish-pypi.yml on ywatanabe1989/scitex-tex

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