Extensions scientifiques

Pour rédiger des documents en sciences physiques, je conseille d’utiliser les deux extensions suivantes :

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")

->

formule

ou

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

->

formule

Équation chimique :

#ce("HCl + H2O -> H3O+ + Cl-")

->

équation

ou en mode maths :

$#ce("HCl + H2O -> H3O+ + Cl-")$

Écriture conventionnelle des noyaux

#ce("@Ag,108,47@")

->

équation

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)$

->

équation

La solution est alors la suivante :

$9,81 space upright(N) dot "kg"^(-1)$

->

équation

Cette manière d’écrire devient lourde assez rapidement.

L’extension fancy-unit allège cela :

9,81 #unit[N/kg]

->

équation

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 :

équation

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]$

->

équation

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

->

équation

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 :

équation

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,  
)

->

équation

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


Réagir à ce billet :