Cet article est dédié est la manière de formatter le contenu Latex.
Il fait suite à l’article qui présente Latex :
Voir la liste complète des symboles pour les symboles ajoutés par des packages (anciens langages, musique, science, etc).
\command{}
au lieu de \command
Lorem ipsum
dolor sit amet
Consectetur adipiscing elit
Lorem ipsum \\
dolor sit amet
Commandes | Effet |
---|---|
\\ |
Commence un nouveau paragraphe |
\newline |
Commence un nouveau paragraphe |
\* |
Ajoute un retour à la ligne dans le paragraphe en cours |
Explication des différents espaces
Pour modifier l’indentation, les espaces entre paragraphes, les espaces entre lignes, on peut ajouter des configurations dans le préambule :
%--- preamble
\setlength{\parindent}{0cm}
\setlength{\parskip}{\baselineskip}
\renewcommand{\baselinestretch}{1.5}
Certains caractères font partie de la syntaxe Latex, pour pouvoir les afficher littéralement il faut les échapper ou utiliser une commande :
Avant | \# | \$ | \% | \^{} | \& | \_ | \{ | \} | \~{} | \textbackslash |
---|---|---|---|---|---|---|---|---|---|---|
Après |
Il n’y a pas que les caractères spéciaux de Latex qui disposent de commandes mais toute une panoplie.
En voici quelques uns :
\textasciicircum | \textcopyright | \textless | \textquotedblright | ||||
\textasciitilde | \textdagger | \textordfeminine | \textquoteleft | ||||
\textasteriskcentered | \textdaggerdbl | \textordmasculine | \textquoteright | ||||
\textbar | \textdollar | \textparagraph | \textregistered | ||||
\textbardbl | \textellipsis | \textperiodcentered | \textsection | ||||
\textbigcircle | \textemdash | \textpertenthousand | \textsterling | ||||
\textbraceleft | \textendash | \textperthousand | \texttrademark | ||||
\textbraceright | \textexclamdown | \textquestiondown | \textunderscore | ||||
\textbullet | \textgreater | \textquotedblleft | \textvisiblespace |
Les caractères accentués et liés (é, à, æ, Å, ø…) n’existent pas en anglais et ne sont donc pas suportés tels que par Latex. Pour les afficher, il faut utiliser une commande : précéder la lettre de « \’ » pour un accent aigüe, « \` » pour un accent grave, « \^ » pour un accent circonflexe, et « \” » pour un tréma, etc.
Avant | \'{e} | \`{e} | \^{e} | \"{e} | \.{e} | \~{e} | \={e} | \v{e} | \b{e} | \c{e} |
---|---|---|---|---|---|---|---|---|---|---|
Après | ||||||||||
\d{e} | \H{e} | \r{e} | \t{e} | \u{e} | \oe | \OE | \ae | \AE | \ss | |
\aa | \AA | \o | \O | \L | \l | \i | \j | \P | \S | |
Commande | Rendu | Description |
---|---|---|
\textit{Italic} | Italique | |
\textsl{Slanted} | Incliné, légèrement différent d’italique | |
\textup{Normal} | Droit | |
\emph{Emph} | Droit si dans bloc italique, italique autrement | |
\underline{Underlined} | Souligné | |
\textbf{Bold} | Trait gras | |
\textmd{Medium} | Trait normal | |
\textsc{Small scaps} | Petites majuscules | |
\textrm{Roman family} | Police Roman | |
\textsf{Sans-serif family} | Police Sans-serif | |
\texttt{Typewritter family} | Police Typewritter |
\emph{Lorem ipsum \emph{dolor sit amet}, consectetur adipiscing elit}.
Pour créer une nouvelle commande qui change la police (même principe que \texttt
):
%--- preamble
\DeclareTextFontCommand{\helvetica}{\fontfamily{phv}\selectfont}
%--- document
\helvetica{Lorem ipsum dolor sit}
On aussi modifier la police du texte pour un bloc avec
{\fontfamily{phv}\selectfont
Lorem ipsum dolor sit
}
Pour modifier la famille par défaut du document, placer \renewcommand{\familydefault}{<famille>}
dans le préambule. Et pour modifier la police par défaut d’une famille : \renewcommand{<famille>}{<police>}
.
%--- Utiliser Helvetiva par défaut
\renewcommand{\sfdefault}{phv}
\renewcommand{\familydefault}{\sfdefault}
Familles possibles :
\rmdefault
(Roman, par défaut),
\sfdefault
(Sans Serif),
\ttdefault
(Typewritter)
Liste des polices
Pour modifier la police des titres uniquement, et éventuellement leur style, importer le package titlesec
et utiliser la commande titleformat
\usepackage{titlesec}
\titleformat{\chapter}[display]
{\normalfont\sffamily\huge\bfseries\color{blue}}
{\chaptertitlename\ \thechapter}{20pt}{\Huge}
\titleformat{\section}
{\normalfont\sffamily\Large\bfseries\color{cyan}}
{\thesection}{1em}{}
{\tiny Lorem ipsum dolor sit amet (tiny)}
{\scriptsize Lorem ipsum dolor sit amet (scriptsize)}
{\footnotesize Lorem ipsum dolor sit amet (footnotesize)}
{\small Lorem ipsum dolor sit amet (small)}
{\normalsize Lorem ipsum dolor sit amet (normalsize)}
{\large Lorem ipsum dolor sit amet (large)}
{\Large Lorem ipsum dolor sit amet (Large)}
{\LARGE Lorem ipsum dolor sit amet (LARGE)}
{\huge Lorem ipsum dolor sit amet (huge)}
{\Huge Lorem ipsum dolor sit amet (Huge)}
On peut également modifier la taille du texte pour un bloc avec \fontsize{<font size>}{<space between lines>}\selectfont
{\fontsize{20}{12}\selectfont
Lorem ipsum dolor sit amet
}
Nécessite d’importer le package xcolor
.
\usepackage{xcolor}
Lorem ipsum {\color{blue} dolor sit amet}, consectetur adipiscing edit.
D’autres formats de couleurs sont disponibles :
{\color[rgb]{1,.65,0} orange}
{\color[RGB]{255,165,0} orange}
{\color[HTML]{FFA500} orange}
{\color[cmyk]{0,.5,1,0} orange}
Les noms de couleurs définis sont :
black | blue | purple | brown | ||||
darkgray | cyan | magenta | green | ||||
gray | teal | violet | lime | ||||
lightgray | yellow | pink | olive | ||||
white | orange | red |
On peut également modifier la saturation et faire des mixs de couleurs :
blue!40 | = bleu clair | |
blue | = bleu normal | |
blue!40!black | = bleu foncé |
Par défaut le texte est justifié
Lorem ipsum dolor sit amet...
On peut l’aligner à gauche
\begin{flushleft}
Lorem ipsum dolor sit amet...
\end{flushleft}
À droite
\begin{flushright}
Lorem ipsum dolor sit amet...
\end{flushright}
Ou au centre
\begin{center}
Lorem ipsum dolor sit amet...
\end{center}
Il est possible d’ajouter du texte littéral avec la commande verb
.
N’importe quel délimiteur peut être utilisé, ici on utilise "
.
\verb"$\sum$"
Même chose avec l’environnement verbatim
, a priori pour un bloc de texte long.
\begin{verbatim}
$\sum$
\end{verbatim}
Pour conserver les tabulations du texte (pour du code par exemple), il faut utiliser l’environnement Verbatim
du package fancyvb
.
\usepackage{fancyvrb}
\fvset{tabsize=4}
\begin{Verbatim}
function helloWorld() {
return "Hello world";
}
\end{Verbatim}
Trois types de listes peuvent être crées : une liste énumérée (enumerate
), une liste à puce (itemize
) ou une liste de définitions (description
).
Un item de la liste commence par la commande \item
et peut contenir tout type de contenu : texte, image, tableau, sous-liste, etc. Le caractère de la puce peut être donné en option (exemple: \item[-]
pour créer une liste de tirets).
\begin{itemize}
\item Item 1
Du texte
\item Item 2 \\
Du texte
\item Item 3
\begin{itemize}
\item[+] Item 3.1
\item[-] Item 3.2
\item[!] Item 3.3
\end{itemize}
\end{itemize}
\begin{enumerate}
\item Item 1
\item Item 2
\end{enumerate}
\begin{description}
\item[Mot] D\'efinition du mot
\item[Mot 2] Un autre mot
\end{description}
Pour modifier les marges avant/après les listes et entre les items, utiliser le package enumitem
.
Pour toutes les listes du documents:
\usepackage{enumitem}
\setitemize{noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt}
Pour une liste donnée:
\usepackage{enumitem}
\begin{itemize}[noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt]
\item item 1
\item item 2
\item item 3
\end{itemize}
On peut créer un tableau avec l’environnement tabular
.
\begin{tabular}{lll}
crée un tableau de 3 colonnes avec un alignement à gauche|
dans la spécification@{char}
dans la spécification&
\\
\hline
à l’intérieur du blocLes valeurs de spécification sont :
Valeur | Description |
---|---|
l | Texte à gauche (left) |
c | Texte centré (center) |
r | Texte à droite (right) |
p{largeur} | Texte justifié sur la largeur donnée (paragraph). Largeur: Xpx, Xem ou Xcm |
Exemples :
\begin{tabular}{|l|l|l|}
\hline
Item 1.1 & Item 1.2 & Item 1.3 \\
\hline
Item 2.1 & Item 2.2 & Item 2.3 \\
\hline
\end{tabular}
\begin{tabular}{|r@{.}l|l|}
\hline
Chapitre & section & Description \\
\hline
1 & 1 & Item 1.1 \\
1 & 2 & Item 1.2 \\
150 & 3 & Item 150.3 \\
\hline
\end{tabular}
Pour donner un titre à un tableau, il est nécessaire de le mettre dans un environnement table
.
Le titre peut être placé en haut ou en bas du tableau avec \caption[Titre court]{Titre long}
.
Le titre court est optionnel, il sera affiché dans la liste des tableaux (sommaire) à la place du titre long si spécifié.
Cf float
\begin{table}
\centering
\begin{tabular}{|l|l|l|}
\hline\hline
Label1 & Label2 & Label3 \\
\hline
Item 1.1 & Item 1.2 & Item 1.3 \\
Item 2.1 & Item 2.2 & Item 2.3 \\
\hline
\end{tabular}
\caption{Le titre}
\end{table}
Pour placer le titre en haut, la commande \bigskip
est utile : elle ajoute une marge entre le titre et le tableau.
\begin{table}
\centering
\caption{Le titre}
\bigskip
\begin{tabular}{|l|l|l|}
\hline\hline
Label1 & Label2 & Label3 \\
\hline
Item 1.1 & Item 1.2 & Item 1.3 \\
Item 2.1 & Item 2.2 & Item 2.3 \\
\hline
\end{tabular}
\end{table}
Pour tous les tableaux du documents
Placer dans le préambule :
\usepackage{caption}
\captionsetup{labelformat=empty}
Pour un tableau en particulier
Dans le préambule :
\usepackage{caption}
Et utiliser la commande \caption*
:
\caption*{Le titre}
Des cellules peuvent être mergées horizontalement avec la commande \multicolumn{nb}{spec}{text}
.
\begin{tabular}{|l|l|l|}
\hline
Item 1.1 & Item 1.2 & Item 1.3 \\
\hline
Item 2.1 & \multicolumn{2}{|l|}{Item 2.2 \ Item 2.3} \\
\hline
\end{tabular}
Les cellules ne peuvent pas être mergées verticalement à proprement parler.
On peut simuler visuellement un rowspan en utilisant \cline{debut-fin}
au lieu de \hline
\begin{tabular}{|l|l|l|}
\hline
Item 1.1 & Item 1.2 & Item 1.3 \\
\cline{2-3}
Item 2.1 & Item 2.2 & Item 2.3 \\
\hline
\end{tabular}
On peut déplacer verticalement le texte à l’intérieur d’une cellule avec \raisebox{pos}{texte}
.
\begin{tabular}{|l|l|l|}
\hline
& Item 1.2 & Item 1.3 \\
\cline{2-3}
\raisebox{0.5cm}{Item 2.1} & Item 2.2 & Item 2.3 \\
\hline
\end{tabular}
On peut modifier la hauteur d’une cellule avec \def\arraystrech{hauteur}
.
Et la largeur d’une cellule avec \def\tabcolsep{largeur}
.
Placer ces commandes et le(s) tableau(x) ciblé(s) dans un même groupe.
\begingroup
\def\arraystretch{2}
\def\tabcolsep{0.5cm}
\begin{tabular}{|l|l|l|}
\hline
Item 1.1 & Item 1.2 & Item 1.3 \\
\hline
Item 2.1 & Item 2.2 & Item 2.3 \\
\hline
\end{tabular}
\endgroup
Pour ajouter un padding à tous les tableaux du document, définir \renewcommand{\arraystretch}{2}
et \renewcommand{\tabcolsep{0.5cm}
dans le préambule.
Une ligne peut être déplacée, plus haut ou plus bas avec [x unit]
\begin{tabular}{lr}
Item & Amount \\
\hline
Salaries (research assistants, secretary) & \$24,000 \\
Travel expenses & \$8,000 \\
Software & \$2,000 \\
[8pt]\cline{2-2}
Total & \$34,000
\end{tabular}
Pour donner un fond coloré aux lignes/cellules, il faut utiliser les commandes \rowcolor{color}
et \cellcolor{color}
.
Nécessite les packages xcolor
et colortbl
.
\usepackage{xcolor,colortbl}
\begin{tabular}{|l|l|l|}
\hline
\rowcolor{gray!10}Item 1.1 & Item 1.2 & Item 1.3 \\
\hline
\cellcolor{blue!25}Item 2.1 & Item 2.2 & Item 2.3 \\
\hline
\end{tabular}
Pour afficher un tableau au format paysage, importer le package rotating
et utiliser l’environnement sidewaystable
au lieu de table
%--- preamble
\usepackage{rotating}
%--- document
\begin{sidewaystable}
\centering
\begin{tabular}{|l|l|l|}
\hline
Item 1.1 & Item 1.2 & Item 1.3 \\
\hline
Item 2.1 & Item 2.2 & Item 2.3 \\
\hline
\end{tabular}
\caption{Turn the page sideways to look at this table.}
\end{sidewaystable}
Pour inclure une image, utiliser la commande \includegraphics{nomfichier}
.
Attention, en compilant avec latex
, seuls les fichiers PostScript (.ps ou .eps) sont admis.
Avec pdflatex
, les fichiers PDF, PDF et JPG sont également admis.
L’extension peut être omise.
\includegraphics{monimage.jpg}
On peut modifier la taille de l’image avec les options width
, height
et scale
.
width=\textwidth
pour élargir à la taille de la page.
\includegraphics[scale=0.48]{monimage.png}
Taille affichée par includegraphics
L’option angle
permet de faire pivoter l’image.
\includegraphics[scale=2,angle=90]{myfigure}
Pour mettre une bordure autour de l’image, importer le package adjustbox
et passer l’option cfbox
\usepackage[export]{adjustbox}
\includegraphics[cfbox=lightgray 1pt 1pt]{monimage.png}
Pour mettre un titre à une image, mettre l’image dans un environnement figure
et utiliser la commande \caption
.
Cf float
\begin{figure}[!htbp]
\centering
\includegraphics[cfbox=lightgray 1pt 1pt]{monimage.png}
\caption{Le titre}
\end{figure}
Par défaut l’image est cherchée dans le répertoire du fichier .tex
.
On peut spécifier le path des fichiers avec \graphicspath{{path/}}
\graphicspath{{images/}}
Pour afficher une image au format paysage, importer le package rotating
et utiliser l’environnement sidewaysfigure
au lieu de figure
\usepackage{rotating}
\begin{sidewaysfigure}
\centering
\includegraphics{myfigure.png}
\caption{Turn the page sideways to look at this figure.}
\end{sidewaysfigure}
Les images placées dans un environnement figure
et les tableaux placés dans un table
“flottent” dans la page afin d’éviter les espaces vides.
Par défaut, Latex essaie de placer l’image ou tableau en haut de la page en cours, sinon en bas, ou si ni l’un ni l’autre ne marche, en haut de la page suivante. Ce comportement peut être changé avec les options : \begin{table}[htp]
par exemple.
Caractère | Signification | Description |
---|---|---|
h | here | À l’emplacement dans le texte où se situe l’environnement |
t | top | En haut de la page |
b | bottom | En bas de la page |
p | page | Sur une page spéciale qui ne contient que des floats |
Pour stopper les floats, par exemple pour empêcher une image d’être située après le texte, utiliser \FloatBarrier
du package placeins
.
\usepackage[section]{placeins}
Lorem ipsum dolor sit amet
\begin{figure}[!htbp]
\centering
\includegraphics[scale=0.48,cfbox=lightgray 1pt 1pt]{monimage.png}
\caption{Le titre}
\end{figure}
\FloatBarrier
Pour afficher tous les floats en mémoire et commencer une nouvelle page : \clearpage
Les commandes quote
, quotation
et verse
permettent d’afficher une citation.
Une citation se distingue par une marge à gauche et droite du texte.
quote
pour une citation courte, ou une suite de citations courtes, séparées par des lignes vides.
\begin{quote}
Lorem ipsum....
\end{quote}
quotation
pour les citations longues, de plus d’un paragraphe. Indente la première ligne chaque paragraphe.
\begin{quotation}
Lorem ipsum....
\end{quotation}
verse
pour un poème en verset. Si une ligne occupe plus d’une ligne sur la page, la suite du texte est indentée.
\begin{verse}
Lorem ipsum....
\end{verse}
Des lignes, horizontales ou verticales, peuvent être crées avec la commande \rule{width}{height}
.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vitae cursus nisl.
\rule{\textwidth}{1pt}
Les notes de bas de page sont affichées en bas de la page en cours.
Les numéros s’incrémentent à partir du début du document.
Lorem ipsum dolor sit amet, consectetur adipiscing elit\footnote{Ma footnote}.
Latex dispose de plusieurs modes pour afficher du texte mathématique.
Le package amssymb
ajoute des symboles mathématiques, amsmath
ajoute des environnements et amsfonts
ajoute des polices supplémentaires. Ces packages sont souvent utiles.
En ligne : $ ... $
, \( ... \)
ou \begin{math} ... \end{math}
Pour afficher des expressions mathématiques à l’intérieur d’un bloc de texte
L'équation $d = \sqrt{b^2 - 4ac}$
En bloc : $$ ... $$
, \[ ... \]
ou \begin{displaymath} ... \end{displaymath}
The quadratic equation $ax^2 + bx + c = 0$ has two roots
$$ x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} $$
where the nature of the roots is determined by the sign
of the discriminent $b^2 - 4ac$.
En bloc énuméré : \begin{equation} ... \end{equation}
The derivative of the function $f(x)$ at the point $x_0$ is
\begin{equation}
f’(x_0) =
\lim_{x \rightarrow x_0}
\frac{f(x) - f(x_0)}{x - x_0}
\end{equation}
Avec le package amsmath
, le numéro de l’équation peut être remplacé par un symbole
The derivative of the function $f(x)$ at the point $x_0$ is
\begin{equation} \tag{a}
f’(x_0) =
\lim_{x \rightarrow x_0}
\frac{f(x) - f(x_0)}{x - x_0}
\end{equation}
En bloc multiligne. Nécessite le package amsmath
Utilser &
pour contrôler l’alignement des équations
Placer \nonumber
en fin de ligne pour ne pas énumérer cette ligne
\begin{align}
x & = 2 \\
x' & = 2 + 3 \\
& = 5 \nonumber
\end{align}
Bloc multiligne non énuméré :
\begin{align*}
x & = 2 \\
x' & = 2 + 3 \\
& = 5
\end{align*}
Voir expressions mathématiques pour la manière de formatter le contenu d’un bloc de maths.
Pour changer la taille des maths dans tout le document, importer relsize
et utiliser \DeclareMathSizes {text size}{math size}{script size}{scriptscript size}
.
Le premier paramètre (text size) doit être exactement la taille actuelle du texte, sinon la commande ne marchera pas.
\documentclass[10pt]{report}
\usepackage{relsize}
\DeclareMathSizes{10}{15}{7}{7}
Pour changer la taille de quelques caractères, importer amsmath
et utiliser \text{<taille>\ensuremath <math>}
$$\text{\huge\ensuremath \alpha}$$
Pour changer la couleur des maths :
\usepackage{xcolor}
\everymath={\color{blue}}
% tabular, minipage and \parbox all use math mode and their output would be blue
\makeatletter\def\m@th{\color{black}}\makeatother
% output black for any "fake" math
Des blocs de texte avec bordure et couleur de fond peuvent être crées avec l’environnement mdframed
du pakcage mdframed
.
\begin{mdframed}[backgroundcolor=blue!10,linecolor=blue!25]
Lorem ipsum color sit amet
\end{mdframed}
Avec l’option framemethod=TikZ
, mdframed peut ajouter des bords arrondis, marges et padding
\usepackage[framemethod=TikZ]{mdframed}
\begin{document}
\begin{mdframed}[roundcorner=10pt,linecolor=orange,outerlinewidth=1,
leftmargin=1,rightmargin=1,
innerleftmargin=15,innertopmargin=15,innerbottommargin=15]
Lorem ipsum color sit amet
\end{mdframed}
\end{document}
On peut également ajouter un titre au bloc
\begin{mdframed}[frametitle={\colorbox{white}{\space Infobox\space}},
innertopmargin=5pt,
innerbottommargin=10pt,
frametitleaboveskip=-\ht\strutbox,
frametitlealignment=\center]
Lorem ipsum color sit amet
\end{mdframed}
NB \wd
, \dp
et \ht
permettent de récupérer la largeur (width), l’espace sous une ligne (depth) et la hauteur d’une ligne (height). \ht\strutbox
= hauteur d’une ligne de la boite. Explications width, depth, height.
Documentation mdframed
Quelques exemples avec d’autres packages
Des liens HTTP peuvent être ajoutés grâce au package hyperref
.
\url{lien}
ajoute un lien cliquable sur une url.
\href{lien}{text}
ajoute un lien cliquable sur du texte.
La commande \urlstyle{<font family>}
permet de changer la famille de font de la commande \url
.
Par défaut, les liens sont entourés d’une bordure cyan. Avec les options du packages on peut
allbordercolors=couleur
colorlinks
allcolors=couleur
hidelinks
%--- preamble
\usepackage[colorlinks, allcolors=blue]{hyperref}
\urlstyle{rm}
%--- document
\url{http://google.com}
\href{http://google.com}{Google}
Latex permet de créer des schémas.
LatexDraw permet d’éditer des figures Latex (nécessite Java Runtime 8).
Cela permet de placer grossièrement les éléments sur le schéma et de récupérer le code généré pour l’éditer et le personnaliser par la suite avec un éditeur Latex classique.
\documentclass[10pt]{report}
\pagenumbering{gobble}
\usepackage[usenames,dvipsnames]{pstricks}
\usepackage{epsfig}
\usepackage{pst-grad} % For gradients
\usepackage{pst-plot} % For axes
\usepackage[space]{grffile} % For spaces in paths
\usepackage{etoolbox} % For spaces in paths
\makeatletter % For spaces in paths
\patchcmd\Gread@eps{\@inputcheck#1 }{\@inputcheck"#1"\relax}{}{}
\makeatother
\begin{document}
\psscalebox{1.0 1.0} % Change this value to rescale the drawing.
{
\begin{pspicture}(0,-0.955)(12.37,0.955)
\psline[linecolor=black, linewidth=0.04, arrowsize=0.05291667cm 5.0,arrowlength=1.4,arrowinset=0.0]{<-}(2.8,0.245)(6.0,0.245)(6.0,0.245)
\psline[linecolor=black, linewidth=0.04, arrowsize=0.05291667cm 5.0,arrowlength=1.4,arrowinset=0.0]{<-}(6.0,-0.155)(2.8,-0.155)
\rput[bl](6.8,-0.445){\shortstack[c]{repr\'esentation \\ interne \\ (\`a l'ordinateur)}}
\rput[bl](0.0,-0.145){\shortstack[c]{repr\'esentation \\ externe}}
\rput[bl](3.7,0.445){\textit{codage}}
\rput[bl](3.7,-0.755){\textit{decodage}}
\end{pspicture}
}
\end{document}
Pour récupérer la figure en SVG
Résultat :