summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-images.tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-12-28 23:28:50 +0000
committerKarl Berry <karl@freefriends.org>2018-12-28 23:28:50 +0000
commitcd082213a920a9c5fd00d8c7a4926c3218b0daac (patch)
tree3e5e8ad54dd98c6b92bd867cf8789b22e5f9d9fc /Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-images.tex
parent17c7a9982754c99e891494680131de3d864ae09f (diff)
guide-latex-fr (27dec18)
git-svn-id: svn://tug.org/texlive/trunk@49522 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-images.tex')
-rw-r--r--Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-images.tex245
1 files changed, 245 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-images.tex b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-images.tex
new file mode 100644
index 00000000000..9e3804d00f2
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-images.tex
@@ -0,0 +1,245 @@
+\chapter{Images}
+
+\label{chap_img_anx}
+
+\section{Une référence toute prête}
+
+Les références, c'est bien. Les automatiser, c'est mieux. J'étais plutôt agacé d'écrire constamment \og (cf. \textsc{Figure} \textit{ref} p. \textit{page-ref}) \fg{}, d'autant plus que le mot \og \textsc{Figure} \fg{} peut varier selon la classe.
+
+Puis, j'ai découvert la commande \verb?\figurename{}? : elle contient justement le nom utilisé dans la légende. Il est donc possible d'automatiser mon problème initial de la manière suivante :
+
+\begin{code}{Une référence fraîche ! Une !}
+\documentclass[a4paper, 12pt]{report}
+
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[french]{babel}
+\usepackage{lmodern}
+
+\usepackage{graphicx, float}
+
+\usepackage[hidelinks, breaklinks, linktoc = all]{hyperref}
+
+\newcommand{\reffig}[1]{(cf. \figurename{} \ref{#1} p. \pageref{#1})}
+
+
+\begin{document}
+
+\begin{figure}[H]
+\centering
+%\includegraphics[width = 0.5\linewidth]{test.png}
+\caption{La légende}
+\label{essai}
+\end{figure}
+
+Toutes les explications sont disponibles ci-avant \reffig{essai}.
+
+\end{document}
+\end{code}
+
+\section{L'environnement \texttt{subfigure}}
+
+Il peut être intéressant d'afficher plusieurs images avec chacune sa légende, ainsi qu'une légende globale pour toutes les images. Une solution très simple à implémenter est possible grâce au package \verb?subcaption? :
+
+\begin{itemize}[label = \ding{213}]
+\item apport de l'environnement \verb?subfigure?, au fonctionnement identique à une \verb?minipage?,
+
+\item apport de la commande \verb?\subcaption?, pour mettre une légende sous chaque image. \\
+\end{itemize}
+
+Un aperçu de cette solution prend la forme suivante :
+
+\begin{code}{Utilisation de \texttt{subfigure}}
+\documentclass[a4paper, 12pt]{report}
+
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[french]{babel}
+\usepackage{lmodern}
+
+\usepackage{graphicx, float, subcaption}
+
+
+\begin{document}
+
+\begin{figure}[H]
+% [t] en option : permet d'aligner correctement les images si les sous-légendes sont longues
+\begin{subfigure}[t]{0.32\linewidth}
+%\includegraphics[width = \linewidth]{image1.png}
+\subcaption{Image 1}
+\end{subfigure}
+\hfill
+\begin{subfigure}[t]{0.32\linewidth}
+%\includegraphics[width = \linewidth]{image2.png}
+\subcaption{Image 2 : avec une très longue légende}
+\end{subfigure}
+\hfill
+\begin{subfigure}[t]{0.32\linewidth}
+%\includegraphics[width = \linewidth]{image3.png}
+\subcaption{Image 3}
+\end{subfigure}
+\caption{Images de test}
+\end{figure}
+
+% Pas le même rendu au niveau des légendes
+\begin{figure}[H]
+\begin{minipage}{0.32\linewidth}
+%\includegraphics[width = \linewidth]{image1.png}
+\caption{Image 1}
+\end{minipage}
+\hfill
+\begin{minipage}{0.32\linewidth}
+%\includegraphics[width = \linewidth]{image2.png}
+\caption{Image 2}
+\end{minipage}
+\hfill
+\begin{minipage}{0.32\linewidth}
+%\includegraphics[width = \linewidth]{image3.png}
+\caption{Image 3}
+\end{minipage}
+\caption{Images de test}
+\end{figure}
+
+% Les références doivent toujours fonctionner --> faire des essais et lire la documentation
+
+\end{document}
+\end{code}
+
+\begin{conseilbox}{La petite subtilité}
+La commande \verb?\subcaption? ne requiert pas l'utilisation systématique de l'environnement \verb?subfigure?. Elle peut très bien être utilisée avec une \verb?minipage?. \\
+
+Toutefois, il faut bien comprendre qu'une \verb?\caption? ou \verb?\subcaption? n'est valide que dans un élément flottant soit dans un environnement global \verb?figure?.
+
+De même, l'environnement \verb?subfigure? ne peut être utilisé que dans un environnement \verb?figure?, contrairement à une \verb?minipage? qui peut être utilisée n'importe quand. Cette dernière n'est donc pas considérée comme un flottant.
+\end{conseilbox}
+
+Enfin, le package \verb?subcaption? charge aussi le package \verb?caption?, ce qui permet d'utiliser la commande \verb?\caption*?. Cette dernière permet d'avoir une légende sans numéro. C'est toujours pratique de temps en temps.
+
+\section{Insérer un grand nombre de fichiers}
+
+Il est possible d'être amené, ponctuellement, à regrouper un grande nombre de fichiers (images, \texttt{PDF}, \dots{}) dans un seul et unique \texttt{PDF}.
+
+Si écrire toutes les lignes de code ou faire des copier-coller pour n'avoir qu'à modifier les noms de fichiers à la fin peut fonctionner, il existe une méthode plus élégante et efficace qui consiste à utiliser une boucle \verb?for?.
+
+Ce n'est pas bien compliqué et tout est résumé dans le code ci-dessous :
+
+\begin{code}{Insertion avec une boucle for}
+\documentclass[a4paper, 12pt]{report}
+
+\usepackage{graphicx, float} % Si images
+\graphicspath{{./Images/}} % Chemin des images
+\DeclareGraphicsExtensions{.jpg} % Pour définir l'extension des images
+
+\usepackage{pgffor} % Pour la boucle for
+
+
+\begin{document}
+
+% Page de garde ou ce que tu veux
+
+% Commande d'insertion avec la boucle for
+% #1 = numéro début
+% #2 = numéro fin
+% #3 = nom devant le numéro
+\newcommand*{\insertgraphicsfiles}[3]{\foreach \i in {#1,...,#2} {%
+\begin{figure}[H]
+\vspace*{\stretch{1}}
+\centering
+\includegraphics[width=0.99\linewidth]{#3\i}
+\vspace*{\stretch{1}}
+\end{figure}
+}}
+
+% Insertion images 001 à 009
+\insertgraphicsfiles{1}{9}{00}
+
+% Insertion images 010 à 099
+\insertgraphicsfiles{10}{99}{0}
+
+% Insertion images 100 à 151
+\insertgraphicsfiles{100}{151}{}
+
+% Il est possible de faire de même avec des PDF et \includepdf
+
+\end{document}
+\end{code}
+
+Et voilà ! Si tu ne juges pas ce passage intéressant, la réalisation d'un trombinoscope peut constituer une application plus concrète de l'utilisation d'une boucle \verb?for? :
+
+\begin{code}{Une autre application : le trombinoscope}
+\documentclass[a4paper, 12pt]{report}
+
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[french]{babel}
+\usepackage{lmodern}
+
+\usepackage{graphicx}
+\graphicspath{{./Images/}} % Chemin des images
+\DeclareGraphicsExtensions{.png} % Pour définir l'extension des images
+
+\usepackage{array}
+\usepackage{pgffor} % Pour les boucles
+
+\setlength\parindent{0pt} % Pour supprimer les indentations (inutiles ici)
+
+\newcommand*{\affichechoriste}[3]{\begin{tabular}{c} \includegraphics[width = 0.32\linewidth]{#1} \\ #2 \textsc{#3} \end{tabular} }
+% Attention, l'espace après le tabular est indispensable pour les renvois
+% Sinon, tout s'affiche sur une seule ligne
+
+\begin{document}
+
+\begin{center}
+\Huge{\textsc{Titre}}
+\end{center}
+
+\foreach \prenom/\nom/\fichier in {%
+Prénom/Nom/001,%
+Prénom/Nom/002,%
+Prénom/Nom/003,%
+Prénom/Nom/004}{\affichechoriste{\fichier}{\prenom}{\nom}}
+% Et ainsi de suite. Il vaut mieux ne pas mettre d'accent ni d'espace dans les noms de fichiers
+% Le % en fin de ligne est indispensable au bon fonctionnement de \foreach pour éviter l'insertion de blancs qui troubleraient l'appel du fichier (et permet de faciliter la relecture du code)
+
+\end{document}
+\end{code}
+
+Nous reviendrons plus tard, avec le chapitre sur \verb?TikZ?, sur des utilisations de la boucle \verb?for?.
+
+\section{Insérer un fichier \texttt{.svg}}
+
+Si, comme moi, tu apprécies ne pas avoir de gros pixels immondes au moindre zoom de ton fichier \texttt{.pdf}, il est possible d'importer un fichier \texttt{.svg} (image vectorielle donc pas de pixels au zoom) dans ton document.
+
+Pour ce faire, aucun package supplémentaire n'est requis et il faut juste suivre la procédure suivante :
+
+\begin{itemize}[label = \ding{118}]
+\item exporter le fichier \texttt{.svg} sous \texttt{Inkscape} au format \texttt{.pdf},
+
+\item dans les options, choisir ``Exclure le texte \dots{}'' et ``Utiliser la taille \dots{}'',
+
+\item garder les DEUX fichiers générés (\texttt{.pdf} et \texttt{.pdf\_tex}),
+
+\item utiliser le code suivant :
+
+\begin{figure}[H]
+\centering
+\begin{minipage}{0.5\linewidth}
+\begin{verbatim}
+\begin{figure}[H]
+\centering
+\def\svgwidth{\columnwidth}
+%\input{nom_fichier.pdf_tex}
+\caption{Légende éventuelle}
+\end{figure}
+\end{verbatim}
+\end{minipage}
+\end{figure}
+
+\item compiler, peu importe le mode (\verb?LaTeX?, \verb?PDFLaTeX?, \dots{}). \\
+\end{itemize}
+
+Et voilà, c'est tout ce qu'il y a à faire. Après, c'est vraiment se prendre le chou pour pas grand chose. Autant rester sous \texttt{Inkscape}, exporter l'image au format \texttt{.eps} et l'intégrer comme n'importe quelle image.
+
+Les pixels ne se verront toujours pas au zoom \dots{} et la compilation se fait sous \verb?LaTeX? comme sous \verb?PDFLaTeX? (création d'un fichier intermédiaire supplémentaire mais génération bien plus rapide). \\
+
+Bref, c'était surtout une volonté personnelle d'explorer de nouveaux domaines sous \LaTeX{} mais il faut aussi savoir utiliser des solutions simples parfois. \ No newline at end of file