Illustrations à gauche, texte à droite - Serpent de mer
Bonjour à tous.
Mon sujet est un sujet à la fois récurrent et pour lequel aucune solution très satisfaisante ou fiable a jamais été trouvée.
Le but:
Afficher le texte sur la page de droite et les images, quand il y en a, sur la page de gauche (classe type book en mode twoside); quand il n'y en a pas, afficher une page blanche.
En ce qui concerne la numérotation des pages de gauche: a priori rien, mais si c'est configurable, c'est encore mieux. Pour ce qui est des pages de droites, consécutives (c'est à dire 1 - 2 - 3 - 4 et pas 1 - 3 - 5 - 7...).
Les problèmes identifiés:
- La classe et ses légères modifications prévoient déjà des pages de gauche blanche de temps à autre. Il peut être très fastidieux d'éplucher toutes les occurences pour les "annuler".
- L'idéal serait que la "numérotation" des images correspondent à la page qui fait face (même si le numéro ne s'affiche pas à l'écran) dans la liste of figures.
- Mais le plus gros problème, et de loin, dans tous les cas, est que le moindre "saut" et la moindre "génération" de page blanche supplémentaire à quelque endroit que ce soit provoque des décalages de mise en page rédhibitoires. En effet, il semble que la mise en page odd ou even dépendent non pas de la réalité physique, mais de la numérotation de la page. J'avoue que je ne maitrise pas vraiment l'ensemble des compteurs utilisables.
Mon back-up, évidemment, c'est de fusionner deux fichiers, l'un oneside, et l'autre de pages blanches ou illustrées, en mode pdf. Mais le soucis avec ça, c'est que je n'ai plus de list of figures... en tout cas, pas sur une page de droite... Et en plus, pour une thèse de 400 pages de texte environ, c'est lourd...
Ce que j'ai déjà testé:
- Faire des macros avec afterpage, en vidant une liste de figures qu'on remplit sur les pages précédentes, ou en remplissant d'une page blanche en cas de liste vide: problème avec les numéros, par exemple.
- Faire un "compteur" de pages réelle pour n'appliquer les macros traitant des pages droite et des pages gauches qu'aux bons endroits : problème avec les pages rajoutées par la classe, qui elles n'incrémentent pas mon compteur réel, et donc décalent tout.
- Utiliser semionepage, mais cela m'introduit trois pages au lieu d'une, et je n'arrive pas à savoir pourquoi...
- Insérer à la main les illustrations ou les pages blanches pour chaque page de "droite": ce sera très long... et il est assez difficile de bien renuméroter.
Je suis preneur de toute solution, mais j'avoue que je commence à désespérer.
A une occasion j'ai saisi une idée de quelqu'un proposant d'empêcher tout texte de se mettre sur une page de gauche, et toute image sur une page de droite, mais cela ne résoud pas la numérotation et le fait que la mise en page dépendent de la parité, et cela dépasse mes compétences.
Je suis prêt à tester toute idée.
Merci d'avance
Voici une solution pour ceux que ça intéresse
J'ai trouvé une solution plutôt correcte et robuste, en compilant plusieurs idées.
Tout d'abord, insérer une page sur deux blanche ou avec une image, ça se fait en mettant en préambule:
\usepackage{afterpage}
\makeatletter
\newcommand\@addfig{\relax}
\newcommand\addfig[1]{\global\long\def\@addfig{#1}}
\newcommand\@putfig{\@addfig\addfig{\relax}}
\newcommand\blankpage{%
\null
\vfill
\@putfig%
\vfill
\thispagestyle{empty}%
\clearpage%
\addtocounter{page}{-1}
\afterpage{\blankpage}}
\makeatother
Puis au début du document
\afterpage{\blankpage}
Après ça, dans le corps du texte, page précédente à la page en regard de laquelle on veut mettre l'image (si on ne met rien, il va s'insérer une page blanche non numérotée):
\addfig{%
\centering
\includegraphics[scale=1]{Image1}
\caption{Test}
\label{Ima1}
}
Vous remarquerez que je n'ai pas fait d'environnement figure, afin que mon image soit centrée au milieu de la page, et pas en haut de page (il est difficile de trafiquer correctement la macro d'insertion pour manipuler correctement le flottant figure, dont l'insertion directe est plus pratique).
Il faut donc redéfinir \caption pour que ça fonctionne hors flottant.
C'est très classique avec ça en préambule:
\makeatletter
\def\@captype{figure}
\makeatother
Bien entendu, cela ne marche pas si vous avez et des images, et des tableaux. Dans ce cas il faut réellement créer d'autre caption avec d'autres noms (faisable mais plus lourd).
Si vous faites tout cela, en mode oneside de la classe book vous obtiendrez un document avec:
- Le texte sur les pages de droites
- Les images, quand vous les mettez, sur les pages de gauches
- Des pages de gauches non numérotées (mais ça peut se changer, il faut modifier \thispagestyle{empty} dans la macro)
- Des caption qui fonctionnent et apparaissent dans la liste des illustrations avec comme numéro de page le numéro de la page en regard des illustrations
J'espère que cela sera utile à d'autres que moi.