Announcing Beam

beam is a file format that makes it easier to write LaTeX beamer. A beam compiler (synonymously implementation) turns a .beam file into a .tex file and invokes latexmk. As of writing one exists in Rust and one for C is planned (partially for greater portability, and partially as an exercise in learning C for my own sake).

I’ll just show you what an example beam document looks like, since the spec is so simple.

^ \documentclass[12pt]{beamer}
   ^ \title{beam}
   ^ \author{Dennis Chen}

   \titlepage

   # Introduction

   ~ What is beam?
   - beam is a file format to write presentations with
   - beam is a program that converts beam files into beamer

   ~ Why?
   beam does for beamer what Markdown does for HTML
   - beamer takes far too long to write.
   - We only need a subset of beamer's features

   # Features

   ~ Frametitles
   Use the ``\textasciitilde'' character to set the frametitle.

   ~ Bullet points
   - You've already seen it in this presentation.
   - Bullet points invoke the ``itemize'' environment.

   ~ Block
   > How to make a block
   > This symbol makes a block.

   ~ Exampleblock
   < How to make an exampleblock
   < This symbol makes an exampleblock.

   ~ Alertblock
   ! How to make an alertblock
   ! This symbol makes an alertblock.

   ~ Images
   Use the ``@'' character to set a background image.

   @beach.jpg

   # Miscellaneous

   ~ Stylization
   beam should be written in all lowercase, even at the start of a sentence.

Interested in using beam? Read the beam page on my website.