<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">%%% Copyright (C) 2015-2024 Vincent Goulet
%%%
%%% Ce fichier fait partie du projet
%%% Â«RÃ©daction avec LaTeXÂ»
%%% https://gitlab.com/vigou3/formation-latex-ul
%%%
%%% Cette crÃ©ation est mise Ã&nbsp; disposition sous licence
%%% Attribution-Partage dans les mÃªmes conditions 4.0
%%% International de Creative Commons.
%%% https://creativecommons.org/licenses/by-sa/4.0/

\chapter{Principes de base}
\label{chap:bases}

Un systÃ¨me de mise en page tel que {\LaTeX} repose sur une logique de
sÃ©paration entre l'apparence d'un document et sa structure. Si vous
avez l'habitude d'utiliser un traitement de texte, vous devrez fort
probablement vous dÃ©faire d'une vilaine habitude: vous prÃ©occuper sans
cesse, au moment de la rÃ©daction, de la disposition du texte.

Ce principe acceptÃ©, il vous faudra nÃ©anmoins indiquer au logiciel la
structure du document. Avec {\LaTeX} cela s'effectue par le biais de
diverses instructions que l'on insÃ¨re au fil du texte. Ã€ la base, les
logiciels de traitements de texte n'opÃ¨rent pas diffÃ©remment, sauf
qu'ils cachent les codes aux utilisateurs\footnote{%
  Le leader du traitement de texte jusqu'au milieu des annÃ©es 1990,
  Word~Perfect, offrait l'option d'afficher l'ensemble des codes de
  mise en page. C'est malheureusement une caractÃ©ristique brillante
  que Microsoft Word et les autres progiciels dÃ©veloppÃ©s depuis ont
  choisi d'omettre.}. %
Sous prÃ©texte de simplicitÃ© d'utilisation, ils causent en fait bien
des mots de tÃªte. Qui ne s'est pas dÃ©jÃ&nbsp; demandÃ©, en utilisant un
traitement de texte moderne: Â«Pourquoi donc mon texte est-il
soudainement en gras?Â»

Ce chapitre explique comment aborder la rÃ©daction d'un document avec
{\LaTeX} ainsi que la syntaxe de base des diffÃ©rents types
d'instructions que l'on peut insÃ©rer dans un texte pour en spÃ©cifier
la structure et la mise en forme.


