IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo

FAQ LaTeX/TeXConsultez toutes les FAQ

Nombre d'auteurs : 25, nombre de questions : 148, dernière mise à jour : 31 août 2017  Ajouter une question

 

Bienvenue sur la FAQ LaTeX, elle répondra aux questions les plus fréquemment posées.
Je tiens à souligner que cette faq ne garantit en aucun cas que les informations qu'elle propose soient correctes ; les auteurs font le maximum, mais l'erreur est humaine. Cette faq ne prétend pas non plus être complète.

SommaireLaTeXLaTeX avancé (10)
précédent sommaire suivant
 

Pour inclure un fichier, plusieurs manières de faire:

La commande \input{fichier} : remplace par le contenu de fichier.tex. Fichier peut lui-même inclure une commande \input.

La commande \include{fichier} : insère fichier.tex ou sa version pré-compilée. Le fichier ne sera recompilé s'il n'a pas été modifié depuis la dernière compilation. \includene peut apparaître dans l'en-tête, et le texte inséré doit former un ensemble de pages indépendantes.

La commande \includeonly{fichier1, fichier2, ...} : placée dans l'en-tête, restreint la liste des fichiers insérés à l'aide de la commande \include. Les fichiers absents de la liste ne seront pas remis à jour même s'ils ont été modifiés depuis la dernière compilation.

Il n'y a pas de version précompilée, tout les fichiers inclus sont toujours complètement recompilés. Ce qui se passe avec includeonly, c'est que les fichiers auxiliaires qui servent pour les références, tables des matières, etc sont charges pour toutes les sources spécifiées par \include, mais seules les sources aussi données dans \includeonly s'il y en a un sont recompilées.

Mis à jour le 12 octobre 2005 Ashgenesis Jean-Marc.Bourguet

Naturellement !

Pour déclarer un compteur :

Code LaTeX : Sélectionner tout
\newcompteur{NomDuCompteur}

Pour l'incrémenter :

Code LaTeX : Sélectionner tout
\addtocounter{NomDuCompteur}{Valeur}

Pour l'utiliser, selon la représentation que l'on veut, on utilisera l'une des commandes suivantes :

Code LaTeX : Sélectionner tout
1
2
3
4
5
6
\arabic{NomDuCompteur} 
\arabic{NomDuCompteur} 
\Alph{NomDuCompteur} 
\alph{NomDuCompteur} 
\Roman{NomDuCompteur} 
\roman{NomDuCompteur}
On peut utiliser ces commandes dans d'autres commandes, exemple :

Code LaTeX : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
\newcounter{tata}  
  
