निरंजन
I am trying something like following:
```
\documentclass{article}
\begin{document}
\ExplSyntaxOn
\cs_new_protected:Npn \tmp_begin:w #1\q_stop {
\textsc{#1}
}
\cs_gset_eq:NN \tmpbegin \tmp_begin:w
\cs_gset_eq:NN \tmpend \q_stop
\ExplSyntaxOff
\tmpbegin hello world\tmpend
\end{document}
```
(Warning: I might be using incorrect terminology ahead, please bear with me.)
The `\q_stop` is inside the macro `\tmpend`. I want `\tmpend` to expand once, but not further so that `\q_stop` is not expanded. The above code doesn't compile. An easy fix to it is to use `\tmpend` in the definition itself (i.e., `\cs_new_protected:Npn \tmp_begin:w #1\tmpend`), but I am trying to understand what can one do in order to stop grabbing the argument at `\tmpend` which is defined as a quark. In a general sense, when TeX reads `\tmpbegin` and starts grabbing the argument, what kind of expansion does it perform? If I understand correctly, `\tmpend` and `\q_stop` are `\ifx`-equivalents, then why does TeX produce Runaway argument error?