web-dev-qa-db-fra.com

LaTeX: supprimer une page vierge après un \ partie ou \ chapitre

Comment supprimer une page vierge qui est ajoutée automatiquement après\part {} ou\chapter {} dans une classe de document livre?

J'ai besoin d'ajouter un court texte décrivant la partie \. L'ajout de texte après la commande de pièce entraîne au moins 3 pages avec une page vide entre l'en-tête de la pièce et le texte:

  1. Partie xx
  2. (vide)
  3. du texte

Comment se débarrasser de cette page vide?

P.S. Latex: Comment supprimer les pages vierges entre deux chapitres DANS l'Annexe? est similaire mais cela change le comportement pour le reste du texte alors que je dois supprimer la page vide pour cette commande one\part uniquement.

40
CaptSolo

Une solution qui marche:

Enveloppez la partie du document qui a besoin de ce comportement modifié avec le code fourni ci-dessous. Dans mon cas, la partie à envelopper est un\part {} et du texte le suit.

\makeatletter\@openrightfalse
\part{Whatever}

Some text

\chapter{Foo}
\@openrighttrue\makeatother 

La partie encapsulée doit également inclure le chapitre au début duquel ce comportement doit cesser. Sinon, LaTeX peut générer une page vide avant ce chapitre.

Source: les gens de la chaîne #latex IRC sur irc.freenode.net

16
CaptSolo

Je pense que vous pouvez simplement ajouter l'option oneside la classe de livre?

c'est à dire.

\documentclass[oneside]{book}

Même si je ne l'ai pas testé :)

47
gromgull

Il laisse des pages vierges pour qu'une nouvelle partie ou un nouveau chapitre commence sur le côté droit. Vous pouvez résoudre ce problème avec l'option "openany" pour la classe de document. ;)

38
J Shibby

Vous ne dites pas quelle classe vous utilisez, mais je suppose que c'est la norme book. Dans ce cas, l'effacement des pages est une caractéristique de la classe que vous pouvez remplacer par Mica suggère , ou résoudre en passant à une autre classe. La classe report standard est similaire à book, ou la classe memoir est une book améliorée et est en effet très flexible.

8
dmckee

Bien que je suppose que vous n'avez plus besoin de réponse, je donne la solution à ceux qui viendront voir ce post.

Dérivé de book.cls

\def\@endpart{\vfil\newpage
              \if@twoside
                \null
                \thispagestyle{empty}%
                \newpage
              \fi
              \if@tempswa
                \twocolumn
              \fi}

C'est "\ newpage" à la première ligne de ce fragment qui ajoute une page vierge redondante après la page d'en-tête de la pièce. Vous devez donc redéfinir la commande\@endpart. Ajoutez l'extrait suivant au début de votre fichier tex.

\makeatletter
\renewcommand\@endpart{\vfil
              \if@twoside
                \null
                \thispagestyle{empty}%
                \newpage
              \fi
              \if@tempswa
                \twocolumn
              \fi}
\makeatother
6
Anon.

Je pense que dans la classe de livre, tous les\part et\chapter sont définis pour démarrer sur une page recto.

de book.cls:

\newcommand\part{%
  \if@openright
    \cleardoublepage
  \else
    \clearpage
  \fi
  \thispagestyle{plain}%
  \if@twocolumn
    \onecolumn
    \@tempswatrue
  \else
    \@tempswafalse
  \fi
  \null\vfil
  \secdef\@part\@spart}

vous devriez pouvoir renouveler cette commande, et quelque chose de similaire pour le chapitre \.

1
Mica