Dans la classe https://github.com/sveyret/LaTeX/blob/master/publivre.cls , les commandes chapter et part sont redéfinies afin de modifier le style de la dernière page du chapitre, et ne pas y afficher de numéro de page. Cela fonctionne plutôt bien, sauf lorsque ce qu'il y a à afficher sur la dernière page est très court. Dans ce cas, c'est l'avant-dernière page qui n'a pas de numéro. Voici un exemple (à compiler avec pdflatex) : Ouvrir dans l'éditeur Overleaf
\documentclass[chapnumsimple]{publivre} \usepackage{lipsum} \Titre{Un livre} \Auteur{Veyret}{Stéphane} \CouvResume{Résumé} \begin{document} \part{Première partie} \chapter{} \lipsum[1-5] — Oui, je suis d'accord. Mais il faudrait que ce bout de texte soit un tout petit peu plus long. \chapter{} \lipsum[7-22] \chapter{} \lipsum[26-30] \end{document} Vous verrez que, à la fin du premier chapitre, la dernière page à un numéro, alors que l'avant dernière n'en a pas. De plus, sur cet exemple, il y a même une page vide générée comme dernière page de chapitre (et je ne comprends pas pourquoi). Ce n'est pas le cas dans mon cas d'utilisation réel, où il y a toujours au moins quelques lignes sur la dernière page. Mais je n'ai pas réussi à le reproduire dans un exemple minimaliste. Posée 22 Aoû '17, 00:18 sveyret |
Je fais un point afin de pouvoir clôturer cette question et aider les autres personnes qui seraient dans le même cas que moi. Grâce aux informations données par @touhami, j'ai appris un peu mieux comment fonctionnait TeX, ce qui m'a permis de réécrire complètement ma classe, mais cette fois, en comprenant ce que je faisais… ;-) Pour éviter le problème cité, j'ai utilisé, toujours sur la suggestion de @touhami, un système avec les Pour ceux qui veulent voir la nouvelle classe elle se trouve ici : Publiée 13 Sep '17, 10:13 sveyret |
Le problème de la page vide dans l'ECM vient de la ligne blanche avant la commande Ouvrir dans l'éditeur Overleaf
\documentclass{article} \begin{document} foo \leavevmode foo \end{document} Je suppose que vous n'avez pas laissé cette ligne blanche dans le document réel. Le problème réel est dû au fonctionnement de (La)TeX. En effet TeX collecte le contenue de la page paragraphe par paragraphe (ou ligne par ligne) avant de décider où il coupe la page. On considère, par exemple, Ouvrir dans l'éditeur Overleaf
\documentclass[chapnumsimple]{publivre} \usepackage{lipsum} \Titre{Un livre} \Auteur{Veyret}{Stéphane} \CouvResume{Résumé} \begin{document} \part{} \chapter{} \lipsum[1-5] — Oui, je suis d'accord. Mais il faudrait que ce bout de texte soit un tout petit peu plus long. — Oui, je suis d'accord. Mais il faudrait que ce bout de texte soit un tout petit peu plus long. \chapter{} \end{document} Lorsque (La)TeX rencontre la commande La solution que je propose est de remplacer Publiée 22 Aoû '17, 22:42 touhami Merci beaucoup pour votre réponse. En fait, j'avais ajouté le \leavevmode pour corriger le problème, et cela m'avait semblé être un peu mieux… Finalement, force est de constater que ce n'est pas le cas. J'ai donc remplacé par un \par (correction effectuée sur le site github). Par contre, maintenant, en fin de chapitre 2, la page 15 n'est pas numéroté, tandis que la page 16 l'est.
(23 Aoû '17, 23:23)
sveyret
1
Il faut donc que je passe à une solution plus sophistiquée. La solution que je peux imaginer est d'utiliser le système des
(24 Aoû '17, 02:41)
touhami
Merci beaucoup @touhami. Je ne comprends pas toujours comment TeX fonctionne. J'aimerai bien trouver un ouvrage de référence en ligne pour l'étudier en détail…
(26 Aoû '17, 14:01)
sveyret
@sveyret Il faut ne publier de commentaires que s'ils enrichissent la base de connaissances (La)TeX et, en particulier, éviter ceux qui ne contiennent qu'une confirmation de solution ou que des remerciements. Le vôtre va donc être supprimé.
(27 Aoû '17, 17:25)
denis ♦♦
Affichage de 5 parmi 6
Afficher 1 commentaire(s) en plus
|
Le problème vient de
\leavevmode
dans la définition\newcommand\@TestEndChapter{% \if@danschapitre\@danschapitrefalse\leavevmode\AtEndChapter\fi% }
Pour résoudre le problème remplacer
\leavevmode
par\par
. Vous pouvez ajouter\par\thispagestyle{headings}
au début de la définition de\chapter
et\part
directement.Non, je ne peux pas le mettre au début de
\chapter
, sinon, cela va mettre ce style sur la page précédent le premier chapitre, ainsi que sur les pages entre les noms de parties et le premier chapitre qui suit.@sveyret Attention ! Les contre-obliques (
\
) saisies telles quelles dans les contributions ne sont visibles que si elles sont insérées en tant que⟨code⟩
ou, comme vous l'avez fait, en doublant ladite contre-oblique (mais cette dernière méthode est sous-optimale). Pour insérer du⟨code⟩
, notamment des commandes LaTeX, cf. la FAQ Comment mettre en forme ma contribution ?. Merci de corriger votre contribution si cela n'a pas déjà été fait.@AndréC Il est louable de suggérer des améliorations à la classe de sveyret, mais texnique.fr n'est pas le lieu approprié pour cela : il est de loin préférable d'ouvrir une « issue » sur son dépôt GitHub.