LaTeX/Écrire de la physique

Un livre de Wikilivres.

La physique nécessite des éléments supplémentaires par rapport aux mathématiques. La plupart de ces éléments sont accessibles dans le mode mathématique, mais ils sont présentés ici. Certaines extensions sont spécifiques à la physique.

Nombres[modifier | modifier le wikicode]

L'extension numprint fournit la commande \numprint qui met en forme automatiquement les grands nombres[1] : avant et après le séparateur décimal, les chiffres sont groupés par trois et ces groupes sont séparés par une espace. Par exemple

\usepackage{numprint}
…
\numprint{123456,789123}

donne

123 456,789 123

En particulier, hors du mode mathématique, la commande \numprint permet de supprimer l'espace ajoutée après la virgule.

Mode mathématiques[modifier | modifier le wikicode]

En mode mathématiques, la commande \mho affiche le symbole du mho, , et \hbar affiche .

Unités[modifier | modifier le wikicode]

Extension siunitx[modifier | modifier le wikicode]

Selon les mots de l'auteur de cette extension, Joseph Wright: CTAN, je cite :

« Le paquet siunitx prend le meilleur des packages existants et ajoute de nouvelles fonctionnalités et une interface cohérente. Un certain nombre de nouvelles idées ont été intégrées, pour combler les lacunes des packages existants. Le paquet fournit également une compatibilité descendante avec SIunits, sistyle, unitsdef et units. L'objectif est d'avoir un package pour répondre à tous les besoins possibles liés à l'unité aux utilisateurs de LaTeX. »

Extension SIunits[modifier | modifier le wikicode]

SIunits est incompatible avec certaines extensions, notamment la commande \square de l'extension amssymb, et la commande \gray de pstricks. Pour éviter les conflits, on peut charger les options squaren et Gray, on utilise alors :

  • \square avec amssymb et \squaren avec SIunits ;
  • \gray avec pstricks et \Gray avec SIunits.

Ceci permet d'assurer la compatibilité avec du code sans SIunits. Nous considérerons cette hypothèse par la suite.

\usepackage[squaren,Gray]{SIunits}

Fonctionnement général[modifier | modifier le wikicode]

Pour écrire les unités du système international, on dispose de l'extension SIunits ; attention, ici, le « S » et le « I » doivent être en capitales. Les symboles des unités sont alors accessibles par des commandes portant leur nom anglais (par exemple \kilogram, \meter). Ces commandes sont utilisables dans le texte ou dans des formules mathématiques :

Il vaut mieux exprimer la vitesse
en mètres par seconde (\meter\per\second)
plutôt qu'en kilomètres par heure (\kilo\meter\per\hour).
On a~:
\[
   1 \kilo\meter\per\hour = \numprint{0,278} \meter\per\second
\]

On dispose également d'une commande

\unit{nombre}{\unité}

par exemple

\unit{10}{\meter}

pour avoir « 10 m ». L'avantage est que la typographie est correcte, notamment pour le préfixe µ (micro) : la commande \mu en mode mathématiques donne un caractère italique alors qu'avec \micro il est droit. De plus, cela gère automatiquement les espaces : espace insécable entre le nombre et l'unité, qui n'a pas la même taille que les espaces entre les composantes de l'unité.

Pour les grands nombres, on utilisera

\unit{\numprint{''nombre''}}{\''unité''}

On peut appeler l'extension avec des options :

\usepackage[''option'']{SIunits}

les principales options permettent de définir le séparateur dans le cas d'une grandeur produit de grandeurs fondamentales, lorsque l'on utilise \usk ou . à l'intérieur du deuxième bloc de \unit :

  • cdot (centered dot) : les différentes unités sont séparées par un point centré ;
  • thinspace : dans le cas d'une grandeur produit de grandeurs fondamentale, les différentes unités sont séparées par une petite espace ;
  • mediumqspace : le nombre et l'unité sont séparés d'une espace moyenne ;
  • thickqspace : le nombre et l'unité sont séparés d'une grande espace.

