Extensions scientifiques
Pour rédiger des documents en sciences physiques, je conseille d’utiliser les deux extensions suivantes :
- whalogen pour la chimie
- fancy-units pour les nombres et les unités.
Les codes d’importation sont :
#import "@preview/whalogen:0.3.0": ce#import "@preview/fancy-units:0.1.1": num, unit, qty, fancy-units-configure#import "@preview/typst-symbols:0.2.0": sym(si besoin !)
1. Whalogen
Formule chimique
#ce("C2H6O")
->

ou
#ce("Cl- + NH4^+")
->

Équation chimique :
#ce("HCl + H2O -> H3O+ + Cl-")
->

ou en mode maths :
$#ce("HCl + H2O -> H3O+ + Cl-")$
Écriture conventionnelle des noyaux
#ce("@Ag,108,47@")
->

Pour plus d’informations : manuel au format pdf
2. fancy-units
L’écriture des unités n’est pas simple avec Typst. En effet, par défaut les unités à une lettres sont identifiée comme des variables et donc mise en italique, les autres unités doivent être mise entre guillemets et les exposants entre parenthèses, exemple :
$9,81 N dot "kg"^(-1)$
->

La solution est alors la suivante :
$9,81 space upright(N) dot "kg"^(-1)$
->

Cette manière d’écrire devient lourde assez rapidement.
L’extension fancy-unit allège cela :
9,81 #unit[N/kg]
->

Mais le problème est qu’entre les unités fancy-unit place par défaut un espace et non un point médian comme c’est l’usage en France. Pas de soucis, le concepteur y a pensé en introduisant la commande #fancy-units-configure().
Au début du document, on place la séquence suivante :
#fancy-units-configure(
unit-separator: sym.dot,
)
9,81 #unit[N/kg]
ce qui donnera :

Cependant avez-vous remarquez que les chiffres sont plus petits que les lettres. Le mode mathématique rétablit cela, mais l’unité est trop près de la valeur :
$9,81 #unit[N/kg]$
->

$9,81 space #unit[N/kg]$
->

L’écriture est au final légèrement allégée. Il faut penser au mode mathématique et à l’espace ou changer la police du texte (ou la police du mode mathématique) pour harmoniser chiffres et lettres.
Dans ce paquet, il existe la fonction qty() (quantities) qui combine les fonctions _num()_et unit().
Avec la configuration précédentes :
#qty[9.81][N/kg]
donnera le résultat suivant :

Chiffres et lettres sont uniformisés mais ce n’est pas le bon séparateur décimal et l’unité s’est légèrement rapprochée du nombre.
Pour le séparateur décimal :
#fancy-units-configure(
decimal-separator: sym.comma,
unit-separator: sym.dot,
)
->

Pour éloigner les unités d’un espace :
#fancy-units-configure(
decimal-separator: sym.comma,
quantity-separator: " ",
unit-separator: sym.dot,
)
Si l’on ne veut pas que l’unité soit séparée de sa valeur lors d’un changement de ligne et que l’unité soit elle aussi coupée, on déclare :
#fancy-units-configure(
decimal-separator: sym.comma,
quantity-separator: sym.space.nobreak,
unit-separator: sym.dot + sym.zwj,
)
et
#qty[9.81][N/kg]
fonctionnera parfaitement et l’écriture devient plus intuitive.
Voilà, le document est configuré pour écrire facilement des textes en sciences avec les conventions françaises.
Pour découvrir les autres fonctions du paquet : manuel au format pdf