I was reading in latex2e about the use of \protect. In section 13.8 it mentions "expressions in tabular and array enviornments" as examples of moving arguments. I was a bit surprised by this. Could someone clarify what's meant here? Or, why that's the case?
I tried experimenting, such as
\documentclass{article}
\usepackage{etoolbox}
\makeatletter
\newcommand\ae@suchthat{\mid}
\newcommand\set[1]{%%
\begingroup
\let\suchthat\ae@suchthat
\{\,#1\,\}%%
\endgroup
}
\makeatother
\begin{document}
\begin{tabular}{lc}
This & $\set{x\in X \suchthat x>42}$
\end{tabular}
\end{document}
But there doesn't seem to be a problem here. What am I misunderstanding about fragile vs robust?