20
Écrire des maths avec L A T E X Jean-Jacques Letourneau 22 février 2017 1

Écrire des maths avec LATEX Jean-Jacques …gaborit/latex/...Écrire des maths avec LATEX Jean-Jacques Letourneau 22 février 2017 1 Tabledesmatières 1 Amsmathetlespackagesàutiliser

  • Upload
    others

  • View
    6

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Écrire des maths avec LATEX Jean-Jacques …gaborit/latex/...Écrire des maths avec LATEX Jean-Jacques Letourneau 22 février 2017 1 Tabledesmatières 1 Amsmathetlespackagesàutiliser

Écrire des maths avec LATEX

Jean-Jacques Letourneau

22 février 2017

1

Page 2: Écrire des maths avec LATEX Jean-Jacques …gaborit/latex/...Écrire des maths avec LATEX Jean-Jacques Letourneau 22 février 2017 1 Tabledesmatières 1 Amsmathetlespackagesàutiliser

Table des matières

1 Amsmath et les packages à utiliser 3

2 Le bon réflexe : 3

3 Les formules : 4

4 L’écriture Mathématique (Indices, exposants, fractions, integrales, dots . . .) 5

5 Notations pour les vecteurs et tenseurs : 6

6 Les maths en gras : 7

7 Des « Macros » pour factoriser votre écriture 8

8 Les Délimiteurs 9

9 Les matrices 10

10 Les équations et les alignements 11

11 La numérotation des équations 12

12 La taille des caractères 13

13 Les espaces 14

14 Miscellaneous 15

15 Et matlab2tikz ? 18

2

Page 3: Écrire des maths avec LATEX Jean-Jacques …gaborit/latex/...Écrire des maths avec LATEX Jean-Jacques Letourneau 22 février 2017 1 Tabledesmatières 1 Amsmathetlespackagesàutiliser

1 Amsmath et les packages à utiliser— amsmath est un package de l’American Mathematical Society destiné à produire des maths

avec LATEX. Il permet d’améliorer l’écriture des formules, de disposer d’opérateurs et d’envi-ronnements de présentation d’équations, d’avoir une numérotation automatique d’équations,et plein d’autres choses encore.

— amssymb : une extension contenant plein de symboles supplémentaires et contenant am-sfont qui est une police spécifique avec des caractères supplémentaires pour les maths.

— amsthm : pour ceux qui veulent utiliser l’environnement théorème.

— mathtools : un package plus récent qui contient amsmath et corrige quelques bugs.

Votre préambule contient donc au minimum :

% pour les mathématiques\usepackagemathtools\usepackageamssymb

2 Le bon réflexe :— Consulter la version révisé 2006 du chapitre 8 (les maths) du LATEX companion. Il est libre

de chargement.

— Et surtout ne pas passer à côté d’une recherche sur http://tex.stackexchange.com entriant par vote et/ou date.

— Enfin vous pouvez venir nous voir ou poser une question sur l’alias latex

— Il y a aussi le wikibook sur « Écrire des mathématiques » : https://en.wikibooks.org/wiki/LaTeX/Mathematics

3

Page 4: Écrire des maths avec LATEX Jean-Jacques …gaborit/latex/...Écrire des maths avec LATEX Jean-Jacques Letourneau 22 février 2017 1 Tabledesmatières 1 Amsmathetlespackagesàutiliser

3 Les formules :

On distingue trois cas d’écriture de formule :

— les formules dites « en ligne » qui sont encadrées par des $ :

Ainsi la phrase $E=mc^2$ donne :

Ainsi la phrase E = mc2 donne :

— les formules « centrées » détachées du reste du texte ; Elles commencent par \[ et se terminepar \] (je déconseille leur utilisation).

— et les équations numérotées ou non, faites avec l’environnement equation. Elles peuventcontenir une étiquette (un label) pour s’y référer avec une commande \ref ou \eqref

Le premier principe en système ouvert se présente sousla forme de l’équation \eqrefeq:PPSO suivante :\beginequation \labeleq:PPSO

\fracdUdt +\dotm_s h(T_s,P_s)-\dotm_e h(T_e,P_e) = \dotW_u + \dotQ

\endequation

Le premier principe en système ouvert se présente sous la forme de l’équation (1)suivante :

dU

dt+ msh(Ts, Ps)− meh(Te, Pe) = Wu + Q (1)

4

Page 5: Écrire des maths avec LATEX Jean-Jacques …gaborit/latex/...Écrire des maths avec LATEX Jean-Jacques Letourneau 22 février 2017 1 Tabledesmatières 1 Amsmathetlespackagesàutiliser

