[LaTeX][Subfiles] Faut-il utiliser les balises \begin \end ?

a marqué ce sujet comme résolu.

Contexte, j’ai commencé par envoyer un message privé à Karnaj avant de faire un post sur le forum, voici nos échanges, ça pourrait servir de base de départ à d’autres.

Bonjour,

Depuis quelques jours je suis ton tuto d’initiation au LaTeX et aujourd’hui j’ai décidé de le mettre à la pratique. J’essaye donc de créer un rapport en séparant un maximum les différentes catégories de pages (page de garde, table des matières, synthèses, chapitres, etc…). Chacune de ces catégories seraient un subfile appelé dans mon fichier principal.tex . Cependant quand je "m’inspire" de ton code :

https://zestedesavoir.com/tutoriels/826/introduction-a-latex/1319_creer-vos-premiers-documents/gerer-un-gros-document/#le-package-subfiles

Et que je laisse en double dans mes subfiles les balises qui sont déjà présentes dans le fichier principal.tex j’obtiens plusieurs erreurs (commande : pdflatex fichiersubfile.tex ):

impossible de trouver `import.sty`
environnement du document pas défini
`\begin` manquant (alors qu’il est bien présent)

Ma première question est donc, faut-il compiler que le fichier principal.tex ?

Une autre question, et je ne sais pas si c’est lié à cela, mais quand j’utilise \usepackage{subfiles} et que "j’appelle" un subfile, j’ai automatiquement une erreur de (commande : pdflatex principal.tex): File principal.aux not found. Alors que le fichier est bien présent

Je mets mon code ici au cas où ça peut aider et l’erreur est juste d’inattention.

Le fichier principal.tex :

\documentclass[a4paper, 12pt, french]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc} 
\usepackage{subfiles}
\usepackage{babel}
 
\begin{document}
  \subfile{pageDeGarde}
  Test tête de page 2
\end{document}

le subfile padeDeGarde.tex :

\documentclass[principal.tex]{subfiles}
  \title{Insérer titre \\ 
    \large{Sous Titre}
  }
  \author{Auteur un \and Auteur deux \and Auteur trois}
\begin{document}
  \maketitle
  Hello
\end{document}

Voilà j’espère avoir été le plus clair possible

Ce à quoi Karnaj m’a répondu

Salut,

Je viens de tester et chez moi tout est OK, autant pour compiler principal.tex que pageDeGarde.tex. Peux-tu passer le contenu du fichier de log, histoire de voir ce qui peut poser problème ? Supprime les fichiers créés par la compilation (ne garde que les fichiers .tex) et essaie de relancer pdflatex principal.tex. Si ça ne fonctionne pas, c’est ce fichier de log qui m’intéresse.

Ma première question est donc, faut-il compiler que le fichier principal.tex ?

Oui, tu ne compiles que le fichier principal. Lorsque tu compiles un des autres fichiers, tu obtiendras un PDF avec le contenu de ce fichier qui sera obtenu avec en le compilant avec les paramètres (en gros le préambule) du fichier principal. Je vais expliciter cela un peu plus dans le tutoriel.

Bonne idée de t’entraîner comme ça. Note quand même que pour la page de garde, ce serait mieux d’utiliser \input puisqu’il y a quasiment aucune chance que la page de garde soit compilée seule un jour, et qu’on voudrait bien que le titre et l’auteur « appartienne » au document principal et pas seulement à celui de la page de garde (donc le mieux si tu veux quand même utiliser \subfile serait probablement d’utiliser \author et \title dans le document principal et de juste faire appel à \maketitle dans le fichier de la page de garde. :)

Je vois que tu utilises \large dans ta commande \title. Je pense que ce n’est pas une bonne idée. Si tu veux personnaliser un peu le titre, redéfinis la commande \maketitle ou utilise l’environnement titlepage (mais je ne sais pas si tu en es déjà là dans ton apprentissage).

