Metadata-Version: 2.4
Name: tex2pptx
Version: 0.1.1
Summary: Editable-first LaTeX/Beamer to PowerPoint conversion workflow
Author: Zhuoxiang (Shawn) Zhou
License-Expression: MIT AND ISC AND Zlib
Keywords: beamer,latex,powerpoint,pptx,presentation
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: MacOS
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Office/Business :: Office Suites
Classifier: Topic :: Text Processing :: Markup :: LaTeX
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: THIRD_PARTY_NOTICES.md
License-File: src/tex2pptx/data/pptx-writer.cjs.LEGAL.txt
Requires-Dist: lxml<7,>=5.0
Requires-Dist: numpy<3,>=2.0
Requires-Dist: Pillow<13,>=11.0
Requires-Dist: pydantic<3,>=2.9
Requires-Dist: pylatexenc<3,>=2.10
Requires-Dist: PyMuPDF<2,>=1.24
Requires-Dist: PyYAML<7,>=6.0
Requires-Dist: rich<15,>=13.9
Requires-Dist: scikit-image<1,>=0.24
Requires-Dist: typer<1,>=0.15
Provides-Extra: dev
Requires-Dist: build<2,>=1.2; extra == "dev"
Requires-Dist: pytest<10,>=8.3; extra == "dev"
Requires-Dist: pytest-cov<8,>=6.0; extra == "dev"
Requires-Dist: tomli<3,>=2.0; python_version < "3.11" and extra == "dev"
Requires-Dist: twine<7,>=6.0; extra == "dev"
Dynamic: license-file

# 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:

```bash
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install tex2pptx==0.1.1
```

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.10 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:

```bash
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:

```bash
tex2pptx inspect path/to/presentation.tex
```

Convert it into an explicit output directory:

```bash
tex2pptx convert path/to/presentation.tex --to path/to/output
```

For `presentation.tex`, the output directory contains:

```text
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 `tex2pptx` is not found, activate the virtual environment in which it was
  installed.
- If `doctor` reports 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
  `/Applications` and that macOS Automation permission has been granted to the
  terminal application running `tex2pptx`.
- If conversion completes with warnings, open the generated HTML report and
  review the listed slides and fallback objects.
