Tornar o sinal de igualdade automaticamente azul

Oct 05 2020

Eu sei que podemos redefinir os sinais de desigualdade \lesimplesmente fazendo \let\oldle\lee \def\le{\mathrel{...}}. Mas não tenho ideia de como redefinir o sinal de igualdade =. Portanto, se eu quiser tornar alguns símbolos azuis automaticamente, posso fazer isso para sinais de desigualdade, mas não para sinais de igualdade. O que posso fazer para obter sinais de igualdade azuis automaticamente no modo matemático? Ou seja, ainda quero apenas digitar =no modo matemático e ele ficará automaticamente azul. Não me importo com códigos complicados, desde que só precise ser inserido uma vez.

Respostas

5 egreg Oct 05 2020 at 15:09

Você precisa tornar a =matemática ativa.

\documentclass{article}
\usepackage{amsmath}
\usepackage{xcolor}

% set up = to be math active
\begingroup\lccode`~=`=\lowercase{\endgroup\def~}{\mathrel{\textcolor{blue}{\standardequal}}}
\AtBeginDocument{%
  \mathchardef\standardequal=\mathcode`= % save the standard =
  \mathcode`=="8000 % make = math active
}

\begin{document}

\begin{gather*}
a=b \\
a\standardequal b % for comparison
\end{gather*}

\end{document}

1 Niranjan Oct 05 2020 at 14:57

Com LuaLaTeX, você pode fazer isso. Veja o seguinte exemplo. (Agradecimentos especiais à resposta de @Mico .)

%!TeX Program = lualatex
\documentclass{article}
\usepackage{xcolor}
\usepackage{luacode}
\begin{luacode}
    function myreplace ( s )
    s = unicode.utf8.gsub ( s , '=', '\\textcolor{blue}{=}' )
    return s
    end
\end{luacode}

\begin{document}
\directlua{luatexbase.add_to_callback("process_input_buffer",
myreplace, "myreplace")}
=
\end{document}