Programmation LaTeX/Écrire de la physique
Un livre de Wikibooks.
| Premiers pas : |
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ématiques, mais ils sont présentés ici. Certaines extensions sont spécifiques pour la physique.
Sections |
[modifier] Nombres
L'option frenchb de l'extension babel fournit la commande \nombre qui met en forme automatiquement les grands nombres : 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[frenchb]{babel}
…
\nombre{123456,789123}
donne
123 456,789 123
En particulier, hors du mode mathématique, la commande \nombre permet de supprimer l'espace ajoutée après la virgule.
[modifier] Mode mathématiques
En mode mathématiques, la commande \mho affiche le symbole du mho,
, et \hbar affiche
.
[modifier] Unités
[modifier] Extension SIunits
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 :
\squareavecamssymbet\squarenavecSIunits;\grayavecpstrickset\GrayavecSIunits.
Ceci permet d'assurer la compatibilité avec du code sans SIunits. Nous considérerons cette hypothèse par la suite.
\usepackage[squaren,Gray]{SIunits}
[modifier] Fonctionnement général
Pour écrire les unités du système international, on dispose de l'extension SIunits ; attention, ici, le « S » et la « 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 = \nombre{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{\nombre{''nombre''}}{\''unité''}
On peut appeler l'extension avec des options :
\usepackage[''option'']{SIunit}
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}
[modifier] Unités de base
Les unités SI et dérivées sont obtenues simplement en écrivant leur nom anglais précédé de la contre-oblique.
| 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[1] (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), \angstrom (Å), \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).
[modifier] Préfixes multiplicatifs
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\metre}donne 5 µm, mais\unit{5}{\microd\metre}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}$
[modifier] Unités composées
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: k⋅m2 ;\kilogrampersquaremeter: k/m2 ;\kilogrampersquaremeternp: k⋅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'optionmediumspace, 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\secondpour s-1 - 2 : on fait précéder l'unité par
\squaren[2] ou suivre par\squared, par exemple\squaren\meterou\meter\squaredpour m2 ; - 3 : on fait précéder l'unité par
\cubicou suivre par\cubed, par exemple\cubic\meterou\meter\cubedpour m3 ; - -2 : on fait précéder l'unité par
\rpsquareou suivre par\rpsquared, par exemple\rpsquare\meterou\meter\rpsquaredpour m-2 ; - -3 : on fait précéder l'unité par
\rpcubicou suivre par\rpcubed, par exemple\rpcubic\meterou\meter\rpcubedpour m-3 ; - une puissance quelconque :
\power{unité}{puissance}, par exemple\power{m}{\mathit{n}}pour mn.
- -1 : on fait précéder l'unité par
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
[modifier] Extension sistyle
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 une 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 chiffre par une espace. Elle fournit également une notation simplifiée des puissances de 10, avec e :
1e2donne 1×102- e -0,5donne -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"
[modifier] Réactions nucléaires
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’écire 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 126C) ; le rendu est plus parlant.
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.
[modifier] Notation de Dirac, bra et ket
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,\ketet\braketpour des symboles de taille fixée, - et les commandes
\Bra,\Ketet\Braketpour 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
[modifier] Notes
- ↑ avec l'option
Graylors de l'appel de l'extension - ↑ avec l'option
squarenlors de l'appel de l'extension