| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| 2_programmation:erreurs:m:missing_begin_document [2021/12/28 13:49] – Correction de lien interne. Correction de coquille. jejust | 2_programmation:erreurs:m:missing_begin_document [2022/10/04 10:26] (Version actuelle) – Syntaxe des listes corrigée dbitouze |
|---|
| * **Origine**: //LaTeX//. | * **Origine**: //LaTeX//. |
| |
| Cette erreur survient lorsqu'on compose quelque chose dans le préambule du document. | Cette erreur survient vous demandez à <latex>\LaTeX</latex> de composer un élément textuel dans le [[2_programmation:syntaxe:preambule|préambule]] du document. |
| La plupart du temps, cette erreur est due à une déclaration mal interprétée par <latex>\LaTeX{}</latex>. | |
| Elle peut également être produite par un texte sur la même ligne que ''\begin{filecontents}''. | |
| |
| <note> | ===== Cas fréquent ===== |
| Composer dans le préambule, à l'intérieur des déclarations ''\sbox'' ou ''\savebox'' est possible, | |
| mais il est plus prudent de placer ce type de déclarations après ''\begin{document}'', | |
| car certaines extensions peuvent repousser leurs initialisations finales jusqu'à cet emplacement. | |
| </note> | |
| |
| ----- | La plupart du temps, cette erreur est due à une déclaration mal interprétée par <latex>\LaTeX</latex>. Vous pouvez ainsi avoir : |
| |
| The //preamble// of your document is the stuff before | * saisi du texte (des noms de commandes sans le caractère « ''\'' » par exemple) dans le préambule ; |
| ''\begin{document}''; you put ''\usepackage'' commands and | * créé là une boîte avec ''\newsavebox'' en y mettant quelque chose en utilisant ''\sbox'' (ou similaire) ; |
| your own macro definitions in there. LaTeX doesn't like | * oublié de mettre ''\begin{document}'' dans le document ; |
| //typesetting// anything in the preamble, so if you have: | * ou communiqué un mauvais fichier à intégrer. |
| |
| * typed the odd grumble, | Cette erreur peut également être produite par un texte sur la même ligne que ''\begin{filecontents}''. |
| * created a box with ''\newsavebox'' and put something in it using ''\sbox'' (or the like), | |
| * forgotten to put ''\begin{document}'' into the document, at all, or even | |
| * gave it the wrong file | |
| |
| the error is inevitable and the solution is simple --- judicious use | Dans tous ces cas, la solution consiste à faire une utilisation judicieuse des marqueurs de commentaires (''%'') au début d'une ligne, à déplacer des éléments, ajouter le ''\begin{document}'' ou faire une bascule vers le bon fichier. |
| of comment markers (''%'') at the beginning of a line, moving things around, | |
| providing something that was missing ... or switching to the correct file. | |
| |
| The error may also occur while reading the ''aux'' file from an | <note> |
| earlier processing run on the document; if so, delete the | Composer dans le préambule, à l'intérieur des déclarations ''\sbox'' ou ''\savebox'' est possible, mais il est plus prudent de placer ce type de déclarations après ''\begin{document}'', car certaines extensions peuvent repousser leurs initialisations finales jusqu'à cet emplacement. |
| ''aux'' file and start again from scratch. If the error | </note> |
| recurs, it could well be due to a buggy class or package. | |
| |
| However, it may be that none of the above solves the problem. | ===== Cas d'une anomalie dans le fichier « .aux » ===== |
| |
| If so, remember that things that appear before ''\documentclass'' are | L'erreur peut également se produire quand le fichier « ''.aux'' » contient déjà une erreur. Lors de la compilation, comme il est appelé par <latex>\LaTeX</latex>, il peut générer alors l'erreur. Si c'est le cas, supprimez le fichier « ''.aux'' » et recommencez à zéro. |
| also problematical: they are inevitably before ''\begin{document}''! | |
| |
| Unfortunately, modern editors are capable of putting things there, and | ===== Cas de la présence d'un BOM ===== |
| preventing you from seeing them. This can happen when your document | |
| is being "written" in [[3_composition:langues:latex_et_l_utf8|Unicode]]. The Unicode | Toutes les choses qui peuvent apparaissent avant ''\documentclass'' peuvent également être problématiques puisque placées avant ''\begin{document}''. De fait, les éditeurs modernes sont capables de mettre là des choses et de vous empêcher de les voir. Cela peut arriver lorsque votre document est "écrit" en [[3_composition:langues:latex_et_l_utf8|Unicode]]. La norme Unicode définit des //Byte Order Marks// (BOM) ou « [[wpfr>Indicateur_d'ordre_des_octets|indicateurs d'ordre des octets]] » qui indiquent au programme qui lit un fichier comment les codes Unicode sont présentés. Malheureusement, <latex>\LaTeX</latex> ou ''pdfLaTeX'' ne comprennent pas ces BOM et les considèrent comme des demandes de composition. Le message d'erreur que vous voyez ressemblera à : |
| standard defines "Byte Order Marks" (BOM), that reassure a | |
| program (that reads the document) of the way the Unicode codes are | |
| laid out. Sadly ordinary LaTeX or pdfLaTeX choke on | |
| BOMs, and consider them typesetting requests. The error | |
| message you see will look like: | |
| |
| <code> | <code> |
| <?><?>\documentclass{article} | <?><?>\documentclass{article} |
| </code> | </code> |
| (Those ''<?>''s are your operating system's representation of an | |
| unknown character; on the author's system it's a reverse video | |
| ''?'' sign.) | |
| |
| You can spot the BOM by examining the bytes; for example, the | Les ''<?>'' représentent ici des caractères non reconnus par votre système d'exploitation. Vous pouvez repérer ce BOM en examinant les octets, par exemple avec l'application Unix ''hexdump'' : |
| Unix ''hexdump'' application can help: | |
| <code bash> | <code bash> |
| $ hexdump -C <file> | $ hexdump -C ⟨fichier⟩ |
| 00000000 ef bb bf 5c 64 6f 63 75 ... | 00000000 ef bb bf 5c 64 6f 63 75 ... |
| </code> | </code> |
| The ''5c 64 6f 63 75'' are the ''\docu'' at the start of | |
| (the "real" part of) your document; the three bytes before it form the | |
| BOM. | |
| |
| How to stop your editor from doing this to you depends, of course, on | Le ''5c 64 6f 63 75'' correspond à la chaîne « ''\docu'' », autrement dit le début de votre document (pour vous). Les trois bytes juste avant forment le BOM. |
| the editor you use; if you are using GNU Emacs, you have to | |
| change the encoding from ''utf-8-with-signature'' to "plain" | |
| ''utf-8''; instructions for that are found on | |
| [[http://stackoverflow.com/questions/3859274/|the "stack overflow" site]] | |
| |
| (So far, all instances of this problem that the author has seen have | Empêcher votre éditeur de mettre un BOM dépend, bien sûr, de l'éditeur que vous utilisez. Par exemple, si vous utilisez ''GNU Emacs'', vous devez passer changer l'encodage de ''utf-8-with-signature'' à ''utf-8''. Les instructions pour cela se trouvent sur le site //[[http://stackoverflow.com/questions/3859274/|Stack Overflow]]//. |
| afflicted GNU Emacs users.) | |
| |
| Fortunately ''[[1_generalites:glossaire:qu_est_ce_que_xetex|XeTeX]]'' and ''[[1_generalites:glossaire:qu_est_ce_que_luatex|LuaTeX]]'' know about BOMs and what to | Notez bien que ''[[1_generalites:glossaire:qu_est_ce_que_xetex|XeTeX]]'' et ''[[1_generalites:glossaire:qu_est_ce_que_luatex|LuaTeX]]'' reconnaissent les BOM et vous permettent d'éviter ce souci. |
| do with them, so LaTeX using them is "safe". | |
| | ===== Cas plus rare car expérimental ===== |
| | |
| | Si, après avoir passé en revue toutes ces possibilités, l'erreur se reproduit, cela pourrait bien être dû à une classe ou à une extension expérimentale ayant encore des erreurs. |
| |
| ----- | ----- |
| //Sources:// | //Sources :// |
| * [[faquk>FAQ-missbegdoc|Missing `\begin{document}`]], | * [[faquk>FAQ-missbegdoc|Missing `\begin{document}`]] ; |
| * [[https://latex.developpez.com/faq/erreurs?page=M]], | * [[https://latex.developpez.com/faq/erreurs?page=M]] ; |
| * [[https://www.latex-project.org/help/books/#french|LaTeX Companion, 2e édition]], Frank Mittelbach, Michel Goossens, Johannes Braams, David Carlisle, Chris Rowley (Pearson, 2006) ; ISBN: 978-2-7440-7182-9. Annexe B, //Détecter et résoudre les problèmes//, reproduite avec l'aimable autorisation de l'éditeur. | * [[https://www.latex-project.org/help/books/#french|LaTeX Companion, 2e édition]], Frank Mittelbach, Michel Goossens, Johannes Braams, David Carlisle, Chris Rowley (Pearson, 2006) ; ISBN: 978-2-7440-7182-9. Annexe B, //Détecter et résoudre les problèmes//, reproduite avec l'aimable autorisation de l'éditeur. |
| |
| {{htmlmetatags>metatag-keywords=(messages d'erreur de LaTeX,erreur dans le préambule) | {{htmlmetatags>metatag-keywords=(messages d'erreur de LaTeX,erreur dans le préambule) |
| metatag-og:title=(Que signifie l'erreur: Missing \begin{document} ?) | metatag-og:title=(Que signifie l'erreur: « Missing \begin{document} ») |
| metatag-og:site_name=(FAQ LaTeX francophone) | metatag-og:site_name=(FAQ LaTeX francophone) |
| }} | }} |
| |