A Typst package for creating beautiful, print-friendly title styles for documents. Perfect for textbooks, course materials, academic papers, and any document that needs professional heading styles.
Features
- 19 distinctive styles - From classic academic to modern creative
- Print-friendly - All styles use minimal ink (no heavy backgrounds)
- Fully configurable - Colors, sizes, spacing, and numbering
- Styled Table of Contents - Each style has a matching TOC design
- Optional parts - LaTeX-like parts above chapters
- Page breaks - Optional automatic page breaks before chapters
- Multilingual - Customizable prefixes for any language
- Native Typst support - Works with
= Headingsyntax - Cross-references -
beautitled-reffor labelled heading refs with optional page numbers
Quick Start
#import "@preview/beautitled:0.2.6": *
#beautitled-setup(style: "titled")
#show: beautitled-init
= My Chapter Title
== My Section Title
=== My Subsection Title
Parts
Typst has generic heading levels, but not a dedicated LaTeX-style \part.
beautitled provides one with #part[...]. By default each part gets its own
dedicated page with the title vertically and horizontally centred — matching
LaTeX’s default behavior. Every style has its own coherent part renderer.
#part[Foundations]
#chapter[Numbers]
#section[Integers]
Part with image
#part(
image: image("cover.png", width: 70%),
image-caption: [A conceptual overview],
image-position: "below", // "above" or "below" (default)
)[Advanced Topics]
Disable full-page parts
#beautitled-setup(part-fullpage: false) // global
#part(fullpage: false)[Appendices] // per call
Native headings as parts
#beautitled-setup(enable-parts: true)
#show: beautitled-init
= Foundations
== Numbers
=== Integers
==== Arithmetic
Available Styles (19)
| Category | Style | Description |
|---|---|---|
| Original | titled |
Boxed sections with floating labels (DEFAULT) |
| General | classic |
Traditional with underlines |
modern |
Clean geometric with accent | |
elegant |
Refined with ornaments | |
bold |
Strong left border | |
creative |
Student portfolio style | |
minimal |
Ultra-clean | |
vintage |
Classic book ornaments | |
| Educational | schoolbook |
Textbook style |
notes |
Course notes | |
clean |
Maximum simplicity | |
| Academic | technical |
Documentation |
academic |
Professional academic | |
textbook |
Bold numbers, clear hierarchy | |
scholarly |
Centered with thin rules | |
classical |
Small caps, minimal | |
educational |
Left border with numbers | |
structured |
Boxed numbers | |
magazine |
Editorial style |
Style Gallery
![]() titled |
![]() classic |
![]() modern |
![]() elegant |
![]() bold |
![]() creative |
![]() minimal |
![]() vintage |
![]() schoolbook |
![]() notes |
![]() clean |
![]() technical |
![]() academic |
![]() textbook |
![]() scholarly |
![]() classical |
![]() educational |
![]() structured |
![]() magazine |
Parts Gallery
![]() modern |
![]() elegant |
![]() titled |
![]() scholarly |
TOC Style Gallery
![]() titled |
![]() classic |
![]() modern |
![]() elegant |
![]() bold |
![]() minimal |
![]() scholarly |
![]() simple |
Configuration
Full Parameter Reference
#beautitled-setup(
// Style
style: "titled", // Style name
// Colors
primary-color: rgb("#2c3e50"),
secondary-color: rgb("#7f8c8d"),
accent-color: rgb("#2980b9"),
// Font sizes
part-size: 24pt,
chapter-size: 18pt,
section-size: 14pt,
subsection-size: 12pt,
subsubsection-size: 11pt,
// Numbering
enable-parts: false, // false: = Chapter, true: = Part and == Chapter
show-part-number: true,
show-chapter-number: true,
show-section-number: true,
show-subsection-number: true,
show-chapter-in-section: true,
// Prefixes (localization)
part-prefix: "Partie",
chapter-prefix: "Chapitre",
section-prefix: "Section",
// Page breaks
part-fullpage: true, // LaTeX-style: part gets its own centred page
part-pagebreak: true, // (inline mode) break before parts after the first
chapter-pagebreak: false,
// Table of Contents
toc-style: none, // Different style for TOC (none = same as headings)
toc-indent: 1em,
toc-part-size: 14pt,
toc-fill: repeat[.],
)
Table of Contents
// Basic TOC
#beautitled-toc()
// Custom title
#beautitled-toc(title: "Contents")
// Different style for TOC
#beautitled-toc(title: "Index", style: "elegant")
Mix Heading and TOC Styles
#beautitled-setup(style: "titled")
#show: beautitled-init
// TOC uses "scholarly" style
#beautitled-toc(title: "Table of Contents", style: "scholarly")
= First Chapter
...
Page Breaks
#beautitled-setup(
style: "textbook",
chapter-pagebreak: true, // Page break before each chapter
)
#show: beautitled-init
Language Presets
#preset-french() // "Partie", "Chapitre", "Section"
#preset-english() // "Part", "Chapter", "Section"
#preset-german() // "Teil", "Kapitel", "Abschnitt"
#preset-no-numbers()
Color Themes
#theme-ocean() // Blue
#theme-forest() // Green
#theme-royal() // Purple
#theme-mono() // Grayscale
#theme-warm() // Orange/brown
#theme-coral() // Red
Manual & Demo
- Full manual:
manual.typ/manual.pdf - Style showcase:
demo.typ/demo.pdf
Changelog
v0.2.6 — 2026-06-09
Added
part-fullpage: true(new default): each part gets its own vertically and horizontally centred page, matching LaTeX’s\partbehavior — each style has its own coherent part renderer#part(fullpage: false): per-call override to use inline parts#part(image: ...): optional image on the part page (fullpage mode only)#part(image-caption: ...): caption rendered via Typst’s nativefigure#part(image-position: "above"|"below"): place image above or below the title (default:"below")
v0.2.5 — 2026-06-09
Added
beautitled-ref/btl-ref: cross-reference any labelled part, chapter, section, subsection, or subsubsection with a clickable, numbered linkshow-page: trueappends a page numbershort: trueshows the number without the prefix word (e.g.1.1instead ofSection 1.1)- Prefix words respect the active language preset
v0.2.0
- Fix: Use Unicode word joiners (
\u{2060}) around dots in section numbering — prevents decimal-comma localization from rendering “1.2” as “1,2” in affected locales - Applied to
lib.typand all 19 style files - Compiler requirement updated to
0.14.2
v0.1.0
- Initial release: 19 styles, TOC support, language presets, color themes, show-rule integration
License
MIT License - see LICENSE file for details.






























