Sur ce fil du site tex.stackexchange, intitulé Arguments of custom commands as comma separated list?, on trouve différentes propositions pour écrire une macro dont les arguments sont séparés par des virgules. Désireux de m'en servir pour taper les intervalles de façon plus générique, j'ai essayé d'adapter le code : Ouvrir dans l'éditeur
\documentclass{article} \usepackage{amsmath} \makeatletter \def\my@intervalle #1,#2\@eolst{% \ifx\relax#2\relax #1 \else \my@intervalle #2\@eolst% \fi} \newcommand{\interff}[1]{% \left[ \my@intervalle #1, \relax\noexpand\@eolst% \right] } \newcommand{\interffold}[2]{\left[#1~;~#2\right]} \makeatother \begin{document} $\interff{1,2}$ $\interffold{1,2}$ \end{document} J'obtiens le message suivant lors de la compilation : Ouvrir dans l'éditeur
Runaway argument? \relax \noexpand \@eolst \fi \fi \right ] $ ! Paragraph ended before \my@intervalle was complete. <to be read again> \par l.38 ? ! Missing $ inserted. <inserted text> $ l.38 ? ! Missing \right. inserted. <inserted text> \right . l.38 ? Est-ce que quelqu'un peut m'aider à obtenir le résultat souhaité ? Posée 15 Nov '15, 18:04 vincentxavier Pathe ♦♦ |
Le message d'erreur est dû à l'espace qui est devant le La macro Bon, comme l'argument Son premier argument Et là, c'est le crash puisqu'il n'y a plus de virgule pour satisfaire l'argument délimité. Je suggère et j'utilise, pour une saisie quasi-naturelle des intervalles la macro Ouvrir dans l'éditeur
\documentclass{article} \usepackage{amsmath} \usepackage[frenchb]{babel} \newcommand\mathactive[1]{\mathcode`#1"8000 \begingroup \lccode`~`#1 \lowercase{\endgroup\def~}} \newcommand\I{% \begingroup \mathactive\;{\mathpunct{}\mathpunct{\mathchar`\;}}% \mathactive\[{\right\delimiter\delcode`\[ \endgroup}% \mathactive\]{\right\delimiter\delcode`\] \endgroup}% \left\delimiter\delcode`} \begin{document} L'intervalle $\I[\dfrac12;3[$ et $\I]-1;+\infty[$. \end{document} Publiée 15 Nov '15, 18:41 unbonpetit ♦♦ Ça correspond à l'intuition que j'avais sur cette macro, mais pas vu que c'était l'espace surnuméraire qui causait le souci. Je note la macro proposée qui répond également à mon problème, modulo le souci d'ouverture/fermeture des
(15 Nov '15, 23:05)
vincentxavier
Il faudrait convertir cette réponse en commentaire et en expurger toute forme de politesse (le « merci »).
(15 Nov '15, 23:13)
unbonpetit ♦♦
@vincentxavier Attention ! Cette réponse était un commentaire plutôt qu'une réponse et a été convertie comme tel.
(15 Nov '15, 23:13)
denis ♦♦
@vincentxavier Les formules de politesse et les signatures sont à éviter : celle(s) de votre contribution a (ont) été supprimée(s).
(16 Nov '15, 10:06)
denis ♦♦
|