\newif\ifsolution
\ifdefined\ifsolution

\else
\newif\ifsolution
\solutiontrue
\fi

J'ai le message d'erreur suivant

incomplete \ifdefined.

texstudio_uboDTE.tex: error: : Incomplete ifdefined; all text was ignored after line 41.

Quel est le problème ?

Je veux tester si ifsolution est définie et si c'est le cas ne rien faire , si ce n'est pas le cas la définir

Posée 27 Aoû, 18:50

idefix's gravatar image

idefix
989174451
Taux d'acceptation : 14%

Modifiée 27 Aoû, 18:55


Dns une structure conditionnelle à chaque \if... doit correspondre un \fi. Le problème ici est composé puisque \newif\ifsolution est dans la branche où le test échoue, et là TeX ne réfléchit pas et va chercher (et trouver) le \fi qui correspond à \ifsolution. Pour lui, maintenant, \ifdefined a besoin de \fi qu'il va chercher sans le trouver.

Voici une solution:

\documentclass{article}
\begin{document}
\newif\ifsolution
\makeatletter
\@ifundefined{ifsolution}
    {%
        n'est pas définie, donc:
        \newif\ifsolution
        \solutiontrue
    }{%
        définie
    }
\makeatother
et voila

\end{document}
Lien permanent

Publiée 28 Aoû, 00:07

touhami's gravatar image

touhami
10.1k410
Taux d'acceptation : 52%

Modifiée 28 Aoû, 10:26

L'erreur subsiste on dirait : ! Incomplete \ifdefined; all text was ignored after line 11.

(28 Aoû, 01:06) idefix idefix's gravatar image

@idefix je vais ajouter une explication plus tard.

(28 Aoû, 09:58) touhami touhami's gravatar image

@touhami : fonctionne parfaitement pour ce que je veux faire ... et je comprends pourquoi. merci. Les % juste après les accolades ouvrantes ne sont pas nécessaires ? Juste un commentaire vide ?

(28 Aoû, 12:14) idefix idefix's gravatar image

@idefix c'est pour éviter des espaces indésirables éventuelles.

(28 Aoû, 15:08) touhami touhami's gravatar image
Votre réponse
(dés)activer 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

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.