J'ai un dossier contenant une trentaine de fichiers .png, qui ont des noms correspondant à ce qu'ils représentent : ces noms sont variés.

Avec LaTeX et la commande \includegraphics, j'aimerais créer un fichier .pdf avec un .png par page, occupant la largeur de celle-ci.

Mieux encore, je serais très content d'écrire le nom du fichier .png (sans son suffixe) en tête de la page qui le contient.

Comment faire ça à l'aide d'un script ?

Posée 18 Jul, 23:47

Pathe's gravatar image

Pathe ♦♦
7.7k58212258
Taux d'acceptation : 56%


J'ai ceci :

_
#!/bin/bash
# Nom du fichier LaTeX généré par le script
TEXFILE=images.tex
# En-tête du document
cat > $TEXFILE <<EOF
\documentclass[a4paper,12pt, DIV = 19, BCOR = 0pt, french]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[sfdefault]{plex-sans}
\usepackage{graphicx}
\usepackage{babel}
\begin{document}
EOF
# Boucle sur les fichiers PNG
for img in picts/*.png; do
base=$(basename "$img" .png)
cat >> $TEXFILE <<EOF
\clearpage
\textbf{$base}
\begin{center}
\includegraphics[width=\linewidth]{$img}
\end{center}
EOF
done
# Fin du document
echo "\end{document}" >> $TEXFILE
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Ça fonctionne correctement. Bon, ça commence la première page par un \clearpage inutile, mais j'ai retouché ça dans le .tex après sa création par le script.

L'avantage est que ça m'évite de retaper le nom de chaque image dans le texte : le script va le chercher tout seul.

Lien permanent

Publiée 20 Jul, 12:21

Pathe's gravatar image

Pathe ♦♦
7.7k58212258
Taux d'acceptation : 56%

Modifiée 20 Jul, 12:25

Voici ce que je propose :

\documentclass[12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[a4paper]{geometry}
\usepackage{xspace}
\usepackage{graphicx}
\usepackage{lmodern}
\usepackage{fancyhdr}
\lhead{}\chead{\nomdimage}\rhead{}
% \lfoot{}\cfoot{\thepage / \pageref{LastPage}}\rfoot{}
% \renewcommand\footrulewidth{0.5pt}
% \renewcommand\headrulewidth{0pt}
\usepackage[main=french]{babel}
\usepackage{mwe}
\ExplSyntaxOn
\NewDocumentCommand{\nomdimage}{}{ une~image }
\NewDocumentCommand{\placerimage}{m}{
\newpage \noindent
\includegraphics[width=\textwidth]{#1}
\RenewDocumentCommand{\nomdimage}{}{#1}
}
\NewDocumentCommand{\placerlesimages}{>{\SplitList{;}} m }{
\ProcessList{#1}{\placerimage}
}
\ExplSyntaxOff
\begin{document}
\pagestyle{fancy}
\placerlesimages{example-image ; example-image-a; example-image-b}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

J'ai laissé en commentaire la possibilité de changer aussi le pied de page et de mettre des traits de séparation si nécessaire.

Le code ne fonctionne pas si les noms de fichier contiennent le caractère _ (souligné) et, dans ce cas-là, je passe la main. Cependant, il me semble plus facile de changer les noms de fichiers que de résoudre le problème dans LaTeX ;)

Lien permanent

Publiée 19 Jul, 10:45

Le%20TeXnicien%20de%20surface's gravatar image

Le TeXnicien de surface
2.1k915
Taux d'acceptation : 26%

C'est bien, mais ça oblige à inclure le nom des images dans le code. J'aimerais un script qui génère le fichier sans qu'il y ait besoin d'aller recopier les noms des images.

(19 Jul, 23:28) Pathe ♦♦ Pathe's gravatar image
Votre réponse
[Masquer 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

C'est votre première visite ici ? Consultez la FAQ !

×