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.
- Comment inclure un fichier ?
- Puis-je faire mon propre compteur ?
- Comment définir ma propre commande ?
- Comment redéfinir une fonction déjà existante ?
- Comment inclure des fichiers pdf dans mon tex ?
- Comment définir ses propres couleurs ?
- Comment installer un package LaTeX ?
- Où installer un package LaTeX manuellement ?
- Comment modifier le format ou le style d'une section, subsection ... ?
- Comment ajouter du contenu et exécuter des commandes dans la table des matières (et autres listes) ?
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.
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} |
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} } |
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}}
Il suffit d'utiliser la commande \renewcommand de la même manière que \newcommand.
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.
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} |
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/
Code : | Sélectionner tout |
TEXMFLOCAL/tex/latex/
Code : | Sélectionner tout |
make
Code : | Sélectionner tout |
sudo texhash
Code : | Sélectionner tout |
texhash
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
Code : | Sélectionner tout |
$ latex fichier.dtx
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
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)
Code : | Sélectionner tout |
$ sudo mkdir /usr/local/share/texmf
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)
Code : | Sélectionner tout |
$ mkdir $HOME/texmf
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
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...
De même qu'avec TeXLive, se référer ensuite à Comment installer un package LaTeX ? pour l'installation proprement dite.
- 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 %%%% |
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}
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 çaLes 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.