Page 1 sur 1

[Résolu] Limiter les valeurs de l'argugent d'une commande

MessagePosté: Jeudi 01 Novembre 2018, 11:17
par boobamane
J'aimerais faire afficher le message "La valeur entrée est trop grande" dès que l'argument pour la commande segment atteint 8.
Merci d'avance.
Code: Tout sélectionner
\documentclass{report}
\usepackage{tkz-fct}
\newcommand{\segment}[1]{\tikzpicture[]
\draw(0,0)--(#1,#1);
\endtikzpicture}
\begin{document}
\segment{3}\segment{4}\segment{5}
\end{document}

Re: Limiter les valeurs de l'argugent d'une commande

MessagePosté: Jeudi 01 Novembre 2018, 13:03
par marco56
Je ne vois pas comment cela pourrait se faire mais il faut attendre les pros;
Juste comme ça : tu veux que le message s'affiche où ??? Dans le pdf ?
Je trouve ta question pas très claire : as-tu une idée précise de ce que tu veux ?

Re: Limiter les valeurs de l'argugent d'une commande

MessagePosté: Jeudi 01 Novembre 2018, 13:51
par boobamane
Merci de te pencher dessus.
Même si le message ne s'affiche pas, est-il possible à partir d'une certaine valeur,
empêcher la compilation de se lancer?

Re: Limiter les valeurs de l'argugent d'une commande

MessagePosté: Jeudi 01 Novembre 2018, 15:13
par evariste_G
Bonjour.

La commande \pgfmathparse reconnaît les tests :

Code: Tout sélectionner
\documentclass{report}
%\usepackage{tkz-fct} % pourquoi cette extension ?
\usepackage{tikz} % suffisant pour cet ECM
\newcommand{\segment}[1]{%
\pgfmathparse{#1<8} %  si VRAI
\let\test\pgfmathresult % alors la variable \test=1 sinon, \test=0
\ifnum\test>0 % si le test est vrai
\tikzpicture\draw(0,0)--(#1,#1);\endtikzpicture
\fi
}
\begin{document}
\segment{3}\segment{4}\segment{9.8}
\end{document}

Re: Limiter les valeurs de l'argugent d'une commande

MessagePosté: Jeudi 01 Novembre 2018, 15:40
par boobamane
Merci ça fait mon affaire.
Juste par habitude je charge tkz-fct.
Tes vidéos sur youtube sont très sympas.
Merci encore.

Re: [Résolu] Limiter les valeurs de l'argugent d'une command

MessagePosté: Jeudi 01 Novembre 2018, 18:34
par gigiair
Si tu veux que les commandes \segment ayant échoué laissent une trace dans le fichier log, tu peux modifier la macro.

Code: Tout sélectionner
    \documentclass{report}
    %\usepackage{tkz-fct} % pourquoi cette extension ?
    \usepackage{tikz} % suffisant pour cet ECM
    \newcommand{\segment}[1]{%
    \pgfmathparse{#1<8} %  si VRAI
    \let\test\pgfmathresult % alors la variable \test=1 sinon, \test=0
    \ifnum\test>0 % si le test est vrai
    \tikzpicture\draw(0,0)--(#1,#1);\endtikzpicture
    \else \typeout{Argument trop grand pour la commande segment : *#1*}
    \fi
    }
    \begin{document}
    \segment{3}\segment{4}\segment{9.8}
    \end{document}


Et dans le log apparaîtra le message
Code: Tout sélectionner
Argument trop grand pour la commande segment : *9.8*

Ça peut être utile que tu sois informé.

Tu peux aussi envoyer un appel au système par \write18 pour déclencher une sirène ou autres signal d'alarme, mais je doute un peu de l'intérêt de la chose...

Re: [Résolu] Limiter les valeurs de l'argugent d'une command

MessagePosté: Samedi 03 Novembre 2018, 06:25
par boobamane
Merci Gigiair.