Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
composition:texte:document:compiler_des_articles_en_un_seul_documents [2018/06/03 13:05] – samcarter | 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? ====== |
title: A "report" from lots of 'article's | |
category: formatting | |
tags: classes | |
permalink: /FAQ-multidoc | |
date: 2014-06-10 | |
--- | |
| |
This is a requirement, for example, if one is preparing the | 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>. |
proceedings of a conference whose papers were submitted in LaTeX. | |
| |
The nearest things to canned solutions are Peter Wilson's | 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. |
[`combine`](https://ctan.org/pkg/combine) and Federico Garcia's [`subfiles`](https://ctan.org/pkg/subfiles) classes, but | |
many approaches have been proposed. Each of of the offerings has its | |
own advantages; in particular, several distinctly light-weight | |
solutions (for example, [`includex`](https://ctan.org/pkg/includex) and [`docmute`](https://ctan.org/pkg/docmute)) are | |
available, well-suited to less formal documents. | |
| |
[`Combine`](https://ctan.org/pkg/Combine) defines the means to `\import` entire documents, | ===== Avec la classe “combine” ===== |
and provides means of specifying significant features of the layout of | |
the document, as well as a global table of contents, and so on. The | 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 : |
complete set of facilities is pretty complex. An auxiliary package, | |
[`combinet`](https://ctan.org/pkg/combine), allows use of the `\title`s and `\author`s | <code latex> |
(etc.) of the `\import`ed documents to appear in the global table | |
of contents. The basic structure of a combined document would be: | |
```latex | |
\documentclass[...]{combine} | \documentclass[...]{combine} |
... | ... |
\begin{document} | \begin{document} |
... | ... |
<introductory materiel> | ⟨Éléments introductifs⟩ |
... | ... |
\begin{papers} | \begin{papers} |
% title and author of first article, | % titre et auteur du premier article, |
% to go the the main ToC | % qui iront dans la table des matières |
| % globale. |
\coltoctitle{...} | \coltoctitle{...} |
\coltocauthor{...} | \coltocauthor{...} |
\end{papers} | \end{papers} |
... | ... |
<acknowledgements, etc.> | ⟨Remerciements, etc.⟩ |
... | ... |
\end{document} | \end{document} |
``` | </code> |
| |
The [`subfiles`](https://ctan.org/pkg/subfiles) class is used in the component files of a multi-file | ===== Avec la classe “subfiles” ===== |
project, and the corresponding [`subfiles`](https://ctan.org/pkg/subfiles) package is used in the | |
master file; so the structure of the master file looks like: | 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 : |
```latex | |
\documentclass{<whatever>} | <code latex> |
| \documentclass{⟨selon vos besoins⟩} |
... | ... |
\usepackage{subfiles} | \usepackage{subfiles} |
\begin{document} | \begin{document} |
... | ... |
\subfile{subfile_name} | \subfile{⟨nom d'un fichier enfant⟩} |
... | ... |
\end{document} | \end{document} |
``` | </code> |
while a subfile has the structure: | |
```latex | En parallèle, les fichiers enfants appelés par le fichier parent ont pour structure : |
\documentclass[mainfile_name]{subfiles} | |
| <code latex> |
| \documentclass[⟨nom du fichier parent⟩]{subfiles} |
\begin{document} | \begin{document} |
... | ... |
\end{document} | \end{document} |
``` | </code> |
Arrangements may be made so that the component files will | |
be typeset using different page format, etc., parameters than those | 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. |
used when they are typeset as a part of the main file. | ===== 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. |
| |
| 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. |
| |
| Enfin, cette extension nécessite [[ctanpkg>moredefs]], qui fait également partie de l'ensemble [[ctanpkg>frankenstein]]. |
| |
| :!: //L’extension [[ctanpkg>includex]] est considérée comme [[1_generalites:histoire:liste_des_packages_obsoletes|obsolète]]. Ce qui suit est informatif. // |
| |
| Antérieurement, l'extension [[ctanpkg>includex]] apportait les fonctionnalités toutes reportées dans [[ctanpkg>newclude]]. Son auteur l'a classé comme obsolète même si certaines personnes semblent toujours l'utiliser. |
| |
| ===== 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. |
| |
A more "raw" toolkit is offered by Matt Swift's [`includex`](https://ctan.org/pkg/includex) and | ===== Avec l'extension “standalone” ===== |
[`newclude`](https://ctan.org/pkg/newclude) packages, both part of the [`frankenstein`](https://ctan.org/pkg/frankenstein) | |
bundle. Note that Matt believes [`includex`](https://ctan.org/pkg/includex) is obsolete | |
(though it continues to work for this author); furthermore, its | |
replacement, [`newclude`](https://ctan.org/pkg/newclude) remains "in development", as it has | |
been since 1999. | |
| |
Both [`includex`](https://ctan.org/pkg/includex) and [`newclude`](https://ctan.org/pkg/newclude) enable you to | L'extension [[ctanpkg>standalone]] (//stand-alone// signifiant « autonome ») développe les idées de [[ctanpkg>docmute]]. Elle a été conçue pour répondre aux besoins des utilisateurs qui génèrent des images à partir des extensions graphiques récentes (notamment [[ctanpkg>pgf|pgf/tikz]]) pour lesquelles le temps de compilation des graphiques est tel qu'une compilation séparée est parfois souhaitable. Cette extension fournit donc un moyen de développer des graphiques de manière pratique, en les détachant du développement du document dans son ensemble. Et son intérêt pour notre présent sujet est évidente. |
`\includedoc` complete articles (in the way that you | |
`\include` chapter files in an ordinary report). The preamble | |
(everything up to `\begin{document}`), and everything after | |
`\end{document}`, is ignored by both packages. Thus the | |
packages don't "do the whole job" for you, though: you need to | |
analyse the package use of the individual papers, and ensure that a | |
consistent set is loaded in the preamble of the main report. (Both | |
packages require [`moredefs`](https://ctan.org/pkg/moredefs), which is also part of the | |
bundle.) | |
| |
A neat (and simple) toolkit is offered by the | 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. |
[`docmute`](https://ctan.org/pkg/docmute) package; once the package is loaded, anything | |
between `\documentclass[...]{...}` and | |
`\begin{document}` in an `\input`ed or `\include`d | |
document is ignored, and then the input is processed up to | |
`\end{document}` in the input file. The package does nothing | |
about `\usepackage` (or anything else) in the preamble of the | |
included document; it's up to the user to ensure that any packages | |
needed are loaded, and any other necessary configuration is done, in | |
the parent document. | |
| |
The [`standalone`](https://ctan.org/pkg/standalone) package develops on the ideas of | 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. |
[`docmute`](https://ctan.org/pkg/docmute); it was designed to meet the needs of users who are | |
developing images from one of the more extreme new graphics packages | |
(notably [`pgf/tikz`](https://ctan.org/pkg/pgf/tikz)) where the compile time of the graphics is | |
such that separate compilation is very desirable. | |
[`Standalone`](https://ctan.org/pkg/Standalone) provides a means of developing the graphics in a | |
convenient way, detached from the development of the document as a | |
whole; its value for use in multiple documents is clear. | |
| |
The user includes the [`standalone`](https://ctan.org/pkg/standalone) package in the main | ===== Avec l'extension “subdocs” ===== |
document, and each subfile uses the [`standalone`](https://ctan.org/pkg/standalone) class. | |
([`Standalone`](https://ctan.org/pkg/Standalone) uses [`article`](https://ctan.org/pkg/article) for the "real" work in | |
stand-alone mode, but it may be asked to use another). | |
| |
The real difference from the [`docmute`](https://ctan.org/pkg/docmute) package is | 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. |
flexibility. In particular, you can ask that the preambles of the | |
included documents be gathered up, so that you can construct a good | |
preamble for the master document. | |
| |
A final "compile-together" approach comes from the [`subdocs`](https://ctan.org/pkg/subdocs) | ===== Avec l'extension “pdfpages” ===== |
package. The driver file contains a `\subdocuments` command: | |
`\subdocuments[options]{file1, file2, ...}` | |
(the optional arguments provide layout options, such as control over | |
whether `\clearpage` or `\cleardoublepage` are used between the | |
files). Each of the sub-files will execute | |
`\usepackage[master]{subdocs}` | |
to declare the name, `_master_`, of the calling file; | |
each of the subfiles reads all the `aux` files, so that | |
tables of contents may be produced. | |
| |
A completely different approach is to use the [`pdfpages`](https://ctan.org/pkg/pdfpages) | Une approche complètement différente consiste à utiliser l'extension [[ctanpkg>pdfpages]] et à inclure les articles soumis au format PDF dans un document PDF produit par pdfLaTeX. L'extension définit une commande ''\include'' qui prend des arguments similaires à ceux de la commande ''\includegraphics''. Avec des mots-clés dans l'argument facultatif de la commande, vous pouvez spécifier les pages que vous souhaitez inclure à partir du fichier nommé et divers détails de la mise en page des pages incluses. Voir par exemple la question « [[2_programmation:syntaxe:commentaires:compilation_conditionnelle_et_commentaires|Comment obtenir des commentaires ou des plages de document compilables sous conditions ?]] ». |
package, and to include articles submitted in PDF format into a | |
a PDF document produced by pdfLaTeX. The package | |
defines an `\includepdf` command, which takes arguments similar to | |
those of the `\includegraphics` command. With keywords in the | |
optional argument of the command, you can specify which pages you want | |
to be included from the file named, and various details of the layout | |
of the included pages. | |
| |
| ----- |
| //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 parent,combine,docmute,standalone,pdfpages,subdocs) |
| metatag-og:title=(Comment constituer un recueil d'articles à partir de plusieurs documents sources) |
| metatag-og:site_name=(FAQ LaTeX francophone) |
| }} |