133 votes

Comment ne pas avoir de saut de page après \include en LaTeX

Mon LaTeX me fait faire des sauts de page après chaque sous-section parce que mes sous-sections sont dans des fichiers séparés. J'utilise la commande \include{file} qui ajoute un saut de page après son utilisation.

Je voudrais qu'il n'y ait pas de saut de page causé par l'utilisation de \include{file} .

Comment ne pas faire de saut de page après l'utilisation de include -commande ?

2 votes

Je ne crois pas qu'il y ait des sauts de page après la sous-section normalement. Quelle classe de document utilisez-vous ?

1 votes

Pourriez-vous afficher votre en-tête (tout ce qui se trouve jusqu'à l'en-tête) ? \begin {document}) pour que nous puissions savoir ce qui ne va pas ?

17 votes

Utilisation \input sinon utiliser \input ou bien utiliser \input .

185voto

Will Robertson Points 19581

\include utilise toujours \clearpage , un défaut qui n'est pas tout à fait judicieux. Elle est destinée aux chapitres entiers, et non aux sous-sections (de toute façon, pourquoi voudriez-vous que les sous-sections soient dans des fichiers séparés ?)

Vous pouvez y remédier en utilisant \input{filename} ou en chargeant le newclude paquet et rédaction \include*{filename} au lieu de cela.

0 votes

Mon projet de base de données a besoin d'un document de planification, le document "Building", pour montrer comment mettre en place le système. Il s'agit de sections dans mon fichier LaTeX.

9 votes

Je vois plusieurs raisons de placer les sous-sections dans des fichiers différents. La première qui me vient à l'esprit est d'avoir un CV avec différents niveaux de détail, en fonction de la cible et/ou de la demande d'emploi. Il est facile de supprimer ou d'ajouter des éléments à l'aide d'un simple symbole "%".

10 votes

Cela fait un certain temps que j'ai écrit cette réponse, mais je pense que cette parenthèse se voulait sarcastique :)

42voto

John Points 158

Vous pouvez arrêter les sauts de page causés par \include en plaçant \let\clearpage\relax avant elle. C'est pourquoi..,

\let\clearpage\relax
\include{file1}
\include{file2}
\include{file3}

mettrait le contenu des trois fichiers (et de tous les fichiers inclus par la suite) ensemble, sans saut de page entre eux. Si vous voulez arrêter de relâcher le \clearpage puis regrouper les fichiers à inclure sans saut de page dans un groupe comme celui-ci :

\begingroup
\let\clearpage\relax
\include{file1}
\include{file2}
\endgroup
\include{file3}

Cela arrêtera le saut de page entre le fichier 1 et le fichier 2, mais insérera le saut de page normal après le fichier 2. (Remarque : je ne sais pas si cela interfère avec les références et la numérotation des pages, mais j'imagine que cela ne devrait pas poser de problème).

2 votes

Merci de votre attention ! Cette réponse fonctionne bien lorsque vous avez plusieurs inclusions et références et que vous ne souhaitez pas créer une nouvelle page pour elles. Il suffit de faire un groupe de la dernière inclusion et de la partie bibliographie, et non plus une page claire.

2 votes

Manuel a raison : vous pouvez utiliser le \begingroup\let\clearpage\relax ...\endgroup Vous pouvez utiliser les astuces que vous souhaitez - arrêter les sauts de page entre certaines sections ou parties, si vous voulez que la bibliographie soit sur la même page que votre texte, etc.

1 votes

Cette solution semble m'avoir posé quelques problèmes de références. Dans un fichier inclus qui contenait deux listes énumérées, les références aux éléments de la seconde liste ne fonctionnaient pas. Je n'en connais pas la raison, mais le passage à newclude a résolu le problème.

4voto

gschenk Points 509

Le paquetage newclude suggéré par Will Robertson est très utile pour éviter la page claire. Il semble que, pour que \includeonly pour qu'il fonctionne, il faut appeler le paquet immédiatement après la fin de l'opération. \documentclass{...} . Dans l'environnement complexe de ma thèse, j'ai également rencontré des problèmes de ruptures de références.

Une bonne solution, lorsque includeonly n'est pas nécessaire pour une version finale, consiste à n'utiliser include que dans la version préliminaire :

\newif\ifdraft\drafttrue

ou

\newif\ifdraft\draftfalse

\ifdraft
  \include{...}
\fi

\ifdraft
  \include{file}
\else
  \input{file}
\fi

La première ligne peut être facilement complétée par un fichier makefile, pour faire de la version draft ou de la version production des cibles make.

\includeonly{file1,file2,...} permet de spécifier une liste de fichiers sources appelés avec \include{file1} (donde file1 est un exemple) qui apparaîtra dans le document résultant. Les autres n'apparaîtront pas, mais sont pris en compte pour les compteurs, les étiquettes, les tables des matières lorsque les fichiers auxiliaires correspondants sont inclus.

En d'autres termes, en utilisant include y includeonly il est possible de réduire le temps de compilation dans un projet tout en ayant des références correctes. Pour en savoir plus Wikibooks .

Will Robertson

\include est très utile parce qu'il permet de passer par \includeonly{...} pour ne construire que les sections nécessaires. Lorsque l'on travaille sur un texte plus long, le fait de n'inclure qu'une section d'un long chapitre peut faire toute la différence en termes de temps de compilation. C'est également très utile, car on n'a pas besoin de feuilleter un long brouillon en travaillant sur un point précis. Enfin, les fichiers de code source plus petits sont plus faciles à gérer dans la gestion des versions, par exemple git.

0voto

Mohsen Banan Points 37

La méthode suivante est efficace dans la plupart des situations :

\cleardoublepage
\begingroup
\let\clearpage\relax
\include{./common/yourFile.tex}
\endgroup

Le premier \cleardoublepage veille à ce que votre chapitre se retrouve sur une page impaire en cas de recto-verso.

Les \let\clearpage\relax désactive l'effacement de la page insérée par \include

Les \begingroup \endgroup permet de s'assurer que le champ d'application est bien celui de l'inclusion.

-1voto

Masi Points 22232

Nous vous remercions, Cambridge (en anglais) !

utiliser \include au lieu de \input et utiliser le \includeonly pour sélectionner les sections à traiter

3 votes

Ce n'est pas le meilleur conseil. Pourquoi voudriez-vous utiliser \include{...] pour un emploi lorsque \input{...} Quelle est la commande réelle prévue pour ces situations ?

2 votes

Cette réponse ne semble pas du tout répondre à la question. (Même s'il s'agit par ailleurs d'un conseil utile, avec une bonne référence).

1 votes

Cela ne répond pas à la question.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X