通缉波浪形除法符号

通缉波浪形除法符号

我想找到或创建一个类似于除法符号的数学关系符号,但水平线将改为波浪符号 (\sim)。有人能帮忙吗?

答案1

在这里,我用堆栈构建一个通用表单,然后使用scalerel包的

\ThisStyle{...\SavedStyle...}

\mathchoice使其适用于各种数学样式。可选参数是\genericform上下点垂直移动的距离。它们可以进行调整以适应。

\documentclass{article}
\usepackage{stackengine}
\usepackage{graphicx}
\usepackage{scalerel}
\stackMath
\def\ccdot{\scalebox{1.15}{$\SavedStyle\cdot$}}
\def\genericform#1#2{\stackunder[#1]{\stackon[#2]{\SavedStyle\sim}{\ccdot}}{\ccdot}}
\def\altdiv{\mathbin{\ThisStyle{\mathchoice%
  {\genericform{-2.5pt}{-1.5pt}}%
  {\genericform{-2.5pt}{-1.5pt}}%
  {\genericform{-2.0pt}{-1.1pt}}%
  {\genericform{-1.4pt}{-0.8pt}}%
}}}
\begin{document}
$A \altdiv B ~~A \div B$\par
$\scriptstyle A \altdiv B ~~A \div B$\par
$\scriptscriptstyle A \altdiv B ~~A \div B$\par
\end{document}

在此处输入图片描述


注意:下面讨论的对 scalerel 包的修改已在scalerelV1.6(2014 年 3 月 10 日)中实施。 内随 mathstyle 缩放的新长度\ThisStyle{}可用作\LMex\LMpt

这个答案让我开始思考如何改进我的scalerel包。具体来说,\ThisStyle{...\SavedStyle...}语法允许我访问当前数学样式中的字形(因为它在内部执行\mathchoice),但我上面的答案仍然需要额外的操作,\mathchoice因为长度(即使是像“ex”这样的可伸缩长度)不会随当前数学样式缩放。

我需要的是\ThisStyle{}另外创建一个长度使用当前数学样式进行缩放。因此我在下面执行此操作,并将其称为\LMex(局部数学样式“ex”)。它在\displaystyle和中为 1ex \textsstyle,在中为 0.7ex \scriptstyle,在中为 0.5ex \scriptscriptstyle(在 的参数内\ThisStyle)。

这样做的话,如果我用 的倍数来表示堆栈的长度移位,那么我就可以避免 es 的低效嵌套\mathchoice,并且完全避免使用 my 。\genericform\LMex

\documentclass{article}
\usepackage{stackengine}
\usepackage{graphicx}
\usepackage{scalerel}
\stackMath
%%%%% scalerel MODIFICATION
\makeatletter
\newlength\LMex
\renewcommand\ThisStyle[1]{%
  \ifmmode%
    \def\@mmode{T}\mathchoice%
      {\edef\m@switch{D}\LMex=1ex\relax#1}%
      {\edef\m@switch{T}\LMex=1ex\relax#1}%
      {\edef\m@switch{S}\LMex=.7ex\relax#1}%
      {\edef\m@switch{s}\LMex=.5ex\relax#1}%
  \else%
    \def\@mmode{F}%
    \edef\m@switch{T}#1%
  \fi%
}
\makeatother
%%%%% END scalerel MODIFICATION
\def\ccdot{\scalebox{1.15}{$\SavedStyle\cdot$}}
\def\altdiv{\mathbin{\ThisStyle{%
  \stackunder[-.6\LMex]{\stackon[-.45\LMex]{\SavedStyle\sim}{\ccdot}}{\ccdot}}}}
\begin{document}
$A \altdiv B ~~A \div B$\par
$\scriptstyle A \altdiv B ~~A \div B$\par
$\scriptscriptstyle A \altdiv B ~~A \div B$\par
\end{document}

在此处输入图片描述

答案2

以下示例处理以下问题:

  • 该符号会根据当前的数学样式自动改变其大小。
  • 正确的边界框。
  • 这些点以数学轴为中心。

它做出以下假设:

  • \sim以数学轴为中心。
  • 该点位于基线正上方。

它跟随\div

  • 点稍微大一些,示例使用的比例因子1.15
  • 下方的点略低于基线,本示例将点的高度设为基线以下的四分之一,并将上方的点向顶部移动相同的量。
\documentclass{article}

\usepackage{graphicx}

\makeatletter
\newcommand*{\mydiv}{%
  \mathbin{%
    \mathpalette\@mydiv{}%
  }%
}
% #1: math style
% #2: unused
\newcommand*{\@mydiv}[2]{%
  \sbox0{$#1\vcenter{}$}%
  \sbox2{\scalebox{1.15}{$#1.\m@th$}}%
  \sbox0{%
    \raisebox{-.25\ht2}{\rlap{\copy2}}%
    \raisebox{\dimexpr2\ht0-\ht2+.25\ht2\relax}{\copy2}%
  }%
  \sbox2{$#1\sim$}%
  \rlap{\copy2}%
  \hbox to \wd2{\hfil\copy0\hfil}%
}
\makeatother

\begin{document}
% Comparison
\[
  A \div B \mydiv C
\]
% Automatic adaptations to math style
\[
  A \mydiv B^{A \mydiv B^{A \mydiv B}}
\]
% Show bounding box
\[
  \setlength{\fboxsep}{0pt}
  \setlength{\fboxrule}{0.1pt}
  A \mathbin{\fbox{$\mydiv$}} B
\]
\end{document}

结果

答案3

定义的方式很丑陋,但是它有效。

\documentclass{article}
\usepackage{graphicx,amsmath,amssymb}

\newcommand{\mydiv}{%
  \mathbin{\text{%
    \mathsurround=0pt
    \ooalign{%
      \hidewidth\vphantom{$\div$}\raisebox{.95ex}{\scalebox{1.2}{.}}\hidewidth\cr
      $\sim$\cr
      \hidewidth\vphantom{$\div$}\raisebox{-.05ex}{\scalebox{1.2}{.}}\hidewidth\cr
    }%
  }}%
}
\begin{document}
  $A\mydiv B$ $A\div B$
\end{document}

在此处输入图片描述

答案4

在我看来,这很像 unicode U+223B(同源);还有 U+2A6B(带有上升点的波浪符号运算符)。这些将在stixxits字体中。

Speravir 确认了 U+2238 的身份,并在评论中指出它包含在其他 opentype 和 truetype 字体中(请参阅下文了解他的编辑)。

它是不是可以在综合符号列表中找到,或者通过 找到detexify

通常,为了提供一两个缺失的符号而替换整个字体是不可取的。这个问题解决了这种情况: 从不同字体导入单个符号


(应 Barbara 的要求,Speravir 进行了编辑,参见评论)

无需详尽说明,我可以确认这些 Open 或 Truetype 字体包含符号“Homothetic”:

两者都已被 Barbara 命名并包含在 TeX 发行版中。对于以下内容,我没有查看它们是否可用作 TeX 包(实际上我知道其中一些是可以的)。

相关内容