% \ph command 
% Insert the next picture here ! 
\newcommand{\ph}[1]{% 
\addtocounter{tata}{1}% 
\begin{center} 
\noindent \includegraphics[width=#1]{images/\arabic{tata}.eps}% 
\end{center} 
}

Mis à jour le 12 octobre 2005 Smortex

Il faut utiliser la commande \newcommand :

Code LaTeX : Sélectionner tout
\newcommand{MaCommande}[NbArg]{Def}
  • MaCommande : nom par lequel vous appellerez votre commande
  • NbArg : nombre d'arguments (0~9)
  • Def : contenu de votre fonction. Il faut utiliser #1 pour appeler l'argument 1, #2 pour le 2, etc

Exemple :

Code LaTeX : Sélectionner tout
\newcommand{\MonTitre}[1]{\textbf{#1} \vspace{0.2cm} \hrule \vspace{1cm}}
vous permettra d'avoir un titre en gras avec une hrule au simple appel de \MonTitre{toto}.

Mis à jour le 12 octobre 2005 ghostdogpr

Il suffit d'utiliser la commande \renewcommand de la même manière que \newcommand.

Mis à jour le 12 octobre 2005 ghostdogpr

En utilisant le package pdfpages?.

Ceci n'est valable que pour le pdfLATEX, il permet d'inclure des fichiers pdf dans votre document final. Pour ce faire il suffit simplement d'inclure dans votre document le package pdfpages et de taper dans votre éditeur.

Code LaTeX : Sélectionner tout
\includepdf[pages=-]{votre_fichier}

les options d'insertion sont variées, par exemple l'option [pages=-] veut dire : insertion de toutes les pages contenues dans le pdf.

Mis à jour le 12 octobre 2005 Konrad Florczak

Voici les principale couleur à définir dans un fichier .tex tout ce qu'il faut faire ensuite c'est :

  • Le définir en tant que nouvelles commandes pour chaque couleur: \definecolor{orange}{rgb}{1.00,0.50,0.00}
  • Sauvegarder le fichier tex en couleurs.tex
  • Insérez le dans les déclarations avant le \begin{document} comme ceci: \input{couleurs.tex}

Code LaTeX : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
\textcolor[rgb]{1.00,1.00,1.00}{blanc} 
\textcolor[rgb]{1.00,1.00,0.00}{jaune} 
\textcolor[rgb]{1.00,0.50,0.00}{orange} 
\textcolor[rgb]{1.00,0.00,0.00}{rouge} 
\textcolor[rgb]{0.00,1.00,0.00}{vert clair} 
\textcolor[rgb]{0.00,0.50,0.00}{vert sombre} 
\textcolor[rgb]{0.00,1.00,1.00}{cyan} 
\textcolor[rgb]{0.00,0.00,1.00}{bleu} 
\textcolor[rgb]{0.00,0.00,0.50}{bleu foncé} 
\textcolor[rgb]{0.50,0.00,0.50}{violet} 
\textcolor[rgb]{0.50,0.25,0.00}{marron clair} 
\textcolor[rgb]{0.26,0.13,0.00}{marron sombre} 
\textcolor[rgb]{0.75,0.75,0.75}{gris clair} 
\textcolor[rgb]{0.50,0.50,0.50}{gris} 
\textcolor[rgb]{0.00,0.00,0.00}{noir}

Mis à jour le 12 octobre 2005 Konrad Florczak

La communauté des utilisateurs de LaTeX a développé une grande quantité de packages. La plupart de ceux-ci se trouvent sur le site http://www.ctan.org. Certaines distributions LaTeX, comme MikTeX, permettent l'installation automatique de packages, mais la plupart ne proposent pas cette fonctionnalité.

Voici la marche à suivre pour installer un package manuellement (dans le cas classique) :

Dans ce qui suit, l'emplacement $TEXMFLOCAL peut être remplacé par $TEXMFHOME selon la porté choisie. Pour plus d'information à ce propos, consulter Où installer un package LaTeX manuellement ?

1. Télécharger et décompresser le paquet (sur http://www.ctan.org par exemple) ;
2. Sous Linux, faire :

Code : Sélectionner tout
sudo cp -r mon_répertoire_paquet/ $TEXMFLOCAL/tex/latex/
Sous Windows, copier le paquet dans le répertoire :

Code : Sélectionner tout
TEXMFLOCAL/tex/latex/
3. Aller dans ce répertoire ; s'il y a un makefile, entrer la commande

Code : Sélectionner tout
make
4. Sous Linux, taper ensuite :

Code : Sélectionner tout
sudo texhash
Sous Windows :

Code : Sélectionner tout
texhash
Le paquet est alors installé et est utilisable par la commande \usepackage{}.

Remarque :

Parfois les packages sont donnés sans makefiles et contiennent sont accompagnés uniquement de deux fichiers fichier.ins et fichier.dtx.

Dans ce cas, des étapes de compilation supplémentaires sont nécessaires (elles doivent être faites avant la copie vers l'arborescence de la distribution) :

Code : Sélectionner tout
$ latex fichier.ins
pour créer le fichier fichier.sty, puis :

Code : Sélectionner tout
$ latex fichier.dtx
Note : $TEXMFLOCAL et $TEXMFHOME correspondent aux localisations (chemin) de différentes arborescences utilisables par la distribution LaTeX. Pour connaître leurs différences et savoir où les trouver, se référer à Où installer un package LaTeX manuellement ?

Mis à jour le 12 octobre 2005 Le Barde pitipoisson

Les packages peuvent être ajoutés manuellement - au choix - dans 2 arborescences distinctes, en fonction de la portée mono- ou multi-utilisateur(s) - désirée:

  • TEXMFLOCAL : l'arborescence locale multi-utilisateurs. Les fichier qu'elle contient sont utilisables par plusieurs utilisateurs de la machine.
  • TEXMFHOME : l'arborescence utilisateur (apparemment pas disponible sous MiKTeX). Elle permet notamment aux utilisateurs ayant des droits d'écriture restreints d'installer des packages personnels. Elle doit donc se situer dans un répertoire où l'utilisateur a le droit d'écrire.

Voyons maintenant où les trouver (ou bien les définir) pour les deux principales distributions de LaTeX.

TeXLive (sous GNU/Linux, ici une Ubuntu 8.04, sans doute valable pour d'autres distributions) :

Les définitions des différentes arborescences de la distribution LaTeX peuvent être trouvées dans le fichier

Code : Sélectionner tout
/etc/texmf/texmf.cnf
Certaines arborescences ne devraient pas être modifiées manuellement (elle sont plutôt destinées au(x) gestionnaire(s) de paquets), il s'agit des arborescences $TEXMFMAIN (= /usr/share/texmf) et $TEXMFDIST (= /usr/share/texmf-texlive)

Deux possibilités se présentent alors :

1. Pour une installation multi-utilisateurs (privilèges super-utilisateur requis), les fichiers doivent être placés dans

Code : Sélectionner tout
$TEXMFLOCAL (= /usr/local/share/texmf)
Si cette arborescence n'existe pas, la créer avec la commande (dans un terminal):

Code : Sélectionner tout
$ sudo mkdir /usr/local/share/texmf
Pour la suite des opérations voir : Comment installer un package LaTeX ?

2. Pour une installation mono-utilisateur (pas de privilège super-utilisateur requis), les fichiers doivent être placés dans

Code : Sélectionner tout
$TEXMFHOME (= $HOME/texmf)
De même si le dossier n'existe pas, lancer dans un terminal :

Code : Sélectionner tout
$ mkdir $HOME/texmf
Note 1 : lors de l'installation des fichiers dans $TEXMFHOME, ne pas faire précéder la commande de copie (cp) de sudo.

Note 2 : Il n'est pas nécessaire dans ce dernier cas d'exécuter la commande texhash pour compléter l'installation. Il n'y a en principe pas de base de donnée des fichiers présents qui soit maintenue pour cette arborescence (voir la définition de la variable $TEXMFDBS dans le fichier texmf.cnf). Celle-ci est donc parcourue récursivement avant chaque compilation... et il est donc déconseillé d'y installer de trop nombreux dossiers et fichiers.

Pour TeXLive sous Windows, le principe est le même. Les emplacements des différentes arborescences peuvent être trouvés dans le fichier

Code : Sélectionner tout
[dossier d'installation]\texmf-var\web2c\texmf.cnf
Dans celui-ci, la variable $SELFAUTOPARENT représente le dossier où la distribution est installée (e.g. C:\LaTeX)

MiKTeX (Windows) :

Seule l'arborescence correspondant à $TEXMFDIST (arborescence de la distribution) est installée par défaut. Elle se trouve par exemple dans
Code : Sélectionner tout
C:\Program Files\Miktex 2.7\
]Attention ![/U] Contrairement à ce qui est souvent proposé sur les forums, il est déconseillé d'y installer des packages/modèles/feuilles de style manuellement : ils risquent d'être perdus lors de mises à jour.

[U

Une bonne façon de procéder est de définir au préalable une arborescence locale ($TEXMFLOCAL)

Code : Sélectionner tout
dans le menu démarrer: Settings > onglet Roots > Add...
dans laquelle seront copiés les fichiers.

De même qu'avec TeXLive, se référer ensuite à Comment installer un package LaTeX ? pour l'installation proprement dite.

Mis à jour le 10 septembre 2008 pitipoisson

  • Avec le package titlesec

Ce qui suit utilise le package titlesec, il faut donc mettre dans le préambule la ligne suivante :

Code LaTeX : Sélectionner tout
\usepackage{titlesec}

  • Modification simple

Si l'on souhaite juste modifier le format des sections (mettre en gras, en italique en couleur etc.) sans modifier les espacements avant ou après le titre ou encore la position (centrée, à droite etc.) il suffit de rajouter dans le préambule :

Code LaTeX : Sélectionner tout
1
2
3
4
5
\titleformat*{commande}{format} 
  
% par exemple pour mettre en gras les sections et en italique les subsections 
\titleformat*{\section}{\bfseries} 
\titleformat*{\subsection}{\itshape}

  • Modification avancée

Pour modifier de manière plus importante les sections, on va utiliser les commandes \titleformat et \titlespacing*. La première permet de modifier le format, la position et d'ajouter des éléments autour des sections. La seconde permet de gérer l'espacement avant et après une section.

Code LaTeX : Sélectionner tout
\titleformat{ command }[ shape ]{ format }{ label }{ sep }{ before }[ after ]
  • command est la section que l'on veut redéfinir : \part, \chapter, \section, \subsection...
  • La forme du paragraphe qui contient le titre de la section est donné par shape.
    Il faut se référer au manuel pour connaître les formes disponibles.
    La forme classique est hang, la forme block permet entre autre de centrer les sections et runin permet de faire des section sans passer à la ligne. Il en existe d'autre, allez voir le manuel
  • format est le format à appliquer à l'ensemble du titre et du label.
  • Le label est définit dans label on peut le laisser vide si on ne veut pas numéroter mais cela ne supprime pas la numérotation dans la table des matières.
  • sep est la distance qui sépare le label et le titre. Elle doit être donnée (mettre 0 si on ne veut pas de séparation) et dans une unité connu par latex. Son comportement peut varier selon shape.
  • before C'est le code qui précède le titre.
  • after c'est le code qui suit le titre.

Voici un exemple simple qui modifie les sections. Il utilise la forme block, les sections sont centrées, en gras et le label est en italique et encadré :

Code LaTeX : Sélectionner tout
\titleformat{\section}[block]{\normalfont\bfseries\filcenter}{\fbox{\itshape\thesection}}{1em}{}

Le manuel fournit beaucoup d'exemples.

Code LaTeX : Sélectionner tout
1
2
3
4
5
6
7
% syntaxe 
\titlespacing*{ command }{ marge à gauche }{ espace avant }{ espace après }[ marge à droite ] 
     % la marge à droite est facultative et dépend de la forme choisie dans titleformat 
     % l'espace après est vertical ou horizontal suivant la forme choisie dans titleformat 
  
% exemple 
\titlespacing*{\section}{\parindent}{*2}{\wordsep}
  • Utilisation d'une macro au lieu du package titlesec

On peut utiliser une macro dans le préambule pour modifier le style des sections. Voici une explication rapide vous pourrez trouvez une explication plus détaillée ici :

Code LaTeX : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
%%% explication 
\renewcommand\nom_section{ en debut de section {nom_section} {niveau table des matières} {indentation}% 
     {espace avant} 
     {espace après} 
     {format} 
  
%%%% début macro modification des sections %%%% 
\makeatletter 
\renewcommand\section{\@startsection {section}{1}{\z@}% 
                     {-3.5ex \@plus -1ex \@minus -.2ex}% 
                     {2.3ex \@plus.2ex}% 
                     {\normalfont\Large\bfseries\color{DarkBlue}}} 
  
\renewcommand\subsection{\@startsection{subsection}{2}{\z@}% 
                     {-3.25ex\@plus -1ex \@minus -.2ex}% 
                     {1.5ex \@plus .2ex}% 
                     {\normalfont\large\bfseries\color{DarkBlue}}} 
  
\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% 
                     {-3.25ex\@plus -1ex \@minus -.2ex}% 
                     {1.5ex \@plus .2ex}% 
                     {\normalfont\normalsize\bfseries\color{DarkBlue}}} 
  
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% 
                     {3.25ex \@plus1ex \@minus.2ex}% 
                     {-1em}% 
                     {\normalfont\normalsize\bfseries\color{DarkBlue}}} 
  
\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}% 
                     {3.25ex \@plus1ex \@minus .2ex}% 
                     {-1em}% 
                     {\normalfont\normalsize\bfseries\color{DarkBlue}}} 
\makeatother 
%%%% fin macro %%%%

Mis à jour le 5 janvier 2009 Ladgalen

Il peut être intéressant parfois d'ajouter un contenu ou des commandes de formatage ponctuel(les) dans la table des matières (mais également dans une liste des figure ou des tableaux).

La commande pour ajouter quelque chose à la table des matières (TDM) est

Code LaTeX : Sélectionner tout
\addtocontents{toc}{Le contenu à ajouter à la table des matières}

Si le contenu inclue des commandes, il faut dans la plupart des cas les protéger afin qu'elles ne soient pas évaluées avant d'être ajoutées dans le fichier .toc.

Code LaTeX : Sélectionner tout
\addtocontents{toc}{\protect\commande_à_protéger}

Exemples:
1. Ajouter un saut de page dans la TDM, avant une section donnée

Code LaTeX : Sélectionner tout
1
2
3
\addtocontents{toc}{\protect\newpage} 
  
\section{Une section}

2. Ajouter un filet dans la TDM avant une section (oui, il y a des risques que ce soit moche, mais c'est pour l'exemple !)

Code LaTeX : Sélectionner tout
1
2
3
4
5
6
\addtocontents{toc}{\protect\noindent 
  \protect\rule{\linewidth}{1pt}} 
  
\addtocontents{toc}{}   % Pour la classe article 
  
\section{Une autre section}

Notez bien que chaque commande est protégée.

Voyons maintenant deux exemple un peu particulier puisqu'ils ont un effet sur l'ensemble de la TDM.

A. Vous souhaitez supprimer la numérotation dans la TDM, mais sans redéfinir le style de page plain à l'aide du package fancyhdr ?
Il suffit d'appliquer le style de page empty à la TDM en ajoutant dans le préambule :

Code LaTeX : Sélectionner tout
1
2
3
\addtocontents{toc}{% 
\protect\thispagestyle{empty}% 
\protect\pagestyle{empty}}

Il peut également être nécessaire d'ajouter dans le corps de texte (à vous de voir si votre mise en page est correcte sans...)

Code LaTeX : Sélectionner tout
1
2
\pagestyle{empty} 
\tableofcontents{}

B. Ce n'est pas parce que l'on compose en interligne 2 ou bien avec d'importants sauts de paragraphe que l'on apprécie forcément d'avoir une TDM très aérée qui s'étale sur 3 pages. L'espace inter-ligne et les sauts de paragraphe peuvent donc être réduits en ajoutant dans le préambule :

Code LaTeX : Sélectionner tout
1
2
3
  \addtocontents{toc}{% 
  \protect\setlength{\baselineskip}{1.5em}   % espace entre les lignes 
  \protect\setlength{\parskip}{0pt}}         % sauts de paragraphe

Remarques importantes :

Pour ajouter un contenu explicite (filet, texte,...) avant une commande de sectionnement dont la définition n'utilise pas \@startsection, c-à-d part et section pour la classe article et part et chapter pour les classes report et book, il est nécessaire de faire précéder l'entrée dans la TDM par une ligne vide (cf. exemple 2.) :

Code LaTeX : Sélectionner tout
1
2
3
\addtocontents{toc}{Texte}   % Contenu explicite  
\addtocontents{toc}{}        % Ligne vide 
\part{...}                   % Section

Les exemples précédents peuvent être très facilement adaptés à la liste des figures ou des tableaux en remplaçant simplement toc respectivement par lof et lot.

Code LaTeX : Sélectionner tout
1
2
3
4
\addtocontents{lof}{Et maintenant une figure dont je suis particulièrement fier:} 
  
\begin{figure}[h] 
   ...

Pour modifier globalement la police où la couleur des entrées de la table, il est préférable d'utiliser le package titletoc.

Ne pas utiliser cette méthode pour ajouter une entrée à la table : il existe pour cela une commande dédiée

Code LaTeX : Sélectionner tout
\addcontentsline{toc}{section}{Introduction non numérotée}

Mis à jour le 20 mars 2009 pitipoisson

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.