Voici ma réponse à son premier message

This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019) (preloaded format=pdflatex 2020.3.2)  17 MAR 2020 15:15
entering extended mode
 restricted \write18 enabled.
 %&-line parsing enabled.
**principal.tex
(./principal.tex
LaTeX2e <2020-02-02> patch level 5
L3 programming layer <2020-02-25>
(/home/jo/texlive/2019/texmf-dist/tex/latex/base/article.cls
Document Class: article 2019/12/20 v1.4l Standard LaTeX document class
(/home/jo/texlive/2019/texmf-dist/tex/latex/base/size12.clo
File: size12.clo 2019/12/20 v1.4l Standard LaTeX file (size option)
)
\c@part=\count167
\c@section=\count168
\c@subsection=\count169
\c@subsubsection=\count170
\c@paragraph=\count171
\c@subparagraph=\count172
\c@figure=\count173
\c@table=\count174
\abovecaptionskip=\skip47
\belowcaptionskip=\skip48
\bibindent=\dimen134
)
(/home/jo/texlive/2019/texmf-dist/tex/latex/base/inputenc.sty
Package: inputenc 2018/08/11 v1.3c Input encoding file
\inpenc@prehook=\toks15
\inpenc@posthook=\toks16
)
(/home/jo/texlive/2019/texmf-dist/tex/latex/base/fontenc.sty
Package: fontenc 2020/02/11 v2.0o Standard LaTeX package
)
(/home/jo/texlive/2019/texmf-dist/tex/latex/subfiles/subfiles.sty
Package: subfiles 2020/02/14 v1.6 Multi-file projects (package)

(/home/jo/texlive/2019/texmf-dist/tex/latex/import/import.sty
Package: import 2020/01/22  v 6.0
))
(/home/jo/texlive/2019/texmf-dist/tex/generic/babel/babel.sty
Package: babel 2020/02/28 3.41 The Babel package

(/home/jo/texlive/2019/texmf-dist/tex/generic/babel/switch.def
File: switch.def 2020/02/28 3.41 Babel switching mechanism
)
(/home/jo/texlive/2019/texmf-dist/tex/generic/babel-french/french.ldf
Language: french 2020/01/30 v3.5g French support from the babel system

(/home/jo/texlive/2019/texmf-dist/tex/generic/babel/babel.def
File: babel.def 2020/02/28 3.41 Babel common definitions
\babel@savecnt=\count175
\U@D=\dimen135

(/home/jo/texlive/2019/texmf-dist/tex/generic/babel/txtbabel.def)
\bbl@readstream=\read2
\bbl@dirlevel=\count176
)
Package babel Info: \l@acadian = using hyphenrules for french
(babel)             (\language28) on input line 91.
Package babel Info: \l@canadien = using hyphenrules for french
(babel)             (\language28) on input line 92.
\FB@nonchar=\count177
Package babel Info: Making : an active character on input line 419.
Package babel Info: Making ; an active character on input line 420.
Package babel Info: Making ! an active character on input line 421.
Package babel Info: Making ? an active character on input line 422.
\FBguill@level=\count178
\FBold@everypar=\toks17
\FB@Mht=\dimen136
\mc@charclass=\count179
\mc@charfam=\count180
\mc@charslot=\count181
\std@mcc=\count182
\dec@mcc=\count183
\c@FBcaption@count=\count184
\listindentFB=\dimen137
\descindentFB=\dimen138
\labelindentFB=\dimen139
\labelwidthFB=\dimen140
\leftmarginFB=\dimen141
\parindentFFN=\dimen142
\FBfnindent=\dimen143
))
(/home/jo/texlive/2019/texmf-dist/tex/latex/carlisle/scalefnt.sty)
(/home/jo/texlive/2019/texmf-dist/tex/latex/graphics/keyval.sty
Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
\KV@toks@=\toks18
)
(/home/jo/texlive/2019/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def
File: l3backend-pdfmode.def 2020-02-23 L3 backend support: PDF mode
\l__kernel_color_stack_int=\count185
\l__pdf_internal_box=\box45
)
No file principal.aux.
\openout1 = `principal.aux'.

LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 7.
LaTeX Font Info:    ... okay on input line 7.
LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 7.
LaTeX Font Info:    ... okay on input line 7.
LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 7.
LaTeX Font Info:    ... okay on input line 7.
LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 7.
LaTeX Font Info:    ... okay on input line 7.
LaTeX Font Info:    Checking defaults for TS1/cmr/m/n on input line 7.
LaTeX Font Info:    ... okay on input line 7.
LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 7.
LaTeX Font Info:    ... okay on input line 7.
LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 7.
LaTeX Font Info:    ... okay on input line 7.
LaTeX Info: Redefining \degres on input line 7.
LaTeX Info: Redefining \dots on input line 7.
LaTeX Info: Redefining \up on input line 7.

! LaTeX Error: File `principal.aux' not found.

Type X to quit or <RETURN> to proceed,
or enter new name. (Default extension: aux)

Enter file name: 
[1

{/home/jo/texlive/2019/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
(./principal.aux) ) 
Here is how much of TeX's memory you used:
 2033 strings out of 480994
 29580 string characters out of 5913106
 277200 words of memory out of 5000000
 17584 multiletter control sequences out of 15000+600000
 533400 words of font info for 26 fonts, out of 8000000 for 9000
 1141 hyphenation exceptions out of 8191
 32i,4n,39p,171b,426s stack positions out of 5000i,500n,10000p,200000b,80000s
{/home/jo/texlive/2019/texmf-dist/fonts/enc/dvips/cm-super/c
m-super-t1.enc}</home/jo/texlive/2019/texmf-dist/fonts/type1/public/cm-super/sf
rm1200.pfb>
Output written on principal.pdf (1 page, 12384 bytes).
PDF statistics:
 13 PDF objects out of 1000 (max. 8388607)
 8 compressed objects within 1 object stream
 0 named destinations out of 1000 (max. 500000)
 1 words of extra memory for PDF output out of 10000 (max. 10000000)

J’avais utilisé \large pour simuler un sous-titre mais je vais donc regarder titlepage.

+0 -0

Karnaj m’a ensuite demandé si javais les droits d’écriture ainsi que mon arborescence

jo@tafelzier:~/Documents/rapport_master$ ls -l
total 48
drwxr-xr-x 2 jo jo  4096 Mar 17 15:14 chapitres
-rw-r--r-- 1 jo jo   536 Mar 17 13:09 entete0.tex
-rw-r--r-- 1 jo jo    25 Mar 17 13:12 entete11.tex
-rw-r--r-- 1 jo jo   204 Mar 17 13:29 pageDeGarde.tex
-rw-r--r-- 1 jo jo   136 Mar 17 15:15 principal.aux
-rw-r--r-- 1 jo jo  5377 Mar 17 15:15 principal.log
-rw-r--r-- 1 jo jo 12384 Mar 17 15:15 principal.pdf
-rw-r--r-- 1 jo jo   223 Mar 17 13:49 principal.tex
jo@tafelzier:~/Documents/rapport_master$ find .
.
./principal.log
./principal.pdf
./.pageDeGarde.tex.swp
./pageDeGarde.tex
./entete11.tex
./principal.aux
./.principal.tex.swp
./principal.tex
./entete0.tex
./chapitres
./chapitres/dddd.txt
./chapitres/dezdazd.zf
./chapitres/dzenfz.c
./.entete0.tex.swp

As-tu la même erreur si tu remplaces l’appel à \subfile par un appel à \input. Avec un fichier pageDeGarde.tex avec juste un petit texte.

+0 -0

Bonjour,

Non dans le cas où je remplace \subfile par \input j’ai aucune erreur, ci joint mes log :

This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019) (preloaded format=pdflatex 2020.3.2)  18 MAR 2020 11:55
entering extended mode
 restricted \write18 enabled.
 %&-line parsing enabled.
**principal.tex
(./principal.tex
LaTeX2e <2020-02-02> patch level 5
L3 programming layer <2020-02-25>
(/home/jo/texlive/2019/texmf-dist/tex/latex/base/article.cls
Document Class: article 2019/12/20 v1.4l Standard LaTeX document class
(/home/jo/texlive/2019/texmf-dist/tex/latex/base/size12.clo
File: size12.clo 2019/12/20 v1.4l Standard LaTeX file (size option)
)
\c@part=\count167
\c@section=\count168
\c@subsection=\count169
\c@subsubsection=\count170
\c@paragraph=\count171
\c@subparagraph=\count172
\c@figure=\count173
\c@table=\count174
\abovecaptionskip=\skip47
\belowcaptionskip=\skip48
\bibindent=\dimen134
)
(/home/jo/texlive/2019/texmf-dist/tex/latex/base/inputenc.sty
Package: inputenc 2018/08/11 v1.3c Input encoding file
\inpenc@prehook=\toks15
\inpenc@posthook=\toks16
)
(/home/jo/texlive/2019/texmf-dist/tex/latex/base/fontenc.sty
Package: fontenc 2020/02/11 v2.0o Standard LaTeX package
)
(/home/jo/texlive/2019/texmf-dist/tex/generic/babel/babel.sty
Package: babel 2020/02/28 3.41 The Babel package

(/home/jo/texlive/2019/texmf-dist/tex/generic/babel/switch.def
File: switch.def 2020/02/28 3.41 Babel switching mechanism
)
(/home/jo/texlive/2019/texmf-dist/tex/generic/babel-french/french.ldf
Language: french 2020/01/30 v3.5g French support from the babel system

(/home/jo/texlive/2019/texmf-dist/tex/generic/babel/babel.def
File: babel.def 2020/02/28 3.41 Babel common definitions
\babel@savecnt=\count175
\U@D=\dimen135

(/home/jo/texlive/2019/texmf-dist/tex/generic/babel/txtbabel.def)
\bbl@readstream=\read2
\bbl@dirlevel=\count176
)
Package babel Info: \l@acadian = using hyphenrules for french
(babel)             (\language28) on input line 91.
Package babel Info: \l@canadien = using hyphenrules for french
(babel)             (\language28) on input line 92.
\FB@nonchar=\count177
Package babel Info: Making : an active character on input line 419.
Package babel Info: Making ; an active character on input line 420.
Package babel Info: Making ! an active character on input line 421.
Package babel Info: Making ? an active character on input line 422.
\FBguill@level=\count178
\FBold@everypar=\toks17
\FB@Mht=\dimen136
\mc@charclass=\count179
\mc@charfam=\count180
\mc@charslot=\count181
\std@mcc=\count182
\dec@mcc=\count183
\c@FBcaption@count=\count184
\listindentFB=\dimen137
\descindentFB=\dimen138
\labelindentFB=\dimen139
\labelwidthFB=\dimen140
\leftmarginFB=\dimen141
\parindentFFN=\dimen142
\FBfnindent=\dimen143
))
(/home/jo/texlive/2019/texmf-dist/tex/latex/carlisle/scalefnt.sty)
(/home/jo/texlive/2019/texmf-dist/tex/latex/graphics/keyval.sty
Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
\KV@toks@=\toks18
)
(/home/jo/texlive/2019/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def
File: l3backend-pdfmode.def 2020-02-23 L3 backend support: PDF mode
\l__kernel_color_stack_int=\count185
\l__pdf_internal_box=\box45
)
(./principal.aux)
\openout1 = `principal.aux'.

LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 7.
LaTeX Font Info:    ... okay on input line 7.
LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 7.
LaTeX Font Info:    ... okay on input line 7.
LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 7.
LaTeX Font Info:    ... okay on input line 7.
LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 7.
LaTeX Font Info:    ... okay on input line 7.
LaTeX Font Info:    Checking defaults for TS1/cmr/m/n on input line 7.
LaTeX Font Info:    ... okay on input line 7.
LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 7.
LaTeX Font Info:    ... okay on input line 7.
LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 7.
LaTeX Font Info:    ... okay on input line 7.
LaTeX Info: Redefining \degres on input line 7.
LaTeX Info: Redefining \dots on input line 7.
LaTeX Info: Redefining \up on input line 7.
 (./pageDeGarde.tex
LaTeX Font Info:    External font `cmex10' loaded for size
(Font)              <14.4> on input line 7.
LaTeX Font Info:    External font `cmex10' loaded for size
(Font)              <7> on input line 7.
) [1

{/home/jo/texlive/2019/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] (./princi
pal.aux) ) 
Here is how much of TeX's memory you used:
 1994 strings out of 480994
 28784 string characters out of 5913106
 277655 words of memory out of 5000000
 17549 multiletter control sequences out of 15000+600000
 535853 words of font info for 31 fonts, out of 8000000 for 9000
 1141 hyphenation exceptions out of 8191
 32i,6n,39p,171b,426s stack positions out of 5000i,500n,10000p,200000b,80000s
{/home/jo/texlive/2019/texmf-dist/fonts/enc/dvips/cm-super/cm-super-t
1.enc}</home/jo/texlive/2019/texmf-dist/fonts/type1/public/cm-super/sfrm1200.pf
b></home/jo/texlive/2019/texmf-dist/fonts/type1/public/cm-super/sfrm1440.pfb></
home/jo/texlive/2019/texmf-dist/fonts/type1/public/cm-super/sfrm2074.pfb>
Output written on principal.pdf (1 page, 34785 bytes).
PDF statistics:
 21 PDF objects out of 1000 (max. 8388607)
 14 compressed objects within 1 object stream
 0 named destinations out of 1000 (max. 500000)
 1 words of extra memory for PDF output out of 10000 (max. 10000000)

Je crois que j’ai trouvé le problème. Il est bien du côté du package import. Tu peux trouver un moyen de le régler ici. J’imagine que l’auteur du package publiera bientôt une version corrigée.

+0 -0

je n’ai pas bien compris la conclusion du ticket sur SE, il faut donc rajouter ce début dans mon principal.tex de code pour solutionner le problème ?

\RequirePackage{import}
\makeatletter
\def\@sub@import#1#2#3{%
  \begingroup
  \protected@edef\@tempa{\endgroup
    \let\noexpand\IfFileExists\noexpand#2%
    \noexpand\@import  \noexpand#1%  param 1
      {\@ifundefined{input@path}{}{\input@path}}% 2
      {\@ifundefined{Ginput@path}{}{\Ginput@path}}% 3
      {\import@path#3}{\import@path}% 4,5
      {\ifx\IfFileExists\im@@IfFileExists \noexpand\im@@IfFileExists 
       \else \noexpand\IfFileExists \fi}}% 6
  \if\relax#3\relax% need expansion, for eg \filename@area
    \endgroup\expandafter#1%
  \else
    \expandafter\@tempa
  \fi}
\makeatother

C’est à placer à la fin d’une copie locale de import.sty, ou sinon tu le placces (mais sans le RequirePackage) à la fin de ton préambule (comme il l’a fait dans son deuxième code, en incluant import si besoin).

Mais j’avais pas fait attention à la réponse d’après qui est du mainteneur du package import. Il indique plus tard qu’il a mis à jour le packaage. Donc essaie de mettre à jour tes paquets avec la commande tlmgr update --all. Avec ça, tu n’auras normalement pas besoin d’utiliser le bout de code donné pour résoudre le problème.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte