我如何改变冒号的排版方式?

我如何改变冒号的排版方式?

在数学中,我专门使用冒号:作为标点符号,即\colon(比较这个问题)。因此我想改变:排版方式,使其类似于\colon

有没有办法在 XeTeX / unicode-math 中实现这一点?

答案1

\documentclass{article} 
\usepackage{amsmath}
\begin{document} 
$\forall x: P (x)$  using \verb|:|

$\forall x \colon P(x)$ using \verb|\colon|

\def\newcolon{%
  \nobreak\mskip2mu\mathpunct{}\nonscript\mkern-\thinmuskip{\text{:}}%
  \mskip 6mu plus 1 mu \relax}

\mathcode`\:="8000 %
{\catcode`:=\active \global\let:\newcolon}

$\forall x: P (x)$ using revised \verb|:|

$\scriptstyle \forall x: P (x)$

$\scriptscriptstyle \forall x: P (x)$

\end{document}

在此处输入图片描述

答案2

如果你不是法国人,并且不打算用法语写作,那么你可以这样做

\documentclass{article}
\usepackage{amsmath}

\makeatletter
\mathchardef\normalcolon=\mathcode`:
\def\colon{%
  \noexpand\nobreak
  \mskip 2mu
  \mathpunct{}
  \nonscript\mkern -\thinmuskip
  {\normalcolon}%
  \mskip 6muplus1mu
  \relax
}
\begingroup\lccode`\~=`\:\lowercase{\endgroup\let~}\colon
\mathcode`\:=\string"8000
\makeatother

\begin{document}

$f: A \to B$

$a\normalcolon b$

\end{document}

babel-french如果使用,这会导致 TeX 陷入无限循环。更安全的补丁:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage{amsmath}

\makeatletter
\mathchardef\normalcolon=\mathcode`:
\def\colon{%
  \noexpand\nobreak
  \mskip 2mu
  \mathpunct{}
  \nonscript\mkern -\thinmuskip
  {\normalcolon}%
  \mskip 6muplus1mu
  \relax
}
\@ifpackagewith{babel}{french}{% french babel makes : active
  \declare@shorthand{french}{:}{%
    \ifmmode % <--- added
      \colon % <--- added
    \else % <--- added
      \ifFB@spacing
        \ifhmode
          \ifdim\lastskip>1sp
            \unskip\penalty\@M\FBcolonspace
          \else
            \FDP@colonspace
          \fi
        \fi
      \fi
      \string:%
    \fi % <--- added
  }%
}{%
  \begingroup\lccode`\~=`\:\lowercase{\endgroup\let~}\colon
  \mathcode`\:=\string"8000
}
\makeatother

\begin{document}

$f: A \to B$

$a\normalcolon b$

\end{document}

在此处输入图片描述

您仍然可以使用\colon标准含义。对于冒号作为关系符号(在 TeX 中通常使用 获得:),我提供了\normalcolon

免责声明。这不适用于 XeLaTeX 或 LuaLaTeX。

相关内容