Will Some ideas in private as this is displacement activity for me this week (two papers to finish, plus the 'mathematical part' of the new Content MathML part of the spec) and so I do not want to get dragged into lengthy discussions on public lists. You are welcome to cut parts of this onto the list. > > \def_new:Npn \if_quark:wT #1#2#3\q_stop { > > \int_compare:nNnT {\char_value_uccode:n{#2}} = {`Q} > > } Assuming my detective faculties have not completely siezed up, what is being attempted here is to test with expansion only the first letter of the 'name of the quark'. One challenge, as I see it, is to build expandable tests for arbitrary (prefix) strings. This may not be a 5-star challenge with e-TeX? Then we could have a longer prefix such as your \q_quark for all quarks (and hope that no idiot uses the prefix for anything else). To better avoid such idiocy it could be arbitrarily wierd, eg: \q_Q__K_ ... > \def_new:Npn \quark_new:N #1{\tlp_new:Nn #1{\q_quark#1}} The creator then needs to be (in possibly correct, or possibly pseudo, code??): \def_new:Npn \quark_new:n #1{\tlp_new:cn {q_Q_K_#1}{\q_Q_K_#1}} Makes sense? ... maybe. chris