\section{SÃ©paration du contenu et de l'apparence}
\label{sec:bases:separation}

Lors de la rÃ©daction avec un systÃ¨me de mise en page tel que {\LaTeX},
on se concentre sur le contenu et la \emph{structure} du document, et
non pas sur son \emph{apparence}. Par exemple:
\begin{itemize}
\item au lieu de prescrire qu'un titre de section doit Ãªtre en gras
  14~points, on indique simplement Ã&nbsp; {\LaTeX} que le texte doit Ãªtre
  traitÃ© comme un titre de section;
  \begin{demo}
    \begin{minipage}{0.45\linewidth}
\begin{lstlisting}
\textbf{\large Titre}
\end{lstlisting}
    \end{minipage}
    \hfill \faArrowRight \hfill
    \begin{minipage}{0.45\linewidth}
\begin{lstlisting}
\section{Titre}
\end{lstlisting}
    \end{minipage}
  \end{demo}
\item au lieu de dÃ©cider qu'un mot sur lequel l'on souhaite insister
  sera en italique, on indique Ã&nbsp; {\LaTeX} de mettre de l'emphase sur
  ce mot sans se soucier de la mise en forme.
  \begin{demo}
    \begin{minipage}{0.45\linewidth}
\begin{lstlisting}
\textit{texte}
\end{lstlisting}
    \end{minipage}
    \hfill \faArrowRight \hfill
    \begin{minipage}{0.45\linewidth}
\begin{lstlisting}
\emph{texte}
\end{lstlisting}
    \end{minipage}
  \end{demo}
\end{itemize}

L'apparence du texte sera prise en charge par {\LaTeX}. Comme les
gabarits sont l'{\oe}uvre de spÃ©cialistes en typographie, il est
gÃ©nÃ©ralement prÃ©fÃ©rable de ne pas les modifier. Ã€ titre d'exemple,
{\LaTeX} dÃ©termine automatiquement la largeur des marges en fonction
de la taille de la police de maniÃ¨re Ã&nbsp; ce que les lignes de texte
comptent approximativement 70~caractÃ¨res. La raison: lorsqu'une ligne
de texte est trop longue, notre {\oe}il a de la difficultÃ© Ã&nbsp; la suivre
sur toute sa longueur. Il a tendance Ã&nbsp; passer Ã&nbsp; la ligne infÃ©rieure,
ce qui rend la lecture plus difficile.


\section{RÃ¨gles de saisie}
\label{sec:bases:saisie}

Une fois le principe de sÃ©paration du contenu et de l'apparence
compris et acceptÃ©, veillez Ã&nbsp; respecter les rÃ¨gles simples suivantes
lors de la saisie du texte.
\begin{enumerate}
\item On sÃ©pare les mots par une ou plusieurs \emph{espaces}. Qu'il y
  en ait une ou un millier, seule la premiÃ¨re compte et la mise en
  page sera la mÃªme.
  \begin{demo}
    \begin{texample}
\begin{lstlisting}
Les espaces dÃ©limitent les
mots. Leur nombre n'a pas
d'importance.
\end{lstlisting}
      \producing
      Les espaces dÃ©limitent les
      mots. Leur nombre n'a pas
      d'importance.
    \end{texample}
    \begin{texample}
\begin{lstlisting}[showstringspaces=true]
Les  espaces   dÃ©limitent
les                 mots.
Leur    nombre  n'a pas
d'importance.
\end{lstlisting}
      \producing
      Les  espaces   dÃ©limitent
      les                 mots.
      Leur    nombre  n'a pas
      d'importance.
    \end{texample}
  \end{demo}
%
\item On sÃ©pare les paragraphes par une ou plusieurs lignes blanches.
  Celles-ci n'apparaitront pas nÃ©cessairement dans le texte final; les
  gabarits standards identifient les paragraphes par un retrait de
  premiÃ¨re ligne.
  \begin{demo}
    \begin{texample}
\begin{lstlisting}
Les lignes blanches
dÃ©limitent les paragraphes.

Une ou plusieurs, Ã§a ne fait
aucune diffÃ©rence!
\end{lstlisting}
      \producing
Les lignes blanches
dÃ©limitent les
paragraphes.

        Une ou plusieurs, Ã§a ne fait aucune diffÃ©rence!
    \end{texample}
\begin{texample}
\begin{lstlisting}
Les lignes blanches
dÃ©limitent les paragraphes.



Une ou plusieurs, Ã§a ne fait
aucune diffÃ©rence!
\end{lstlisting}
      \producing
        Les lignes blanches  dÃ©limitent
        les paragraphes.



        Une ou plusieurs, Ã§a ne fait aucune diffÃ©rence!
    \end{texample}
  \end{demo}
%
\item On utilise des \emph{commandes} pour indiquer la structure du
  texte dans le texte. Celles-ci dÃ©butent presque toujours par
  le symbole Â«{\bs}Â». Ã€ la diffÃ©rence des logiciels de traitement de
  texte, les instructions de mise en forme du document sont donc
  toujours visibles et, par consÃ©quent, modifiables facilement et sans
  surprise (on ne se demande donc jamais oÃ¹ se termine le gras).
  \begin{demo}
    \begin{texample}
\begin{lstlisting}
Les commandes sont visibles
dans le \textbf{texte},
mais Ã©videmment pas dans le
\emph{document} fini.
\end{lstlisting}
      \producing
      Les commandes sont visibles
      dans le \textbf{texte},
      mais Ã©videmment pas dans le
      \emph{document} fini.
    \end{texample}
  \end{demo}
\end{enumerate}


\section{Structure d'un fichier}
\label{sec:bases:structure}

Un fichier source {\LaTeX} --- dont vous trouverez un exemple simple Ã&nbsp; la
\autoref{fig:bases:parties} --- est toujours composÃ© de deux parties:
le prÃ©ambule et le corps du document.

\begin{figure}
  \centering
  \begin{minipage}{0.75\linewidth}
\begin{lstlisting}[numbers=left, numberstyle=\tiny]
\documentclass[11pt,french]{article} `\label{lst:bases:preambule_debut}'
  \usepackage{babel}
  \usepackage[autolanguage]{numprint}
  \usepackage[utf8]{inputenc}
  \usepackage[T1]{fontenc} `\label{lst:bases:preambule_fin}'

\begin{document} `\label{lst:bases:corps_debut}'

Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Donec quam nulla, bibendum
vitae ipsum vel, fermentum pellentesque
orci.

\end{document} `\label{lst:bases:corps_fin}'
\end{lstlisting}
  \end{minipage}
  \caption[Fichier source {\LaTeX} simple comportant les deux parties
  obligatoires: le prÃ©ambule et le corps du document]{%
    Fichier source {\LaTeX} simple comportant les deux parties
    obligatoires: le prÃ©ambule (lignes
    \ref*{lst:bases:preambule_debut}--\ref*{lst:bases:preambule_fin})
    et le corps du document (lignes
    \ref*{lst:bases:corps_debut}--\ref*{lst:bases:corps_fin}).}
  \label{fig:bases:parties}
\end{figure}

\begin{description}
\item[PrÃ©ambule] Suite de commandes spÃ©cifiant la mise en forme
  globale du document (format du papier, marges, entÃªte et pied de
  page, etc.). Il contient au minimum la commande
  \cmd{\documentclass}. Les commandes contenues dans le prÃ©ambule ont
  un effet global sur le document. Les lignes
  \ref*{lst:bases:preambule_debut}--\ref*{lst:bases:preambule_fin}
  forment le prÃ©ambule dans l'exemple de la
  \autoref{fig:bases:parties}.
\item[Corps du document] Contenu du document en tant que tel. Il
  dÃ©bute par \verb=\begin{document}= et se termine par
    \verb=\end{document}=. Le corps du document peut aussi contenir
  des commandes, mais l'effet de celles-ci demeure presque toujours
  local. Les lignes
  \ref*{lst:bases:corps_debut}--\ref*{lst:bases:corps_fin} du code de
  la \autoref{fig:bases:parties} forment le corps du document.
\end{description}


\section{Classes et paquetages}
\label{sec:bases:classes}

La premiÃ¨re commande du prÃ©ambule est normalement la dÃ©claration de la
\emph{classe} du document. La forme de la dÃ©claration est la suivante:
\begin{lstlisting}
\documentclass`\oarg{options}\marg{classe}'
\end{lstlisting}
Les classes standards de {\LaTeX} sont \class{article},
\class{report}, \class{book}, \class{letter} et \class{slides}. La
\autoref{sec:organisation:classe} traite des diffÃ©rences entre les
diverses classes et des \meta{options} disponibles.

Les \emph{paquetages} permettent de modifier des commandes ou
d'ajouter des fonctionnalitÃ©s Ã&nbsp; {\LaTeX}. On charge les paquetages
dans le prÃ©ambule avec des commandes de la forme
\begin{lstlisting}
\usepackage`\marg{paquetage}'
\usepackage`\oarg{options}\marg{paquetage}'
\usepackage`\marg{paquetage1,paquetage2, ...}'
\end{lstlisting}
La premiÃ¨re et la troisiÃ¨me forme permettent de charger un ou
plusieurs paquetages sans options. La seconde permet de spÃ©cifier des
\meta{options} au chargement du paquetage. Il n'est Ã©videmment pas
possible de prÃ©ciser des options avec la troisiÃ¨me forme puisque
{\LaTeX} ne saurait Ã&nbsp; quel paquetage celles-ci se rapportent.

Certains paquetages permettent que leurs options apparaissent parmi
les \meta{options} de la commande \cmdprint{\documentclass}. Elles
sont ainsi plus Â«visiblesÂ» pour d'autres paquetages. Par exemple,
l'option \code{french} que l'on retrouve dans la dÃ©claration de la
classe Ã&nbsp; la \autoref{fig:bases:parties} est en fait une option du
paquetage \pkg{babel}.


\section{Commandes}
\label{sec:bases:commandes}

J'ai dÃ©jÃ&nbsp; fait rÃ©fÃ©rence Ã&nbsp; quelques reprises au concept de commande
{\LaTeX}. Cette section se penche sur leur syntaxe.

Les formes gÃ©nÃ©rales des commandes {\LaTeX} sont:
\begin{lstlisting}
\`\meta{nomcommande}\oarg{arg\_optionnel}\marg{arg\_obligatoire}'
\`\meta{nomcommande}'*`\oarg{arg\_optionnel}\marg{arg\_obligatoire}'
\end{lstlisting}
Ici, \meta{nomcommande} est le nom de la commande. Il dÃ©bute par le
symbole Â«{\bs}Â» et il est exclusivement formÃ© de lettres,
habituellement des minuscules ({\LaTeX} est sensible Ã&nbsp; la casse). La
forme Ã©toilÃ©e d'une commande rÃ©alise gÃ©nÃ©ralement une action
lÃ©gÃ¨rement diffÃ©rente de la version sans Ã©toile. Par exemple, la
commande \cmd{\section} crÃ©e une nouvelle section numÃ©rotÃ©e, alors que
\cmd{\section*} n'insÃ¨re aucune numÃ©rotation.

Lorsque la commande accepte des arguments, les arguments obligatoires
sont placÃ©s entre accolades \verb={ }= et les arguments optionnels
sont placÃ©s entre crochets \verb=[ ]=.

Certaines commandes n'ont aucun argument. Leur forme est alors
\begin{lstlisting}
\`\meta{nomcommande}
\end{lstlisting}
Dans ce cas, le nom de la commande se termine par tout symbole qui
n'est pas une lettre --- y compris l'espace! Cette rÃ¨gle fait en sorte
qu'une espace aprÃ¨s le nom d'une commande est considÃ©rÃ©e comme un
marqueur de la fin du nom de la commande. Cette rÃ¨gle joue parfois de
vilains tours en Â«avalantÂ» l'espace entre une commande et le mot qui
suit; voir l'\autoref{exemple:base:commandes} et
l'\autoref{ex:base:commandes}.

La portÃ©e d'une commande est limitÃ©e Ã&nbsp; la zone entre accolades
\verb={ }=, le cas Ã©chÃ©ant.

\begin{exemple}
  \label{exemple:base:commandes}
  \enlargethispage{5mm}
  Voici trois exemples de commandes {\LaTeX}: une sans argument, une
  avec un seul argument obligatoire et une commande avec deux
  arguments obligatoires et un argument optionnel.
  \begin{enumerate}
  \item La commande \cmd{\LaTeX} permet de composer de logo {\LaTeX}.
    \begin{demo}
      \begin{texample}
\begin{lstlisting}
Apprendre \LaTeX c'est
formidable!
\end{lstlisting}
        \producing
        Apprendre \LaTeX c'est
        formidable!
      \end{texample}
    \end{demo}
    Vous pouvez constater ici que l'espace suivant le nom de la
    commande a Ã©tÃ© interprÃ©tÃ©e par {\LaTeX} comme un marqueur de la
    fin de la commande et qu'elle a Ã©tÃ© supprimÃ©e du texte. Deux
    possibilitÃ©s pour contourner cette particularitÃ© du langage:
    fournir un argument vide Ã&nbsp; la commande, ou placer celle-ci entre
    accolades pour limiter sa portÃ©e Ã&nbsp; elle-mÃªme:
    \begin{demo}
      \begin{texample}
\begin{lstlisting}
Apprendre \LaTeX{} c'est
formidable!
\end{lstlisting}
        \producing
        Apprendre \LaTeX{} c'est
        formidable!
      \end{texample}
      \begin{texample}
\begin{lstlisting}
Apprendre {\LaTeX} c'est
formidable!
\end{lstlisting}
        \producing
        Apprendre {\LaTeX} c'est
        formidable!
      \end{texample}
    \end{demo}
    %
  \item La commande \cmd{\emph} met de l'emphase (en gÃ©nÃ©ral sous
    forme d'italique) sur le ou les mots en argument.
    \begin{demo}
      \begin{texample}
\begin{lstlisting}
Il est \emph{essentiel} de
connaitre la syntaxe de
{\LaTeX}.
\end{lstlisting}
        \producing
        Il est \emph{essentiel} de
        connaitre la syntaxe de
        {\LaTeX}.
      \end{texample}
    \end{demo}
    %
  \item La commande \cmd{\rule} produit un rectangle plein. Elle a
    deux arguments obligatoires: la longueur et la hauteur du
    rectangle, dans l'ordre. Un argument optionnel permet de surÃ©lever
    le rectangle au-dessus de la ligne de base (voir le
    \autoref{chap:boites} pour plus de dÃ©tails).
    \begin{demo}
      \begin{texample}
\begin{lstlisting}
RÃ©glure de 1~cm de long et
3~mm d'Ã©pais surÃ©levÃ©e de
2~points au-dessus de la
ligne de base:
\rule[2pt]{1cm}{3mm}.
\end{lstlisting}
        \producing
        RÃ©glure de $1$~cm de long et
        $3$~mm d'Ã©pais surÃ©levÃ©e de
        $2$~points au-dessus de la
        ligne de base: \rule[2pt]{1cm}{3mm}.
      \end{texample}
    \end{demo}
  \end{enumerate}
  \qed
\end{exemple}

\begin{exemple}
  La commande \cmd{\bfseries} sÃ©lectionne une police
  grasse pour tout le texte qui suit.
  \begin{demo}
    \begin{texample}
\begin{lstlisting}
En typographie, la \bfseries
graisse est l'Ã©paisseur d'un
trait ou d'un caractÃ¨re.
\end{lstlisting}
      \producing
      En typographie, la \bfseries
      graisse est l'Ã©paisseur d'un
      trait ou d'un caractÃ¨re.
    \end{texample}
  \end{demo}
  Pour limiter le changement Ã&nbsp; une zone de texte, il faut la dÃ©limiter
  par des accolades.
\begin{demo}
    \begin{texample}
\begin{lstlisting}
En typographie, la {\bfseries
graisse est l'Ã©paisseur d'un
trait} ou d'un caractÃ¨re.
\end{lstlisting}
      \producing
      En typographie, la {\bfseries
      graisse est l'Ã©paisseur dâ€™un
      trait} ou dâ€™un caractÃ¨re.
    \end{texample}
  \end{demo}
  \qed
\end{exemple}

Vous pouvez dÃ©finir des nouvelles commandes {\LaTeX} Ã&nbsp; loisir. Ceci
est expliquÃ© au \autoref{chap:commandes}.


\section{Environnements}
\label{sec:bases:environnements}

Un environnement {\LaTeX} est une zone de texte dÃ©limitÃ©e par une
construction du type
\begin{lstlisting}
\begin`\marg{environnement}'
   ...
\end`\marg{environnement}'
\end{lstlisting}
Le contenu d'un environnement est traitÃ© diffÃ©remment du reste du
texte en fonction des paramÃ¨tres de l'environnement. Par exemple, le
texte Ã&nbsp; l'intÃ©rieur d'un environnement \Ie{center} est centrÃ© sur la
page.

Les changements induits par un environnement s'appliquent uniquement Ã&nbsp;
l'intÃ©rieur de celui-ci. Il en va de mÃªme des commandes utilisÃ©es Ã&nbsp;
l'intÃ©rieur d'un environnement.

\begin{exemple}
  L'environnement \Ie{quote} sert Ã&nbsp; composer des citations. Le texte Ã&nbsp;
  l'intÃ©rieur de l'environnement sera placÃ© dans un bloc sÃ©parÃ© du
  texte principal et en retrait des marges gauche et droite.
  \begin{demo}
    \begin{texample}
\begin{lstlisting}
La phrase
\begin{quote}
  Attention aux bogues dans
  le code ci-dessus; je ne
  l'ai pas testÃ©, j'ai
  seulement prouvÃ© qu'il
  Ã©tait correct.
\end{quote}
est une citation cÃ©lÃ¨bre du
crÃ©ateur de {\TeX}, Donald
Knuth.
\end{lstlisting}
      \producing
      La phrase
      \begin{quote}
        Attention aux bogues dans le code ci-dessus; je ne l'ai pas testÃ©,
        j'ai seulement prouvÃ© qu'il Ã©tait correct.
      \end{quote}
      est une citation cÃ©lÃ¨bre du crÃ©ateur de {\TeX}, Donald Knuth.
    \end{texample}
  \end{demo}
  Si la citation est dans la langue originale, il est prÃ©fÃ©rable de la
  composer en italique.
  \begin{demo}
    \begin{texample}
\begin{lstlisting}
La phrase
\begin{quote}
  \itshape
  Beware of bugs in the above
  code; I have only proved it
  correct, not tried it.
\end{quote}
est une citation cÃ©lÃ¨bre du
crÃ©ateur de {\TeX}, Donald
Knuth.
\end{lstlisting}
      \producing
      La phrase
      \begin{quote}
        \itshape
        Beware of bugs in the above code; I have only proved it
        correct, not tried it.
      \end{quote}
      est une citation cÃ©lÃ¨bre du crÃ©ateur de {\TeX}, Donald Knuth.
    \end{texample}
  \end{demo}
  On remarque que l'effet de la commande \cmdprint{\itshape} s'est
  limitÃ© Ã&nbsp; l'environnement. %
  \qed
\end{exemple}


\section{Longueurs}
\label{sec:bases:longueurs}

Plusieurs commandes {\LaTeX} requiÃ¨rent en argument une mesure de
largeur ou de hauteur. Dans la terminologie de {\LaTeX}, on parle plus
gÃ©nÃ©ralement de longueur\index{longueur} (\emph{length}).

Une longueur est un nombre positif, nÃ©gatif ou nul
\emph{obligatoirement} et \emph{immÃ©diatement} suivi d'un symbole
d'unitÃ© de mesure. Le \autoref{tab:bases:longueurs} prÃ©sente les
principales unitÃ©s de mesure utilisÃ©es par {\LaTeX} et le symbole
correspondant.

\begin{table}
  \caption{Principales unitÃ©s de mesure pour les longueurs dans
    {\LaTeX}}
  \label{tab:bases:longueurs}
  \centering
  \begin{tabular}{lcl}
    \toprule
    Nom ou description &amp; Symbole &amp; Longueur Ã©quivalente \\
    \midrule
    millimÃ¨tre &amp; \texttt{mm} \\
    centimÃ¨tre &amp; \texttt{cm} &amp; $10$~mm \\
    pouce      &amp; \texttt{in} &amp; $2,54$~cm \\
    point      &amp; \texttt{pt} &amp; $1/72,27$~pouce \\
    point PostScript     &amp; \texttt{bp}   &amp; $1/72$~pouce \\
    largeur de la lettre M &amp; \texttt{em} &amp; fonction de la police \\
    hauteur de la lettre x &amp; \texttt{ex} &amp; fonction de la police \\
    \bottomrule
  \end{tabular}
\end{table}

Il existe un certain nombre de longueurs prÃ©dÃ©finies. Les plus utiles
sont \cmd{\linewidth}, qui contient la largeur de la ligne de texte
courante, et \cmd{\textwidth}, qui contient la largeur de la page
courante. Dans du texte normal, les deux mesures sont habituellement
Ã©gales.


\section{Commentaires}
\label{sec:bases:commentaires}

Le symbole Â«\verb=%=Â» indique un commentaire dans le code source: tout
le texte aprÃ¨s le symbole jusqu'Ã&nbsp; la fin de la ligne est ignorÃ© par
{\LaTeX}.
\begin{demo}
  \begin{texample}
\begin{lstlisting}
texte % ignorÃ© par LaTeX
\end{lstlisting}
    \producing
    texte % ignorÃ© par LaTeX
  \end{texample}
\end{demo}


\section{CaractÃ¨res spÃ©ciaux}
\label{sec:bases:caracteres}

Les claviers d'ordinateur mettent Ã&nbsp; la disposition des auteurs toutes
les lettres de l'alphabet (en versions minuscule et majuscule), les
chiffres de 0 Ã&nbsp; 9, un certain nombre de symboles et, selon le clavier,
des versions accentuÃ©es de certaines lettres. L'entrÃ©e des lettres et
des chiffres ne pose pas de problÃ¨me particulier pour {\LaTeX}, mais
certains symboles sont rÃ©servÃ©s. De plus, certains symboles d'usage
courant ne sont pas disponibles sur les claviers.

\subsection{Espaces et retours Ã&nbsp; la ligne}
\label{sec:bases:caracteres:espaces}

J'ai dÃ©jÃ&nbsp; abordÃ© Ã&nbsp; la \autoref{sec:bases:saisie} le traitement spÃ©cial
rÃ©servÃ© par {\LaTeX} aux espaces et aux retours Ã&nbsp; la ligne dans le
code source. Les prÃ©cisions suivantes s'imposent:
\begin{itemize}
\item seule la premiÃ¨re espace entre deux Ã©lÃ©ments compte;
\item les espaces en dÃ©but de ligne sont ignorÃ©es;
\item un retour Ã&nbsp; la ligne simple est traitÃ© comme une espace;
\item il faut deux retours Ã&nbsp; la ligne consÃ©cutifs (ce qui rÃ©sulte en
  une ligne blanche dans le code source) pour identifier un changement
  de paragraphe.
\end{itemize}

Pour forcer une espace Ã&nbsp; un endroit oÃ¹ {\LaTeX} la supprimerait
normalement, utiliser la commande \verb*=\ = (le symbole Â«\bsÂ» suivi
d'une espace, reprÃ©sentÃ©e ici par le symbole \verb*| |.
\begin{demo}
  \begin{texample}
\begin{lstlisting}
Apprendre \LaTeX\ c'est
formidable!
\end{lstlisting}
    \producing
    Apprendre \LaTeX\ c'est
    formidable!
  \end{texample}
\end{demo}

Dans le mÃªme ordre d'idÃ©es, le symbole Â«\verb=~=Â» insÃ¨re une espace
insÃ©cable entre deux mots, de telle sorte que {\LaTeX} ne pourra
placer les mots sur des lignes diffÃ©rentes. Vous devriez insÃ©rer ce
symbole dans les noms ou entre une quantitÃ© et son unitÃ©.
\begin{demo}
  \begin{texample}
\begin{lstlisting}
M.~Tremblay me doit au
moins 200~\$.
\end{lstlisting}
    \producing
    M.~Tremblay me doit au moins 200~\$.
  \end{texample}
\end{demo}

Il peut arriver que l'espace gÃ©nÃ©rÃ©e par un retour Ã&nbsp; la ligne
\emph{simple} s'avÃ¨re indÃ©sirable. Dans de tels cas, placez un symbole
de commentaire Â«\verb=%=Â» Ã&nbsp; la fin de la ligne.
\begin{demo}
  \begin{texample}
\begin{lstlisting}
Donald Knuth est un dieu
\textsuperscript{[citation]}
.
\end{lstlisting}
    \producing
    Donald Knuth est un dieu
    \textsuperscript{[citation]}
    .
  \end{texample}
  \begin{texample}
\begin{lstlisting}
Donald Knuth est un dieu%
\textsuperscript{[citation]}%
.
\end{lstlisting}
    \producing
    Donald Knuth est un dieu%
    \textsuperscript{[citation]}%
    .
  \end{texample}
\end{demo}

\subsection{CaractÃ¨res rÃ©servÃ©s}
\label{sec:bases:caracteres:reserves}

Comme Ã&nbsp; peu prÃ¨s tous les langages de programmation, {\TeX} rÃ©serve
certains caractÃ¨res pour son usage interne. Les caractÃ¨res suivants sont
interprÃ©tÃ©s comme des commandes:
\begin{center}
  \verb=# $ &amp; ~ _ ^ % { }=
\end{center}

Pour utiliser les symboles ci-dessus tels quels dans le texte, il faut
les prÃ©cÃ©der par le symbole Â«\bsÂ»:
\index{#@\cs{}\texttt{\#}}
\index{$@\cs{}\texttt{\$}} %$
\index{&amp;@\cs{}\texttt{\&amp;}}
\index{_@\cs{}\texttt{\_}}
\index{%@\cs{}\texttt{\%}}
\begin{demo}
  \begin{minipage}{0.15\linewidth}
    \begin{texample}
\begin{lstlisting}
\#
\end{lstlisting}
      \producing\ \#
    \end{texample}
  \end{minipage}
  \hfill
  \begin{minipage}{0.15\linewidth}
    \begin{texample}
\begin{lstlisting}
\$
\end{lstlisting}
      \producing\ \$
    \end{texample}
  \end{minipage}
  \hfill
  \begin{minipage}{0.15\linewidth}
    \begin{texample}
\begin{lstlisting}
\&amp;
\end{lstlisting}
      \producing\ \&amp;
    \end{texample}
  \end{minipage}
  \hfill
  \begin{minipage}{0.15\linewidth}
    \begin{texample}
\begin{lstlisting}
\_
\end{lstlisting}
      \producing\rule{0pt}{1em}\ \_
    \end{texample}
  \end{minipage}
  \\
  \begin{minipage}{0.15\linewidth}
    \begin{texample}
\begin{lstlisting}[commentstyle=\mdseries]
\%
\end{lstlisting}
      \producing\ \%
    \end{texample}
  \end{minipage}
  \hfill
  \begin{minipage}{0.15\linewidth}
    \begin{texample}
\begin{lstlisting}
\{
\end{lstlisting}
      \producing\ \{
    \end{texample}
  \end{minipage}
  \hfill
  \begin{minipage}{0.15\linewidth}
    \begin{texample}
\begin{lstlisting}
\}
\end{lstlisting}
      \producing\ \}
    \end{texample}
  \end{minipage}
  \hfill
  \begin{minipage}{0.15\linewidth}
    \mbox{}
  \end{minipage}
  \hfill
\end{demo}
(Les commandes \verb=\^= et \verb=\~= servent Ã&nbsp; crÃ©er des accents;
voir la \autoref{sec:bases:caracteres:accents}.)

\subsection{Guillemets}
\label{sec:bases:caracteres:guillemets}

L'usage des guillemets nÃ©cessite une attention particuliÃ¨re dans
{\LaTeX}. Vous ne devriez pas utiliser dans le code source les
guillemets doubles Â«\verb="=Â» qui se trouvent couramment sur les
claviers d'ordinateurs.

Pour obtenir les guillemets anglais, il faut utiliser deux symboles
d'accent grave cÃ´te Ã&nbsp; cÃ´te pour les guillemets ouvrants Â«``Â» et deux
apostrophes cÃ´te Ã&nbsp; cÃ´te pour les guillemets fermants Â«''Â».
\begin{demo}
  \begin{texample}
\begin{lstlisting}[escapeinside={}]
``guillemets anglais''
\end{lstlisting}
    \producing
    ``guillemets anglais''
  \end{texample}
\end{demo}

En typographie franÃ§aise, il convient d'utiliser les chevrons (Â«\ Â»)
comme guillemets. Avec la configuration appropriÃ©e de \pkg{babel}
(voir la \autoref{sec:bases:francais}), vous pourrez utiliser
directement dans le code source les symboles \,\verb=Â«=\, et
\,\verb=Â»=\, disponibles sur un clavier franÃ§ais. L'espacement requis
autour des symboles est gÃ©rÃ© automatiquement.
\begin{demo}
  \begin{texample}
\begin{lstlisting}
Â«guillemets franÃ§aisÂ»
\end{lstlisting}
    \producing
    Â«guillemets franÃ§aisÂ»
  \end{texample}
  \begin{texample}
\begin{lstlisting}
Â« guillemets franÃ§ais Â»
\end{lstlisting}
    \producing
    Â« guillemets franÃ§ais Â»
  \end{texample}
\end{demo}
En franÃ§ais, les guillemets anglais ne servent que pour les citations
incluses, c'est-Ã&nbsp;-dire pour les citations Ã&nbsp; l'intÃ©rieur d'une
citation.
\begin{demo}
  \begin{texample}
\begin{lstlisting}[escapeinside={}]
Elle m'a dit: Â«Laurent fait
dire ``non merci''.Â»
\end{lstlisting}
    \producing
    Elle m'a dit: Â«Laurent fait
    dire ``non merci''.Â»
  \end{texample}
\end{demo}

Les bons Ã©diteurs de texte adaptÃ©s pour {\LaTeX} redÃ©finissent
l'action de la touche %
%% simili touche de clavier faite main Ã&nbsp; partir; utilisation de
%% \ooalign tirÃ©e de comprehensive.pdf, section 10.3
\raisebox{-2pt}{%
  \ooalign{\hfil\Large\faSquare[regular]\hfil\cr\hfil\ttfamily\textquotedbl\hfil}} %
du clavier pour insÃ©rer les symboles appropriÃ©s selon la langue du
document.

Le paquetage \pkg{csquotes} \citep{csquotes} propose une autre approche
pour la saisie des guillemets. Il fournit une commande
\cmdprint{\enquote} qui entoure son argument des guillemets appropriÃ©s
selon le contexte et la langue du texte. Cette solution peut s'avÃ©rer
intÃ©ressante pour les nouveaux venus Ã&nbsp; {\LaTeX} qui n'ont pas encore
pris l'habitude d'entrer directement les bons guillemets.

\subsection{Trait d'union et tirets}
\label{sec:bases:caracteres:tirets}

On trouve en typographie soignÃ©e trois sortes de tirets de longueurs
diffÃ©rentes:
\begin{enumerate}
\item le trait d'union Â«-Â» qui sert Ã&nbsp; relier des mots entre eux;
\item le tiret demi-cadratin Â«--Â» qui sert Ã&nbsp; joindre deux Ã©lÃ©ments qui
  comportent dÃ©jÃ&nbsp; des traits d'union (\emph{Trois-RiviÃ¨res--QuÃ©bec});
\item le tiret cadratin Â«---Â» qui sert Ã&nbsp; identifier le changement
  d'interlocuteur dans les dialogues ou qui remplacent parfois les
  parenthÃ¨ses dans du texte normal.
\end{enumerate}

S'il est simple d'entrer un trait d'union Ã&nbsp; l'ordinateur, il est rare
que les claviers comportent des touches pour entrer les tirets
demi-cadratin et cadratin (ou alors cela se fait via une obscure
combinaison de touches). {\LaTeX} permet de crÃ©er facilement tous les
tirets ci-dessus en rÃ©pÃ©tant simplement le trait d'union deux ou trois
fois.
\begin{demo}
  \begin{minipage}{0.2\linewidth}
    \begin{texample}
\begin{lstlisting}
-
\end{lstlisting}
      \producing\ -
    \end{texample}
  \end{minipage}
  \hfill
  \begin{minipage}{0.2\linewidth}
    \begin{texample}
\begin{lstlisting}
--
\end{lstlisting}
      \producing\ --
    \end{texample}
  \end{minipage}
  \hfill
  \begin{minipage}{0.2\linewidth}
    \begin{texample}
\begin{lstlisting}
---
\end{lstlisting}
      \producing\ ---
    \end{texample}
  \end{minipage}
\end{demo}

\subsection{Accents et ligatures}
\label{sec:bases:caracteres:accents}

Ã€ la base, {\LaTeX} ne reconnait pas les lettres accentuÃ©es ni les
ligatures comme {\ae} et {\oe} qui ne sont pas courantes en anglais.
NÃ©anmoins, il est possible de crÃ©er ces symboles avec des commandes.
\begin{demo}
  \begin{minipage}{0.2\linewidth}
    \begin{texample}
\begin{lstlisting}
\'{o}
\end{lstlisting}
      \producing\ \'{o}
    \end{texample}
  \end{minipage}
  \hfill
  \begin{minipage}{0.2\linewidth}
    \begin{texample}
\begin{lstlisting}[escapeinside={}]
\`{o}
\end{lstlisting}
      \producing\ \`{o}
    \end{texample}
  \end{minipage}
  \hfill
  \begin{minipage}{0.2\linewidth}
    \begin{texample}
\begin{lstlisting}
\^{o}
\end{lstlisting}
      \producing\ \^{o}
    \end{texample}
  \end{minipage}
  \hfill
  \begin{minipage}{0.2\linewidth}
    \begin{texample}
\begin{lstlisting}
\"{o}
\end{lstlisting}
      \producing\ \"{o}
    \end{texample}
  \end{minipage} \\
  \hfill
  \begin{minipage}{0.2\linewidth}
    \begin{texample}
\begin{lstlisting}
{\ae}
\end{lstlisting}
      \producing\ \ae
    \end{texample}
  \end{minipage}
  \hfill
  \begin{minipage}{0.2\linewidth}
    \begin{texample}
\begin{lstlisting}
{\AE}
\end{lstlisting}
      \producing\ \AE
    \end{texample}
  \end{minipage}
  \hfill
  \begin{minipage}{0.2\linewidth}
    \begin{texample}
\begin{lstlisting}
{\oe}
\end{lstlisting}
      \producing\ \oe
    \end{texample}
  \end{minipage}
  \hfill
  \begin{minipage}{0.2\linewidth}
    \begin{texample}
\begin{lstlisting}
{\OE}
\end{lstlisting}
      \producing\ \OE
    \end{texample}
  \end{minipage}
\end{demo}

Ã‰videmment, entrer tous les accents d'un texte en franÃ§ais avec les
commandes ci-dessus se rÃ©vÃ©lerait un vÃ©ritable cauchemar.
Heureusement, avec la configuration appropriÃ©e, il est possible
d'entrer directement les lettres accentuÃ©es que l'on trouve couramment
sur un clavier, voire mÃªme certaines ligatures si l'on utilise
l'encodage UTF-8. La \autoref{sec:bases:francais} fournit les dÃ©tails.

Les commandes pour les accents demeurent utiles pour composer les
lettres accentuÃ©es des langues europÃ©ennes autres que le franÃ§ais.
Vous trouverez la liste de ces commandes, ainsi que celles pour
composer une multitude d'autres symboles, Ã&nbsp; la section~2 de la trÃ¨s
utile %
\doc[\emph{Comprehensive {\LaTeX} Symbol
  List}]{comprehensive}{https://texdoc.net/pkg/comprehensive} %
\citep{comprehensive}.


\section{{\LaTeX} en franÃ§ais}
\label{sec:bases:francais}

Historiquement, {\LaTeX} Ã©tait prÃ©vu pour la rÃ©daction de documents en
anglais. Fort heureusement, il est aujourd'hui beaucoup plus aisÃ© de
rÃ©diger des documents dans d'autres langues.

\subsection{Approche moderne recommandÃ©e}
\label{sec:bases:francais:xetex}

La maniÃ¨re de loin la plus simple, et celle que je recommande
vivement, pour rÃ©diger des documents en franÃ§ais consiste Ã&nbsp;
enregistrer le code source dans le codage de caractÃ¨res %
\link{https://fr.wikipedia.org/wiki/UTF-8}{UTF-8} %
et Ã&nbsp; compiler avec {\XeLaTeX}. Vous pourrez ainsi entrer les lettres
accentuÃ©es directement au clavier (Â«\code{Ã©}Â») sans devoir passer par
les commandes {\TeX} de la section prÃ©cÃ©dente (Â«\code{{\bs}'e}Â»).

Vous devrez aussi charger le paquetage \pkg{fontspec} \citep{fontspec}
dans le prÃ©ambule pour obtenir les lettres accentuÃ©es dans le fichier
PDF. Cela ne reprÃ©sente toutefois pas vÃ©ritablement une Ã©tape de
configuration additionnelle puisque ce paquetage est frÃ©quemment
employÃ© avec {\XeLaTeX} pour contrÃ´ler le chargement des polices de
caractÃ¨res (plus de dÃ©tails Ã&nbsp; la \autoref{sec:trucs:polices}).

\subsection{Approche traditionnelle}
\label{sec:bases:francais:pdftex}

L'approche plus traditionnelle, basÃ©e sur pdf{\LaTeX}, de rÃ©daction de
documents dans une langue autre que l'anglais nÃ©cessite le chargement
de divers paquetages.

Tout d'abord, il faut charger le paquetage \pkg{inputenc}
\citep{inputenc} pour faire en sorte que les lettres accentuÃ©es seront
reconnues par {\LaTeX}. Il faut spÃ©cifier le type de codage utilisÃ©.
Tel que mentionnÃ© ci-dessus, vous devriez aujourd'hui utiliser
l'UTF-8.
\begin{lstlisting}
\usepackage[utf8]{inputenc}
\end{lstlisting}

AprÃ¨s avoir configurÃ© l'entrÃ©e des caractÃ¨res, il faut Ã©galement
configurer la sortie. Pour que la coupure automatique des mots
contenant des lettres accentuÃ©es fonctionne correctement avec
pdf{\LaTeX}, il faut activer le codage de sortie des caractÃ¨res nommÃ©
Â«T1Â» Ã&nbsp; l'aide du paquetage \pkg{fontenc} \citep{fontenc}.
\begin{lstlisting}
\usepackage[T1]{fontenc}
\end{lstlisting}

\subsection{Typographie et mots clÃ©s franÃ§ais}
\label{sec:bases:francais:babel}

Entrer du texte en franÃ§ais dans le code source n'est pas tout. Il
faut adapter {\LaTeX} au franÃ§ais, qu'il s'agisse des mots clÃ©s (tels
Â«Table des matiÃ¨resÂ» ou Â«BibliographieÂ»), de la typographie ou de la
coupure des mots. La solution standard provient du paquetage
\pkg{babel} \citep{babel}. Celui-ci permet de combiner plusieurs
langues dans un mÃªme document et de passer de l'une Ã&nbsp; l'autre
facilement. Consultez la %
\doc{frenchb}{https://texdoc.net/pkg/babel-french} %
du paquetage \pkg{babel-french} pour connaitre toutes les adaptations
au franÃ§ais offertes par ce paquetage incontournable.

\subsection{Guillemets franÃ§ais}
\label{sec:bases:francais:guillemets}

Une espace fine devrait sÃ©parer les guillemets du ou des mots qu'ils
entourent. Pour que l'espace autour des symboles soit gÃ©rÃ©
automatiquement par \pkg{babel}, il suffit d'ajouter dans le prÃ©ambule
la commande
\begin{lstlisting}
\frenchbsetup{og=Â«, fg=Â»}
\end{lstlisting}

\subsection{SÃ©parateur dÃ©cimal}
\label{sec:bases:francais:virgule}

Le sÃ©parateur dÃ©cimal en franÃ§ais est la virgule et non le point. Or,
en mode mathÃ©matique, {\LaTeX} ajoute automatiquement une espace fine
aprÃ¨s une virgule comme s'il s'agissait d'une Ã©numÃ©ration.

Afin de pouvoir utiliser de maniÃ¨re conviviale la virgule comme
sÃ©parateur dÃ©cimal en mode mathÃ©matique, chargez dans vos documents le
trÃ¨s pratique paquetage \pkg{icomma} \citep{icomma}. Avec ce
paquetage, la virgule agira comme sÃ©parateur dÃ©cimal en mode
mathÃ©matique seulement lorsqu'elle est suivie d'un caractÃ¨re autre que
l'espace.
\begin{demo}
  \begin{minipage}{0.5\linewidth}
    \begin{texample}[0.6\linewidth]
\begin{lstlisting}
% nombre dÃ©cimal
$x = 1,2$
\end{lstlisting}
      \producing
      $x = 1,2$
    \end{texample}
  \end{minipage}
  \hfill
  \begin{minipage}{0.5\linewidth}
    \begin{texample}[0.6\linewidth]
\begin{lstlisting}
% Ã©numÃ©ration
$x = 1, 2, 3$
\end{lstlisting}
      \producing
      $x = 1, 2, 3$
    \end{texample}
  \end{minipage}
\end{demo}

\importantbox{Le paquetage \pkg{icomma} peut entrer en conflit avec
  certains autres. Aussi est-il prÃ©fÃ©rable de le charger parmi les
  derniers dans le prÃ©ambule, et certainement aprÃ¨s les paquetages
  \pkg{fontspec} et \pkg{unicode-math} avec {\XeLaTeX}.}

\subsection{SÃ©parateur des milliers}
\label{sec:bases:francais:milliers}

Le sÃ©parateur des milliers en franÃ§ais est l'espace. Lorsque le
paquetage \pkg{numprint} \citep{numprint} est chargÃ©, \pkg{babel}
fournit la commande \cmd{\nombre} pour formater automatiquement les
nombres.
\begin{demo}
  \begin{texample}
\begin{lstlisting}
\nombre{123456789}
\end{lstlisting}
    \producing
    \nombre{123456789}
  \end{texample}
\end{demo}

Le \autoref{tab:bases:francais} rÃ©sume les divers enjeux liÃ©s Ã&nbsp; la
rÃ©daction en franÃ§ais avec {\LaTeX} et les paquetages qui offrent des
solutions.

\begin{table}
  \centering
  \caption{Principaux enjeux de rÃ©daction en franÃ§ais et paquetages
    offrant des solutions}
  \label{tab:bases:francais}
  \begin{tabularx}{1.0\linewidth}{Xl}
    \toprule
    Enjeu &amp; Solution \\
    \midrule
    \addlinespace[0.5\normalbaselineskip]
    Traduction des mots clÃ©s prÃ©dÃ©finis &amp; \pkg{babel} \\
    \addlinespace[0.5\normalbaselineskip]
    Coupure de mots &amp; \pkg{babel} \\
    \addlinespace[0.5\normalbaselineskip]
    Typographie franÃ§aise &amp; \pkg{babel} \\
    \addlinespace[0.5\normalbaselineskip]
    Lettres accentuÃ©es dans source &amp; source en UTF-8 (\XeLaTeX) \\
                                   &amp; \pkg{inputenc} (\LaTeX) \\
    \addlinespace[0.5\normalbaselineskip]
    Lettres accentuÃ©es dans sortie &amp; \pkg{fontspec} (\XeLaTeX) \\
                                   &amp; \pkg{fontenc} (\LaTeX) \\
    \addlinespace[0.5\normalbaselineskip]
    Virgule comme sÃ©parateur dÃ©cimal &amp; \pkg{icomma} \\
    \addlinespace[0.5\normalbaselineskip]
    Espace comme sÃ©parateur des milliers &amp; \pkg{numprint} et
                                           \pkg{babel} \\
    \bottomrule
  \end{tabularx}
\end{table}


%%%
%%% Exercices
%%%

\section{Exercices}
\label{sec:bases:exercices}

\Opensolutionfile{solutions}[solutions-bases]

\begin{Filesave}{solutions}
\section*{Chapitre \ref*{chap:bases}}
\addcontentsline{toc}{section}{Chapitre \protect\ref*{chap:bases}}

\end{Filesave}

\begin{exercice}[nosol]
  Utiliser le fichier \fichier{exercice-minimal.tex}.
  \begin{enumerate}
  \item Compiler le document avec la classe \class{article}, puis avec
    la classe \class{book}. Observer le rÃ©sultat.
  \item Ajouter du texte en franÃ§ais (avec accents), puis compiler et
    observer le rÃ©sultat.
  \end{enumerate}
\end{exercice}

\begin{exercice}
  \label{ex:base:commandes}
  Modifier le fichier \fichier{exercice-commandes.tex} afin
  de produire le texte ci-dessous.
  \begin{demo}
    \fbox{\includegraphics[viewport=108 551 502 665,clip=true,width=0.98\linewidth]{auxdoc/exercice-commandes-solution}}
  \end{demo}
  \begin{sol}
    Il y a trois modifications principales Ã&nbsp; apporter au fichier.
    \begin{enumerate}[1.]
    \item La commande {\LaTeX} qui imprime le logo de LaTeX n'ayant
      pas d'argument, il faut l'Ã©crire sous la forme
      \verb={\LaTeX}= ou \verb=\LaTeX{}= pour Ã©viter que l'espace
      qui suit ne soit avalÃ©e par la commande.
    \item Il faut dÃ©limiter par des accolades la zone Ã&nbsp; laquelle la
      commande \cmdprint{\bfseries} doit s'appliquer:
\begin{lstlisting}
{\bfseries limitÃ©e}
\end{lstlisting}
    \item Il faut utiliser l'environnement \Pe{enumerate} pour les
      listes numÃ©rotÃ©es. L'environnement \Pe{itemize} sert pour les
      listes Ã&nbsp; puces.
    \end{enumerate}
  \end{sol}
\end{exercice}

\begin{exercice}[nosol]
  \begin{enumerate}
  \item Compiler le fichier \fichier{exercice-classe+paquetages.tex}.
  \item Changer la police du document pour 11~points, puis 12~points.
    Observer l'effet sur les marges et sur la coupure automatique des
    mots dans le document compilÃ©.
  \item Activer le paquetage \pkg{icomma} en supprimant le symbole
    \% au dÃ©but de la ligne dans le prÃ©ambule. Compiler le document
    et observer l'effet sur la formule mathÃ©matique.
  \item Charger le paquetage \pkg{numprint} avec l'option
    \verb=autolanguage= (\emph{aprÃ¨s} le paquetage \pkg{babel}). Dans
    le code source de la formule mathÃ©matique, changer
\begin{lstlisting}
10 000
\end{lstlisting}
    pour
\begin{lstlisting}
\nombre{10000}
\end{lstlisting}
    Compiler et observer le rÃ©sultat.
  \end{enumerate}
\end{exercice}

\Closesolutionfile{solutions}

%%% Local Variables:
%%% mode: latex
%%% TeX-master: "formation-latex-ul"
%%% TeX-engine: xetex
%%% coding: utf-8
%%% End:
</pre></body></html>