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.1.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.1-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: lunarbeam-0.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 ea3d2963f0d25264ba5f2c0b95153f7c4d004dcff7a1ce609b3afa66634e4f88
MD5 2ac9fb0737646d986b503465204e9632
BLAKE2b-256 7071b53450c3f092258dc5d49678d2c5b82fb1cc732080d00e0d5b1cb823f037

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lunarbeam-0.1.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0cf178052507365ad7b307fb4344120d1ff7536c4f8de58b524841522eb9add8
MD5 754a59954ca24b7ab44c52c67a024483
BLAKE2b-256 98ad683bb991af5690814457ade055169502591e227ef69f0de758f8de6d8eff

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