Skip to main content

Compile a Beamer PDF into a standalone HTML presentation with clickable links, overlays, and media.

Project description

LunarBeam

Turn your Beamer PDF into a media compatible, interactive HTML presentation. With overlays, clickable links, embedded videos/GIFs, and a laser pointer – no LaTeX installation needed on the presenting machine.

PyPI version License: MIT


Why LunarBeam?

  • Present anywhere – just double‑click index.html (or open it in a browser). No Python, no LaTeX, no projector software.
  • All features intact – overlays (\pause, \only, \uncover), internal/external hyperlinks, videos and GIFs (via a simple JSON sidecar), and a laser pointer.
  • Pixel‑perfect scaling – the slide image fits any screen size without moving your clickable areas.
  • Offline & portable – share a single folder or zip file; everything is included.

Installation

LunarBeam requires Python 3.9 or later.

pip install lunarbeam

Quick start

  1. Compile your Beamer PDF as usual (e.g., pdflatex presentation.tex).
pdflatex mytalk.tex

convert the PDF to an interactive HTML presentation:

lunarbeam mytalk.pdf
  1. Open mytalk_pres\index.html in a web browser to present.
cd mytalk_pres
python -m http.server 8000   # or simply double-click index.html

Command‑line options

usage: lunarbeam [-h] [-o OUTPUT] [--tex TEX] [--nav NAV]
                 [--project-dir PROJECT_DIR] [--no-validate]
                 [--resolution RESOLUTION] pdf

positional arguments:
  pdf                   Path to the compiled Beamer PDF

options:
  -h, --help            show this help message and exit
  -o OUTPUT, --output OUTPUT
                        Output directory (default: <pdf_basename>_pres/)
  --tex TEX             Path to the LaTeX source (auto‑detected)
  --nav NAV             Path to the .nav file (auto‑detected)
  --project-dir PROJECT_DIR
                        Directory where auxiliary files are searched
  --no-validate         Skip consistency checks between PDF and .nav
  --resolution RESOLUTION
                        Render resolution as WIDTHxHEIGHT (e.g. 1280x720).
                        Default: 1920x1080

Including videos and GIFs

LunarBeam uses a simple JSON file. Place it next to your PDF with the same base name, e.g. mytalk_media.json.

{
  "media": [
    {
      "phys_page": 5,
      "type": "video",
      "file": "media/demo.mp4",
      "x": 200,
      "y": 300,
      "w": 640,
      "h": 480,
      "autoplay": true,
      "loop": true,
      "muted": true
    },
    {
      "phys_page": 7,
      "type": "gif",
      "file": "media/animation.gif",
      "x": 400,
      "y": 150,
      "w": 400,
      "h": 300,
      "autoplay": true,
      "loop": true
    }
  ]
}

Coordinates are in pixels relative to the rendered slide image (default 1920×1080).

Put the actual media files (demo.mp4, animation.gif) in a media/ folder next to the PDF. LunarBeam will copy them into the output.

Contributing Pull requests are welcome! Please open an issue first to discuss what you’d like to change.

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

lunarbeam-0.1.2.tar.gz (19.3 kB view details)

Uploaded Source

Built Distribution

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

lunarbeam-0.1.2-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

File details

Details for the file lunarbeam-0.1.2.tar.gz.

File metadata

  • Download URL: lunarbeam-0.1.2.tar.gz
  • Upload date:
  • Size: 19.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for lunarbeam-0.1.2.tar.gz
Algorithm Hash digest
SHA256 6046fcdc865ee3949864f4c4cc6bb69eaa758617e3b7a6b34d1456c7c32b11c1
MD5 eb32d70efda6c1e5455f24561a991f1d
BLAKE2b-256 2d12eec987307402a08151e2f1ac7173065007bf84cd02c8d0b8c0eee3abb4ac

See more details on using hashes here.

File details

Details for the file lunarbeam-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: lunarbeam-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 19.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for lunarbeam-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b62e4713a519819f9ea8d5ad9c91a96cd86250b2e434b954cef89e975e1a053b
MD5 a94de0b1575f8a89fe816b34c34e7b0d
BLAKE2b-256 7d1abc8ac2a31502b5680f0c8a409f9933c92efac125d01b67184808d46ec129

See more details on using hashes here.

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