Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
3_composition:document:compiler_des_articles_en_un_seul_document [2022/07/05 14:14] – [Avec la classe “combine”] <> → ⟨⟩ dbitouze | 3_composition:document:compiler_des_articles_en_un_seul_document [2022/07/05 15:22] (Version actuelle) – « maître » → « parent » dbitouze |
---|
====== Comment constituer un recueil d'articles à partir de plusieurs documents sources? ====== | ====== Comment constituer un recueil d'articles à partir de plusieurs documents sources? ====== |
| |
Cette question se pose, par exemple, si une personne prépare les comptes-rendus d'une conférence dont les articles ont été soumis en <latex>\LaTeX</latex>. | Cette question se pose, par exemple, si une personne prépare les comptes-rendus d'une conférence dont les articles ont été soumis en <latex>\LaTeX</latex>. |
| |
Les solutions les plus simples sont les classes [[ctanpkg>combine]] de Peter Wilson et [[ctanpkg>subfiles]] de Federico Garcia mais de nombreuses approches ont été proposées. Chacune offre ses propres avantages. En particulier, plusieurs solutions nettement plus légères (par exemple, [[ctanpkg>includex|includex]] et [[ctanpkg>docmute|docmute]]) sont bien adaptées aux documents moins formels. | Les solutions les plus simples sont les classes [[ctanpkg>combine]] de Peter Wilson et [[ctanpkg>subfiles]] de Federico Garcia mais de nombreuses approches ont été proposées. Chacune offre ses propres avantages. En particulier, plusieurs solutions nettement plus légères (par exemple, [[ctanpkg>includex|includex]] et [[ctanpkg>docmute|docmute]]) sont bien adaptées aux documents moins formels. |
| |
===== Avec la classe “combine” ===== | ===== Avec la classe “combine” ===== |
| |
La classe [[ctanpkg>combine]] définit les outils (dont une commande ''\import'') pour importer des documents entiers et fournit des moyens de spécifier les caractéristiques importantes de la mise en page du document, de la table des matières globale, etc. L'ensemble des fonctionnalités est assez complexe. Une extension auxiliaire, [[ctanpkg>combinet|combinet]], permet d'utiliser les commandes ''\title'', ''\author'' et autres des documents importés et de les faire figurer dans la table des matières globale. La structure de base d'un document combiné serait : | La classe [[ctanpkg>combine]] définit les outils (dont une commande ''\import'') pour importer des documents entiers et fournit des moyens de spécifier les caractéristiques importantes de la mise en page du document, de la table des matières globale, etc. L'ensemble des fonctionnalités est assez complexe. Une extension auxiliaire, [[ctanpkg>combinet|combinet]], permet d'utiliser les commandes ''\title'', ''\author'' et autres des documents importés et de les faire figurer dans la table des matières globale. La structure de base d'un document combiné serait : |
| |
<code latex> | <code latex> |
===== Avec la classe “subfiles” ===== | ===== Avec la classe “subfiles” ===== |
| |
La classe [[ctanpkg>subfiles]] est utilisée dans les fichiers isolés d'un projet multi-fichiers tandis que l'extension [[ctanpkg>subfiles]] sert dans le fichier maître. La structure de ce fichier maître est la suivante : | La classe [[ctanpkg>subfiles]] est utilisée dans les fichiers isolés d'un projet multi-fichiers tandis que l'extension [[ctanpkg>subfiles]] sert dans le fichier parent. La structure de ce fichier parent est la suivante : |
| |
<code latex> | <code latex> |
\documentclass{<selon vos besoins>} | \documentclass{⟨selon vos besoins⟩} |
... | ... |
\usepackage{subfiles} | \usepackage{subfiles} |
\begin{document} | \begin{document} |
... | ... |
\subfile{nom_d_un_sous_fichier} | \subfile{⟨nom d'un fichier enfant⟩} |
... | ... |
\end{document} | \end{document} |
</code> | </code> |
| |
En parallèle, les fichiers appelés par le fichier maître ont pour structure : | En parallèle, les fichiers enfants appelés par le fichier parent ont pour structure : |
| |
<code latex> | <code latex> |
\documentclass[nom_du_fichier_maître]{subfiles} | \documentclass[⟨nom du fichier parent⟩]{subfiles} |
\begin{document} | \begin{document} |
... | ... |
</code> | </code> |
| |
Des réglages peuvent être définis pour que les fichiers appelés par le fichier maître soient composés en utilisant des paramètres différents (le format de page par exemple) de ceux utilisés lorsqu'ils sont composés en tant que partie du fichier principal. | Des réglages peuvent être définis pour que les fichiers enfants appelés par le fichier parent soient composés en utilisant des paramètres différents (le format de page par exemple) de ceux utilisés lorsqu'ils sont composés en tant que partie du fichier principal. |
===== Avec l'extension “newclude” ===== | ===== Avec l'extension “newclude” ===== |
| |
Les extensions [[ctanpkg>newclude]] de Matt Swift, faisant partie de l'ensemble [[ctanpkg>frankenstein]], propose différents outils. Il convient de noter que [[ctanpkg>newclude|newclude]] reste « en développement » depuis 1999. | Les extensions [[ctanpkg>newclude]] de Matt Swift, faisant partie de l'ensemble [[ctanpkg>frankenstein]], propose différents outils. Il convient de noter que [[ctanpkg>newclude|newclude]] reste « en développement » depuis 1999. |
| |
L'extension vous permet d'inclure avec la commande ''\includedoc'' des articles complets (de la même manière que vous incluez avec ''\include'' des fichiers de chapitre dans un document classique). Mais elle ne tient compte que de ce qui est indiquée entre les commandes ''\begin{document}'' et ''\end{document}''. Par conséquent, cette extension ne fait pas tout le travail à votre place : vous devez analyser les extensions utilisées dans chaque article et vous assurer qu'un ensemble cohérent est chargé dans le préambule du rapport principal. | L'extension vous permet d'inclure avec la commande ''\includedoc'' des articles complets (de la même manière que vous incluez avec ''\include'' des fichiers de chapitre dans un document classique). Mais elle ne tient compte que de ce qui est indiquée entre les commandes ''\begin{document}'' et ''\end{document}''. Par conséquent, cette extension ne fait pas tout le travail à votre place : vous devez analyser les extensions utilisées dans chaque article et vous assurer qu'un ensemble cohérent est chargé dans le préambule du rapport principal. |
===== Avec l'extension “docmute” ===== | ===== Avec l'extension “docmute” ===== |
| |
L'extension [[ctanpkg>docmute]] propose une boîte d'outils simple et élégante. Une fois l'extension chargée, tout ce qui se trouve entre ''\documentclass'' et ''\begin{document}'' dans tout fichier inséré par une commande ''\input'' ou ''\include'' est ignoré, puis ce fichier est traité jusqu'à son ''\end{document}''. Ici encore, l'utilisateur doit s'assurer que toutes les appels aux extensions et autres configurations sont effectuées dans le document parent. | L'extension [[ctanpkg>docmute]] propose une boîte d'outils simple et élégante. Une fois l'extension chargée, tout ce qui se trouve entre ''\documentclass'' et ''\begin{document}'' dans tout fichier inséré par une commande ''\input'' ou ''\include'' est ignoré, puis ce fichier est traité jusqu'à son ''\end{document}''. Ici encore, l'utilisateur doit s'assurer que toutes les appels aux extensions et autres configurations sont effectuées dans le document parent. |
| |
===== Avec l'extension “standalone” ===== | ===== Avec l'extension “standalone” ===== |
L'utilisateur inclut l'extension [[ctanpkg>standalone]] dans le document principal et chaque sous-fichier utilise la classe [[ctanpkg>standalone]]. En interne, cette classe utilise la classe [[ctanpkg>article]] pour la composition en mode autonome, mais il peut être demandé d'en utiliser une autre. | L'utilisateur inclut l'extension [[ctanpkg>standalone]] dans le document principal et chaque sous-fichier utilise la classe [[ctanpkg>standalone]]. En interne, cette classe utilise la classe [[ctanpkg>article]] pour la composition en mode autonome, mais il peut être demandé d'en utiliser une autre. |
| |
La vraie différence avec l'extension [[ctanpkg>docmute]] repose sur la flexibilité. Ainsi, vous pouvez demander que les préambules des documents inclus soient rassemblés, afin de pouvoir construire un bon préambule pour le document maître. | La vraie différence avec l'extension [[ctanpkg>docmute]] repose sur la flexibilité. Ainsi, vous pouvez demander que les préambules des documents inclus soient rassemblés, afin de pouvoir construire un bon préambule pour le document parent. |
| |
===== Avec l'extension “subdocs” ===== | ===== Avec l'extension “subdocs” ===== |
| |
Une approche de « compilation commune » est proposée par l'extension [[ctanpkg>subdocs]]. Le fichier du pilote contient une commande ''\subdocuments[options]{fichier1,fichier2,...}''. Ici, les arguments facultatifs fournissent des options de mise en page, telles que la présence ou pas de commandes ''\clearpage'' ou ''\cleardoublepage'' entre les différents fichiers. Chacun des sous-fichiers exécutera ''\usepackage[maître]{subdocs}'' pour déclarer le nom, ''//maître//'', du fichier appelant. Chacun des sous-fichiers lit tous les fichiers «aux», de sorte que des tables des matières peuvent être produites. | Une approche de « compilation commune » est proposée par l'extension [[ctanpkg>subdocs]]. Le fichier du pilote contient une commande ''\subdocuments[options]{fichier1,fichier2,...}''. Ici, les arguments facultatifs fournissent des options de mise en page, telles que la présence ou pas de commandes ''\clearpage'' ou ''\cleardoublepage'' entre les différents fichiers. Chacun des sous-fichiers exécutera ''\usepackage[parent]{subdocs}'' pour déclarer le nom, ''//parent//'', du fichier appelant. Chacun des sous-fichiers lit tous les fichiers «aux», de sorte que des tables des matières peuvent être produites. |
| |
===== Avec l'extension “pdfpages” ===== | ===== Avec l'extension “pdfpages” ===== |
//Source:// [[faquk>FAQ-multidoc|A "report" from lots of 'article's]] | //Source:// [[faquk>FAQ-multidoc|A "report" from lots of 'article's]] |
| |
{{htmlmetatags>metatag-keywords=(LaTeX,agrégation de plusieurs documents,includex,newclude,subfiles,sous-fichier,fichier maître,combine,docmute,standalone,pdfpages,subdocs) | {{htmlmetatags>metatag-keywords=(LaTeX,agrégation de plusieurs documents,includex,newclude,subfiles,sous-fichier,fichier parent,combine,docmute,standalone,pdfpages,subdocs) |
metatag-og:title=(Comment constituer un recueil d'articles à partir de plusieurs documents sources) | metatag-og:title=(Comment constituer un recueil d'articles à partir de plusieurs documents sources) |
metatag-og:site_name=(FAQ LaTeX francophone) | metatag-og:site_name=(FAQ LaTeX francophone) |
}} | }} |
| |