Je débute en TeX et j'ai un souci de compilation avec le code ci-dessous, pourtant simple :

Ouvrir dans l'éditeur Overleaf
\documentclass{article}
\newread\monfichier%
\def\iffileexists#1#2{
\openin#1=#2
\ifeof#1
\closein#1
\expandafter\secondoftwo
\else
\closein#1
\expandafter\firstoftwo
\fi
}
\begin{document}
a) \iffileexists\monfichier{fic.txt}{vrai}{faux}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Le message d'erreur est le suivant :

! Undefined control sequence. \firstoftwo a) \iffileexists\monfichier{fic.txt} {vrai}{faux} The control sequence at the end of the top line of your error message was never def'ed

Par contre en mettant les commentaires cela compile !

Ouvrir dans l'éditeur Overleaf
\documentclass{article}
\newread\monfichier%
\def\iffileexists#1#2{
\openin#1=#2
\ifeof#1
\closein#1
%\expandafter\secondoftwo
vrai
\else
\closein#1
\expandafter\firstoftwo
faux
\fi
}
\begin{document}
%a) \iffileexists\monfichier{fic.txt}{vrai}{faux}
a) \iffileexists\monfichier{fic.txt}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Où se situe le problème ? Merci pour vos réponses.

Posée 03 Aoû '18, 16:54

kersaff's gravatar image

kersaff
2312
Taux d'acceptation : 0%

Modifiée 05 Aoû '18, 02:52

Pathe's gravatar image

Pathe ♦♦
7.6k50210252

1

\firstoftwo et \secondoftwo ne sont pas définies. Le noyau LaTeX a définie \@firstoftwo et \@secondoftwo.

(03 Aoû '18, 18:27) touhami touhami's gravatar image
1

@kersaff votre réponse n'était pas une. J'ai modifie donc votre question en ajoutant le texte de la réponse.

(03 Aoû '18, 18:40) touhami touhami's gravatar image

Comme l'indique le message d'erreur

! Undefined control sequence. firstoftwo

la commande \firstoftwo n'est pas définie. En effet LaTeX a deux commandes internes d'orthographes très proches : \@firstoftwo et \@secondoftwo.

Vous avez deux options :

1) Utiliser les commandes définie par LaTeX et dans ce cas il n'oublier pas d'encadrer la définition de \iffileexists par \makeatletter et \makeatother i.e. \makeatletter \iffileexists#1{...} \makeatother.

ECM 1

Ouvrir dans l'éditeur Overleaf
\documentclass{article}
\newread\monfichier
\makeatletter
\def\iffileexists#1{%
\openin\monfichier=#1
\ifeof\monfichier
\closein\monfichier
\expandafter\@secondoftwo
\else
\closein\monfichier
\expandafter\@firstoftwo
\fi}
\makeatother
\begin{document}
a) \iffileexists{fic.txt}{vrai}{faux}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

2) Définir vos propres commandes \firstoftwo et \secondoftwo, il suffit alors de taper

Ouvrir dans l'éditeur Overleaf
\newcommand{\firstoftwo}[2]{#1}
\newcommand{\secondoftwo}[2]{#2}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

ECM 2

Ouvrir dans l'éditeur Overleaf
\documentclass{article}
\newcommand{\firstoftwo}[2]{#1}
\newcommand{\secondoftwo}[2]{#2}
\newread\monfichier
\def\iffileexists#1{%
\openin\monfichier=#1
\ifeof\monfichier
\closein\monfichier
\expandafter\secondoftwo
\else
\closein\monfichier
\expandafter\firstoftwo
\fi}
\begin{document}
a) \iffileexists{fic.txt}{vrai}{faux}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Remarque 1 : Comme le premier argument de la commande \iffileexists est forcément un flot d'entrée qui doit être déjà réserver (\newread\monfichier) j'ai redéfini \iffileexists avec un seul argument.

Remarque 2 : On peut définir \iffileexists avec trois arguments comme suit

ECM 3

Ouvrir dans l'éditeur Overleaf
\documentclass{article}
\newread\monfichier
\def\iffileexists#1#2#3{%
\openin\monfichier=#1
\ifeof\monfichier #2 \else #3 \fi
\closein\monfichier}
\begin{document}
a) \iffileexists{fic.txt}{Le fichier n'existe pas}{Le fichier existe}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Lien permanent

Publiée 03 Aoû '18, 23:11

touhami's gravatar image

touhami
10.0k410
Taux d'acceptation : 51%

Votre réponse
[Masquer l'aperçu]

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Mots-clés de la question :

×42
×7

Question posée : 03 Aoû '18, 16:54

Question vue : 4,932 fois

Dernière mise à jour : 06 Aoû '18, 16:49

C'est votre première visite ici ? Consultez la FAQ !

×