Ordem arbitrária xparse argumentos de tipo (enfeites)?

Sep 05 2020

Posso usar argumentos xparse e-type para redefinir como os subscritos e sobrescritos funcionam para um comando (por exemplo, make \ mybeta colocar todos os subs / super scripts em parênteses)? Eu tentei definir

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

E parece funcionar bem se eu os colocar na ordem em que os argumentos são especificados, mas não quando tento

 \mybeta^{n}_{s}

onde recebo um aviso de subscrito duplo quando quero $\beta^{(n)}_{(s)}$

Estou supondo que talvez precise usar e {_ ^} como a especificação do argumento, mas se eu fizer isso, como separo os argumentos _ e ^ ou os recupero? Ou há uma maneira diferente / melhor de fazer isso e não entendi totalmente os enfeites?

Respostas

3 LaTeXereXeTaL Sep 05 2020 at 08:44

A solução é, como você previu, usar e{_^}em sua especificação de argumento. A ordem dos enfeites não importa. E sim, é incrível que funcione!

PeterGerdes Sep 05 2020 at 08:43

Aparentemente (graças a @LateXeraXeTal) você acabou de usar

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

Admito que estou um pouco confuso sobre por que você não usa vários especificadores de tipo de argumento e para fazer isso. Alguém usaria vários argumentos de tipo e?