Commit beeb4cd0 authored by Aurelien Pascal's avatar Aurelien Pascal

gérer un gros document

parent 884ec6f7
......@@ -3,7 +3,7 @@
Souvent présenté comme incontournable pour rédiger rapports et articles, \LaTeX{} n'est cependant pas enseigné comme peut l'être la programmation.
Bien qu'il existe certaines ressources en ligne, aucune d'elles n'a donné le sentiment d'être à la fois pratique et complète : souvent, une fois les bases posées, le lecteur est laissé à lui-même.
Bien qu'il existe certaines ressources en ligne, aucune d'elles n'a donné le sentiment d'être à la fois pratique et complète : souvent, une fois les bases posées, le lecteur est laissé à lui-même.
Ce document a pour but de présenter de façon assez complète les bases du langage de mise en forme de texte formaté \LaTeX{}, ainsi que certaines de ses fonctionnalités plus avancées qui pourront vous servir dans votre vie de scientifique.
......@@ -15,11 +15,11 @@ Code :
[...] : en cours
[V] : fait
[/] : fait et relu (1ère passe)
[X] : fait et approuvé par l'OTL
[X] : fait et approuvé par l'OTL
1. Introduction
* [/] LaTeX ?
* [/] L'installation
* [/] L'installation
* [/] La compilation
2. LaTeX : Guide de survie
* [/] Structure d’un fichier source : les bases
......@@ -32,15 +32,16 @@ Code :
* [/] Les flottants : images et tableaux
* [/] Ecrire des mathématiques
3. LaTeX : Pour l'utilisateur avancé
* [...] Personnalier la mise en page
* [V] Personnalier la mise en page
* [/] Tuner ses tableaux
* [/] Gestion avancée des figures
* [ ] Mathématiques avancées
* [...] Mathématiques avancées
* [/] SIUnitx : le paquet du physicien
* [/] Des références d'articles avec BibTeX
* [ ] Un soupçon de programmation LaTeX
* [...] Gérer un gros document en le découpant en plusieurs parties
* [...] Un soupçon de programmation LaTeX
4. Des graphiques vectoriels avec le duo PGF/TIKZ
* [/] Introduction
* [/] Introduction
* [/] Des figures simples
* [/] Styles, couleurs et décorations
* [/] Représenter des fonctions et des données avec pgfplots
......
No preview for this file type
\documentclass[a4paper]{article}
%-----PACKAGES---------------------------
%encodages d'entrée et sortie, police vectorielle
\usepackage[utf8]{inputenc}
\usepackage[LGR,T1]{fontenc}
\usepackage{lmodern}
\usepackage{microtype}
% Bibliographie
%\usepackage{natbib}
\usepackage{multibib}
\newcites{ex}{Références} % Pour l'exemple dans la partie BibTeX, il faut utiliser la commande \citeex
% (TODO : check si \citep / citet fonctionnera normalement pour la biblio générale)
%paquets linguistiques
\usepackage[english,frenchb]{babel}
%aspect général des pages
\usepackage{geometry}
\usepackage{fancyhdr}
\usepackage{fancyvrb} % pour \verb dans les \footnote
\usepackage[bottom]{footmisc} % notes toujours en bas de la page
\usepackage{parskip} % permet les espaces entre paragraphes sans vskip (peut se personaliser)
\usepackage{pdflscape} %orientation paysage
% Maths
\usepackage{amsmath}
\usepackage{amssymb}
%\usepackage{amsfonts} %amsfonts est chargé par amssymb
%\usepackage{braket}
\usepackage{siunitx}
\DeclareSIUnit\octet{o}
%inclure du code source
\usepackage{listings}
\usepackage{listingsutf8}
\usepackage{showexpl}
\usepackage[dvipsnames]{xcolor}
%figures, titres et autres environnements spéciaux
\usepackage{graphicx}
%\usepackage{caption} %n'a pas l'air utile finalement
\usepackage{threeparttable}
\usepackage{multirow}
\usepackage{enumitem}
\usepackage[lofdepth,lotdepth]{subfig}
\usepackage{wrapfig}
\usepackage{mdframed}
%liens internes et externes, annexes
\usepackage[colorlinks=true,linkcolor=black,urlcolor=cyan,citecolor=blue]{hyperref}
\usepackage[titletoc,title,toc,page]{appendix} %personnalise les titres des annexes
%pgf et tikz
\usepackage{pgfplots}
\usepackage{tikz}
\usetikzlibrary{external}
\usetikzlibrary{trees}
\usetikzlibrary{shapes}
\usetikzlibrary{decorations.pathmorphing}
\usetikzlibrary{decorations.markings}
\usepgfplotslibrary{polar}
%commentaires
\usepackage{comment}
%caractères spéciaux et autres joyeusetés
\usepackage[safe]{tipa}
\usepackage{lipsum}
\usepackage{coffee2}
\usepackage{epigraph} % épigraphes
\usepackage{xspace} % espaces
\usepackage{eurosym} % €€€
\usepackage{textcomp}
%----------------------------------------------------------------
%-----MACRO INSTRUCTIONS ET COMMANDES----------------------------
%geometrie des pages
\geometry{hmargin=2cm,vmargin=1.5cm}
%options pour la table de matières
\setcounter{tocdepth}{2}
\renewcommand{\appendixtocname}{Annexes}
\renewcommand{\appendixpagename}{\centering Annexes}
%mathématiques
\everymath{\displaystyle} %conserve une taille normale même inclus dans du texte
%pgf et tikz
\pgfplotsset{compat=newest}
%\tikzexternalize[prefix=tikz/,shell escape=--enable-write18]
\tikzexternalize[prefix=tikz/,shell escape=-shell-escape]
%configuration de listings
\lstdefinestyle{myLatexStyle}{
language=[LaTeX]TeX,
basicstyle=\small\ttfamily,
backgroundcolor=\color{lightgray},
numbers=left, numberstyle=\tiny, stepnumber=1, numbersep=5pt,
commentstyle=\color{red},
showstringspaces=false,
keywordstyle=\color{blue}\bfseries,
morekeywords={align,begin},
pos=l
}
\lstset{
inputencoding=utf8/latin1,
style=mylatexstyle,
width=0.40\linewidth,
extendedchars=true,
literate={é}{{\'e}}1
}
% autorise l'utilisation de \verb dans \footnote
\AtBeginDocument{\VerbatimFootnotes}
% Du grec !
\newcommand\textgreek[1]{\begingroup\fontencoding{LGR}\selectfont#1\endgroup}
% showexpl pollue inutilement le log je trouve, ça m'agace... -- Entéocline
\makeatletter
\renewcommand\SX@Info{}
\makeatother
%ajout des chemins d'input
\makeatletter
\providecommand*{\input@path}{}
\def\input@path{{./tikz-src/}}
\makeatother
% Je suis tellement mégalo que je me crée une commande perso pour mes commentaires ! L'avantage
% que mes commentaires peuvent être désactivés en remplaçant \enteotrue par \enteofalse. Je peux
% créer des commandes pour vous aussi si vous voulez !
\newif\ifenteo\enteotrue
\def\startenteo{\ifenteo\begingroup\color{red}}
\def\closeenteo{ -- Entéocline \endgroup\fi}
\ifenteo\else \let\startenteo\iffalse \let\closeenteo\fi \fi
% ahah je connaissais pas ça, du coup je suis jaloux je m'en crée une aussi :)
% En vrai j'ai inventé ça sur le tas ! ;) -- Ent.
\newif\ifaurel\aureltrue
\def\startaurel{\ifaurel\begingroup\color{Mulberry}}
\def\closeaurel{ -- Aurelien \endgroup\fi \iffalse \fi}
\ifaurel\else \let\startaurel\iffalse \let\closeaurel\fi \fi
\newif\iftouille\touilletrue
\def\starttouille{\iftouille\begingroup\color{blue}}
\def\closetouille{ -- Tatouille \endgroup\fi}
\iftouille\else \let\starttouille\iffalse \let\closetouille\fi \fi
\input{preambule.tex}
%%% Vocabulaire
% header : préambule
......@@ -166,7 +17,7 @@
%l'environnement \begin{LTXexample} \end{LTXexample}
%l'intégration dans un fichier à part : \LTXinputExample{monbeaufichier.tex}
%l'option [width=0.5\linewidth] fournie lors de ces appels coorespond à la largeur du rendu.
%l'option [width=0.5\linewidth] fournie lors de ces appels coorespond à la largeur du rendu.
%Jouez avec cette option pour obtenir le meilleur compromis
%(il est plus intuitif de l'exprimer en pourcentage de la largeur totale comme ci-dessus)
%La valeur par défault est fixée dans le lstset
......@@ -186,7 +37,7 @@
\title{\LaTeX{} : Le guide du scientifique débutant}
\author{William Babonnaud\footnote{\href{mailto:William Babonnaud <william.babonnaud@crans.org>}{\ttfamily william.babonnaud@crans.org}},
Alexandre Morlet\footnote{\href{mailto:Alexandre Morlet <alexandre.morlet@crans.org>}{\ttfamily alexandre.morlet@crans.org}}\ \ \&
Alexandre Morlet\footnote{\href{mailto:Alexandre Morlet <alexandre.morlet@crans.org>}{\ttfamily alexandre.morlet@crans.org}}\ \ \&
Aurélien Pascal\footnote{\href{mailto:Aurélien Pascal <aurelien.pascal@crans.org>}{\ttfamily aurelien.pascal@crans.org}}}
\date{}
......@@ -219,7 +70,7 @@
%Si tu veux un espace entre paragraphes il faut un \vspace ou mieux le paquet parskip
% Autre solution que je viens de lire : \vspace{baselineskip} fait une ligne vide. Mais ça m'ennuie dans tous les cas : au collège on m'a appris à aérer mes textes et mettre des alinéas, donc si je fais \\ je veux juste un retour à la ligne, et sinon je veux un saut de ligne + un alinéa, mais ça doit pas être syntaxiquement correct si LaTeX le fait pas ...
%Et dans tous les cas il n' y a pas d'espace entre paragraphes dans le résumé
% Est-ce que toutes ces remarques syntaxiques ne devraient pas être mentionnées quelque part ? Dans "Formater le texte" par exmple.
......@@ -236,10 +87,10 @@
\medskip
\begin{abstract}
Souvent présenté comme incontournable pour rédiger rapports et articles, \LaTeX{} n'est cependant pas enseigné comme peut l'être la programmation.\\
Bien qu'il existe certaines ressources en ligne, aucune d'elles n'a donné le sentiment d'être à la fois pratique et complète~:~souvent, une fois les bases posées, le lecteur est laissé à lui-même.
Bien qu'il existe certaines ressources en ligne, aucune d'elles n'a donné le sentiment d'être à la fois pratique et complète~:~souvent, une fois les bases posées, le lecteur est laissé à lui-même.
Ce document a pour but de présenter de façon assez complète les bases du langage de mise en forme de texte formaté \LaTeX{}, ainsi que certaines de ses fonctionnalités plus avancées qui pourront vous servir dans votre vie de scientifique.
%Mais ça fait un peu de répétition. En gros, dire `on va mettre les bases, puis faire de la mise en page, puis utiliser des paquets `compliqués'.
\end{abstract}
\hrulefill
......
......@@ -239,7 +239,7 @@ Voici un exemple (le texte a été généré à l'aide de l'extension \verb|lips
\subsection{Ecrire les équations sur plusieurs lignes}
Les environnements \verb|equation| et \verb|displaymath| (celui définit par \verb|\[ \]|, pour plus d'informations sur ces environnements voir au \ref{subsec:envmath}) sont limités à l'écriture sur une seule ligne.\\
Pour écrire des mathématiques sur plusieurs lignes vous pouvez utilisez l'un des environnements lités ci-dessous. Ils nécessitent l'extension \verb|amsmath| pour fonctionner.
Pour écrire des mathématiques sur plusieurs lignes vous pouvez utilisez l'un des environnements lités ci-dessous.\footnote{en réalité tous ces environnements sont basés sur le même principe : l'utilisation d'un \texttt{array} dans \texttt{displaymath}, en effet ceux-ci permettent d'aligner et d'écrire sur plusieurs lignes. Il est donc toujours possible d'obtenir les résultats de cette section par d'autres méthodes, mais l'intérêt d'\texttt{amsmath} est qu'il fournit des solutions clés en main} Ils nécessitent l'extension \verb|amsmath| pour fonctionner.
\begin{itemize}
\item \verb|multline| est le plus basique, il permet d'écrire une grosse équation sur plusieurs lignes en utilisant des retours à la ligne
......@@ -273,17 +273,9 @@ Voici un exemple pour chacun d'eux :
\end{equation}
\end{LTXexample}
\subsection{Les matrices et l'environnement array}
\label{subsec:array}
%\startaurel array, pmatrix, bmatrix, Bmatrix, vmatrix \closeaurel
\subsection{Ecrire des théorèmes comme un vrai prof de maths}
%\startaurel amsthm ou ntheorem, a voir lequel est mieux \closeaurel
......@@ -674,6 +666,26 @@ Pour avoir une bibliographie par chapitre/section, intéressez-vous à \texttt{m
Enfin et surtout, si vous aimez la personnalisation et que vous n'avez pas peur de vous plonger dedans (263 pages de documentation), il existe l'extension \texttt{Biblatex}. Plus de styles, de types et de champs, plus de possibilités (notamment gérer nativement des outils pour lesquels Bib\TeX{} a besoin d'une extension), cette extension se présente comme la succession de Bib\TeX{}.
\section{Gérer un gros document en le découpant en plusieurs parties}
Lorqu'on écrit un gros document de plusieurs dizaines de pages, voire centaines de pages, il devient utile sinon indispensable de bien organiser son fichier \texttt{.tex} et de le découper en plusieurs parties.
Pour ceci il est conseillé d'utiliser la stratégie suivante\footnote{qui est utilisée par tous les programmeurs qui travaillent sur des gros codes} : on crée un fichier source \texttt{.tex} par partie (ou par section, selon le niveau de découpage désiré), et un fichier maître qui contiendra fera appel aux différents fichiers et organisera la structure du document.
\subsection{Gérer le fichier maître}
Dans l'idéal, le préambule lui même est écrit dans un document à part et le document maître ne doit contenir que :
\begin{itemize}[label=\textbullet]
\item La définition de la classe \verb=\documentclass[<options>]{classe}=
\item Le chargement du préambule \verb=\input{preambule.tex}=
\item Les métadonnées \verb=\title{}=, \verb=\author{}=, \verb=\date{}=
\item L'environnement \texttt{document}
\item le chargement de tous les fichiers sources
\item Les commandes de génération d'index et de tables : \verb=\tableofcontents=, \verb=\bibliography{}=, \verb=\appendix=
\end{itemize}
\subsection{Les commandes d'inclusion : \texttt{include} et \texttt{input}}
\section{La programmation~\LaTeX{}, ou comment devenir un chaman}
\label{sec:macro}
......
......@@ -361,7 +361,7 @@ Imaginons que vous détestiez la numérotation utilisée par \LaTeX{} pour les p
Pour réaliser ceci il faut modifier la commande qui génère le titre en question. Prenons un exemple : si vous voulez que la numérotation des \verb=\section= se fasse avec des chiffres romains, il faut modifier \verb=\thesection= (qui est la commande qui génère les titres des secions) avec la commande
\begin{center}\verb=\renewcommand{\thesection}{\Roman{section}}=\end{center}.
Cet exemple se généralise facilement : il suffit d'ajouter \verb=\the= au niveau de titre qui nous intéresse (\verb=\thechapter=, \verb=\thesubsection=, \verb=\theparagraph=, \dots) et d'utiliser \verb=\renewcommand{}{}= avec le compteur qui nous intéresse.
Cet exemple se généralise facilement : il suffit d'ajouter \verb=\the= au niveau de titre qui nous intéresse (\verb=\thechapter=, \verb=\thesubsection=, \verb=\theparagraph=, \dots) et d'utiliser \verb=\renewcommand{}{}= avec le compteur qui nous intéresse.
\subsection{La table des matières}
......@@ -1232,7 +1232,7 @@ Une matrice faisant appel à un tableau ressemblerait alors à :
c & d \end{tabular} \right) \]
\end{LTXexample}
L'autre solution consiste à utiliser l'environnement \texttt{pmatrix} de \texttt{amsmath}, qui se remplit comme un \texttt{array}\footnote{Pour plus de détails sur les matrices et \verb|array|, rendez-vous section \ref{subsec:array}.} mais contient déjà les parenthèses et prend en considération jusqu'à 10 colonnes centrées sans déclaration spécifique (l'utilisation d'\texttt{array} devient nécessaire si vous voulez la moindre personnalisation), comme dans l'exemple suivant :
L'autre solution consiste à utiliser l'environnement \texttt{pmatrix} de \texttt{amsmath}, qui se remplit comme un \texttt{array} mais contient déjà les parenthèses et prend en considération jusqu'à 10 colonnes centrées sans déclaration spécifique (l'utilisation d'\texttt{array} devient nécessaire si vous voulez la moindre personnalisation), comme dans l'exemple suivant :
\begin{LTXexample}
\[\begin{pmatrix}
\cos\theta & -\sin\theta \\
......@@ -1240,6 +1240,16 @@ L'autre solution consiste à utiliser l'environnement \texttt{pmatrix} de \textt
\end{pmatrix}\]
\end{LTXexample}
Il existe également d'autres environnements de type \texttt{matrix} définis par \texttt{amsmath}, ils s'utilisent tous de la même façon et ne diffèrent que par les délimiteurs utilisés :
\begin{itemize}[label=\textbullet]
\item \texttt{matrix} est sans délimiteurs
\item \texttt{pmatrix} est délimité par ( )
\item \texttt{bmatrix} est délimité par [ ]
\item \texttt{Bmatrix} est délimité par \{ \}
\item \texttt{vmatrix} est délimité par | |
\item \texttt{Vmatrix} est délimité par || ||
\end{itemize}
Une matrice n'est pas toujours explicitée en entier, certains schémas étant raccourcis par des points. Il existe 4 types de points par défaut : \verb=\ldots=\footnote{\verb|\dots| est équivalent à \verb|\ldots| par défaut ; les deux fonctionnent en environnement texte. Avec \texttt{amsmath}, \verb|\dots| peut se transformer automatiquement en \verb|\cdots| en environnement mathématiques.} ( \ldots ) ; \verb=\cdots= ( $\cdots$ ), qui fait la même chose mais surélevé ; \verb=vdots= ( $\vdots$ ), à la verticale ; et \verb=\ddots= ( $\ddots$ ), en diagonale.
Un autre cas d'environnement tout fait qui peut éviter d'avoir recours à un tableau est \texttt{cases}. Il permet d'écrire un système d'équation avec une accolade globale à gauche.
......
%-----PACKAGES---------------------------
%encodages d'entrée et sortie, police vectorielle
\usepackage[utf8]{inputenc}
\usepackage[LGR,T1]{fontenc}
\usepackage{lmodern}
\usepackage{microtype}
% Bibliographie
%\usepackage{natbib}
\usepackage{multibib}
\newcites{ex}{Références} % Pour l'exemple dans la partie BibTeX, il faut utiliser la commande \citeex
% (TODO : check si \citep / citet fonctionnera normalement pour la biblio générale)
%paquets linguistiques
\usepackage[english,frenchb]{babel}
%aspect général des pages
\usepackage{geometry}
\usepackage{fancyhdr}
\usepackage{fancyvrb} % pour \verb dans les \footnote
\usepackage[bottom]{footmisc} % notes toujours en bas de la page
\usepackage{parskip} % permet les espaces entre paragraphes sans vskip (peut se personaliser)
\usepackage{pdflscape} %orientation paysage
% Maths
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
%\usepackage{amsfonts} %amsfonts est chargé par amssymb
%\usepackage{braket}
\usepackage{siunitx}
\DeclareSIUnit\octet{o}
%inclure du code source
\usepackage{listings}
\usepackage{listingsutf8}
\usepackage{showexpl}
\usepackage[dvipsnames]{xcolor}
%figures, titres et autres environnements spéciaux
\usepackage{graphicx}
%\usepackage{caption} %n'a pas l'air utile finalement
\usepackage{threeparttable}
\usepackage{multirow}
\usepackage{enumitem}
\usepackage[lofdepth,lotdepth]{subfig}
\usepackage{wrapfig}
\usepackage{mdframed}
%liens internes et externes, annexes
\usepackage[colorlinks=true,linkcolor=black,urlcolor=cyan,citecolor=blue]{hyperref}
\usepackage[titletoc,title,toc,page]{appendix} %personnalise les titres des annexes
%pgf et tikz
\usepackage{pgfplots}
\usepackage{tikz}
\usetikzlibrary{external}
\usetikzlibrary{trees}
\usetikzlibrary{shapes}
\usetikzlibrary{decorations.pathmorphing}
\usetikzlibrary{decorations.markings}
\usepgfplotslibrary{polar}
%commentaires
\usepackage{comment}
%caractères spéciaux et autres joyeusetés
\usepackage[safe]{tipa}
\usepackage{lipsum}
\usepackage{coffee2}
\usepackage{epigraph} % épigraphes
\usepackage{xspace} % espaces
\usepackage{eurosym} % €€€
\usepackage{textcomp}
%----------------------------------------------------------------
%-----MACRO INSTRUCTIONS ET COMMANDES----------------------------
%geometrie des pages
\geometry{hmargin=2cm,vmargin=1.5cm}
%options pour la table de matières
\setcounter{tocdepth}{2}
\renewcommand{\appendixtocname}{Annexes}
\renewcommand{\appendixpagename}{\centering Annexes}
%mathématiques
\everymath{\displaystyle} %conserve une taille normale même inclus dans du texte
%pgf et tikz
\pgfplotsset{compat=newest}
%\tikzexternalize[prefix=tikz/,shell escape=--enable-write18]
\tikzexternalize[prefix=tikz/,shell escape=-shell-escape]
%configuration de listings
\lstdefinestyle{myLatexStyle}{
language=[LaTeX]TeX,
basicstyle=\small\ttfamily,
backgroundcolor=\color{lightgray},
numbers=left, numberstyle=\tiny, stepnumber=1, numbersep=5pt,
commentstyle=\color{red},
showstringspaces=false,
keywordstyle=\color{blue}\bfseries,
morekeywords={align,begin},
pos=l
}
\lstset{
inputencoding=utf8/latin1,
style=mylatexstyle,
width=0.40\linewidth,
extendedchars=true,
literate={é}{{\'e}}1
}
% autorise l'utilisation de \verb dans \footnote
\AtBeginDocument{\VerbatimFootnotes}
% Du grec !
\newcommand\textgreek[1]{\begingroup\fontencoding{LGR}\selectfont#1\endgroup}
% showexpl pollue inutilement le log je trouve, ça m'agace... -- Entéocline
\makeatletter
\renewcommand\SX@Info{}
\makeatother
%ajout des chemins d'input
\makeatletter
\providecommand*{\input@path}{}
\def\input@path{{./tikz-src/}}
\makeatother
% Je suis tellement mégalo que je me crée une commande perso pour mes commentaires ! L'avantage
% que mes commentaires peuvent être désactivés en remplaçant \enteotrue par \enteofalse. Je peux
% créer des commandes pour vous aussi si vous voulez !
\newif\ifenteo\enteotrue
\def\startenteo{\ifenteo\begingroup\color{red}}
\def\closeenteo{ -- Entéocline \endgroup\fi}
\ifenteo\else \let\startenteo\iffalse \let\closeenteo\fi \fi
% ahah je connaissais pas ça, du coup je suis jaloux je m'en crée une aussi :)
% En vrai j'ai inventé ça sur le tas ! ;) -- Ent.
\newif\ifaurel\aureltrue
\def\startaurel{\ifaurel\begingroup\color{Mulberry}}
\def\closeaurel{ -- Aurelien \endgroup\fi \iffalse \fi}
\ifaurel\else \let\startaurel\iffalse \let\closeaurel\fi \fi
\newif\iftouille\touilletrue
\def\starttouille{\iftouille\begingroup\color{blue}}
\def\closetouille{ -- Tatouille \endgroup\fi}
\iftouille\else \let\starttouille\iffalse \let\closetouille\fi \fi
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment