diff options
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.tex | 224 |
1 files changed, 84 insertions, 140 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 index 9e3804d00f2..c19ef67a2e9 100644 --- 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 @@ -1,131 +1,73 @@ -\chapter{Images} +\chapter{Images : de nouvelles subtilités} -\label{chap_img_anx} +\label{chap-img-details}\lettrine{C}{omme} pour les mathématiques, l'insertion d'images sous \LaTeX{} est réalisée sans surprise et sans avoir à connaître des techniques très poussées. -\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} +Cependant, au fur et à mesure de la rédaction de tes documents, tu constateras que tu souhaiteras améliorer certains détails. Voici donc quelques astuces supplémentaires toujours utiles ! -\usepackage[hidelinks, breaklinks, linktoc = all]{hyperref} - -\newcommand{\reffig}[1]{(cf. \figurename{} \ref{#1} p. \pageref{#1})} +\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} \verb?<ref>? p. \verb?<page-ref>?) \fg{}, d'autant plus que le mot \og \textsc{Figure} \fg{} peut varier selon la classe. -\begin{document} +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 grâce à une commande. \\ -\begin{figure}[H] -\centering -%\includegraphics[width = 0.5\linewidth]{test.png} -\caption{La légende} -\label{essai} -\end{figure} +Mais c'est sans compter sur le package \verb?hyperref? qui propose déjà une commande toute prête à ce sujet : \verb?\autoref{<label>}?, qui écrit directement \og Figure \verb?<ref>? \fg{}. -Toutes les explications sont disponibles ci-avant \reffig{essai}. +Mais, si comme moi tu es un puriste et tu tiens à reprendre l'intitulé exact de la légende (soit \og \textsc{Figure} \fg{}, en petites capitales), il faut procéder à un petit correctif manuel \textbf{après} le préambule (pour éviter les conflits avec le package \verb?babel?) : -\end{document} +\begin{code}{} +\renewcommand{\figureautorefname}{\figurename{}} +\renewcommand{\tableautorefname}{\tablename{}} \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} +Et voilà, c'est tout ! Tu peux désormais t'amuser avec cette nouvelle commande très pratique. -\usepackage{graphicx, float, subcaption} +\section{Insérer des légendes intermédiaires} +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 est possible grâce au package \verb?subcaption? et de la commande éponyme : -\begin{document} +\begin{codedisplay}{Utilisation de \verb?subcaption?} +% Ajout dans le préambule +%\usepackage{graphicx, float, subcaption} -\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} +\begin{minipage}{0.45\linewidth} +\includegraphics[width = \linewidth]{fond.jpg} +\subcaption{Image A} \end{minipage} \hfill -\begin{minipage}{0.32\linewidth} -%\includegraphics[width = \linewidth]{image2.png} -\caption{Image 2} +\begin{minipage}{0.45\linewidth} +\includegraphics[width = \linewidth]{fond.jpg} +\subcaption{Image B} \end{minipage} -\hfill -\begin{minipage}{0.32\linewidth} -%\includegraphics[width = \linewidth]{image3.png} -\caption{Image 3} -\end{minipage} -\caption{Images de test} +\caption{Images A \& B} \end{figure} +\end{codedisplay} -% 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?. \\ +Les références continuent de fonctionner sans contrainte supplémentaire. Ne pas hésiter à faire des tests le cas échéant. -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?. +\begin{attention}{\verb?subfigure? : l'environnement à bannir !!!} +Le package \verb?subcaption? met à disposition un nouvel environnement, \verb?subfigure?, qui présente peu d'intérêt et dont l'utilisation est à bannir\footnote{Résultat d'une recherche sur un forum un jour, dont je n'ai plus la source.} -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} +Pour rappel/précision, les commandes \verb?\caption? ou \verb?\subcaption? ne sont valides que dans un élément flottant soit dans un environnement global \verb?figure?. +\end{attention} -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. +Enfin, le package \verb?subcaption? charge aussi le package \verb?caption?, 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}. +Il est possible d'être amené, ponctuellement, à regrouper un grande nombre de fichiers (images, PDF\dots{}) dans un seul et unique 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 : +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? sous \LaTeX{}. Tout est résumé dans le code ci-après : \begin{code}{Insertion avec une boucle for} \documentclass[a4paper, 12pt]{report} +\usepackage{lmodern} +\usepackage[french]{babel} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} + \usepackage{graphicx, float} % Si images \graphicspath{{./Images/}} % Chemin des images \DeclareGraphicsExtensions{.jpg} % Pour définir l'extension des images @@ -141,14 +83,16 @@ Ce n'est pas bien compliqué et tout est résumé dans le code ci-dessous : % #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} -}} +\newcommand*{\insertgraphicsfiles}[3]{% + \foreach \i in {#1,...,#2} {% + \vspace*{\fill} + \begin{figure}[H] + \centering + \includegraphics[width = 0.99\linewidth]{#3\i} + \end{figure} + \vspace*{\fill} + } +} % Insertion images 001 à 009 \insertgraphicsfiles{1}{9}{00} @@ -164,82 +108,82 @@ Ce n'est pas bien compliqué et tout est résumé dans le code ci-dessous : \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? : +Et voilà ! Le code peut paraître un peu saugrenu car j'ai choisi de numéroter les images de 001 à 999, pour garantir le bon rangement par ordre alphabétique dans l'ordinateur. + +Tu peux bien entendu simplifier le code présenté ou l'adapter selon la façon dont tu nommes tes images. \\ -\begin{code}{Une autre application : le trombinoscope} +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{coderesult}{Réaliser un trombinoscope} \documentclass[a4paper, 12pt]{report} +\usepackage{lmodern} +\usepackage[french]{babel} \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 +\DeclareGraphicsExtensions{.jpg} % 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 +\newcommand*{\affiche}[3]{\begin{tabular}{c} \includegraphics[width = 0.32\linewidth]{#1} \\ #2 \textsc{#3} \end{tabular} } +% Attention, l'espace après le \end{tabular} est indispensable pour les renvois. Sinon, tout s'affiche sur une seule ligne + \begin{document} \begin{center} -\Huge{\textsc{Titre}} +\huge{\textsc{Titre}} \end{center} +% Application avec mon image fond.jpg \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}} +Prénom/Nom/fond,% +Prénom/Nom/fond,% +Prénom/Nom/fond,% +Prénom/Nom/fond} {\affiche{\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} +\end{coderesult} -Nous reviendrons plus tard, avec le chapitre sur \verb?TikZ?, sur des utilisations de la boucle \verb?for?. +Nous reviendrons plus tard, avec le chapitre sur \TikZ{}, \autoref{chap-tikz} p. \pageref{chap-tikz}, sur d'autres utilisations de la boucle \verb?for? sous \LaTeX{}. \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. +Si, comme moi, tu apprécies ne pas avoir de gros pixels immondes au moindre zoom de ton fichier PDF, il est possible d'importer un fichier \verb?.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 : +Pour ce faire, aucun package supplémentaire n'est requis et il faut juste suivre la procédure suivante : \begin{enumerate} +\item Enregistrer le fichier \verb?.svg? sous \Inkscape{} au format \verb?.pdf? (option \verb?Enregistrer sous?). -\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 dans les options, choisir ``Exclure le texte \dots{}'' et ``Utiliser la taille \dots{}'', +\item Garder les \textbf{deux} fichiers générés (\verb?.pdf? et \verb?.pdf\_tex?). -\item garder les DEUX fichiers générés (\texttt{.pdf} et \texttt{.pdf\_tex}), +\item Utiliser le code ci-après et compiler le tout. +\end{enumerate} -\item utiliser le code suivant : - -\begin{figure}[H] -\centering -\begin{minipage}{0.5\linewidth} -\begin{verbatim} +\begin{code}{Insérer un fichier \verb?.svg?} \begin{figure}[H] \centering -\def\svgwidth{\columnwidth} -%\input{nom_fichier.pdf_tex} +\def\svgwidth{\columnwidth} % Pour définir la largeur de l'image +%\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} +% \def\svgwidth{0.8\linewidth} est aussi envisageable +\end{code} -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. +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 \Inkscape{}, enregistrer l'image au format \verb?.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). \\ +Les pixels ne se verront toujours pas au zoom et la compilation se fait sans souci sous PDF\LaTeX{} (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 |