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.0.tar.gz (19.0 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.0-py3-none-any.whl (18.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: lunarbeam-0.1.0.tar.gz
  • Upload date:
  • Size: 19.0 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.0.tar.gz
Algorithm Hash digest
SHA256 9a8f263e589e7709cb7caffbd35e8d3fd40bfad83a8d9b01d7b3c8060e0ed7c1
MD5 9bbd1e7e6064ad68cd8dbd559130628b
BLAKE2b-256 57ca3dc17634442f0d2f6cf48349867ff1874c2676015b38fbceaf1ea23bd6e6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lunarbeam-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 18.8 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4f24835db73e55a29915e939348b876234f4dd4aa4b25dc3ccc98b01ea0b1798
MD5 c282208e545b584dc25dcb256124b283
BLAKE2b-256 5354622ecd32470bfcbff201e288e2d5806d5dbb2bad7957910ba61145ba5a9e

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