Bloc-notes de Sylvain

Création du volume de publications d'une HDR

Lorsqu'une personne souhaite obtenir une Habilitation à diriger des recherches (HDR), elle inclut le plus souvent son dossier un recueil d'articles publiés par ailleurs. Ce billet vise à conserver quelques notes sur la manière de générer ce fichier de synthèse, qui sera donc un volume PDF, incluant des articles publiés dans plusieurs revues, avec des mises en formes hétérogènes.

Cette méthodologie est un exemple déjà appliquée par itérations successives, mais n'est pas forcément LA solution. En tout cas ça a fonctionné, le billet pourra bien entendu être amené à évoluer.

Contexte technique

L'ensemble des manipulations présentées ici ont été faites sur le système Linux avec des outils relativement standards, le principal étant PdfTk. Ce logiciel étant disponible sur Mac & Windows il devrait donc être possible de transposer ce qui est présenté ici vers ces systèmes.

La problématique

Dans un volume de publications d'une HDR, on va inclure des articles variés, issus de publications diverses, auxquels on va souhaiter donner une certaine cohérence pour produire un unique fichier :

  • avec une table des matières;
  • donc avec une pagination propre au fichier;
  • une page intercalaire permettant d'introduire chaque article;
  • éventuellement une pagination qui permet une impression recto/verso avec début des articles sur la page de droite;

Création de la trame du document

sommaire01 On va commencer par créer la trame du document dans notre traitement de texte favori :

  • page de titre;
  • pages liminaires;
  • sommaire : comme on le voit sur l'image ci-contre, ce dernier est une ébauche de sommaire, on n'indique pas encore les numéros de page, qui vont être conditionnés par la taille des différents articles, l'ajout d'éventuelles pages blanches, etc.
  • une page de présentation par article, qui permettra d'introduire chaque article et d'ajouter une délimitation claire entre chacun.

On créer un fichier pdf volume.pdf (exemple) à partir de cette première trame qui va nous servir pour la suite.

Ce volume ne comporte pas de pagination en bas de page, elle sera ajoutée plus tard. Le contenu qui se trouve actuellement à la page 6 de notre fichier exemple ci-dessus, qui est la page intercalaire pour introduire l'article 3, se trouvera bien entendu décalée une fois les articles 1 et 2 insérés, il est donc trop tôt pour numéroter ces pages.

Rassembler les articles

Les sources des articles vont être assez hétérogènes, la première chose à faire est donc de s'assurer qu'ils sont tous en A4 pour éviter d'avoir au final un PDF hétérogène. Pour cela on utilisera la commande suivante :

pdfjam --outfile A4/01.pdf --paper a4paper 01.pdf

Par simplicité j'ai choisi de nommer les articles sources XX.pdf où XX est le numéro d'apparition de l'article dans le volume de publications.

La commande ci-dessus va donc retravailler l'article 01.pdf pour en créer une version au format A4 dans le sous-dossier A4.

Pour cela, pdfjam va étirer le fichier si celui-ci est plus petit que du A4, cette étape pourrait certainement être peaufinée en ajoutant des marges par exemple, en fonction des formats source.

 Effectuer une première fusion

On dispose maintenant des fichiers suivants :

On va lancer la commande suivante :

pdftk \
    A=volume.pdf B=01.pdf C=02.pdf D=03.pdf \
    cat \
    A1-3 \
    A4 B \
    A5 C \
    A6 D \
    output volume_fusion.pdf

Explications des différentes lignes de cette commande :

  • pdftk : on utilise l'utilitaire pdftk (PDF Toolkit) qui permet de faire tout un tas de manipulations sur les fichiers PDF;
  • A=volume.pdf B=01.pdf C=02.pdf D=03.pdf : on donne un code à chacun de nos fichiers sources (volume.pdf → A; 01.pdf → B ...)
  • cat : on indique l'opération que l'on souhaite appliquer à ces fichiers, à savoir une concaténation;
  • on indique ensuite les contenus que l'on souhaite concaténer, fichiers entiers ou intervalles au sein des fichiers :
    • A1-3 : les pages de titre, remerciement et sommaire du fichier A, donc volume.pdf;
    • A4 B : la page intercalaire introduisant l'article 1 (on aurait pu utiliser A1-4 à l'étape précédente, la séparation permet de rendre plus lisible les choses) + B le contenu de l'article 1;
    • A5 C : intercalaire article 2 (page 5 de volume.pdf donc A5) + tout le contenu de l'article 2 (C)
    • A6 D : intercalaire article 3 (page 6 de volume.pdf donc A6) + tout le contenu de l'article 3 (D)
  • output volume_fusion.pdf : on indique le résultat (output) doit être enregistré dans un fichier volume_fusion.pdf (voir l'exemple pour notre exemple);

Ajout de la pagination

La pagination doit être ajoutée a posteriori sur le fichier volume_fusion.pdf. Pour cela, on va créer un fichier pagination.pdf à l'aide de notre traitement de texte qui ne va contenir que des pages blanches avec leur pagination. Voir par exemple le fichier pagination.pdf réalisé pour cet exemple, dans lequel on a choisi de ne pas numéroter la première page (page de titre) puis de commencer la numérotation à 1.

On va alors lancer un nouvelle commande pdftk pour venir ajouter cette pagination en surimpression de notre fichier volume_fusion.pdf :

pdftk volume_fusion.pdf multistamp pagination.pdf output volume_fusion_pagination.pdf

Notre fichier paginé, volume_fusion_pagination.pdf

Réintégration de la pagination dans le sommaire

Vient l'étape fastidieuse où l'on va devoir aller dans le sommaire et remplacer les XXX que l'on avait mis en attente par la numérotation effective de la page. Pour moi, l'article 1 se trouve à la page 3, l'article 2 à la page 6 et l'article 3 à la page 14.

Une fois l'opération effectuée on relance les opérations de fusion + ajout de pagination en surimpression pour obtenir le fichier final.

Dans l'idéal et pour pouvoir rejouer les différentes étapes, on stockera l'enchaînement des opérations dans un script Bash.

Notes

 Gestion du recto-verso

Si l'on souhaite intégrer des pages blanches pour une impression recto verso avec page intercalaire toujours sur un recto, on créer un fichier pdf "blanc.pdf" en exportant en PDF une page vide de son traitement de texte, on l'ajoutera comme un fichier à part dans l'étape de fusion et on l'intégrera à plusieurs endroits si nécessaire :

pdftk \
    A=volume.pdf B=01.pdf C=02.pdf D=03.pdf E=blanc.pdf \
    cat \
    A1-3 E \
    A4 B \
    A5 C E \
    A6 D \
    output volume_fusion.pdf

Améliorations

On a ici un PDF qui n'est pas indexé, le sommaire n'est pas cliquable, tout ceci serait donc certainement améliorable.