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} Le message d'erreur est le suivant :
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} Où se situe le problème ? Merci pour vos réponses. |
Comme l'indique le message d'erreur ! Undefined control sequence. firstoftwo la commande 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 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} 2) Définir vos propres commandes Ouvrir dans l'éditeur Overleaf
\newcommand{\firstoftwo}[2]{#1} \newcommand{\secondoftwo}[2]{#2} 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} Remarque 1 : Comme le premier argument de la commande Remarque 2 : On peut définir 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} Publiée 03 Aoû '18, 23:11 touhami |
\firstoftwo
et\secondoftwo
ne sont pas définies. Le noyau LaTeX a définie\@firstoftwo
et\@secondoftwo
.@kersaff votre réponse n'était pas une. J'ai modifie donc votre question en ajoutant le texte de la réponse.