Markup Latex

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).


Espaces et retours chariot

  1. Si plusieurs espaces se suivent, un seul est affiché.
  2. Il faut une ligne vide (= deux retours chariots) pour ajouter un retour à la ligne.
    Si plusieurs retours à la ligne se suivent, un seul est affiché.
  3. Les espaces placés après le nom d’une commande sont ignorés.
    Mettre un paramètre vide pour pouvoir afficher un espace après : \command{} au lieu de \command
  4. Il est possible de forcer des retours à la ligne et espaces avec des commandes Latex
Lorem    ipsum
dolor sit amet

Consectetur adipiscing elit

Lorem ipsum \\
dolor sit amet

Retours à la ligne

Commandes Effet
\\ Commence un nouveau paragraphe
\newline Commence un nouveau paragraphe
\* Ajoute un retour à la ligne dans le paragraphe en cours

Espaces

Explication des différents espaces

Espaces Latex

Espacement des paragraphes

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}

Caractères spéciaux

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

Caractères accentués

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

Formatter le texte

Style de font

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}.

Police supplémenaires

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
}

Police du document

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

Police des titres

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}{}

Taille

{\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
}

Couleur

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é

Alignement

Justifier

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}


Texte littéral

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}


Listes

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).

À puce

\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}

Énumérée

\begin{enumerate}
\item Item 1
\item Item 2
\end{enumerate}

De définitions

\begin{description}
\item[Mot] D\'efinition du mot
\item[Mot 2] Un autre mot
\end{description}

Padding

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}

Tableaux

On peut créer un tableau avec l’environnement tabular.

Les 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}

Titre

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 ne pas afficher “Table n:”

Colspan

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}

Rowspan

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}

Padding

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.

Row margin

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}

Couleurs

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}

Paysage

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}

Images

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}

Taille

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

Faire pivoter

L’option angle permet de faire pivoter l’image.

\includegraphics[scale=2,angle=90]{myfigure}

Bordure

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}

Titre

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}

Répertoire

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/}}

Paysage

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}

Float

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

Clear float

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


Citations

Les commandes quote, quotation et verse permettent d’afficher une citation.
Une citation se distingue par une marge à gauche et droite du texte.


Séparateurs

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}


Notes de bas de page

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}.


Maths

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.

Voir expressions mathématiques pour la manière de formatter le contenu d’un bloc de maths.

Taille

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}$$

Couleur

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

Background


Blocs

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


Liens

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

Plus d’options

%--- preamble
\usepackage[colorlinks, allcolors=blue]{hyperref}
\urlstyle{rm}

%--- document
\url{http://google.com}
\href{http://google.com}{Google}

Schémas

Latex permet de créer des schémas.

Dessin

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}

Export SVG

Pour récupérer la figure en SVG

Résultat :