4 L’écriture Mathématique (Indices, exposants, fractions,integrales, dots . . .)

Plutôt que de lister exhaustivement tous les symboles et commandes Il faut parcourir la versionrévisé 2006 du chapitre 8 (les maths) du LATEX companion (rappel : Il est libre de chargement).Mais des petits exos peuvent aider au départ :

Les équations des exemples (2), (??) et (??) ont utilisé les commandes et symboles suivants :— \iiint pour l’intégrale triple ;— _ pour la mise en indice ;— \frac pour la fraction ;— ^ pour la mise en exposant ;— \cosh, \theta ;— \partial pour la dérivée partielle.

Ec(t) =y

Ω

12ρv

2dV (2)

cosh θ = eiθ + e−iθ

2 (3)

∂H

∂t= ∂2H

∂x2 (4)

5

Page 6: Écrire des maths avec LATEX Jean-Jacques …gaborit/latex/...Écrire des maths avec LATEX Jean-Jacques Letourneau 22 février 2017 1 Tabledesmatières 1 Amsmathetlespackagesàutiliser

5 Notations pour les vecteurs et tenseurs :

Pour les vecteurs on distingue 2 cas :

— La notation classique :

— cas d’un symbole unique :

\vecx

qui donne ~x

— pour un groupe de lettres :

\overrightarrowAB

qui donne −−→AB.

— La notation standard anglo-saxonne utilisée dans les articles et bouquins où les lettres etsymboles vectoriels sont en gras.

6

Page 7: Écrire des maths avec LATEX Jean-Jacques …gaborit/latex/...Écrire des maths avec LATEX Jean-Jacques Letourneau 22 février 2017 1 Tabledesmatières 1 Amsmathetlespackagesàutiliser

6 Les maths en gras :

Pour mettre des maths en gras :

— dans le cas des lettres latines on peut— soit utiliser

\mathbfX

X,

mais ATTENTION on perd l’italique . . . /

— soit utiliser le package bm , :

\bmX

X

— et dans le cas des symboles— soit on utilise

\boldsymbol\sigma

σ,

— soit on utilise encore le package bm :

\bm\Omega

Ω

Les maths en gras font l’objet d’un gros débat sur http://tex.stackexchange.com/questions/595/how-can-i-get-bold-math-symbols

Mon conseil pour les maths en gras : utiliser le package bm

7

Page 8: Écrire des maths avec LATEX Jean-Jacques …gaborit/latex/...Écrire des maths avec LATEX Jean-Jacques Letourneau 22 février 2017 1 Tabledesmatières 1 Amsmathetlespackagesàutiliser

7 Des « Macros » pour factoriser votre écriture

Les commandes essentielles pour bien réussir une macro :— commencer par : \newcommand

— ne pas mettre de chiffre dans le nom de la commande.

— la commande \ensuremath permet d’utiliser la macro en mode texte sans avoir besoin del’entourer de $

— et la commande \xspace du package du même nom pour mieux gérer les espaces derrièrela macro.

\newcommand\dfsurd[2]\ensuremath\frac\partial#1\partial#2

\newcommand\bF\ensuremath\bmF\xspace\newcommand\bX\ensuremath\bmX\xspace\newcommand\nbR\ensuremath\mathrmI\!R\xspace

Soit \bF la fonction vectorielle de $\nbR^n$ définie par :\begingather*

\bmF = \left(f_1,f_2,\dots,f_n\right) \\\textavec : \qquad\begincases

f_i:&\nbR^n\longrightarrow \nbR \\& \bX=(x_1,x_2,\dots,x_n)\longmapsto f_i(\bX)

\endcases\endgather*Et soit $\bmF_X$ la \textbfmatrice Jacobienne de \bF.$\bmF_X$ est donc défini par :\beginequation*

\labeleq:jacob\bmF_X = \left[\dfsurdf_ix_j(\bX^(k))\right]_i,j

\endequation*

Soit F la fonction vectorielle de IRn définie par :

F = (f1, f2, . . . , fn)

avec :fi : IRn −→ IR

X = (x1, x2, . . . , xn) 7−→ fi(X)

Et soit FX la matrice Jacobienne de F . FX est donc défini par :

FX =[∂fi∂xj

(X(k))]i,j

8

Page 9: Écrire des maths avec LATEX Jean-Jacques …gaborit/latex/...Écrire des maths avec LATEX Jean-Jacques Letourneau 22 février 2017 1 Tabledesmatières 1 Amsmathetlespackagesàutiliser

8 Les Délimiteurs

Les points importants à connaître :

