Page 1 sur 1

lrbox multipages ?

MessagePosté: Jeudi 12 Octobre 2017, 11:26
par josephtux
Bonjours,

je voudrais pouvoir afficher la table des matières (de tout le document) plusieurs fois, et je pensai pouvoir utiliser newsavebox et l'envionnement lrbox.

La table des matières occupe plus d'une page.

Le but n'est pas réellement intéressant, et j'avoue que ma question est purement théorique, la TOC n'étant qu'un (mauvais) exemple.

Serait-il possible de réaliser une telle chose que je ne parviens pas à faire?

Re: lrbox multipages ?

MessagePosté: Jeudi 12 Octobre 2017, 21:59
par marco56
Un ecm ?

Re: lrbox multipages ?

MessagePosté: Vendredi 13 Octobre 2017, 09:53
par touhami
Bon jour. Vous pouvez faire ça à l'aide de TeX (primitives \setbox, \vbox et unvcopy ou unvbox)
Code: Tout sélectionner
\documentclass{article}
\usepackage{lipsum}

\newsavebox\mtbox

\begin{document}
\setbox\mtbox=\vbox\bgroup
\lipsum[1-20]
\egroup

\section{Foo}
\unvcopy\mtbox
\section{Bar}
\unvcopy\mtbox

\end{document}

Re: lrbox multipages ?

MessagePosté: Vendredi 13 Octobre 2017, 12:48
par un bon petit
touhami a écrit:Bon jour. Vous pouvez faire ça à l'aide de TeX (primitives \setbox, \vbox et unvcopy ou unvbox)
Code: Tout sélectionner
\documentclass{article}
\usepackage{lipsum}

\newsavebox\mtbox

\begin{document}
\setbox\mtbox=\vbox\bgroup
\lipsum[1-20]
\egroup

\section{Foo}
\unvcopy\mtbox
\section{Bar}
\unvcopy\mtbox

\end{document}


Hors sujet car une boite verticale ne peut pas s'étendre sur plusieurs pages, ce qui est le cas ici puisque la table des matières « occupe plus d'une page ». Pour qu'elle puisse franchir des sauts de pages, c'est plus texnique : il faut la couper n-1 fois avec la primitive \vsplit (où n est le nombre de pages qu'occupe la table des matières). Je vous laisse modifier votre réponse et éditer votre message afin de répondre à la question posée.

Re: lrbox multipages ?

MessagePosté: Vendredi 13 Octobre 2017, 13:48
par touhami
un bon petit a écrit:Je vous laisse modifier votre réponse et éditer votre message afin de répondre à la question posée.

Je vais attendre pour des informations supplémentaires de P.O. merci.