Ordre arbitraire xparse e arguments de type (embellissements)?

Sep 05 2020

Puis-je utiliser les arguments de type e de xparse pour redéfinir le fonctionnement des indices et des exposants pour une commande (par exemple, make \ mybeta met tous les sous / super scripts dans des parens)? J'ai essayé de définir

 \NewDocumentCommand{\mybeta}{e_e^}{\beta_{(#1)}^{(#2)}}

Et cela semble bien fonctionner si je les place dans l'ordre dans lequel les arguments sont spécifiés mais pas lorsque j'essaye

 \mybeta^{n}_{s}

où je reçois un avertissement en double indice quand je veux $\beta^{(n)}_{(s)}$

Je suppose que je dois peut-être utiliser e {_ ^} comme spécification d'argument, mais si je fais cela, comment séparer les arguments _ et ^ ou les récupérer? Ou y a-t-il une façon différente / meilleure que je devrais faire et j'ai complètement mal compris les embellissements?

Réponses

3 LaTeXereXeTaL Sep 05 2020 at 08:44

La solution est, comme vous l'avez prédit, à utiliser e{_^}dans votre spécification d'argument. L'ordre des embellissements n'a pas d'importance. Et oui, c'est incroyable que ça marche!

PeterGerdes Sep 05 2020 at 08:43

Apparemment (grâce à @LateXeraXeTal) vous utilisez simplement

 \NewDocumentCommand{\mybeta}{e{_^}}{\beta_{(#1)}^{(#2)}}

J'avoue que je suis un peu confus quant à la raison pour laquelle vous n'utilisez pas plusieurs spécificateurs de type d'argument e pour faire cela. Utiliserait-on jamais plusieurs arguments de type e?