— Les traductions qui permettent de trouver des infos : accolade brace[ crochet bracket( parenthèse parenthesis, parentheses (au pluriel)

— Le dimensionnement automatique avec \left et \right :

\left(\iint\limits_\partial\Sigma\rho\bmv\cdot\bmndS\right)

(x

∂Σ

ρv · ndS

)

— Le dimensionnement manuel :

( \big( \Big( \bigg( \Bigg(

donne (((((

— L’exclusion d’un délimiteur en le remplaçant par «.» :

\left(\sum_\substack0\le i\le m\\ 0<j<n a_ij x_i y_j\right.

donne : ∑0≤i≤m0<j<n

aijxiyj

9

Page 10: Écrire des maths avec LATEX Jean-Jacques …gaborit/latex/...Écrire des maths avec LATEX Jean-Jacques Letourneau 22 février 2017 1 Tabledesmatières 1 Amsmathetlespackagesàutiliser

9 Les matrices

\begingather*\beginmatrix 0 & 1 \\ 1 & 0\endmatrix \quad\beginpmatrix0 &-i \\ i & 0\endpmatrix \quad\beginbmatrix1 & 0 \\ 0 &-1\endbmatrix\\\beginvmatrixa & b \\ c & d\endvmatrix\quad\beginVmatrix1 & 0 \\ 0 & 1\endVmatrix

\endgather*

donne :

0 11 0

(0 −ii 0

) [1 00 −1

]∣∣∣∣a bc d

∣∣∣∣ ∥∥∥∥1 00 1

∥∥∥∥

Là vous pouvez faire : Ooooooohhhh ?

C =

4−1 −1−1 −1

−1 −1 4 0 −1

−1 0 4−1 −1−1 −1

−1 −1 −1 4 0 −1 0 4−1

−1 −1 −1−1 −1 4

(5)

10

Page 11: Écrire des maths avec LATEX Jean-Jacques …gaborit/latex/...Écrire des maths avec LATEX Jean-Jacques Letourneau 22 février 2017 1 Tabledesmatières 1 Amsmathetlespackagesàutiliser

10 Les équations et les alignements

align align* alignement de formules sur UNE positionalignat alignat* alignement de formules sur de multiples positionsequation equation* équation sur une lignegather gather* système d’équationsmultline multline* équation sur plusieurs lignessplit pour découper une équation

Là encore il faut aller voir toute la collection d’exemples sur le chapitre 8 du Latex Companion.

\beginequation\beginsplit

(a+b)^3 &= (a+b) (a+b)^2 \\&= (a+b)(a^2+2ab+b^2) \\&= a^3+3a^2b+3ab^2+b^3 \\

\endsplit\endequation

(a+ b)3 = (a+ b)(a+ b)2

= (a+ b)(a2 + 2ab+ b2)= a3 + 3a2b+ 3ab2 + b3

(6)

11

Page 12: Écrire des maths avec LATEX Jean-Jacques …gaborit/latex/...Écrire des maths avec LATEX Jean-Jacques Letourneau 22 février 2017 1 Tabledesmatières 1 Amsmathetlespackagesàutiliser

11 La numérotation des équations

On peut changer la numérotation automatique des équations. Par exemple dans une thèse on voitsouvent la numérotation générée par les commandes suivantes :

% Mon choix de numérotation des équations :\renewcommand\theequation\thechapter.\arabicequation% pour réinitialiser le conteur à chaque nouveau chapitre :\numberwithinequationchapter

On peut rejeter la numérotation complètement à droite (flush left), comme cela est majoritairementdemandé dans les articles :

\documentclass[a4paper,fleqn,twoside,10pt,final]article

Mais il existe d’autres options comme leqno (default) et reqno

12

Page 13: Écrire des maths avec LATEX Jean-Jacques …gaborit/latex/...Écrire des maths avec LATEX Jean-Jacques Letourneau 22 février 2017 1 Tabledesmatières 1 Amsmathetlespackagesàutiliser

12 La taille des caractères— \displaystyle Taille normale en mode équation— \textstyle Taille normale dans du texte— \scriptstyle Taille des indices et exposants— scriptscriptstyle Taille des indices et exposants de second ordre

\normalsize\[ b^0 + \fraca^1b_1 +\fraca^2b_2 + \fraca^3b_3\]

donne :

b0 + a1

b1 + a2

b2+ a3b3

\normalsize\[ b^0 + \fraca^1\displaystyle b_1 +\fraca^2\displaystyle b_2 + \fraca^3b_3\]

donne :

b0 + a1

b1 + a2

b2 + a3

b3

Comparons $\sqrt\frac1k\log_2 c(f)$et $\displaystyle \sqrt\frac1k\log_2 c(f)$.

Comparons√

1k log2 c(f) et

√1k

log2 c(f).

13

Page 14: Écrire des maths avec LATEX Jean-Jacques …gaborit/latex/...Écrire des maths avec LATEX Jean-Jacques Letourneau 22 février 2017 1 Tabledesmatières 1 Amsmathetlespackagesàutiliser

13 Les espaces

Le mu (math unit) vaut 1/18 em.

Abbréviation Commande Description\quad space equal to the current font size (= 18 mu)\qquad (= 36 mu)

\, \thinspace 3/18 of \quad (= 3 mu)\: \medspace 4/18 of \quad (= 4 mu)\; \thickspace 5/18 of \quad (= 5 mu)\! \negthinspace -3/18 of \quad (= -3 mu)

\negmedspace\negthickspace

space after backslash equivalent of space in normal text

14

Page 15: Écrire des maths avec LATEX Jean-Jacques …gaborit/latex/...Écrire des maths avec LATEX Jean-Jacques Letourneau 22 février 2017 1 Tabledesmatières 1 Amsmathetlespackagesàutiliser

14 Miscellaneous

Le positionnement des « limits »

— sumlimits (default) Place les subscripts et les superscripts des symboles summation au-dessus et en-dessous, dans les formules de taille displaystyle . Affecte aussi les autres symbolesof the same type (

∏. . .) mais pas les integrales (cf intlimits).

— nosumlimits Place les limites à côté et après le symbole (cf nointlimits)

En cas de doute les notations mathématiques françaises font loi ,

Par exemple on utilise leqslant qui donne 6 plutôt que la version machine à écrire : ≤.

Mettre du texte dans les maths

J’avais oublié d’en parler - oups - Il suffit d’utiliser . . . \text

15

Page 16: Écrire des maths avec LATEX Jean-Jacques …gaborit/latex/...Écrire des maths avec LATEX Jean-Jacques Letourneau 22 février 2017 1 Tabledesmatières 1 Amsmathetlespackagesàutiliser

Les unités : le package siunitx

C’est le meilleur package pour les gérer et présenter proprement les unités. Il est maintenu régu-lièrement.

Il y a des options importantes (présentes dans mines-albi-thèse) :

\usepackagesiunitx\sisetup

locale=FR % règles de typo française,detect-all % on prend la font du document,group-digits=integer % le regroupement par 3 chiffres

% n’a lieu qu’en partie gauche,group-minimum-digits=5 % groupe si au moins 5 chiffres,load-configurations=abbreviations % charge abbrév. SI% ,inter-unit-separator=\cdot

Des exemples :

La constante de \textitPlanck est$h=\SI6,62607004e-34\kilo\gram\square\metre\per\second$

donne : La constante de Planck est h = 6,62607004× 10−34 kg m2 s−1

Heureusement il y a les abbréviations pré-incluses dans le package en plus de toutes celles que vouspouvez définir :

$c=\SI299792458\m\per\s$\newcommand\jpmpk\joule\per\mole\per\kelvin$R=\SI8,314\jpmpk$

donne : c = 299 792 458 m s−1 R = 8,314 J mol−1 K−1

Attention, un changement de langue entre le français et l’anglais change automtiquement toutesles virgules décimales en points et réciproquement.

16

Page 17: Écrire des maths avec LATEX Jean-Jacques …gaborit/latex/...Écrire des maths avec LATEX Jean-Jacques Letourneau 22 février 2017 1 Tabledesmatières 1 Amsmathetlespackagesàutiliser

Table 1 – Comportement standard de la colonne type SValeurs2,3456

34,2345−6,783590,473

5642,51,2× 103

Enfin le package fournit la géniale colonne de type S pour l’environnement tabular qui permet,dans son utilisation standard, d’aligner des nombres sur le point/virgule décimal. La résultat ducode suivant est présenté table 14.

\begintable\labeltab:matable\captionComportement standard de la colonne type \textttS\centering\begintabularS\topruleValeurs \\ \midrule

2.3456 \\34.2345 \\-6.7835 \\90.473 \\5642.5 \\1.2e3 \\

\bottomrule\endtabular\endtable

17

Page 18: Écrire des maths avec LATEX Jean-Jacques …gaborit/latex/...Écrire des maths avec LATEX Jean-Jacques Letourneau 22 février 2017 1 Tabledesmatières 1 Amsmathetlespackagesàutiliser

15 Et matlab2tikz ?

Un exemple :

Le code matlab :

clear va r i a b l e sclose a l l

path (path , ’ / App l i ca t i on s /matlab2tikz−matlab2tikz−3a1ee10 / s r c / ’ ) ;

gam=1.4;adeb=0.01;a f i n =100;alpha=logspace ( −2 ,2 ,400) ;

g r i s 1 = [ . 7 . 7 . 7 ] ;g r i s 2 = [ . 5 5 .55 . 5 5 ] ;propname = [ ’ l i n ew id th ’ , ’ l i n e s t y l e ’ , ’ c o l o r ’ ] ;isoT = [ 1 , ’− ’ , [ 0 0 0 ] ] ;adiab = [ 2 , ’− ’ , g r i s 2 ] ;gcaprop = [ ’Xlim ’ , ’Ylim ’ , ’ x s c a l e ’ , ’ f o n t s i z e ’ , ’ fontwe ight ’ ] ;gcade f = [ [ adeb a f i n ] , [ 0 3 ] , ’ l og ’ ,12 , ’ bold ’ ] ;textprop = [ ’ fontname ’ , ’ f o n t s i z e ’ , ’ fontwe ight ’ ] ;t e x td e f = [ ’ He lve t i c a ’ ,12 , ’ normal ’ ] ;l abe lp rop = [ ’ f o n t s i z e ’ , ’ fontwe ight ’ , ’ i n t e r p r e t e r ’ ] ;l a b e l d e f = [16 , ’ normal ’ , ’ l a t e x ’ ] ;

HF = figure ( 1 ) ;set (HF, ’ Units ’ , ’ p i x e l s ’ , ’ Po s i t i on ’ , [ 10 10 850 700 ] )HA = axes ;hold on ;H1 = l ine ( alpha , alpha−log ( alpha )−1);set (H1 , propname , isoT ) ;H2 = l ine ( alpha , ( gam/(gam−1))∗ log ((1+ alpha ∗gam−alpha )/gam)−log ( alpha ) ) ;set (H2 , propname , adiab ) ;l ine ( [ 1 1 ] , [ 0 3 ] , ’ LineWidth ’ , 0 . 5 , ’ Color ’ , g r i s 1 , ’ L ineSty l e ’ , ’− ’ ) ;hold o f fset (HA, gcaprop , gcadef , textprop , t e x td e f ) ;HL1 = legend ( ’ i sotherme ’ , ’ ad iabat ique ’ , 0 ) ;set (HL1 , ’ l o c a t i o n ’ , ’ north ’ , textprop , t e x td e f ) ;xlabel ( ’ $\Delta_iS/nR= f \ l e f t (P_2/P_1\ r i gh t ) $ ’ , . . .

l abe lprop , l a b e l d e f ) ;

mat lab2t ikz ( ’ t e s tmat l ab2 t i k z . tex ’ , ’ width ’ , ’ . 75\ textwidth ’ ) ;

18

Page 19: Écrire des maths avec LATEX Jean-Jacques …gaborit/latex/...Écrire des maths avec LATEX Jean-Jacques Letourneau 22 février 2017 1 Tabledesmatières 1 Amsmathetlespackagesàutiliser

10−2 10−1 100 101 1020

0.5

1

1.5

2

2.5

3

∆iS/nR = f (P2/P1)

isothermeadiabatique

Figure 1 – Variation de la création d’entropie (adimensionnelLe) en fonction du taux de compres-sion pour γ = 1.4

Après pour obtenir la figure 1 il suffit de placer dans le fichier .tex les lignes suivantes :

\beginfigure[tpb]\centering\inputtestmatlab2tikz.tex\captionVariation de la création d’entropie

(adimensionnelLe) en fonction du taux decompression pour $\gamma=1.4$

\labelfig:tm2t\endfigure

19

Page 20: Écrire des maths avec LATEX Jean-Jacques …gaborit/latex/...Écrire des maths avec LATEX Jean-Jacques Letourneau 22 février 2017 1 Tabledesmatières 1 Amsmathetlespackagesàutiliser

Les étapes importantes :1. Récupérer Matlab2tikz sur Mathworks via GitHub ;2. Mettre le chemin vers le répertoire des sources dans votre programme Matlab :

path(path,’/Applications/matlab2tikz-matlab2tikz-3a1ee10/src/’);

3. Mettre la commande d’export de la figure dans le code matlab :

matlab2tikz(’testmatlab2tikz.tex’,’width’,’\textwidth’);

4. Placer la commande de chargement de pgfplots dans le fichier .tex :

\usepackagepgfplots\pgfplotssetcompat=1.13

5. il n’y a plus qu’à insérer le chargement du .tex générer par le code matlab2tikz :

\inputtestmatlab2tikz.tex

20