To ease expansion handling, expl3 follows the rule that a function is either fully expandable or protected.
As of v6.0.5 only two zlabel-related functions are defined by \cs_new_protected:Npn, which will eventually be defined with prefix \protected. More non-expandable functions should be created by \cs_new_protected:Npn and \cs_new_protected_nopar:Npn, not the corresponding \cs_new:Npn and \cs_new_nopar:Npn.
To ease expansion handling,
expl3
follows the rule that a function is either fully expandable or protected.As of v6.0.5 only two
zlabel
-related functions are defined by\cs_new_protected:Npn
, which will eventually be defined with prefix\protected
. More non-expandable functions should be created by\cs_new_protected:Npn
and\cs_new_protected_nopar:Npn
, not the corresponding\cs_new:Npn
and\cs_new_nopar:Npn
.