我知道在数学模式下使用:
和之间存在印刷差异,因为被视为关系。但是,我使用 的频率远高于,所以我想互换两者。这可能吗?\colon
:
\colon
:
答案1
\colon
并使用:
以下方式定义fontmath.ltx
:
\DeclareMathSymbol{\colon}{\mathpunct}{operators}{"3A}
\DeclareMathSymbol{:}{\mathrel}{operators}{"3A}
正如您自己所说,它构成了\colon
一个标点符号和:
关系符号。
您可以交换定义:
\DeclareMathSymbol{:}{\mathpunct}{operators}{"3A}
\DeclareMathSymbol{\colon}{\mathrel}{operators}{"3A}
正如 egreg 所指出的,amsmath
对 有不同的定义\colon
,它不依赖于 TeX 的原始数学间距。要将:
和的定义\colon
与交换amsmath
,您需要创建:
一个数学活动字符(我使用 egreg 的\DeclareMathActive
) 和联合国\colon
-使用之前定义\DeclareMathSymbol
:
\usepackage{amsmath}
% From https://tex.stackexchange.com/a/299805/134574
\newcommand{\DeclareMathActive}[2]{%
\expandafter\edef\csname keep@#1@code\endcsname{\mathchar\the\mathcode`#1 }
\begingroup\lccode`~=`#1\relax
\lowercase{\endgroup\def~}{#2}%
\AtBeginDocument{\mathcode`#1="8000 }}
\newcommand{\std}[1]{\csname keep@#1@code\endcsname}
% amsmath's definition of \colon:
\DeclareMathActive{:}{\nobreak\mskip2mu\mathpunct{}\nonscript
\mkern-\thinmuskip{\std{:}}\mskip6muplus1mu\relax}
% undefine then redefine \colon:
\let\colon\UndefineD
\DeclareMathSymbol{\colon}{\mathrel}{operators}{"3A}