Skip to content

lookscanned

A Typst package that renders documents as if they had been scanned, photocopied, faxed or typed.

lookscanned adds paper texture, stains, dust, scanner lighting, page rotation and ink effects to a Typst document. The textures and the randomness come from a WebAssembly plugin written in Rust; the effects are applied by Typst itself. The package guarantees three properties:

  • Text is preserved. Glyphs are never rasterised. Text stays selectable, searchable and readable by assistive technologies.
  • Layout is preserved. Line and page breaks are identical with and without the effect (verified by the test suite for every preset).
  • Rendering is deterministic. The same source and the same seed produce the same PDF.

An excerpt on Cauchy sequences rendered with the old-paper preset

The old-paper preset on a page of lecture notes.

Minimal example

#import "@preview/lookscanned:0.1.0"

#show: lookscanned.scan.with(preset: "old-paper", seed: 3)

= Cauchy sequences
A sequence $(u_n)$ is a _Cauchy sequence_ if for every $epsilon > 0$ there
exists $N$ such that $abs(u_p - u_q) <= epsilon$ for all $p, q >= N$.

Contents

Section Content
Getting started Installation and a step-by-step first document
Guide
Presets The seven built-in looks, intensity and seed
Ink Bleed, fade, wear, legibility, ghosting
Paper and scanner Paper colour and ageing, stains, dust, lighting, fax lines
Mathematics Equations, templates such as mousse-notes, fonts
Pages and regions Per-page overrides and partial effects
Decorations Stamps, handwritten notes, stains
Custom presets Defining, deriving and sharing presets
Performance Compile time and PDF size
Raw textures Using the generated images directly
Reference
API Every public function and its arguments
Themes Every setting, its type and neutral value; intensity scaling
Presets Exact values of the built-in presets
Textures Texture kinds and their parameters
Internals
Architecture Plugin protocol, rendering pipeline, determinism
Limitations Known constraints, viewer support, responsible use
Development Building, testing, packaging, documentation

Requirements

Typst 0.14 or later. No external tool is needed to compile a document: the plugin ships inside the package.