Voici un ECM comprenant une commande personnelle : Ouvrir dans l'éditeur Overleaf
\documentclass[12pt,a4paper]{article} \usepackage[utf8]{inputenc} %définition de variable texte pour compilation conditionnelle \def\ChoixDeVersion{AB} %AB=Avec Barème, SB ou autre = sans bareme \usepackage{ifthen} \newcommand{\bareme}[1][2 ]{% \ifthenelse{\equal{\ChoixDeVersion}{AB}}% {#1 AB \ignorespaces}% {#1 \ignorespaces}% } \begin{document} \bareme{123 } \end{document} La valeur optionnelle du premier argument de la commande
Alors que j'attendais PS : On est dans le cas où EDIT Et pourrait-on faire en sorte que la commande Si je modifie la commande comme ceci (
je suis obligé d'utiliser Posée 04 Nov '17, 17:26 idefix |
Une commande LaTeX définie par Pour utiliser Dans le cas particulier N=1, on tape Exemple
Remarque Quelques commandes internes de LaTeX possède plusieurs arguments optionnelles, d'autres ont une argument optionnelle autre que la première, elles ne rentrent pas dans ce cadre. Publiée 05 Nov '17, 12:19 touhami |
La solution déjà avancée lors d'une autre de vos questions est plus simple à mon avis: utiliser les commandes On peut aussi avec Démonstration : Ouvrir dans l'éditeur Overleaf
\documentclass[12pt,a4paper]{article} \usepackage[utf8]{inputenc} \usepackage{etoolbox} \newtoggle{AB} \settoggle{AB}{true} \newcommand{\bareme}[1]{\iftoggle{AB}{#1AB}{#1}\ignorespaces} \usepackage{xparse} \NewDocumentCommand{\Bareme}{s m }{#2 \IfBooleanF#1{AB}\ignorespaces} \begin{document} \bareme{123 } \Bareme{123} \settoggle{AB}{false} \bareme{456} \Bareme*{456} \end{document} Rajoutis : Si j'ai bien fini par comprendre, ceci serait assez proche de ce qui est souhaité : documentclass[12pt,a4paper]{article} usepackage[utf8]{inputenc} usepackage{fourier} usepackage{etoolbox} newtoggle{AB} settoggle{AB}{true} usepackage{xparse} NewDocumentCommand{Bareme}{O{5}}{iftoggle{AB}{ifnumgreater{#1}{1}{#1 pts}{#1 pt}ignorespaces}{relax}} begin{document} Question : quel est le barème de cette question ? (Bareme) Autre question : quelle est la différence entre un pigeon ? (Bareme[3]) Une question pour rire. (Bareme[0]) settoggle{AB}{false} Le barème de cette dernière question est de Bareme. Mystère et boules de gomme. end{document} Publiée 04 Nov '17, 19:41 Bernard et pourrait-on faire en sorte que la commande
(04 Nov '17, 21:50)
idefix
L'avantage de cette méthode, c'est que a priori, vous décidez dans le préambule que la mention AB sera affichée ou pas (c'est l'équivalent d'une valeur par défaut). Vous avez de la souplesse, parce que dans le cours du document vous pouvez basculer à
(04 Nov '17, 22:35)
Bernard
On peut effectivement faire comme vous le demandez avec
(04 Nov '17, 22:37)
Bernard
Ce que je cherche à faire exactement est de mettre à différents endroits du fichiers une commande
(04 Nov '17, 23:07)
idefix
1
C'est un peu nébuleux pour moi. C'est en fait le barème que vous voulez afficher. Chaque question a, la plupart du temps, la même valeur en points, qui est donc affichée par défaut, mais pour certaines questions, il faut afficher la véritable valeur à l'aide d'un argument optionnel. C'est bien cela ?
(04 Nov '17, 23:56)
Bernard
Presque exactement cela. C'est le barème tout entier que je voudrais afficher de manière optionnelle. Chaque question a, la plupart du temps, la même valeur en points, qui est donc affichée par défaut (quand le barème est effectivement activé), mais pour certaines questions, il faut éditer la véritable valeur là où c'est nécessaire avant de compiler Donc les commandes barèmes sont placées de toute façon dans le fichier tex, sans valeur pour la valeur par défaut, et avec la valeur éditée là où c'est nécessaire. Et suivant la valeur de AB, le barème apparaît .. ou pas.
(05 Nov '17, 00:01)
idefix
En pratique une fois la commande définie : Je voudrais utiliser partout la même commande Editer la valeur de AB, et compiler
(05 Nov '17, 00:11)
idefix
J'ai ajouté un nouveau code. Est-ce que celui-ci convient ?
(05 Nov '17, 01:17)
Bernard
Pas encore tout à fait, mais ça se rapproche beaucoup. Je voudrais aussi que quand c'est un point il n'y ait pas de s à point. Vous m'avez donné beaucoup d'informations utiles et instructives qui me donnent des idées.
(05 Nov '17, 17:06)
idefix
Affichage de 5 parmi 10
Afficher 5 commentaire(s) en plus
|
Une possibilité pour ce que je voulais faire (merci à vous) :
Cela donne Publiée 05 Nov '17, 21:39 idefix Maintenant la réponse ne correspond plus au problème d'argument optionnelle.
Aussi, Il faut faire attention au cas des décimales
(05 Nov '17, 22:18)
touhami
On peut traiter le cas pour éviter les ennuis ? Et pour ma réponse je la mets ailleurs dans une autre question ? C'est vrai que réaliser cette commande s'est mélangé avec les questions qui s'y rapporte
(05 Nov '17, 22:26)
idefix
J'ai essayé de répondre a votre question en 2 commentaires + 1 réponse. La réponse que vous avez posté correspond a un cas plus particulier, merci donc de : modifier votre question et dans ce cas je doit supprimer ma réponse ou bien de poser une nouvelle question (éventuellement avec la réponse) et dans ce cas on peut discuter le problème.
(05 Nov '17, 22:51)
touhami
Est-ce possible de faire suivre aussi les réponses de Bernard qui sont spécifiques à ce problème ? toutes vos réponses m'intéressent. Je parie sur le
(05 Nov '17, 23:09)
idefix
|
c'est
\bareme[123 ]
avec crochets.Oui pour l'appel. merci, ça marche très bien maintenant
@idefix : pouvez-vous rédiger une réponse explicative et marquer la question comme étant résolue ?
Pour afficher la valeur par défaut taper
\bareme
ça suffit. Pour affichier une valeur différente, par exemple 123, taper\bareme[123 ]
. Lorsque vous tapez\bareme{123 }
ou même\bareme{}
c'est pour LaTeX\bareme
avec la valeur par défaut +{ce qui entre les accolades}
.