Par exemple :

\usepackage[squaren, Gray, cdot]{SIunits}

Unités de base[modifier | modifier le wikicode]

Les unités SI et dérivées sont obtenues simplement en écrivant leur nom anglais précédé de la contre-oblique.

Unités SI dans SIunits
Unité Commande Résultat
kilogramme \kilogram kg
mètre \metre,
\meter
m
seconde \second s
ampère \ampere A
kelvin \kelvin K
mole \mole mol
candela \candela cd

Les unités dérivées sont : \hertz (Hz), \pascal (Pa), \newton (N), \joule (J), \watt (W), \coulomb (C), \volt (V), \farad (F), \ohm (Ω), \siemens (S), \weber (Wb), \tesla (T), \henry (H), \celsius (°C), \lumen (lm), \lux (lu), \becquerel (Bq), \Gray[2] (Gy), \sievert (Sv).

Un certain nombre d'unités non-Si sont également définies : \angstrom (Å), \arcminute ('), \arcsecond ("), \are (a), \atomicmass (u), \barn (b), \bbar (b), \bel (B), \curie (Ci), \dday (d), \degree (°), \electronvolt (eV), \gal (Gal), \gram (g), \hectare (ha), \hour (h), \liter (L), \litre (l), \minute (min), \neper (Np), \rad (rad), \rem (rem), \roentgen (R), \rperminute (r/min), \tonne (t).

Préfixes multiplicatifs[modifier | modifier le wikicode]

Les préfixes s'utilisent de la même manière. On a donc : \yocto (y, 10-24), \zepto (z, 10-21), …, \micro (µ, 10-6), \milli (m, 10-3), \centi (c, 10-2), \deci (d, 10-1), \deca (da, 10), \hecto (h, 102), \kilo (k, 103), \mega (M, 106), …, \zetta (Z, 1021), \yotta (Y, 1024).

Si l'on intègre un « d » à la fin du préfixe, cela génère la puissance de 10, par exemple

\unit{5}{\micro\meter} donne 5 µm, mais
\unit{5}{\microd\meter} donne 5 10-6 m

Si l'on veut mettre un point centré, il faut écrire \unit{5}{.\microd\metre}, mais alors, on a un espace puis un point. On peut utiliser

$\unit{5 \cdot 10^{-6}}{\meter}$

Unités composées[modifier | modifier le wikicode]

L'extension contient un certain nombre d'unités composées. Il suffit d'utiliser le nom en anglais, en un seul mot, par exemple

  • \squaremeter : m2 ;
  • \cubicmeter : m3 ;
  • \squaremeterpercubicmeter : m2/m3 ;
  • \kilogramsquaremeter : kg⋅m2 ;
  • \kilogrampersquaremeter : kg/m2 ;
  • \kilogrampersquaremeternp : kg⋅m-2 ;
  • \kilowatthour : kWh ;

On peut aussi composer ses propres unités :

  • pour multiplier des unités entre elles, il suffit de les mettre les unes après les autres, elles sont alors accolées ; on peut les séparer par un point « . » ou par la commande \usk (unit skip) pour utiliser le délimiteur défini en option (si l'on a choisi l'option mediumspace, le point sera remplacé par une espace moyenne) ;
  • pour placer une barre de fraction, on utilise \per ;
  • pour élever à la puissance :
    • -1 : on fait précéder l'unité par \reciprocal, par exemple \reciprocal\second pour s-1
    • 2 : on fait précéder l'unité par \squaren[3] ou suivre par \squared, par exemple \squaren\meter ou \meter\squared pour m2 ;
    • 3 : on fait précéder l'unité par \cubic ou suivre par \cubed, par exemple \cubic\meter ou \meter\cubed pour m3 ;
    • -2 : on fait précéder l'unité par \rpsquare ou suivre par \rpsquared, par exemple \rpsquare\meter ou \meter\rpsquared pour m-2 ;
    • -3 : on fait précéder l'unité par \rpcubic ou suivre par \rpcubed, par exemple \rpcubic\meter ou \meter\rpcubed pour m-3 ;
    • une puissance quelconque : \power{unité}{puissance}, par exemple \power{m}{\mathit{n}} pour mn.

Par exemple

\unit{25}{\kilogram.\meter \per \squaren \second} donne 25 kg⋅m/s2
\unit{25}{\kilogram.\meter.\rpsquare \second} donne 25 kg⋅m⋅s-2

Extension sistyle[modifier | modifier le wikicode]

L'utilisation de l'extension sistyle — ici, le « s » et le « i » sont en bas-de-casse — est beaucoup plus simple que SIunits. On utilise la commande

\SI{nombre}{unité}

mais ici, l'unité est composée comme en mode mathématique. Cela est laissé à l'entière responsabilité de l'utilisateur. Par exemple

\SI{1}{N}=\SI{1}{kg.m/s^2}

Le point est remplacé par un point centré ; si l'on veut utiliser le point comme séparateur décimal, on utilise \pnt, par exemple

\SI{}{MPa^{0 \pnt 5}} pour (MPa)0.5.

La commande \tfrac{dividende}{diviseur} permet d'écrire un rapport d'unités sous la forme d'une petite fraction.

L'extension fournit des commandes pour certaines unités qui ne sont pas des lettres latines :

  • \angstrom : Å ;
  • \micro : µ ;
  • \ohm : Ω ;
  • \degC : °C ;
  • \degF : °F ;
  • \arcdeg : ° ;
  • \arcmin : ' ;
  • \arcsec : ".

La commande \num*{nombre} formate les nombres, en séparant les groupes de trois chiffres par une espace. Elle fournit également une notation simplifiée des puissances de 10, avec e :

1e2 donne 1×102
- e -0,5 donne -10-0.5

Pour avoir la virgule comme séparateur décimal, il faut employer

\SIdecimalsign{,}

La commande \num a le même effet, mais utlise des chiffres bas-de-casse (ceux obtenus avec \oldstylenums).

L'extension fournit également une mise en forme des angles :

\ang{degrés; minutes; secondes}

par exemple

\ang{3; 2; 1} donne 3°2'1"

Réactions nucléaires[modifier | modifier le wikicode]

Pour pouvoir écrire une réaction nucléaire, il est utile de savoir utiliser les instructions d’indices et d’exposants. Sauf qu’il faut les placer avant l’élément concerné et pas après comme en mathématique. Pour cela, il suffit simplement d’écrire l'instruction voulue avant. Par exemple _{6}^{12}C_{6} nous donne . On peut donc facilement écrire des réactions nucléaires complètes en utilisant cette méthode. Ainsi _{7}^{14}N + _{0}^{1}n \longrightarrow _{1}^{1}p + _{6}^{14}C permet d’écrire . Il semblerait qu’il soit préférable d’écrire en premier la partie concernant l'indice et ensuite d’écrire la partie concernant l’exposant. Par exemple, on écrira _{6}^{12}C (ce qui nous donne ) à la place de ^{12}_{6}C (ce qui nous donne ) ; le rendu est plus parlant.

Quand l'indice et l'exposant n'ont pas le même nombre de caractères --- 1 pour “6” et 2 pour “12” --- on peut les aligner à droite à l'aide de la commande \phantom, comme dans _{\phantom{1}6}^{12}C, qui donnera un résultat plus joli que , sans espace sous le “2”.

Il est possible de définir la commande \newcommand{\noyau}[3]{\prescript{#2}{#3}{\mathrm{#1}}} dans l'entête. Le paquet mathtools définit la commande \prescript. On doit donc aussi l'inclure pour pouvoir utiliser cette commande. L'avantage de cette commande est que, par exemple pour le carbone 12, le 6 sera correctement aligné à droite, ce qui n'est pas le cas avec les commandes du paragraphe précédent. Pour écrire un noyau de carbone 12, vous devez simplement taper \noyau{C}{12}{6} dans un environnement mathématique. Il est possible de laisser l'un des paramètres libre en écrivant par exemple \noyau{C}{12}{} qui afficher .

Notation de Dirac, bra et ket[modifier | modifier le wikicode]

Pour la physique quantique, les instructions utiles sont \langle pour faire , \rangle pour faire et le tube |.

On peut utiliser l'extension braket, qui fournit

  • les commandes \bra, \ket et \braket pour des symboles de taille fixée,
  • et les commandes \Bra, \Ket et \Braket pour des symboles extensibles selon leur contenu.

On utilisera comme suit :

\bra{a}
\ket{b}
\braket{a|P|b}

On peut aussi choisir de créer soi-même des commandes bra et ket, pour plus de souplesse. Par exemple, on peut mettre dans l'en-tête :

\usepackage{xspace}

\newcommand{\ket}[1]{\ensuremath{|#1\rangle}\xspace}
\newcommand{\bra}[1]{\ensuremath{\langle #1|}\xspace}

Ainsi, \ket{n_i} donne , \bra{p} donne et \bra{u_i} \hat{A} \ket{u_j} donne .

On peut ensuite créer de nouvelles commandes utilisant \bra et \ket, par exemple

\newcommand{\uiacuj}{\ensuremath{\bra{u_i}\hat{A}^\dagger \ket{u_j}}\xspace}

et donc \uiacuj donne . Ou encore, pour rendre cette dernière commande paramétrable :

\newcommand{\elemm}[3]{\ensuremath{\bra{#1}\hat{#2}\ket{#3}}\xspace}

par exemple, \elemm{a}{W}{b} donne , et \elemm{a_n^{(1)}}{H_0}{b_p^{(2)}} donne .

Pour écrire un produit scalaire, de la même façon :

\newcommand{\psh}[2]{\ensuremath{\langle #1|#2\rangle}\xspace}

et donc \psh{a}{b} donne . Ou encore \psh{x-\ell}{\varphi} qui donne .

Un joli exemple, pour le plaisir .En plus des commandes ci-dessus, on peut faire du zèle et créer les commandes suivantes

\newcommand{\upp}[1]{\ensuremath{^{(#1)}}\xspace}
\newcommand{\sqmod}[1]{\ensuremath{|#1|^2}\xspace}

Et alors

\ket{n} \upp{1} \sim
\ket{n} +
\sum_{p\neq n} \frac{\sqmod{\elemm{p}{W}{n}}}{E_n\upp{0}-E_p\upp{0}}
\ket{p}

donne

ce qui, sans les macros, s'écrirait in extenso

| n \rangle^{(1)} \sim
| n \rangle +
\sum_{p\neq n}\frac{\langle p | \hat{W} |n \rangle}{E_n^{(0)}-E_p^{(0)}}
| p \rangle

Notes[modifier | modifier le wikicode]

  1. dans la documentation Babel du 18 mars 2010, Daniel Flipo recommande l'utilisation de la commande \numprint au lieu de la commande \nombre, voir [[1]] en bas de page 4.
  2. avec l'option Gray lors de l'appel de l'extension
  3. avec l'option squaren lors de l'appel de l'extension
Table des matières - Généralités - Premiers pas - Structure du document - Gestion de la bibliographie - Tableaux - Images - Éléments flottants et figures - Mise en forme du texte - Choix de la police - Mise en page - Mathématiques - Gestion des gros documents - Faire des présentations - Arts et loisirs - Dessiner avec LaTeX - Créer une extension ou une classe - Programmer avec LaTeX - Annexes - Vade mecum - Conversion - Glossaire de typographie - Index - Commandes - Liens externes