Un très gros document scrbook (plus de 200 pages) composé de très peu de texte et un très grand nombre de fichiers inclus (includepdf et une dizaine de includegraphics (pour les jpg et png)

J'ai donc un grand nombre de séries de ce type:

\addcontentsline{toc}{section}{Documents réglementaires}
\addcontentsline{toc}{subsection}{Contrat (35~p.}
\includepdf[pages=-,]{contrat.pdf}
\addcontentsline{toc}{subsection}{Contrat (35~p.}
\includepdf[pages=-,]{contrat.pdf}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

parfois séparées par des « \newpage »

Avec hyperref j'espérais que la table des matières permette d'aller à la bonne page, la première page du fichier pdf indiqué par \addcontentsline.

mais ce n'est pas le cas.

un ECM, (pas tout à fait minimum: ECptafm)

\documentclass[french,a4paper,11pt,DIV=calc]{scrbook} % pas \abstract, sauf si package abstract
\KOMAoptions{%
toc=listof,
footnotes=multiple, % appels de notes multiples comme ça¹,² -nécessite \frenchsetup{AutoSpaceFootnotes=false
headings=small, % Fontes des titres plus petites
}
\usepackage{lipsum}
\usepackage{pdfpages} % \includepdf
\usepackage[]{graphicx} % \includegraphics
\usepackage[french]{babel} % en dernier, mais avant hyperref
\usepackage[%
hidelinks, % hyperliens cachés
linktoc=all,
]{hyperref} % fourni aussi \nameref et \url
\begin{document}
\setcounter{tocdepth}{2}
\tableofcontents
\listoffigures
\chapter{Chapitre Foo}
\addcontentsline{toc}{section}{Foo}
\includepdf[pages=-,]{Foo.pdf}
\lipsum
\addcontentsline{toc}{chapter}{Bar}
\addcontentsline{toc}{section}{Bar}
\includepdf[pages=-,]{Bar.pdf}
\addcontentsline{toc}{section}{Barbar}
\includepdf[pages=-,]{Barbar.pdf}
\chapter{Chapitre suivant}
\lipsum
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Posée 17 Mar, 17:07

joseph-tux's gravatar image

joseph-tux
52523565
Taux d'acceptation : 3%

Modifiée 17 Mar, 17:09

1

\includepdf démarre une nouvelle page alors ça ne peut pas marcher. (Ce n'est pas hyperref qui est défectueux, il fait exactement ce que le code lui dit de faire.) Une solution : utiliser l'option addtotoc du package pdfpages à la place des \addcontentsline, cf. la doc du package.

(17 Mar, 17:18) jybaudais jybaudais's gravatar image

J'utilise le code suivant :

\includepdf[pages=-,
addtotoc={1,
subsection,
2,
{titre du document avec espaces et raffinements typographiques si besoin},
label}
]
{document.pdf}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Je l'ai trouvé en page 7 de la doc de pdfpages. Donc pas d'\addcontentsline, de \phantomsection ou autre.

Malgré son caractère expérimental (si l'on en croit la doc), ce code est fiable : je m'en sers toute l'année, y compris dans de gros documents avec de nombreux fichiers pdf rapportés.

Il faut bien renseigner les cinq paramètres de addtotoc, en revanche. Le titre du document est entre crochets, ce qui permet d'y insérer des tirets avant un éventuel sous-titre ; je pense avoir réussi à insérer une virgule dans un titre de document, mais c'était difficile car les virgules délimitent les cinq paramètres d'addtotoc... et je ne retrouve plus ce fragment de code. Je pourrai chercher plus si besoin.

Lien permanent

Publiée Il y a 2 jours

Pathe's gravatar image

Pathe ♦♦
7.6k49208252
Taux d'acceptation : 54%

Modifiée Il y a 2 jours

1

Ces 2 solutions répondent parfaitement. celle de Pathe est plus concise, mais un peu moins lisible sauf à relire la doc à chaque fois que cette question se pose (au moins pour un déficient mnésique qui n'y sera confronté que très rarement comme dans mon cas) Un autre avantage de la syntaxe de Pathe sans \addcontentsline est l'argument label intégré dans les paramètres. Une différence importante: l'argument addtotoc imprime la numérotation de section, alors que l'argument addcontentsline ne le fait pas.

(Il y a 2 jours) joseph-tux joseph-tux's gravatar image

@joseph-tux : vous écrivez « l'argument addtotoc imprime la numérotation de section » : il l'imprime dans la table des matières, c'est ça ?

(Il y a 2 jours) Pathe ♦♦ Pathe's gravatar image

@Pathe Oui à votre question.

dans l'argument addtotoc, à quoi correspond le « 2 ». Je crois comprendre qu'il reproduit la version numérique du nom de sectionnement. Cette redondance m'en fait douter, et malgré des tests, je n'en comprends pas la signification.

(Il y a 2 jours) joseph-tux joseph-tux's gravatar image

@joseph-tux : oui, c'est redondant. Si l'on en croit la doc :

⟨section⟩: LATEX sectioning name – e.g., section, subsection, …
⟨level⟩: Number, denoting depth of section – e.g., 1 for section level, 2 for subsection level, …
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Je crois que c'est redondant pour ne pas avoir de loupé selon la classe : book a plus de niveaux hiérarchiques qu'article, par exemple.

C'est un peu perturbant, mais le principal est que ça fonctionne, et c'est le cas. Je l'utilise depuis des années.

(Il y a 2 jours) Pathe ♦♦ Pathe's gravatar image
\documentclass[french,a4paper,11pt,DIV=calc]{scrbook} % pas \abstract, sauf si package abstract
\KOMAoptions{%
toc=listof,
footnotes=multiple, % appels de notes multiples comme ça¹,² -nécessite \frenchsetup{AutoSpaceFootnotes=false
headings=small, % Fontes des titres plus petites
}
\usepackage{lipsum}
\usepackage{pdfpages} % \includepdf
\usepackage[]{graphicx} % \includegraphics
\usepackage[french]{babel} % en dernier, mais avant hyperref
\usepackage[%
hidelinks, % hyperliens cachés
linktoc=all,
]{hyperref} % fourni aussi \nameref et \url
\begin{document}
\setcounter{tocdepth}{2}
\tableofcontents
\listoffigures
\chapter{Chapitre Foo}
\includepdf[pages=-,pagecommand*={\phantomsection\addcontentsline{toc}{section}{Foo}}]{example-image-a.pdf}
\lipsum
\addcontentsline{toc}{chapter}{Bar}
\includepdf[pages=-,pagecommand*={\phantomsection\addcontentsline{toc}{section}{Bar}}]{example-image-b.pdf}
\includepdf[pages=-,pagecommand*={\phantomsection\addcontentsline{toc}{section}{Barbar}}]{example-image-a4-numbered.pdf}
\chapter{Chapitre suivant}
\lipsum
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Lien permanent

Publiée 17 Mar, 17:21

samcarter's gravatar image

samcarter
8.6k2817
Taux d'acceptation : 57%

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

Mots-clés de la question :

×29
×3

Question posée : 17 Mar, 17:07

Question vue : 102 fois

Dernière mise à jour : Il y a 2 jours

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

×