Je souhaite ajouter à la fin d'un document une table des planches qui ressemble en gros à ceci : TABLE DES PLANCHES DU SECOND VOLUME. Ouvrir dans l'éditeur Overleaf
Pl. Pages. Pl. Pages. ─────────────────────────────────────────────────────────────────────────────────── 31e. — Chinois 4 │ 46e. — Entremets froids. 124 32e. — Hure 8 │ 47e. — Entremets froids, aux gradins. 140 33e. — Industrie 12 │ 48e. — Entremets froids, aux sultanes. 148 34e. — Taureaux 16 │ 49e. — Bordures de plat 168 35e. — Aigle 20 │ 50e. — Grand trophée 172 36e. — Buisson de truffes 22 │ 51e. — Fontaine 176 37e. — Chaufroix 24 │ 52e. — Ballon 180 38e. — Bagration 28 │ 53e. — Château fort. 184 39e. — Entrées froides 36 │ 54e. — Grande pièce gothique. 188 40e. — Entrées froides. 44 │ 55e. — Grande pièce orientale 192 41e. — Entrées froides. 48 │ 56e. — Pavillon chinois. 196 42e. — Rôts 60 │ 57e. — Pavillon gothique 204 43e. — Légumes 76 │ 58e. — Charlottes 208 44e. — Entremets chauds 100 │ 59e. — Grandes sultanes 212 45e. — Entremets froids. 112 │ 60e. — Gâteau de broche. 220 Bien entendu le lecteur est en droit de s'attendre à ce qu'un clic sur un élément de cette table le transporte directement à la planche souhaitée.Pour cela il sera donc nécessaire de définir des hyperliens. Ce résultat peut-il être obtenu en utilisant les seules fonctionnalités de LaTeX (commande xelatex) ou bien est-il nécessaire d'avoir recours comme pour l'index à un programme auxiliaire ? Précisions:
En espérant que l'exemple ci-dessus reste lisible après publication. . Posée 19 Déc '20, 21:30 Chris Jones XL |
Voici une solution basée sur etoc : La commande La commande Ouvrir dans l'éditeur Overleaf
\documentclass[french]{article} \usepackage{lmodern} \usepackage[T1]{fontenc} \usepackage{babel} \usepackage{mwe} \usepackage{pdfpages} \usepackage{etoc} \usepackage{hyperref} \newcounter{planche} \renewcommand{\theplanche}{\arabic{planche}e} \setcounter{planche}{30} \etocsetlevel{planche}{6} \newcommand{\insereruneplanche}[3]{% \includepdf[pagecommand={% \refstepcounter{planche}\label{#3}% \etoctoccontentsline{planche}{\protect\numberline{\theplanche}#2}}]{#1}} \newcommand{\tabledesplanches}{% \etocsetnexttocdepth{-1}% \begingroup \etocsetlevel{planche}{-1} \etocsetlevel{part}{0} \etocsetstyle{planche}{}{} {\noindent\makebox[1.8em][l]{\etocnumber.} -- \etocname\hfill\etocpage\par}{} \setlength{\columnseprule}{.4pt} \etocmulticolstyle[2]{\noindent {\bfseries\Large \MakeUppercase{TABLE DES PLANCHES DU SECOND VOLUME.\vskip1cm}}% \noindent Pl.\hfill Pages.\quad Pl.\hfill Pages.\vspace{.2cm}\hrule\vspace{.2cm}} \tableofcontents \endgroup} \begin{document} \tableofcontents %\huge \section{Foo} \lipsum[1-10] \insereruneplanche{ficherplancheI}{Chinois}{foo} \section{Bar} \lipsum[1-50] \insereruneplanche{ficherplancheII}{Hure}{bar} \section{Baz} \lipsum[1-10] \insereruneplanche{ficherplancheIII}{Entremets froids}{baz} \tabledesplanches \end{document} Publiée 21 Déc '20, 07:56 touhami @touhami cela fonctionne parfaitement. À part peut-être le fait que la table est alignée avec la marge gauche plutôt que centrée. Je devrais aussi supprimer les petits encadrés rouges pour les hyperliens : Comme le dit le manuel de etoc… de nos jours il est inutile d'ajouter ce genre de chose à une toc puisque dans un tel contexte l'utilisateur/lecteur considère qu'il est en droit de s'attendre à pouvoir cliquer et se voir immédiatement connecté à la page cible du document. Em deux mots… une solution élégante qui espérons-le sera utile à d'autres novices de mon acabit !
(22 Déc '20, 00:20)
Chris Jones XL
@touhami il me reste à intégrer votre code (à peine modifié) à mes sources markdown et roulez jeunesse. Une seule chose semble ne pas fonctionner. Je n'ai pas trouvé trace des labels (troisième argument de \inséreruneplanche{1}{2}{label} dans le document en sortie. Mais cela n'est pas en soi un problème (voir l'autre question que j'ai posée : https://texnique.fr/osqa/questions/9644/mise-en-page-de-la-legende-dune-planche-graphique-pleine-page-au-bas-de-la-page-precedant-celle-ci
(22 Déc '20, 00:27)
Chris Jones XL
1
Le troisième argument est la pour la création des références croisées. avec
(22 Déc '20, 09:11)
touhami
D'après ce que je comprends \insereruneplanche{}{}{} correspondrait en langage TeX à ce que l'on nomme macro-instruction dans les diverses formes de langage assembleur que j'ai pratiquées. Le généré de la macro est-il accessible dans un des fichiers créés au moment de la compilation (moyennant une option passée au compilateur si besoin est ?
(23 Déc '20, 00:46)
Chris Jones XL
Je n'ai pas bien compris votre question.
(24 Déc '20, 19:04)
touhami
J'essayais d'imaginer une stratégie qui m'aide à mieux comprendre le fonctionnement de vos 2 macros et je faisais sans doute fausse route. Le but recherché étant de pouvoir y apporter quelques modifications de détail. Je bute notamment sur le fait qu'il y a une ligne vide entre l'en-tête (Pl. .. Pages) et le corps de la table. (31e. — Chinois ... 4 | 46e. — Entremets ... etc.). Cela est ennuyeux car je ne veux surtout pas que la fin de la table s'imprime sur la page suivante.
(25 Déc '20, 22:41)
Chris Jones XL
Vous pouvez jouer sur
(26 Déc '20, 08:21)
touhami
j'avais pensé faire ce que vous recommandez mais pas très sûr de ce que je faisais cela ne donnait résultat escompté. Fort de votre conseil j'ai recommencé et avec un vspace{} négatif cela fonctionne comme souhaité.
(31 Déc '20, 01:00)
Chris Jones XL
Il ne me reste qu'un petit problème à résoudre : dans mon exemple toutes les planches ont un numéro à 2 chiffres. Dans le cas du premier volume de cet ouvrage, les planches sont numérotées à partir de : 1\textsuperscript{e}. Dans la mesure où le numéro de planche est aligné avec la marge gauche, dès que l'on passe de 9 à 10, l'alignement du tiret (em-dash) qui suit n'est plus respecté. Comment puis-je modifier la macro \tabledesplanches afin que le numéro de planche soit aligné à la droite de la colonne ?
(31 Déc '20, 01:17)
Chris Jones XL
Ah. C'est ma faute. Il suffit de remplacer
(31 Déc '20, 16:28)
touhami
(01 Jan '21, 21:28)
Chris Jones XL
Affichage de 5 parmi 11
Afficher 6 commentaire(s) en plus
|
Je n'est pas bien compris les points 3 et 5. Pourriez-vous nous expliquer davantage ?
Essayez l'extension
etoc
@touhami #3 fait allusion au fait que les planches sont référencées dans le document de la façon suivante : v. pl. N° 33… ou N°42… etc.(il s'agit du volume II… les 1-30 apparaissent dans le vol. I). #5 : la colonne numéro de page devrait respecter les conventions (?) d'alignement des nombres : si la 1ere ligne référence page 1 et la deuxième page 20 le 1 doit être aligné verticalement avec le 0 du 20. Par ailleurs comme les chiffres sont minuscules+proportionnels (oldstyle) et majuscules+monospace c'est bien sûr la seconde variété qui doit être utilisée ici (N° de planche et N° de page).
@samcarter au premier abord c'est effectivement ce que j'avais en tête… en particulier la possibilité d'utiliser une table comme support (plutôt) qu'une énumération) — ¶ 30 du manuel — semble prometteuse.Étant d'une nullité crasse techniquement je vais donc devoir copier-coller l'exemple et le modifier jusqu'à obtention du résultat souhaité.