tex2pptx
tex2pptx converts a LaTeX Beamer presentation into an editable Microsoft
PowerPoint deck. It keeps supported text, lists, equations, tables, shapes,
links, and notes editable, while figures remain movable and resizable assets.
The converter also produces PDFs of the LaTeX and PowerPoint renderings and an HTML report for reviewing visual differences and conversion diagnostics.
Install
Create an isolated Python environment and install the released package:
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install tex2pptx==0.1.0
The package includes its compiled PowerPoint writer. You do not need the
development repository, pnpm, TypeScript, or a local node_modules directory.
System requirements
The complete conversion workflow currently requires:
- macOS with a logged-in desktop session
- Python 3.11 or newer
- Node.js 22 or newer
- Pandoc
- MacTeX or an equivalent TeX Live installation
- Microsoft PowerPoint installed at
/Applications/Microsoft PowerPoint.app
The TeX installation must provide latexmk, SyncTeX, dvisvgm, pdfLaTeX,
XeLaTeX, and LuaLaTeX. Check the installation before converting a deck:
tex2pptx doctor
The command reports every missing or unsupported prerequisite and a suggested remedy.
Convert a presentation
Inspect the main Beamer file without creating conversion artifacts:
tex2pptx inspect path/to/presentation.tex
Convert it into an explicit output directory:
tex2pptx convert path/to/presentation.tex --to path/to/output
For presentation.tex, the output directory contains:
presentation.pptx
presentation-from-latex.pdf
presentation-from-powerpoint.pdf
presentation-report/
PowerPoint opens during final validation. On first use, macOS may ask for Automation permission; grant access and let the command finish before using PowerPoint. Review the two PDFs and the HTML conversion report before circulating the deck.
Troubleshooting
- If
tex2pptxis not found, activate the virtual environment in which it was installed. - If
doctorreports an old or missing Node.js runtime, install Node.js 22 or newer and open a new terminal. - If TeX commands are missing after installing MacTeX, open a new terminal so
its command directory is added to
PATH. - If PowerPoint validation fails, confirm that PowerPoint is installed in
/Applicationsand that macOS Automation permission has been granted to the terminal application runningtex2pptx. - If conversion completes with warnings, open the generated HTML report and review the listed slides and fallback objects.
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 tex2pptx-0.1.0.tar.gz.
File metadata
- Download URL: tex2pptx-0.1.0.tar.gz
- Upload date:
- Size: 286.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e0d94d1cf51ad377c66e7de934ef1f99a6722007b1db8953c1b16a2e6ffb0207
|
|
| MD5 |
e3d398985ddcf3f58cc23c58a18763cd
|
|
| BLAKE2b-256 |
7837a8ac5c83b65f86932283eb2837a6d100ac2389a4f37287451f44df93bbca
|
Provenance
The following attestation bundles were made for tex2pptx-0.1.0.tar.gz:
Publisher:
release.yml on zhuoxiang-zhou/tex2pptx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tex2pptx-0.1.0.tar.gz -
Subject digest:
e0d94d1cf51ad377c66e7de934ef1f99a6722007b1db8953c1b16a2e6ffb0207 - Sigstore transparency entry: 2412725003
- Sigstore integration time:
-
Permalink:
zhuoxiang-zhou/tex2pptx@e6196a8fa4649471e0764422602eaef1a18bd138 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/zhuoxiang-zhou
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e6196a8fa4649471e0764422602eaef1a18bd138 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file tex2pptx-0.1.0-py3-none-any.whl.
File metadata
- Download URL: tex2pptx-0.1.0-py3-none-any.whl
- Upload date:
- Size: 309.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ce44ae3151e304257969326f09cbb4bc0dbd0319fd3dfab2a0f1edb28640cb1
|
|
| MD5 |
22aa0afc701faeced8c67e7a7f71d1a3
|
|
| BLAKE2b-256 |
5e560ab21075d6c44d61e400ca699c7e3a1d2b076c1dcf5057a6435538f7dfea
|
Provenance
The following attestation bundles were made for tex2pptx-0.1.0-py3-none-any.whl:
Publisher:
release.yml on zhuoxiang-zhou/tex2pptx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tex2pptx-0.1.0-py3-none-any.whl -
Subject digest:
0ce44ae3151e304257969326f09cbb4bc0dbd0319fd3dfab2a0f1edb28640cb1 - Sigstore transparency entry: 2412725061
- Sigstore integration time:
-
Permalink:
zhuoxiang-zhou/tex2pptx@e6196a8fa4649471e0764422602eaef1a18bd138 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/zhuoxiang-zhou
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e6196a8fa4649471e0764422602eaef1a18bd138 -
Trigger Event:
workflow_dispatch
-
Statement type: