I want to redefine & in a command. I tried to adapt this code that redefines ^ in an environment but couldn't make it work.
\documentclass[]{article}
\begin{document}
\newcommand{\myampersand}{?}
% https://tex.stackexchange.com/a/392770/82912
\begingroup%
\catcode`&=\active%
\gdef\redefineampersand{\def&{\myampersand}}%
\endgroup%
\begingroup%
\catcode`&=\active%
\redefineampersand%
a & b
\endgroup%
\newenvironment{newampersandenv}{%
\catcode`&=\active%
\redefineampersand%
}{}
\begin{newampersandenv}
a & b
\end{newampersandenv}
% I would like to do this but it doesn't work:
\newcommand{\newampersandcmd}[1]{
\begin{newampersandenv}
#1
\end{newampersandenv}
}
%\newampersandcmd{a & b} % Misplaced alignment tab character &. \newampersandcmd{a & b}
% I tried to write it another way but none of those work:
\newcommand{\testa}{
\begin{newampersandenv}
a & b
\end{newampersandenv}
}
%\testa % Misplaced alignment tab character &. \testa
\newcommand{\testb}{
\catcode`&=\active%
\redefineampersand%
a & b
}
%\testb % Misplaced alignment tab character &. \testb
\newcommand{\testc}{
\catcode`&=\active%
\redefineampersand%
\begingroup
a & b
\endgroup
}
%\testc % Misplaced alignment tab character &. \testc
\newcommand{\testd}{
\begingroup
\catcode`&=\active%
\redefineampersand%
a & b
\endgroup
}
%\testd % Misplaced alignment tab character &. \testd
\end{document}
&s instead of redefining it: https://tex.stackexchange.com/a/54987/82912 – xavierm02 Mar 22 '18 at 16:05