I'm not sure I understand what you mean. It's true that the colon used in \colon differs from the one used if you input : directly by default (it's smaller). In any case, I don't see where your discussion is going, so I will write here a few definitions. This is the definition of amsmath in LaTeX. (Used like $f\amscolon A \to B$) \def\amscolon{\nobreak\mskip2mu\mathpunct{}\nonscript\mkern-\thinmuskip \mathord{\mathchar`\:}\mskip6muplus1mu\relax} The definition of a coordinate separator should be with \mathpunct, although it doesn't look particularly good, so may be better to use no space at all (as commented in other mails). (Used like $(x\projsep y\projsep z)$) \def\projsep{\mathpunct{\mathchar`\:}} % if no space is wanted, the definition should be % {\mathpunct{\mathchar`\:}\nonscript\mkern-\thinmuskip} In the case of \ratio, since it's a binary operator, it should be \mathbin; but may be that's too much space and tighter spacing would be better. (Used like $A \ratio B \quad 3\ratio2\ratio1$) \def\ratio{\mathbin{\mathchar`\∶}} % may be tighter spacing playing with other atom types and \mkern And also the relation : which is the spacing that comes by default and is the same as if a macro contained \mathrel{\mathchar`\:}. That said, if you want to define the normal : character in _input_ to give you one of the above in _output_, just change the definition (in this case I define : to give \amscolon) \begingroup\lccode`\~=`\:\lowercase{\endgroup \unexpanded\def~}{\amscolon} \mathcode`\:="8000 % In any case, if this message is out of place, sorry, but I really didn't understand where your question/discussion was going.