与冒号高度相同的垂直点

与冒号高度相同的垂直点

我如何构造三个垂直点,它们类似于\vdots冒号,但跨度与冒号相同:\vdots通常用于矩阵或一组方程式中,以表示有许多元素。我打算在内联方程式中使用它,以便进行运算符排序。

答案1

\vdots如果你想要一个与冒号高度完全相同的版本,你可以尝试将 叠加\cdot在 之上:。下面的代码基于非常好的答案,确实如此。

我实际上定义了几个\threedots具有不同间距属性的不同版本:

  • \threedotsord与普通字母的间距相同;
  • \threedotsopen\threedotsclose分别与开括号和闭括号有相同的间距;
  • \threedotsbin与二元运算符有相同的间距(如+-\times,…);
  • \threedotsrel与关系符号具有相同的间距(如,,,,,=... )。<\sim\rightorrow

您需要哪个版本取决于您打算如何使用该符号。由于您谈论的是操作顺序,您可能需要使用\threedotsopen\threedotsclose。为方便起见,我定义了一个宏\oporder,在其参数周围放置一对具有正确间距的三点。

\documentclass{article}

\makeatletter %% <- make @ usable in macro names
\newcommand*\superimpose[2]{%
  \ooalign{$\m@th#1\@firstoftwo#2$\cr
           \hidewidth$\m@th#1\@secondoftwo#2$\hidewidth}%
}
\makeatother %% <- revert @

%% You may want to rename these...
\newcommand*\threedotsord{\mathpalette\superimpose{{\mathop:}{\cdot}}} %% <- normal
\newcommand*\threedotsopen{\mathopen{\threedotsord}}   %% <- spacing like (
\newcommand*\threedotsclose{\mathclose{\threedotsord}} %% <- spacing like )
\newcommand*\threedotsbin{\mathbin{\threedotsord}}     %% <- spacing like +, -, ...
\newcommand*\threedotsrel{\mathrel{\threedotsord}}     %% <- spacing like =, <, ...

\newcommand*\oporder[1]{\threedotsopen#1\threedotsclose} %% <- wraps argument in these

\begin{document}

Using the \verb|\mathopen| and \verb|\mathclose| versions is probably what you want:
\[
    1 + \oporder{ x(t_1) x(t_2) x(t_3) } + \delta
\]

The spacing is nearly always the same as for ordinary atoms though:
\[
    1 + \threedotsord x(t_1) x(t_2) x(t_3) \threedotsord + \delta
\]

Using \verb|\mathbin| or \verb|\mathrel| would be wrong in this context:
\[
    1 + \threedotsbin x(t_1) x(t_2) x(t_3) \threedotsbin + \delta
\]
\[
    1 + \threedotsrel x(t_1) x(t_2) x(t_3) \threedotsrel + \delta
\]

This also works in superscripts and subscripts
\[
    X_{\oporder{xyz}^{\oporder{abc}}}
\]

\end{document}

输出

请注意,\mathop每当它应用于单个字符时,它的参数都会相对于数学轴垂直居中,如下所述这里。您还可以将 相\cdot对于 居中:,但这需要做更多工作(如果您想自动执行此操作,而不猜测要降低的量)。

答案2

这将排版三个点,其高度与冒号相同:

\documentclass{article}

\makeatletter
\newcommand{\fcolon}{%
  \mathrel{\mathpalette\fcolon@\relax}%
}
\newcommand{\fcolon@}[2]{%
  \sbox\z@{$\m@th#1:$}%
  \vbox to\ht\z@{%
    \hbox{$\m@th#1.$}%
    \vss
    \hbox{$\m@th#1.$}%
    \vss
    \hbox{$\m@th#1.$}%
  }%
}
\makeatother

\begin{document}

$A:B\fcolon C_{:\fcolon_{:\fcolon}}$

\end{document}

在此处输入图片描述

答案3

在此处输入图片描述

如果您需要下标和上标来工作,则需要更复杂一些,但是......

\documentclass{article}

\begin{document}


 $ x : x \mathrel{:} x $

 $ x : x \mathrel{\lower.04em\hbox{\rlap{$\cdot$}}{:}} x $

\end{document}

答案4

您可以在字体高度粗细和位置使用三冒号或垂直省略号⋮来匹配冒号:类似于 a+⋮xyz⋮+b 示例(我知道它并不完美但给定时间......)

在此处输入图片描述

但按照另一个 Unicode 答案进行包装

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,amssymb}
\makeatletter
\newcommand\UnicodeMathSymbol[4]{%
  \ifnum#1>"FF
    \expandafter\DeclareUnicodeCharacter\expandafter{\@gobble#1}{#2}%
  \fi
}
\makeatother
\input{unicode-math-table}
\begin{document}
$a+{\lower.2em\hbox{$⋮$}} xyz{\lower.2em\hbox{$⋮$}}+b$
\end{document}

相关内容