On suppose que si vous vous retrouvez ici, vous êtes conquis par la nécessité d’éditer vos documents avec LaTeX et nous ne discuterons donc pas ce choix puisque nous le partageons. De même, il n’est point question ici de distribution (TeXlive, off course!) ou d’installation sur votre machine. Ici, on rappelle le principe de base de l’édition de documents en LaTeX, puis on présente par l’exemple, quelques éléments pratiques pour débuter. Évidemment, rien ne saurait remplacer les documentations officielles ni celles des différents paquets, mais on donne ici l’idée d’aller les consulter. Outre un certain ennui, les moins débutants pourraient trouver, au fil du texte, quelques astuces.
Contrairement aux logiciels WYSIWYG, LaTeX est un langage compilé qui, à partir d’un simple fichier texte auquel on donne l’extension .tex
, permet de produire des documents postscript (PS) ou PDF. L’usage de pdflatex
tant à se généraliser et sera le seul présenté ici.
Comme toute approche moderne d’édition et de typographie, le fond et la forme sont dissociés, c’est-à-dire que la rédaction du texte se fait sur un fichier texte qui ne ressemble pas au fichier produit par compilation. Le choix de la mise en forme se fait avec des balises, le symbole distinguant une commande TeX ou LaTeX étant le backslash « \
».
Un fichier LaTeX est globalement constitué de :
un préambule dans lequel est spécifié le type de document produit et différentes options de mise en forme ;
le corps du texte encadré par deux balises
\begin{document}
...\end{document}
Il existe en LaTeX dix caractères spéciaux :
\ |
début de commande (caractère d’échappement) |
% |
début de commentaire |
$ |
mode mathématique |
& |
alignement de tableau |
# |
paramètre de macro |
^ |
exposant (mode math) |
_ |
indice (mode math) |
{...} |
groupe |
~ |
espace insécable |
À partir de ce point, quelques trucs qu’il est indispensable de connaître :
\par
;de document
\documentclass[a4paper,10pt,twoside]{article}
Il existe une multitude de classes LaTeX. Les classes standard sont article
, report
et book
. Les options de la classe choisie sont précisées entre crochets et peuvent être parmi les suivantes :
Format de papier | a4paper , a3paper , a5paper |
Attention US letter par défaut! | |
Taille du texte | 10pt , 11pt ou 12pt |
Page de titre | titlepage (notitlepage par défaut) |
Recto-verso | twoside (oneside par défaut) |
Numéro d’équation | leqno (reqno à droite par défaut) |
Brouillon (ou pas) | draft (ou final ) |
du fichier TeX
\usepackage[utf8]{inputenc}
permet de gérer les accents dans le fichier source. Merci de toujours utiliser l’UTF-8 !
en respectant les règles de typographie
\usepackage[french]{babel} % french ou francais sont équivalents
et donc respecter les espaces :
espace avant | signe | espace après |
non | . (final) | justifiante |
non | . (abréviatif) | justifiante |
non | , | justifiante |
insécable | : | justifiante |
fine insécable | ; | justifiante |
fine insécable | ! | justifiante |
fine insécable | ? | justifiante |
justifiante | « | insécable |
insécable | » | justifiante |
justifiante | (, [ ou { | non |
non | ), ] ou } | justifiante |
justifiante | — (ouvre une incise) | insécable |
insécable | — (ferme une incise) | justifiante |
En LaTeX, une espace (n.f.) insécable s’écrit ~
, par exemple :
D'après l'équation~(4), 120~manifestants ont trouvé le numéro\bsc{Michu}. de téléphone (01~02~03~04~05) de Mme~
Le paquet babel
arrive avec quelques commandes comme :
Petites capitales | \bsc{Exemple} |
|
Guillemets | \og , \fg{} |
, |
Exposant | \up{2} , 1\ier{} , 2\ieme{} |
, , |
1\iers{} , 1\ieres{} , 2\iemes{} |
, , | |
Numéro | \no , \No , \nos , \Nos |
, , , |
Énumération | \primo , \secundo , \tertio , \quarto |
, , , |
\FrenchEnumerate{8} |
||
Caractère degrés | 40\degres{}C |
En chargeant le paquet numprint
après le paquet babel
, il vient une commande \nombre
qui permet de formatter correctement les nombres, avec les décimales collées à la virgule et les milliers séparés d’une fine insécable ; par exemple :
\usepackage[autolanguage]{numprint}
\nombre{123456,78}
qui donne :
et microtypographie
\usepackage[T1]{fontenc} % format de polices du PDF
\usepackage{textcomp} % caractères additionnels
\usepackage{lmodern} % polices de caractères
\usepackage[babel,final]{microtype} % gestion microtypographique
\DeclareMicrotypeAlias{lmr}{cmr} % \- adaptée au lmodern
Il existe une multitude de polices de caractères utilisables mais toutes n’ont pas un support mathématique complet. À l’usage le jeu Latin Modern est celui dont on se lasse le moins.
Voir The LaTeX Font Catalogue pour une liste exhaustive des polices utilisables ou le guide des polices mathématiques libres (de 2006, en anglais). On donne dans la section polices de caractères quelques exemples.
Écriture inclusive avec le point médian ⋅
\usepackage{newunicodechar}
\newunicodechar{⋅}{\makebox[0.27em]{\ensuremath{{\cdot}}}}
Définir des chemins de recherches des paquets (en dehors de votre distribution ou du dossier courant) :
\makeatletter\def\input@path{{../path1/},{path2/}}\makeatother
On spécifie en général
Titre | \title{} |
Auteur | \author{} |
Date | \date{} |
On peut ensuite décomposer un document en
Partie | \part{nom de la partie} |
Chapitre | \chapter{nom du chapitre} |
Section | \section{nom de la section} |
Sous-section | \subsection{nom de la sous section} |
\subsubsection{nom de la sous sous section} |
|
Paragraphe | \paragraph{nom du paragraphe} |
\subparagraph{nom du sous paragraphe} |
Au sein d’une partie, la commande \appendix
transformes les chapitres suivants en appendices.
Un document minimal ressemble donc à
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\begin{document}
\title{Le titre}
\author{l'auteur}
\date{la date ou \today}
\maketitle
\tableofcontents
\section{Première section}
\subsection{Sous-section 1}
\subsection{Sous-section 2}
\section{Seconde section}
\end{document}
Pour afficher une table des matières, il suffit de placer
\tableofcontents
à l’endroit souhaité.
Gérer le nombre de niveaux à afficher dans la table des matières
\setcounter{tocdepth}{2}
Par défaut les sections sont numérotées.
Gérer la profondeur de numérotation
\setcounter{secnumdepth}{3}
Avoir une section non numérotée
\section*{Introduction}
il suffit de rajouter une étoile avant le nom de la section.
Attention, cette section ne sera pas affichée dans la table des matières.
Ajouter une section non numérotée à la table des matières
\phantomsection
\addcontentsline{toc}{section}{Nom de section}
\section*{Nom de section}
où le \phantomsection
permet de gérer correctement la place du lien hypertexte dans le fichier PDF avec le paquet hyperref
.
Il est aussi possible d’utiliser le paquet unnumberedtotoc
avec la commande
\addsec{Nom de section}
Modifier le nom d’une section à afficher dans la table des matières
\section[Nom dans la TOC]{Nmm de la section dans le document}
La mise en forme du texte peut être faite :
avec une commande qui prend le texte en argument, par exemple :
\textit{en italique \textbf{puis gras}}
Du texte normal et de nouveau normal.
avec un switch dans un groupe délimité par deux accolades ou entre les balises \bgroup
et \egroup
, par exemple :
\itshape en italique \bfseries puis gras}
Du texte normal { et de nouveau normal.
ou
\bgroup\itshape en italique
Du texte normal \bfseries puis gras\egroup{} et de nouveau normal.
le jeu d’accolade en fin de egroup
permet de conserver l’espace avant le mot « et » ;
avec un environnement délimité par deux balises begin
et end
qui prennent le nom de l’environnement en argument, par exemple :
\begin{it}en italique\end{it}
Du texte normal \begin{bf}puis gras\end{bf} et de nouveau normal.
La taille de base du texte est fixée avec une option de \documentclass
. Les valeurs possibles sont 10pt
(valeur par défaut), 11pt
ou 12pt
. Les commandes permettant de spécifier la taille du texte sont :
\tiny |
minuscule |
\scriptsize |
très petit |
\footnotesize |
assez petit |
\small |
petit |
\normalsize |
normal |
\large |
grand |
\Large |
plus grand |
\LARGE |
très grand |
\huge |
énorme |
\Huge |
géant |
soit, comparativement :
Une autre solution pour modifier la taille de la police est de passer par la commande \fontsize
qui prend deux paramètres qui sont la taille du texte en points et l’espace interligne (environ 120 % de la taille) ; par exemple :
\fontsize{30}{36}\selectfont Un texte en 30 points !
On peut modifier trois éléments de la police du texte : la famille, la forme et la graisse. Il y a :
trois familles
commande | switch | environnement | |
---|---|---|---|
romain | \textrm{} |
\rmfamily ou \rm |
rm |
sans-sérif | \textsf{} |
\sffamily ou \sf |
sf |
typewriter | \texttt{} |
\ttfamily ou \tt |
tt |
quatre formes
commande | switch | environnement | |
---|---|---|---|
droit | \textup{} |
\upshape ou \up |
up |
italique | \textit{} |
\itshape ou \it |
it |
incliné | \textsl{} |
\slshape ou \sl |
sl |
petites majuscules | \textsc{} |
\scshape ou \sc |
sc |
même si l’on peut passer du texte en majuscuscule avec la commande \uppercase
.
deux graisses
commande | switch | environnement | |
---|---|---|---|
moyen | (non) | \mdseries |
(non) |
gras | \textbf{} |
\bfseries ou \bf |
bf |
Le switch \normalfont
permet de remettre le style par défaut (romain, droit, graisse moyenne). Sa commande associée est \textnormal
.
On peut également mettre en valeur du texte
commande | switch | environnement | |
---|---|---|---|
emphasé | \emph{} |
\em |
em |
souligné | \underline{} |
(non) | (non) |
\uline
du package ulem
. Attention, ce paquet modifie la commande \emph
en soulignant le texte et il faut utiliser la commande \normalem
.Les principaux environnements sont :
center |
texte centré |
flushleft |
texte aligné à gauche |
flushright |
texte aligné à droite |
quotation |
citation avec marges à gauche et à droite |
quote |
idem à quotation sans indentation des paragraphes |
verse |
citer des vers de poésie |
verbatim |
citer du code informatique |
Aligner du texte à gauche
\begin{flushleft}
Texte aligné à gauche\end{flushleft}
ou avec le switch
\raggedright Aligné à gauche
Centrer du texte
\begin{center}
Texte centré\end{center}
ou avec le switch
\centering Centré
Aligner du texte à droite
\begin{flushright}
Texte aligné à droite\end{flushright}
ou avec le switch
\raggedleft Aligné à droite
Forcer un retour à la ligne
\newline Une nouvelle ligne ...du texte
ou, en mode normal :
\\Une nouvelle ligne ...du texte
Avec le paquet babel
pour le français, l’indentation d’un nouveau paragraphe est automatique. Elle est fixée à
\parindent 1.5em
Forcer l’indentation du texte
\indent Du texte\dots
Supprimer l’indentation
\noindent Du texte\dots
Pour avoir un texte sur plusieurs colonnes, il suffit d’utiliser l’environnement multicols
du paquet multicol
. Il prend en argument le nombre de colonnes désirées. En option, on peut préciser un texte qui s’étendra sur toutes les colonnes.
\usepackage{multicol}
\setlength{\columnsep}{7mm} % espace entre colonnes
\setlength{\columnseprule}{1pt} % épaisseur du trait de séparation
\begin{multicols}{3}
Ce texte s'étend sur trois colonnes...\end{multicols}
Pour forcer un saut de colonne, il suffit d’utiliser la commande \columnbreak
.
Commencer un nouveau paragraphe
... une fin de paragraphe.
Un nouveau paragraphe...
ou
\par
... une fin de paragraphe. Un nouveau paragraphe...
que je trouve peu clair…
\hspace{dim} |
espace de largeur dim |
\hfill |
espace élastique |
Après un saut de ligne forcé (en mode horizontal), il faut utiliser
\hspace*{dim} |
espace de largeur dim |
\hspace*{\fill} |
espace élastique |
Motifs de remplissage élastiques :
\hrulefill % avec un trait plein
\dotfill % avec des points
Définir une boite élastique à gauche
\llap{contenu à surpasser par la droite}
ou à droite
\rlap{contenu à surpasser par la gauche}
\vspace{dim} |
espace de hauteur dim |
\vfill |
espace élastique |
Hauteur d’une ligne de texte
\baselineskip
Spécifier un saut de ligne
fin de ligne.
\medskip
Début d'un nouveau paragraphe
ou sans indentation
\\[\baselineskip]
fin de ligne.
Début d'un nouveau paragraphe
LaTeX | rendu |
---|---|
\& |
|
\% |
|
\# |
|
\$ |
|
- |
|
-- |
|
--- |
|
\dots |
|
\backslash |
|
\_ |
|
\{ , \} |
, |
\P |
|
\S |
|
\copyright |
|
\dag |
|
\ddag |
|
\ae |
|
\AE |
|
\oe |
|
\OE |
|
\o |
|
\O |
|
\ss |
|
?` |
|
!` |
liste à puces
\begin{itemize}
\item Premier
\item Second
\item Troisième
\end{itemize}
qui donne :
Pour les listes à puces, on distingue trois niveaux de puces :
niveau 1 | \labelitemi |
niveau 2 | \labelitemii |
niveau 3 | \labelitemiii |
que l’on peut redéfinir localement, par exemple :
\begin{itemize}
\renewcommand{\labelitemi}{\textbullet}
\item Premier
\item Second
\item Troisième
\end{itemize}
qui donne :
liste numérotée
\begin{enumerate}
\item Premier
\item Second
\item Troisième
\end{enumerate}
qui donne :
Pour les listes numérotées, on distingue trois niveaux :
niveau 1 | \enumi |
niveau 2 | \enumii |
niveau 3 | \enumiii |
que l’on peut redéfinir localement, par exemple :
\renewcommand{\theenumi}{\alph{enumi}}
\renewcommand{\theenumii}{\roman{enumii}}
\begin{enumerate}
\item Premier
\begin{enumerate}
\item Premier
\item Second
\item Troisième
\end{enumerate}
\item Second
\item Troisième
\end{enumerate}
qui donne :
On peut aussi définir des choses plus avancées comme :
\begin{enumerate}
\renewcommand{\labelenumi}{\qquad\textbf{Partie \arabic{enumi} --}}
\itemindent4em\itemsep-2pt\parsep0pt
\item Étude de tel truc ;
\item Étude de l'autre.
\end{enumerate}
qui donne :
Voir la section Compteurs pour la définition et les mise en forme des compteurs.
liste de définitions
\begin{description}
\item[Premier] C'est le premier ;
\item[Second] idem
\item[Troisième]
\end{description}
qui donne :
\begin{tabular}[pos]{cols}
& colonne 2 ... & colonne n
colonne 1
...
\end{tabular}
ou
\begin{tabular*}{width}[pos]{cols}
& colonne 2 ... & colonne n
colonne 1
...
\end{tabular*}
\begin{center}\renewcommand{\arraystretch}{1.5}
\begin{tabular}{
\linewidth}<{\centering}|
|m{.2\linewidth}<{\centering}|
|m{.2
}& B
A \tabularnewline\hline\hline
& b
a \tabularnewline\hline
& ...
... \end{tabular}
Espacement des lignes
\renewcommand{\arraystretch}{2}
\begin{center}
\begin{tabular}{c|c|c|c|c|c|c|c|>{\cellcolor{gray!20}}c|}
\multicolumn{8}{c}{}&\multicolumn{1}{r}{LRC} \\
\hhline{~--------}
\multicolumn{1}{c|}{}&0&1&1&1&1&0&0& 0 \\
\hhline{~--------}
\multicolumn{1}{c|}{}&1&1&1&1&1&1&1&1 \\
\hhline{~--------}
\multicolumn{1}{c|}{}&1&0&0&0&0&1&1 &1\\
\hhline{~--------}
\multicolumn{1}{c|}{}&1&1&0&0&0&0&0 &0\\
\hhline{~--------}
\multicolumn{1}{c|}{}&0&0&0&0&0&1&1 &0\\
\hhline{~--------}
\multicolumn{1}{c|}{}&1&1&0&1&1&0&1 &1\\
\hhline{~--------}
\multicolumn{1}{c|}{}&0&1&1&1&1&1&1 &0\\
\hhline{~--------}
\hhline{~--------}
\multicolumn{1}{c|}{VRC}
&\cellcolor{gray!20}0
&\cellcolor{gray!20}1
&\cellcolor{gray!20}1
&\cellcolor{gray!20}0
&\cellcolor{gray!20}0
&\cellcolor{gray!20}0
&\cellcolor{gray!20}1
&1
\\
\cline{2-9}
\end{tabular}
\end{center}
\mbox{...} |
boite simple |
\makebox[larg][pos]{...} |
boite |
\parbox{larg}{...} |
boite en mode paragraphe |
\usepackage{graphics}
\scalebox{fact}{...} |
change l’échelle |
\resizebox{larg}{haut}{...} |
change la taille (proportionnel si ! ) |
\rotatebox{angle}{...} |
tourne (angle en °) |
Ajuster un objet
\resizebox{\largeur}{!}{\objet}
par exemple
\resizebox{8cm}{!}{Texte ajusté à 8~cm !}
L’environnement minipage
est similaire à la commande \parbox
.
\begin{minipage}[position]{width}
... text\end{minipage}
Il est possible d’écrire des mathématiques selon trois modes :
dans le texte, entre 2 balises $ ... $
ou \( ... \)
; par exemple :
$2x+3$
entre deux lignes de texte sous forme d’expression centrée, entre 2 balises \[ ... \]
; par exemple :
\[2x+3\]
Évitez d’utiliser le double dollars $$ ... $$
car c’est une commande qui ne correspond pas à un environnement et puis c’est plus commode de pas avoir le même symbole ouvrant et fermant.
ou dans un environnement, par exemple :
\begin{displaymath}
\sqrt{\frac{1+\sqrt[3]{3x+1}}{3x+\frac{1-x}{1+x}}}
\end{displaymath}
Ainsi, on retiendra :
Syntaxe | Contexte |
---|---|
$ ... $ \( ... \) \begin{math} ... \end{math} |
Expression mathématique intégrée à un paragraphe |
\[ ... \] \begin{displaymath} ... \end{displaymath} |
Expression mathématique isolée du texte |
\begin{equation} ... end{equation} |
Équation numérotée en mode \displaymath |
Pour écrire des expressions mathématiques de façon plus efficace, on chargera les paquets :
\usepackage{amsmath, amsfonts, amssymb}
tout en sachant que le paquet amsfonts
est chargé automatiquement par le paquet amssymb
.
Documentation du paquet amsmath
LaTeX | rendu |
---|---|
{...} |
|
\mathnormal{...} |
|
\mathrm{...} |
|
\mathbf{...} |
|
\mathsf{...} |
|
\mathit{...} |
|
\mathtt{...} |
Lettres de type blackboard (bb
) pour définir les corps ou ensembles (du paquet amsfonts
) :
\mathbb{A}
, \mathbb{B}
, … \mathbb{Z}
, , , , , , , , , , , , , , , , , , , , , , , , ,
Lettres en gras
\mathbf{A}
, \mathbf{B}
, … \mathbf{Z}
, , , , , , , , , , , , , , , , , , , , , , , , ,
\mathbf{a}
, \mathbf{b}
, … \mathbf{z}
, , , , , , , , , , , , , , , , , , , , , , , , ,
Lettres calligraphiées
\mathcal{A}
, \mathcal{B}
, … \mathcal{Z}
, , , , , , , , , , , , , , , , , , , , , , , , ,
ou avec le paquet mathrsfs
:
\mathscr{A}
, \mathscr{B}
, … \mathscr{Z}
, , , , , , , , , , , , , , , , , , , , , , , , ,
Lettres gothiques (du paquet amsfonts
) :
\mathfrak{A}
, \mathfrak{B}
, … \mathfrak{Z}
, , , , , , , , , , , , , , , , , , , , , , , , ,
\mathfrak{a}
, \mathfrak{b}
, … \mathfrak{z}
, , , , , , , , , , , , , , , , , , , , , , , , ,
Nom | Minuscule | Majuscule |
---|---|---|
alpha | \alpha |
A |
beta | \beta |
B |
gamma | \gamma |
\Gamma |
delta | \delta |
\Delta |
epsilon | \epsilon , \varepsilon |
E |
zêta | \zeta |
Z |
êta | \eta |
H |
thêta | \theta , \vartheta |
\Theta |
iota | \iota |
I |
kappa | \kappa |
K |
lambda | \lambda |
\Lambda |
mu | \mu |
M |
nu | \nu |
N |
ksi | \xi |
\Xi |
omicron | o |
O |
pi | \pi , \varpi |
\Pi |
rhô | \rho , \varrho |
P |
sigma | \sigma , \varsigma |
\Sigma |
tau | \tau |
T |
upsilon | \upsilon |
Y |
phi | \phi , \varphi |
\Phi |
khi | \chi |
X |
psi | \psi |
\Psi |
oméga | \omega |
\Omega |
LaTeX | rendu |
---|---|
\forall |
|
\in |
|
\ni |
|
\notin |
|
\emptyset |
|
\cup |
|
\cap |
|
\subset |
|
\subseteq |
|
\supset |
|
\supseteq |
|
\exists |
|
\exists! |
|
\infty |
|
\varnothing |
|
\neq |
|
\equiv |
|
\propto |
|
\asymp |
|
\sim |
|
\simeq |
|
\cong |
|
\approx |
|
\approxeq |
|
\neg |
|
\complement |
|
\partial |
|
\nabla |
|
\surd |
|
\ell |
|
\aleph |
|
\beth |
|
\gimel |
|
\daleth |
|
\wp |
|
\square |
|
\blacksquare |
|
\triangle |
LaTeX | rendu |
---|---|
+ |
|
- |
|
\times |
|
\div |
|
\cdot |
|
\wedge |
|
\vee |
|
\pm |
|
\mp |
|
\ast |
|
\star |
|
\circ |
|
\cup |
|
\cap |
|
\sqcup |
|
\sqcap |
|
\oplus |
|
\otimes |
|
\rtimes |
|
\ltimes |
|
\bot |
|
\top |
|
\parallel |
|
\perp |
LaTeX | rendu |
---|---|
x=y |
|
x\neq y |
|
x<y , x\le y |
|
x>y , x\ge y |
|
x\leq y |
|
x\geq y |
|
x\ll y |
|
x\gg y |
Préférez les commandes \leqslant
et \geqslant
du package amssymb
pour les symboles inférieur ou égal et supérieur ou égal, plus jolis.
LaTeX | rendu |
---|---|
x\leqslant y |
|
x\geqslant y |
On peut aussi forcer leur utilisation avec
\usepackage{amssymb}
\let\leq\leqslant
\let\geq\geqslant
On peut insérer des opérateurs de taille variable, pouvant prendre une valeur en indice et en exposant.
LaTeX | rendu |
---|---|
\sum |
|
\prod |
|
\coprod |
|
\int |
|
\iint |
|
\iiint |
|
\idotsint |
|
\oint |
|
\bigcap |
|
\bigcup |
|
\bigsqcup |
|
\bigwedge |
|
\bigvee |
|
\bigoplus |
|
\bigotimes |
\[
\sum_{k=0}^{n} k = \dfrac{n(n+1)}{2}\ ,
\qquad
\int_1^2 x\;\mathrm{d}x=\dfrac{3}{2}\ ,
\qquad
\int\limits_1^2 x\;\mathrm{d}x=\dfrac{3}{2}\ ,
\qquad
\sum_{\substack{0<i<m \\ 0<j<n}} P(i,j)
\]
donne :
où, avec \limits
, les valeurs sont positionnées au-dessus et en dessous du symbole d’intégrale alors qu’avec \nolimits
(comportement par défaut), ces dernières sont placées à côté du symbole. La commande \substack
permet de superposer les arguments en indice.
Il existe toute une série de délimiteurs que l’on peut utiliser avec les commandes \left
et \right
afin qu’ils s’adaptent automatiquement à leur contenu :
LaTeX | rendu |
---|---|
( ... ) |
|
[ ... ] |
|
\{ ... \} |
|
\langle ... \rangle |
|
\lfloor ... \rfloor |
|
\lceil ... \rceil |
|
| , \vert |
|
\| , \Vert |
On peut fixer la taille des délimiteurs en utilisant les commandes \big
, \Big
, \bigg
et \Bigg
; par exemple :
\[
\Bigg(\bigg(\Big(\big(\cdots\big)\Big)\bigg)\Bigg)
\]
donne :
Si l’on veut scinder une paire de délimiteurs sur deux lignes, il faut utiliser un délimiteur fantôme sous la forme de \left.
ou \right.
, par exemple :
\begin{align*}
y = 1 + & \left(\frac{1}{x}+\frac{1}{x^2}+\frac{1}{x^3}+\ldots \right.\\
& \quad \left. + \frac{1}{x^{n-1}} + \frac{1}{x^n} \right)
\end{align*}
LaTeX | rendu |
---|---|
\rightarrow |
|
\leftarrow |
|
\leftrightarrow |
|
\Rightarrow |
|
\Leftarrow |
|
\Leftrightarrow |
|
\longrightarrow |
|
\longleftarrow |
|
\longleftrightarrow |
|
\Longrightarrow |
|
\Longleftarrow |
|
\Longleftrightarrow |
|
\downarrow |
|
\uparrow |
|
\updownarrow |
|
\Downarrow |
|
\Uparrow |
|
\Updownarrow |
|
\nearrow |
|
\searrow |
|
\nwarrow |
|
\swarrow |
|
\mapsto |
|
\longmapsto |
|
\leadsto |
|
\rightharpoonup |
|
\rightharpoondown |
|
\leftharpoonup |
|
\leftharpoondown |
|
\rightleftharpoons |
Pour obtenir des flèches barrées, il suffit d’utiliser la commande \not
devant le symbole de la flèche ou directement les commandes du package amssymb
:
LaTeX | rendu |
---|---|
\nrightarrow |
|
\nleftarrow |
|
\nleftrightarrow |
|
\nRightarrow |
|
\nLeftarrow |
|
\nLeftrightarrow |
Afin de simplifier l’édition, de nombreux symboles peuvent être obtenus avec plusieurs commandes.
commande | rendu | équivalente à |
---|---|---|
\to |
\rightarrow |
|
\gets |
\leftarrow |
|
\iff |
\;\Longleftrightarrow\; |
|
\implies |
\;\Longrightarrow\; |
LaTeX | rendu |
---|---|
x_y |
|
x^y |
|
\fraq{x}{y} |
|
\sqrt{x} |
|
\sqrt[n]{x} |
|
\binom{n}{k} |
|
\overrightarrow{abc} |
|
\overleftarrow{abc} |
|
\overleftrightarrow{abc} |
|
\underrightarrow{abc} |
|
\underleftarrow{abc} |
|
\underleftrightarrow{abc} |
|
\overline{abc} |
|
\underline{abc} |
|
\widehat{abc} |
|
\widetilde{abc} |
|
\overbrace{abc}^{xy} |
|
\underbrace{abc}_{xy} |
|
\overbracket{abc}^{xy} |
|
\underbracket{abc}_{xy} |
|
\underset{xy}{abc} |
|
\overset{xy}{abc} |
|
\stackrel{xy}{abc} |
vecteurs i et j où la flèche se substitue au point
$\overrightarrow{\imath}, \overrightarrow{\jmath}$
qui donne :
bipoints, il faut écrire
$\overrightarrow{AB\,\,}$
au lieu de
$\overrightarrow{AB}$
à définir en
\newcommand\bipoint[1]{\overrightarrow{#1\,\,}}
tel que :
\[
\bipoint{AB} \quad\text{vs. }\quad \overrightarrow{AB}
\]
donne :
\xrightarrow{f}
donne et \xrightarrow[dessous]{dessus}
donne .
LaTeX | rendu |
---|---|
\cos |
|
\sin |
|
\tan |
|
\cot |
|
\exp |
|
\ln |
|
\log |
|
\lim |
|
\liminf |
|
\limsup |
|
\min |
|
\max |
|
\arg |
|
\dim |
|
\ker |
|
\gcd |
|
\Pr |
|
\det |
|
\hom |
|
\csc |
|
\lg |
On peut utiliser ces fonctions avec \limits
et \nolimits
:
\[
\lim_{x\to+\infty} \frac{1}{x}\ ,
\quad
\lim\nolimits_{x\to+\infty} \frac{1}{x}\ ,
\quad
\max_{x\in[0,5]} x^2\ ,
\quad
\sup_{x \in \mathbb{R}}f(x)
\]
qui donne :
Définir de nouveaux opérateurs
\DeclareMathOperator{\atan}{Arctan}
\DeclareMathOperator{\asin}{Arcsin}
\DeclareMathOperator{\acos}{Arccos}
Définir une nouvelle macro
\newcommand{\norme}[1]{\left\Vert #1\right\Vert}
commande | raccourci | rendu |
---|---|---|
\negthinspace |
\! |
|
\thinspace |
\, |
|
\medspace |
\: |
|
\thickspace |
\; |
|
\ |
||
\quad |
||
\qquad |
Numéroter une équation
\begin{equation}
2x^2+3x+4=0
\end{equation}
ou pas
\begin{equation*}
2x^2+3x+4=0
\end{equation*}
Référencer une équation
\begin{equation}\label{eq:truc}
2x^2+3x+4=0
\end{equation}
\eqref{eq:truc}, Super équation~
Tagger une équation (fixer le nom de la référence)
\begin{equation}\label{eq:truc2}
2x^2+3x+4=0\tag{boom!}
\end{equation}
\eqref{eq:truc2}, Super équation~
qui donne :
Écrire un système d’équations
\[
\begin{cases}
a+b=c\\
a-c=d
\end{cases}
\]
Aligner une série d’équations
\begin{align}
f(x) & = (a+b)^2 \\
& = a^2+2ab+b^2
\end{align}
Par défaut chaque ligne d’équation est numérotée. Pour ne pas les numéroter, il suffit d’utiliser l’environnement align*
.
Afficher sur plusieurs lignes une équation
\begin{multline}
p(x) = 3x^6 + 14x^5y + 590x^4y^2 + 19x^3y^3\\
- 12x^2y^4 - 12xy^5 + 2y^6 - a^3b^3
\end{multline}
Il faut utiliser l’environnement multline*
pour s’affranchir du numéro.
Aligner avec un seul numéro
\begin{equation}
\begin{split}
f(x) & = (a+b)^2 \\
& = a^2+2ab+b^2
\end{split}
\end{equation}
Grouper et centrer plusieurs équations
\begin{gather*}
2x - 5y = 8 \\
3x^2 + 9y = 3a + c
\end{gather*}
Rayer des éléments dans les équations
\usepackage{cancel}
\cancel{}
Les environnements les plus utiles pour écrire des matrices sont :
pmatrix
pour l’encadrer avec des parenthèses ;bmatrix
pour l’encadrer avec des crochets ;vmatrix
pour l’encadrer avec des barres (déterminant) ;Vmatrix
pour l’encadrer avec des doubles barres (norme).Par exemple :
\[
\begin{pmatrix}
a_{1,1} & a_{1,2} & \cdots & a_{1,n} \\
a_{2,1} & a_{2,2} & \cdots & a_{2,n} \\
\vdots & \vdots & \ddots & \vdots \\
a_{m,1} & a_{m,2} & \cdots & a_{m,n}
\end{pmatrix}\ ,
\qquad
\begin{bmatrix}
a_{11} & a_{12} & a_{13}\\
a_{21} & a_{22} & a_{23}
\end{bmatrix}\ ,
\qquad
\begin{vmatrix}
a_{11} & a_{12} & a_{13} \\
a_{21} & a_{22} & a_{23} \\
a_{31} & a_{32} & a_{33} \\
\end{vmatrix}
\]
donne :
Définir un nouvel environnement
\usepackage{amsthm}
\newtheoremstyle{theorem}% nom
% espace précédent
{10pt}% espace suivant
{10pt}\itshape}% police du corps
{% indentation
{0pt}\bfseries}% police d'en-tête
{\\*}% poncutation de fin d'en-tête
{~% espace après en-tête
{1ex}\thmname{#1}\thmnumber{ #2}\thmnote{~(\textbf{#3})}}% format d'en-tête
{\theoremstyle{theorem}
\newtheorem{theorem}{Théorème}[section]
Inclure un fichier
\input{fichier.tex}
ou avec un saut de page avant
\include{fichier.tex}
La fonction \include{fichier}
génère pour chaque fichier un fichier fichier.aux
contenant les compteurs et références. Combinée avec la fonction \includeonly{fichier1, fichier2, ...}
dans l’en-tête, elle permet de limiter la durée de (re-)compilation du document, utile si on travaille sur un chapitre.
\usepackage{graphicx}
Insérer une image
\includegraphics[width=2cm]{file}
avec les options :
width |
pour fixer la largeur |
height |
pour fixer la hauteur |
angle |
pour tourner l’image (angle en °) |
scale |
pour changer d’échelle |
Spécifier le répertoire des images
\graphicspath{{img/}}
Inclure un fichier PDF
\usepackage{pdfpages}
\includepdf[options]{fichier.pdf}
Inclure un fichier PDF avec référence
\makeatletter
% \includepdfref{options}{label}{doc.pdf}
% example: \includepdfref{fitpaper,scale=.9}{putty}{putty.pdf}
\newcounter{ipp}
\newcommand\includepdfref[3]{
\includepdf[#1,link,linkname=#2,%
\refstepcounter{ipp}\label{#2}}]{#3}%
pagecommand={
}% toc a pdf
% example: \docannexe{Connexion à la pyboard avec PuTTY}{putty}
\newcommand\docannexe[2]{%
\hyperlink{#2.1}{#1}\dotfill\pageref{#2}%
}\makeatother
TikZ est un paquet pour LaTeX permettant d’inclure des figures au format PDF en restant dans l’environnement LaTeX. Pour l’utiliser, il faut :
\usepackage{tikz,pgf,pgfcore,pgfplots}
\usepgflibrary{arrows}
\usetikzlibrary{calc,automata,er,fadings,decorations,shadows,shapes,%
%
topaths,positioning,matrix,patterns,intersections,% pour préserver les caractères actifs
babel, }
puis
\begin{figure}[!h]\centering
\begin{tikzpicture}
(...drawing...)\end{tikzpicture}
\caption{\label{fig:ref name}Légende.}
\end{figure}
Dessiner un rapporteur
\begin{tikzpicture}[scale=.95]
\foreach \i in {0,1,...,180}{\draw (\i:100mm)--(\i:120mm);}
\foreach \i in {0,10,...,180}{
\draw[very thick] (0,0)--(\i:120mm);
\node at (\i:125mm){\i};
}\end{tikzpicture}
Pages de notes (lignes)
\foreach \page in {1,...,4}{~\vfill
\foreach \ligne in {1,...,28}{
\leftline{\tikz\draw[dotted](0,0)--(\linewidth,0);}
\leftline{~}
\newpage} }
Une échelle graduée
\begin{tikzpicture}
\foreach \i in{.2,.4,...,1}{
\pgfkeys{/pgf/number format/.cd,fixed,precision=1}
\draw[line width=.5pt] (\i,.1)--++(0,-.2)
\pgfmathprintnumber{\i}};
node[below]{
}\end{tikzpicture}
Un histogramme des notes à une épreuve
\documentclass[border=1ex,tikz,preview]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=0, xmax=20, xtick distance=5, minor xtick={0,1,...,20},
ymin=0, ymax=10, minor y tick num = 1,
area style]\addplot+[ybar interval,mark=no] plot coordinates {
(0,0)
(1,0)
(2,0)
(3,0)
(4,2)
(5,3)
(6,8)
(7,5)
(8,8)
(9,1)
(10,0)
(11,5)
(12,1)
(13,4)
(14,0)
(15,0)
(16,0)
(17,0)
(18,0)
(19,1)
(20,0)
};\end{axis}
\end{tikzpicture}
\end{document}
\usepackage[autolanguage]{numprint}
Ma configuration :
\usepackage{siunitx}
\sisetup{
%
locale= FR ,%
detect-mode,%
per-mode=reciprocal,
output-decimal-marker={,},\ensuremath{\!\cdot\!},%
inter-unit-product = %
group-minimum-digits = 4,\text{\;},%
group-separator =
}\SendSettingsToPgf
Symbole différentiel pour la dérivation
\def\d{\relax\ifmmode\mathrm{d}\else\textrm{d}\fi}
Vecteur
\newcommand\vect[1]{\overrightarrow{#1}}
Par exemple :
\[
\vect{V_{A,2/1}} = \vect{V_{B,2/1}}
+ \vect{\Omega_{2/1}} \wedge \vect{BA}
\]
qui donne :
Écrire un « déf. » au-dessus d’un signe égal
\newcommand\defeq{\overset{\text{déf.}}{~=~}}
par exemple :
$\mathcal{R}_0=\left(O,\mathcal{B}_0\right)$, il vient :
Sachant \[
\vect{V_{M/\mathcal{R}_0}} \defeq \left.\dfrac{\d \vect{OM}}{\d t}\right|_{\mathcal{B}_0}
\]
qui donne :
Norme ()
\newcommand\norme[1]{\relax\ifmmode\left\Vert#1\right\Vert\fi}
Par exemple :
\norme{\vect{AB}}
donne :
Éléments de réduction d’un torseur
\usepackage{mathtools}
\newcommand\torseur[4][1ex]{%
\prescript{}{#4}{%
\left\{\begin{array}{c}
\displaystyle#2}\\[#1]
{\displaystyle#3}
{\end{array}\right\}}%
}
à utiliser en
\torseur[espace interligne]{resultante}{moment}{point}
Par exemple :
$A$ un point de l'axe central de
Soit \[
\{\mathscr{V}_{2/1}\}
= \torseur{\vect{\Omega_{2/1}}}{\vect{V_{A,2/1}}}{A}
\]
alors\[
\forall M\in\left(A,\vect{\Omega_{2/1}}\right), \quad
\vect{V_{M,2/1}} = \vect{V_{A,2/1}}
\]
qui donne :
Exposant entouré (pour ne pas confondre avec une puissance)
\newcommand*\subc[1]{%
\text{\tikz{\node[draw,circle,inner sep=.5pt]{\tiny$#1$};}}}%
^{ }
à utiliser en
\subc{exposant}
Paquet : CircuiTikZ (documentation)
\usepackage[european]{circuitikz}
petit hack pour les portes logiques
Hacheur quatre quadrants
\begin{tikzpicture}[xscale=.55,yscale=.7]\ctikzset{voltage=european}
\scriptsize
\node(npn1) at (2.5,3.5) [pigbt,xscale=1]{};
\node(npn4) at (2.5,1.5) [pigbt,xscale=1]{};
\node(npn3) at (10.5,1.5) [pigbt,xscale=1]{};
\node(npn2) at (10.5,3.5) [pigbt,xscale=1]{};
\node[left] at (npn1.B) {$T_1$};
\node[left] at (npn4.B) {$T_2$};
\node[left] at (npn3.B) {$T_3$};
\node[left] at (npn2.B) {$T_4$};
\draw (5,3.5) rectangle (8,1.5);
\node (ch) at (6.5,2.5){\it\small Charge};
\draw (0,0)node(o){} to[V=$U_E$] (0,5)node(o1){};
\draw (o1-|npn1.E)node[circ](ik1){}--(npn1.E);
\draw (npn1.C)--(npn1.C|-ch)node[circ ](ok1){}++(.5,0)node(id1){}to[Do,l_=$D_1$ ]++(0,2.5)node[circ ](od1){};
\draw (ch-|npn4.E)node[circ](ik4){}--(npn4.E);
\draw (npn4.C)--(npn4.C|-o)node[circ ](ok4){}++(.5,0)node(id4){}to[Do,l_=$D_2$ ]++(0,2.5)node[circ ]{};
\draw (o1-|npn2.E)node[circ](ik2){}--(npn2.E);
\draw (npn2.C)--(npn2.C|-ch)node[circ ](ok2){}++(.5,0)node(id2){}to[Do,l_=$D_4$ ]++(0,2.5)node[circ ](od2){};
\draw (ch-|npn3.E)node[circ](ik3){}--(npn3.E);
\draw (npn3.C)--(npn3.C|-o)node[circ ](ok3){}++(.5,0)node[circ ](id3){}to[Do,l_=$D_3$ ]++(0,2.5)node[circ ](od3){};
\draw (o1.center)--(od2);
\draw (id3)--(o.center);
\draw (ok1)--(4.25,2.5)to[short,i^>=$i_S$](5,2.5)node(ic){};
\draw (od3)--(8,2.5)node(oc){};
\draw (8.5,.75)to node[currarrow, sloped, allow upside down, pos=1]{}
$u_S$} ++(-3.5,0);
node[above]{\end{tikzpicture}
qui donne :
\usepackage{schemabloc}
Exemple de schéma-blocs :
\begin{tikzpicture}
\sbEntree{E1}
\sbComph{comp1}{E1}\sbRelier{E1}{comp1}
\sbBloc[2]{H1}{$H_1(p)$}{comp1}\sbRelier{comp1}{H1}
\sbCompSum[5]{comp2}{H1}{}{+}{-}{ }\sbRelier{H1}{comp2}
\sbBloc{H2}{$H_2(p)$}{comp2}\sbRelier{comp2}{H2}
\sbBloc[4]{H3}{$H_3(p)$}{H2}\sbRelier{H2}{H3}
\sbSortie{S}{H3}\sbRelier{H3}{S}
\sbDecaleNoeudy[-4]{H2}{lien1}
\sbBlocr{G}{$G(p)$}{lien1}
\sbRelierxy{G}{comp1}
\sbDecaleNoeudy[4]{E1}{lien2}
\sbBloc[7]{H4}{$H_4(p)$}{lien2}
\sbRelierxy{H4}{comp2}
\sbRelieryx{H2-H3}{G}
\sbRelier{lien2}{H4}
\sbNomLien[0.8]{S}{$S(p)$}
\sbNomLien[0.8]{E1}{$E(p)$}
\sbNomLien[0.8]{lien2}{$P(p)$}
\end{tikzpicture}
\usepackage{atbegshi}
\usepackage{bodegraph}
Mettre en forme du code
\usepackage{listings}
\lstset{literate=%
\'a}}1 {é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1
{á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1
{Á}{{\`a}}1 {è}{{\`e}}1 {ì}{{\`i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1
{à}{{\`A}}1 {È}{{\'E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1
{À}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
{ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
{Ä}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1
{â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1
{Â}{{\oe}}1 {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1
{œ}{{\H{u}}}1 {Ű}{{\H{U}}}1 {ő}{{\H{o}}}1 {Ő}{{\H{O}}}1
{ű}{{\c c}}1 {Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1
{ç}{{\EUR}}1 {£}{{\pounds}}1
{€}{{\degres{}}}1
{°}{{
}\lstset{
% pour les accents
inputencoding=utf8,
extendedchars=true,
upquote=true,
columns=flexible,\ttfamily,
basicstyle=
language=Python,\color{blue},
keywordstyle=\color{black},
identifierstyle=\color{orange},%
commentstyle=% *** style
%
frame=leftline,%
framerule=3pt,\color{black!20},%
rulecolor=%
framesep=1em,%
xleftmargin=2em,
}\if@print
\lstset{
\color{black}\bfseries,
keywordstyle=\color{black},
identifierstyle=\color{black!70},%
commentstyle=
}\fi
par exemple :
\begin{lstlisting}
def Appartient(L,x):
n=len(L)
k=0
while k<n and L[k]!=x:
k=k+1
return(k<n)
\end{lstlisting}
Inclure des fichiers de code
\lstinputlisting[language=python]{fichier.py}
Écrire du code sur une diapo avec beamer
\begin{frame}[t,containsverbatim]
\begin{lstlisting}
super+=code
\end{lstlisting}
\end{frame}
Écrire un exemple en LaTeX avec à gauche le code source et à droite le texte correspondant mis en forme (adapté de verbatim.sty
)
\newwrite\example@out
\newcounter{exacnt}
\setcounter{exacnt}{1}
\newlength{\savefboxrule}
\newlength{\savefboxsep}
\newlength{\outdent}
\setlength{\outdent}{1cm}
%\addtolength{\headwidth}{\outdent}
\newenvironment{ltxexample}{\begingroup% Lets Keep the Changes Local
\@bsphack
\immediate\openout \example@out \jobname.exa
\let\do\@makeother\dospecials\catcode`\^^M\active
\def\verbatim@processline{%
\immediate\write\example@out{\the\verbatim@line}}%
\verbatim@start}%
\immediate\closeout\example@out\@esphack\endgroup%
{\stepcounter{exacnt}%
\expandafter\ifx\csname r@exa\theexacnt\endcsname\relax\else\fi
\noindent\begin{minipage}{\linewidth}
\input{\jobname.exa}
\end{minipage}
\newline
\noindent\begin{minipage}{\linewidth}
\lstinputlisting[style=mylatex]{\jobname.exa}
\end{minipage}%
\label{exa\theexacnt}%
\par\addvspace{3ex plus 0.8ex minus 0.5ex}\vskip -\parskip
}\newenvironment{ltxexampleSide}{\begingroup% Lets Keep the Changes Local
\@bsphack
\immediate\openout \example@out \jobname.exa
\let\do\@makeother\dospecials\catcode`\^^M\active
\def\verbatim@processline{%
\immediate\write\example@out{\the\verbatim@line}}%
\verbatim@start}%
\immediate\closeout\example@out\@esphack\endgroup%
{\stepcounter{exacnt}%
\expandafter\ifx\csname r@exa\theexacnt\endcsname\relax\else\fi
\noindent\begin{minipage}{.48\linewidth}
\input{\jobname.exa}
\end{minipage}
\begin{minipage}{.48\linewidth}
\lstinputlisting[style=mylatex]{\jobname.exa}
\end{minipage}%
\label{exa\theexacnt}%
\par\addvspace{3ex plus 0.8ex minus 0.5ex}\vskip -\parskip
}
à utiliser en
\begin{ltxexample}
\Large This is Large
\end{ltxexample}
En plus de \usepackage{lmodern}
, on peut utiliser l’un des paquets suivants :
Paquet : color
\usepackage{color}
Couleur du texte
\textcolor{color}{text}
Couleur courante
\color{color}
Couleur du fond de page
\pagecolor{color}
Définir une nouvelle couleur
\definecolor{colorname}{model}{code}
où model
peut être rgb
(3 réels enre 0 et 1), RGB
(3 entiers entre 0 et 255), html
(3 octets en hexa), cmyk
(4 réels entre 0 et 1), gray
(1 réel entre 0 et 1), par exemple :
\definecolor{mycolor1}{rgb}{0.858, 0.188, 0.478}
\definecolor{mycolor2}{RGB}{219, 48, 122}
\definecolor{mycolor3}{HTML}{216EAD}
\definecolor{mycolor4}{cmyk}{0, 0.7808, 0.4429, 0.1412}
\definecolor{mygray}{gray}{0.6}
Définir une nouvelle couleur par « mélange »
\colorlet{mycolor}{green!10!orange!90!}
Format 2 en 1
\usepackage{pgfpages}
\pgfpagesuselayout{2 on 1}[a4paper,landscape]
En-tête et pieds de page
\pagestyle{fancy}
\fancyhf{}
\fancyhead[l]{}
\fancyhead[c]{}
\fancyfoot[c]{\thepage}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
En-tête et pieds de page de sujets
% *** def lastpage counter
\usepackage{lastpage,refcount}
% *** header
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead{}
\fancyfoot[c]{\thepage/\pageref{LastPage}}
\fancyfoot[ro]{\ifnum\thepage<\getpagerefnumber{LastPage}
\small\itshape Tournez la page S.V.P.\fi}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\pagestyle{fancy}
\newcommand\captionfig[1]{\refstepcounter{figure}%
\textsc{Figure~\thefigure} -- #1}
\newcommand\captiontab[1]{\refstepcounter{table}%
\textsc{Table~\thetable} -- #1}
Environnement d’exercice
\makeatletter
\newcommand\mynobreakpar{~\vspace{-.8\baselineskip}\par\nobreak\@afterheading}
\makeatother
% to get auto newline for enumerate in Iexo env
\newenvironment{Ienumerate}
\mynobreakpar\begin{enumerate}}
{\end{enumerate}} {
Numéroter les lignes
\usepackage{lineo}
\linenumbers
Note de bas de page
\footnote{Note de bas de page}
Poser une référence
\label{ref1}
puis l’utiliser
\ref{ref1}
et, si besoin, préciser sa page
\pageref{ref1}
Définir un nouveau compteur latex \newcounter{compteur}
ou, pour le remettre à zéro à chaque incrément du compteur de section nommé section
latex \newcounter{compteur}[section]
Fixer la valeur d’un compteur latex \setcounter{compteur}{valeur}
Ajouter à un compteur latex \addtocounter{compteur}{valeur}
Incrémenter un compteur pouvant servir de référence
\refstepcounter{compteur}
Afficher la valeur d’un compteur latex \valuer{compteur}
Représentation des compteurs
Nombres arabes (1, 2, 3, …) | \arabic{compteur} |
Nombres romains (i, ii, iii, …) | \roman{compteur} |
ou en majuscules (I, II, III, …) | \Roman{compteur} |
Lettres (a, b, c, …) | \alph{compteur} |
ou en majuscules (A, B, C, …) | \Alph{compteur} |
\usepackage[colorlinks=true,%
%
linkcolor=red,%
urlcolor=blue,%
citecolor=blue,hyperref}
pdfa]{\hypersetup{linkcolor=red,urlcolor=blue,citecolor=blue}
l’option pdfa
évite de briser les liens après un passage avec Ghostscript (source).
Définir un lien hypertexte
\href{http://nmesnier.free.fr}{mon site}
qui peut permettre d’excécuter un fichier
\href{run:chemin/fichier}{nom}
Insérer une URL
\url{http://nmesnier.free.fr}
Définir une cible
\hypertarget{clé}{mot référence}
puis l’utiliser
\hyperlink{clé}{mot à cliquer}
biblabel
\makeatletter
\renewcommand*{\@biblabel}[1]{\hfill#1.}
\makeatother
Définir une table des matières de profondeur 2 encadrée
\setcounter{tocdepth}{2}
% *** def de la tocBox
\usepackage{mdframed}
\newmdenv[
\colorbox{white}{\space\large
frametitle={\space}},
Table des matières
innertopmargin=0pt,\ht\strutbox,
frametitleaboveskip=-\center,
frametitlealignment=
]{tocBox}% *** redefinition of toc
\def\tableofcontents{%
\begin{tocBox}%
\@starttoc{toc}
\medskip
\end{tocBox}
}
Il est évidemment possible de changer le Table des matières
en Exercices
si vous faites un poly de TDs !
Voir les différences entre 2 fichiers *.tex
latexdiff old.tex new.tex > diff.tex
ou
latexdiff --flatten old.tex new.tex > diff.tex
puis compiler
pdflatex diff.tex
Pour utiliser LaTeX sur M$ windows, il faut :
Il faut toujours installer la distribution avant l’éditeur pour que ce dernier « trouve » le compilateur automatiquement.