Pour écrire un grand titre sur la première page non numérotée, suivie d’une page blanche non numérotée, et commencer à écrire page 3 avec un titre centré en haut de la page, on peut procéder comme suit.
// Page 1 : pas de numéro de page
#set page(numbering: none)
// UNIQUEMENT le titre centré au milieu de la page 1
#v(1fr)
#align(center + horizon)[
#text(size: 60pt, weight: "bold")[Titre]
]
#v(1fr)
// saut de page
#pagebreak()
// Page 2 : pas de numéro de page
#set page(numbering: none)
// saut de page
#pagebreak()
// police de caractères
#set text(
font: "New Computer Modern",
size: 16pt
)
// numéro de page “page a sur b” en bas de page
#set page(
footer: context align(center, [
#counter(page).display((num, max) => [page #num sur #max], both: true)
]),
)
// titre au centre de la page 3
#align(center, block[= Titre])
début du texte ici page 3...

Ici, on a une numérotation des pages du type “Page a sur b” où “a” est le numéro de page courant et “b” le nombre de pages en tout du document. La spécification #v(1fr) signifie “une fraction verticale”, elle est ici inutile puisque la page est vide mais il est préférable de prendre l’habitude d’encadrer tout texte à centrer verticalement de cette double directive, une avant et une après, ce qui permet au compilateur de bien calculer le centre de cet espace au pixel près. Notamment en cas d’ajout ultérieur sur la page, tout sera correctement évalué.
Pour un simple numéro de page sans préciser le nombre de pages en tout, on écrit ceci.
#set page(numbering: "1",paper: "a4")
Pour une numérotation particulière des pages, consulter la documentation à ce sujet.
Pour un titre de paragraphe en début de ligne, on écrit simplement ceci.
= Titre
Ne pas oublier l’espace après le signe égal. Pour un titre un peu plus petit, on écrit deux fois le signe égal.
== Titre
Et pour un titre encore plus petit, on écrit trois fois le signe égal.
=== Titre
Le texte s’affiche au kilomètre quelle que soit la présentation du fichier. Pour forcer un retour ligne dans la présentation finale, on utilise la barre oblique (\), qu’on obtient par Ctrl-Alt-8 sur les claviers classiques, suivie d’un espace.
début du texte puis retour \
retour ligne \ autre retour ligne \
Pour sauter une ligne, il faudra donc écrire deux fois “barre oblique-espace” (\ \ ), une première fois pour aller à la ligne, une deuxième fois pour sauter une ligne.
retour à la ligne puis saut d'une ligne \ \ suite du texte
C’est évidemment très pratique si l’on veut par exemple écrire un titre et un auteur sur la première page, le début du fichier .typ donnerait quelque chose de ce genre où l’on retrouve plusieurs fois la séquence “barre oblique-espace” qui correspond au nombre de lignes qui séparent ces deux éléments.
// Page 1 : pas de numéro de page
#set page(numbering: none)
// titre et auteur centrés au milieu de la page 1
#v(1fr)
#align(center + horizon)[
#text(size: 60pt, weight: "bold")[Titre]
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \
#text(size: 30pt, weight: "bold")[Auteur]
]
#v(1fr)
// saut de page
#pagebreak()
Pour centrer un titre sur la ligne, on écrit ceci. Encore une fois, ne pas oublier l’espace après le signe égal.
#align(center, block[= Titre centré])
Pour afficher une image, il faut d’abord importer l’image en question depuis votre ordinateur dans l’espace correspondant à votre document Typst. Voir article précédent à ce sujet. Ce qui permet ensuite de pouvoir afficher l’image comme suit.
#image("image.png", width: 70%)
Si vous avez créé un répertoire “images” dans l’espace réservé au document Typst, il faut alors indiquer le répertoire dans l’instruction.
#image("images/image.png", width: 70%)
Pour que l’image soit centrée, on écrit ceci.
#align(center)[#image("image.png", width: 70%)]
Pour ajouter une légende en caractères gras en dessous de l’image, on écrit ceci.
#align(center)[
#image("image.png", width: 70%)
*commentaire
concernant
l'image en caractères gras*
]
Pour afficher deux images côte à côte, on peut utiliser la commande #grid.
#grid(columns: 2,
gutter: 3pt,
[#image("images/image_01.png")],
[#image("images/image_02.png")]
)
En l’absence de la spécification width, le logiciel calcule la page au mieux. La variable gutter indique l’espace entre deux images. Pour trois images côté à côte, le principe est le même.
#grid(columns: 3,
gutter: 3pt,
[#image("images/image_01.png")],
[#image("images/image_02.png")],
[#image("images/image_03.png")]
)
Pour écrire en caractères gras, on encadre le texte entre deux étoiles (*).
*texte écrit en caractères gras*
Pour écrire en italiques, on encadre le texte entre deux tirets bas (_), underscore en anglais, caractère situé en dessous de la touche “8” des claviers classiques.
_texte écrit en italiques_
Les formules mathématiques s’écrivent entre le signe dollar ($). Consulter la documentation à ce sujet.

Pour écrire des lettres en exposant, on utilise la commande #super avec les lettres entre crochets […]. Par exemple, “1er janvier 2026” s’écrit comme ceci.
1#super[er] janvier 2026
Avant un point-virgule (;) ou un point d’interrogation (?) ou autres encore, l’espace est insécable. Donc soit il n’y a pas d’espace avant ce type de signes de ponctuation, et typst respectera cette présentation sans espace ; soit il y en a au moins un, et typst n’en mettra qu’une seule insécable. En français, ce type de signes doit être précédé d’une espace insécable. Concernant les guillemets ouvert et fermé qui ressemblent à des chevrons («»), le nombre d’espaces est limité à 1 dans le résultat final, mais elle n’est pas insécable. Pour imposer une espace insécable, on utilise le signe tilde (~), sorte de s couché qui s’obtient par Ctrl-Alt-2 puis barre d’espace sur les claviers classiques.
«~mots entre guillemets avec espace insécable~»
Pour inclure un fichier, on utilise la commande #include. C’est assez pratique car le fichier en question peut être un simple .txt du petit Notepad.
#include "suite.txt"
Il serait bon de terminer ce fichier texte par un saut de ligne, donc par une barre oblique (\).
fin du fichier texte \
Dans ce cas, la suite se fera à la ligne suivante. Pour que la suite s’écrive après une ligne vide, il faudra terminer le fichier texte par une barre oblique suivie de deux sauts de ligne, les sauts suivants ne sont pas pris en compte, ce qui donne une fin de fichier qui ressemble à ceci.
fin du fichier texte \
Pour de longs textes, on peut inclure un fichier par chapitre.
#include "chapitre_1.txt"
#include "chapitre_2.txt"
#include "chapitre_3.txt"
Pour afficher du texte de remplissage afin d’obtenir un exemple de présentation générale de son document, on utilise le code #lorem en indiquant entre parenthèses le nombre de mots souhaité.
#lorem(100)
À partir de ces quelques indications, il doit être aisé de commencer la rédaction de son document et d’obtenir le PDF correspondant. Pour le reste, il faut soit poser la question à ChatGPT ou toute autre IA, soit consulter la documentation de Typst.