« LaTeX/Écrire de la physique » : différence entre les versions

Contenu supprimé Contenu ajouté
→‎Notation de Dirac, bra et ket... : corrections, mise en forme
Ligne 166 :
: <code>\ang{3; 2; 1}</code> donne 3°2'1"
 
== Notation de Dirac, bra et ket... ==
 
Pour la physique quantique, on peut utiliser l'extension <code>braket</code>, qui fournit
* les commandes <code>bra</code>, <code>ket</code> et <code>braket</code> pour des symboles de taille fixée,
* et les commandes <code>Bra</code>, <code>Ket</code> et <code>Braket</code> 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 <code>bra</code> et <code>ket</code>, pour plus de souplesse. MettrePar exemple, on peut mettre dans l'en-tête :
* Il existe le package braket. On utilisera 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 :
<source lang="latex">
<code> \bra{a}, \ket{b}, braket{a|P|b} </code>
\usepackage{xspace}
 
<code>\newcommand{\ket}[1]{\ensuremath{|#1\rangle}\xspace}</code>
* On peut aussi choisir de créer soi-même des commandes bra et ket, pour plus de souplesse. Mettre dans l'en-tête :
<code>\newcommand{\bra}[1]{\ensuremath{\langle #1|}\xspace}</code>
</source>
 
Ainsi, <code>\ket{n_i}</code> donne <math>|n_i\rangle</math>, <code>\bra p</code> donne <math>\langle p|</math> et <code>\bra{u_i} \hat A \ket{u_j}</code> donne <math>\langle u_i| \hat A | u_j \rangle</math>.
<code>\newcommand{\ket}[1]{\ensuremath{|#1\rangle}\xspace}</code>
 
* On peut ensuite créer de nouvelles commandes utilisant maintenant <code>\bra</code> et <code>\ket</code>, par exemple
<code>\newcommand{\bra}[1]{\ensuremath{\langle #1|}\xspace}</code>
<source lang="latex">
<code>\newcommand{\psuiacujuiacuj}{\ensuremath{\bra{u_i}\hat A^\dagger \ket{u_j}}\xspace}</code>
</source>
et donc <code>\uiacuj</code> donne <math>\langle u_i|\hat A^\dagger| u_j \rangle</math>.
* Ou encore, pour rendre cette dernière commande paramétrable :
<source lang="latex">
<code>\newcommand{\elemm}[3]{\ensuremath{\bra#1\hat#2\ket#3}\xspace}</code>
</source>
expar :exemple, <code>\elemm a W b</code> donne <math>\langle a|\hat W | b \rangle</math>, et <code>\elemm {a_n^{(1)}} {H_0} {b_p^{(2)}}</code> donne <math>\langle a_n^{(1)}|\hat H_0 | b_p^{(2)} \rangle</math>.
 
* Pour écrire un produit scalaire, de la même façon :
ex : <code>\ket{n_i}</code> donne <math>|n_i\rangle</math>
<source lang="latex">
 
<code>\newcommand{\psh}[2]{\ensuremath{\langle #1|#2\rangle}\xspace}</code>
ex : <code>\bra p</code> donne <math>\langle p|</math>
</source>
 
exet :donc <code>\bra{u_i}psh a b</code> donne <math>\hatlangle Aa|b\rangle</math>. Ou encore <code>\ketpsh{u_jx-\ell}\varphi</code> qui donne <math>\langle u_i| x-\hat Aell | u_j \varphi\rangle</math>.
 
* On peut créer de nouvelles commandes utilisant maintenant <code>\bra</code> et <code>\ket</code>
 
<code>\newcommand{\psuiacuj}{\ensuremath{\bra{u_i}\hat A^\dagger \ket{u_j}}\xspace}</code>
 
et donc <code>\uiacuj</code> donne <math>\langle u_i|\hat A^\dagger| u_j \rangle</math>
 
* Ou encore, pour rendre cette dernière commande paramétrable
 
<code>\newcommand{\elemm}[3]{\ensuremath{\bra#1\hat#2\ket#3}\xspace}</code>
 
ex : <code>\elemm a W b</code> donne <math>\langle a|\hat W | b \rangle</math>
 
ex : <code>\elemm {a_n^{(1)}} {H_0} {b_p^{(2)}}</code> donne <math>\langle a_n^{(1)}|\hat H_0 | b_p^{(2)} \rangle</math>
 
* Pour écrire un produit scalaire, de la même façon :
 
<code>\newcommand{\psh}[2]{\ensuremath{\langle #1|#2\rangle}\xspace}</code>
 
et donc <code>\psh a b</code> donne <math>\langle a|b\rangle</math>
 
ou encore <code>\psh{x-\ell}\varphi</code> qui donne <math>\langle x-\ell |\varphi\rangle</math>
 
* Un joli exemple, pour le plaisir
En plus des commandes ci-dessus, on peut faire du zèle et créer les commandes suivantes
 
<code>\newcommand{\upp}[1]{\ensuremath{^{(#1)}}\xspace}</code>
 
<code>\newcommand{\sqmod}[1]{\ensuremath{|#1|^2}\xspace}</code>
 
Un joli exemple, pour le plaisir .En plus des commandes ci-dessus, on peut faire du zèle et créer les commandes suivantes
<source lang="latex">
<code>\newcommand{\upp}[1]{\ensuremath{^{(#1)}}\xspace}</code>
<code>\newcommand{\sqmod}[1]{\ensuremath{|#1|^2}\xspace}</code>
</source>
Et alors
<source lang="latex">
 
<code>\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
</codesource>
 
donne
{{début rendu LaTeX}
 
<math>
|n\rangle^{(1)}\sim |n\rangle + \sum_{p\neq n}\frac{|\langle p | \hat W |n \rangle|^2}{E_n^{(0)}-E_p^{(0)}} | p\rangle</math>
{{fin rendu LaTeX}}
 
ce qui, sans les macros, s'écrirait in extenso
<source lang="latex">
 
| n \rangle^{(1)} \sim | n \rangle + \sum_{p\neq n}\frac{| \langle p | \hat W |n \rangle|^2}{E_n^{(0)}-E_p^{(0)}} | p \rangle</code>
<code>
</source>
| n \rangle^{(1)} \sim | n \rangle + \sum_{p\neq n}\frac{| \langle p | \hat W |n \rangle|^2}{E_n^{(0)}-E_p^{(0)}} | p \rangle</code>
 
== Notes ==