Dans un document que je compose actuellement j'ai besoin d'ajouter en masse des photos.

J'utilise l'extension graphicx et les commandes suivantes :

Ouvrir dans l'éditeur
\begin{center}
\includegraphics[width = .9\textwidth]{ < nom_du_fichier_image > }
\end{center}

Toutes mes photos sont rangées dans le même dossier, appelé « images » ; nul autre document n'y figure.

Mes photos ont toutes un nom de la forme IMG_< numéro >.jpg, ces numéros étant consécutifs.

J'aimerais qu'un script me permette d'inclure d'un seul coup toutes ces photos dans mon document.

Le mieux serait qu'elles soient toutes au même endroit dans le code et qu'une commande créée pour l'occasion, du type \photo{< numéro >}, me permette de les placer à ma guise dans le texte.

Posée 01 Oct '15, 11:04

Pathe's gravatar image

Pathe ♦♦
7.5k42204251
Taux d'acceptation : 55%

Modifiée 02 Oct '15, 08:49

denis's gravatar image

denis ♦♦
7.3k1510


Tu veux juste une commande comme ça ?

Ouvrir dans l'éditeur
\newcommand{\photo}[1]{\begin{center} 
      \includegraphics[width = .9\textwidth]{image/IMG_#1.jpg}
\end{center}}
Lien permanent

Publiée 16 Oct '15, 17:52

raphkebab's gravatar image

raphkebab
111
Taux d'acceptation : 0%

Oui, ce genre de chose. Il s'agit d'appeler la neuvième photo de la galerie : \photo{009} et le logiciel en déduit qu'il faut afficher centrée la photo IMG_009.JPG.

Mais j'aimerais ne faire qu'une déclaration de nouvelle commande - et pas une par photo : auquel cas la macro \photo n'est pas très utile.

(16 Oct '15, 21:37) Pathe ♦♦ Pathe's gravatar image

Si les numéros sont connus, par exemple de 1 à 100, le package multido fait l'affaire :

Ouvrir dans l'éditeur
\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[a4paper]{geometry}
\usepackage{multido}
\usepackage{graphicx}
\usepackage{babel}
\begin{document}
\multido{\i=1+1}{100}{%
  \begin{center}
    \includegraphics[width = .9\textwidth]{IMG_\i.jpg}
  \end{center}
}
\end{document}
Lien permanent

Publiée 01 Oct '15, 17:11

denis's gravatar image

denis ♦♦
7.3k1510
Taux d'acceptation : 53%

Modifiée 02 Oct '15, 08:49

Le script fonctionne, mais présente les photos à la file.

Tout l'intérêt de la chose serait de créer une commande du type \photo{< numéro >} qui permette de les placer où l'on désire : la première photo ici, la troisième là, puis la huitième...

Cela répond à la préoccupation d'un utilisateur final qui rédige un document tout en se référant à une bibliothèque de photos, non ?

(02 Oct '15, 00:25) Pathe ♦♦ Pathe's gravatar image

Dans ce cas, il ne s'agit pas d'un traitement par lot et je vois pas trop ce qu'on peut faire de particulier à part recourir à une macro :

  • en préambule : \newcommand{\photo}[1]{\includegraphics[width = .9\textwidth]{IMG_#1.jpg}}
  • dans le corps du document : \photo{1}, \photo{3}, \photo{8}, etc. aux endroits souhaités.

Il est à noter que l'option keepaspectratio est par défaut égale à true si bien que j'ai supprimé keepaspectratio = true des question, réponse et commentaire.

(02 Oct '15, 08:43) denis ♦♦ denis's gravatar image

Depuis des années je m'entête à écrire keepaspectratio = true... alors que c'est inutile !

Pourrait-on mélanger la commande et l'utilisation de multido ? Comme cela :

Ouvrir dans l'éditeur
\multido{\i=1+1}{100}{%
  \newcommand{\photo}[\i]{\begin{center} \includegraphics[width = .9\textwidth]{IMG_\i.jpg} \end{center}}

Si ça fonctionnait, je pourrais écrire photo{1} ? L'idée serait que la commande photo déclenche l'import de la photo.

Si non, je change le titre du fil en « Import de photos pour créer une galerie ».

J'ai sans doute mal analysé mon besoin. Mea culpa.

(02 Oct '15, 10:28) Pathe ♦♦ Pathe's gravatar image
Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.