Je mets en page, à l'aide du package verse, une anthologie poétique, destinée à être consultée sur écran à raison de deux pages côte à côte. Il y a une section par poète, et chaque poème occupe une page et représente une sous-section.

Chaque section commence sur une page impaire, grâce au code suivant :

Ouvrir dans l'éditeur Overleaf
% Les sections commencent en pages impaires
\let\oldsection\section
\def\section{\cleardoublepage\oldsection}

J'aimerais également que chaque section se termine sur une page impaire, de telle sorte que jamais un poème ne se trouve en vis-à-vis du nom du poète de la section suivante.

Comment faire ?

Posée 04 Déc '17, 01:04

Pathe's gravatar image

Pathe ♦♦
7.4k28196245
Taux d'acceptation : 55%

Ce n'est pas la bonne manière pour redéfinir la \section.

Il faut définir une nouvelle commande \mycleardoublepage puis utiliser etoolbox : \pretocmd\section\mycleardoublepage{}{}

(04 Déc '17, 09:17) touhami touhami's gravatar image

Définir une nouvelle commande : je veux bien, mais en quels termes ? Elle fait quoi, cette nouvelle commande ? \newcommand{\mycleardoublepage}{?}

(04 Déc '17, 11:44) Pathe ♦♦ Pathe's gravatar image

Plutôt que la section se termine sur une page impaire, ne faudrait-il pas qu'elle commence sur une page impaire et que la page paire précédente soit vide ?

(04 Déc '17, 18:24) jerome dequeker jerome%20dequeker's gravatar image

c'est \makeatletter \newcommand{\mycleardoublepage}{\clearpage\hbox{}\newpage \ifodd\c@page\else\hbox{}\newpage\fi} \makeatother.

(07 Déc '17, 11:07) touhami touhami's gravatar image

C'est sensiblement ce que j'obtiens dans ma solution à l'aide de la commande \checkoddpage de l'extension changepage.

(07 Déc '17, 12:49) Bernard Bernard's gravatar image

@Bernard Oui, mais Pathe m'a posé une question et je dois lui répondre :-)

(07 Déc '17, 18:26) touhami touhami's gravatar image

@touhami: Ce n'était pas un reproche ! Bien au contraire : les grands esprits se rencontrent ;o)

(07 Déc '17, 22:02) Bernard Bernard's gravatar image
Affichage de 5 parmi 7 Afficher 2 commentaire(s) en plus

Voici une solution, reposant sur les extensions changepage et titlepage. Je définis effectivement une commande \mycleardoublepage pour ce faire, et une command \mysection, qui n'est autre que \section, formattée par titlesec et précédée par \mycleardoublepage. De la sorte, la commande \section normale reste accessible, pour d'autres parties du livre (une longue introduction avec des sections, par exemple).

Ouvrir dans l'éditeur Overleaf
\documentclass[a4paper, 11pt]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{garamondx}
\usepackage{microtype}
\usepackage[pagestyles, clearempty]{titlesec}
\usepackage{changepage}

\usepackage{lipsum}

\titleformat{\chapter}[display]{\thispagestyle{empty}\Huge\bfseries\filcenter}{\thechapter}{3ex}{\scshape\lsstyle}[\cleardoublepage]
%
\titleformat{\section}{\LARGE\bfseries\filcenter}{\arabic{section}.}{0.5em}{}
\titlespacing{\section}{0pt}{6ex}{12ex}
\titleclass{\section}{top}
\titleclass{\chapter}{part}

\newpagestyle{mystyle}{%
\headrule
\sethead[][\itshape\sectiontitle][]{}{\lsstyle\scshape\chaptertitle}{}
\setfoot{}{--\,\textosfI{\thepage}\,--}{}
}

\renewpagestyle{plain}{%
\setfoot{}{--\,\textosfI{\thepage}\,--}{}
}

\newcommand{\myclearpage}{\checkoddpage
\ifoddpage\clearpage\else\newpage\thispagestyle{empty}\mbox{}\cleardoublepage\fi}
\newcommand\mysection[1]{\myclearpage\section{#1}}
\pagestyle{mystyle}

\begin{document}

\chapter{Les Petits Romantiques}

\mysection{Aloysius Bertrand}
\lipsum

\mysection{Pétrus Borel}
\lipsum[8-20]

\mysection{Xavier Forneret}
\lipsum[21-39]

\mysection{Gérard de Nerval}
\lipsum[40-49]

\end{document}

Un extrait du résultat :

Lien permanent

Publiée 05 Déc '17, 14:22

Bernard's gravatar image

Bernard
4.6k15
Taux d'acceptation : 35%

Modifiée 05 Déc '17, 15:55

Pathe's gravatar image

Pathe ♦♦
7.4k28196245

J'ai chargé les extensions changepage et titlesec, cette dernière avec les options que vous indiquez ; j'ai recopié vos commandes \mycleardoublepage et \mysection, et modifié mon fichier en conséquence.

Malheureusement, j'obtiens toujours des sections se terminant en page paire, suivies par une nouvelle section débutant sur la page impaire en vis-à-vis.

J'aimerais que, dans ce cas, deux pages vierges soient insérées : la première section se terminerait par ces pages, et la section suivant commencerait bien en page impaire, face à une page vierge.

(05 Déc '17, 16:04) Pathe ♦♦ Pathe's gravatar image

Explication : cela m'éviterait d'avoir le dernier poème de la section « Jacques Prévert » faisant face à la mention « Raymond Queneau », qui marque le début de la section suivante.

(05 Déc '17, 16:04) Pathe ♦♦ Pathe's gravatar image

Avez-vous compilé le document complet ? J'obtiens bien deux pages vierges dans ce cas (j'ai varié le nombre de paragraphes demandés par la commande lipsum pour que les sections se terminent tantôt sur une page paire, tantôt sur une page impaire). Sinon, il faudrait un ECM. Il y a peut-être dans votre préambule des macros ou des extensions qui inhibent ce dispositif.

(05 Déc '17, 18:16) Bernard Bernard's gravatar image

J'obtiens hélas ceci : ! Undefined control sequence. <argument> --\,\textosfI {\thepage }\,-- l.39.

Je n'ai rien changé à votre code, si ce n'est utilisé kpfonts en lieu et place de garamondx. Ma TeX Live est à jour.

(05 Déc '17, 22:15) Pathe ♦♦ Pathe's gravatar image

C'est le package garamondx qui définit la commande \textoxfI.

Il faut donc remplacer \setfoot{}{--\,\textosfI{\thepage}\,--}{} par \setfoot{}{--\,\thepage,--}{}

(05 Déc '17, 22:23) jerome dequeker jerome%20dequeker's gravatar image
1

\textosfI permet, avec garamondx, d'obtenir pour des chiffres elzéviriens un 1 bas-de-casse qui ressemble à un I petit capitale, et non à un 1 standard en réduction. Ce n'est évidemment pas vital.

(06 Déc '17, 01:29) Bernard Bernard's gravatar image

En effet, sans cette commande, cela compile sans heurt, et produit bien les pages blanches aux endroits désirés.

Je retourne observer mon code.

(06 Déc '17, 01:51) Pathe ♦♦ Pathe's gravatar image

@Pathe: en fin de compte, est-ce que ce code résout votre problème ((indépendamment du problème de police) ?

(15 Déc '17, 19:58) Bernard Bernard's gravatar image

Pour l'instant je n'en suis pas certain. J'ai « démonté » une partie de mon code, sans obtenir d'amélioration. Mais je n'ai pas terminé mes investigations. Je ne manquerai pas de signaler si oui ou non, votre solution fonctionne pour moi.

(16 Déc '17, 02:36) Pathe ♦♦ Pathe's gravatar image
Affichage de 5 parmi 9 Afficher 4 commentaire(s) en plus
Votre réponse
(dés)activer 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

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.