CTAN Comprehensive TeX Archive Network

Directory macros/unicodetex/latex/chalk-annotate

README.md

chalk-annotate

Hand-drawn chalk-textured annotations for Beamer presentations.

Pre-rendered PNG overlays with natural grain and opacity variation — far more realistic than pure TikZ decorations.

Quick Start

Live (recommended)

tlmgr install chalk-annotate

Then in your .tex file:

\usepackage{chalk-annotate}
\hlellipse{important}

Overleaf

  1. Upload chalk-annotate.sty to your project root
  2. Upload the assets/ folder (keep the folder structure)
  3. Add to your preamble:
\usepackage{chalk-annotate}
  1. Use annotations in your slides:
\hlellipse{important}            % red (default)
\hlellipse[blue]{important}      % blue
\hlbox[green]{key finding}       % green box
\hlunderline[orange]{underline}  % orange underline
  1. Set compiler to (Menu → Compiler → )

Local

Same as Overleaf — place chalk-annotate.sty and assets/ next to your .tex file, then compile with xelatex.

Commands

All commands take an optional [color] argument (default: red).

Command Effect
\hlellipse[color]{text} Chalk ellipse around text
\hlunderline[color]{text} Chalk underline below text
\hlbox[color]{text} Chalk box with light fill + border
\hlcircle[color]{text} Chalk rounded rectangle
\hlarrowright[color]{text} Chalk arrow pointing right
\hlstrike[color]{text} Chalk diagonal strike-through

Available Colors

red · blue · green · orange · purple

Mix freely in the same document:

\hlellipse{default red}
\hlellipse[blue]{blue}
\hlbox[green]{$\beta_1 < 0$}
\hlunderline[orange]{underlined text}
\hlellipse[purple]{purple}

Box Details

\hlbox uses two layers:

  • Light fill — behind text (does not obscure content)
  • Chalk border — on top of text

Customization

Add a new color

  1. Edit generate-colors.py — add your color to COLORS dict:
COLORS = {
    ...
    "teal": (0, 128, 128),  # #008080
}
  1. Run: python3 generate-colors.py
  2. Upload the new assets/teal/ folder to your project
  3. Use: \hlellipse[teal]{text}

Use your own hand-drawn images

Replace any PNG in assets/<color>/ with your own. Requirements:

  • Transparent background (RGBA PNG)
  • File must cover the full canvas (will be stretched to fit text)
  • Keep the same filename: ann-ellipse.png, ann-underline.png, etc.

Works great with Procreate, Photoshop, or any drawing app — just export as transparent PNG.

Change asset path

If your images live elsewhere:

\usepackage{chalk-annotate}
\annsetpath{images/annotations}  % now looks in images/annotations/<color>/

File Structure

your-project/
  chalk-annotate.sty
  assets/
    red/
      ann-ellipse.png
      ann-underline.png
      ann-box-fill.png
      ann-box-border.png
      ann-arrow-right.png
      ann-strike.png
    blue/
      ...
    green/
      ...
    orange/
      ...
    purple/
      ...

Author

Zhang Zitong (Yi Yi)

Email: zz19941127@gmail.com

GitHub: https://github.com/zz19941127

Requirements

  • or Lua
  • Packages automatically loaded: tikz, graphicx, calc
  • TikZ libraries: calc, backgrounds

License

MIT

Download the contents of this package in one zip archive (686.7k).

chalk-annotate – Chalk-textured annotations for Beamer presentations

This package provides pre-rendered PNG overlays with natural chalk grain and opacity variation for emphasizing text and other content in Beamer slides. It offers six annotation styles: ellipse, underline, box with fill and border, arrow, and strikethrough. Each style is available in five colors: red, blue, green, orange, and purple. The resulting annotations look more realistic than pure TikZ decorations. The package works with and Lua.

Packagechalk-annotate
Home pagehttps://github.com/zz19941127/chalk-annotate
Bug trackerhttps://github.com/zz19941127/chalk-annotate/issues
Repositoryhttps://github.com/zz19941127/chalk-annotate
Version1.1 2026-04-25
LicensesMIT License
Copyright2026 Zhang Zitong
MaintainerZitong Zhang
TopicsPresentation
Decoration
...
Guest Book Sitemap Contact Contact Author