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
seedproduce the same PDF.

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.