如何在数学模式下创建与波浪号重叠的 1?

如何在数学模式下创建与波浪号重叠的 1?

我发明了一个自定义符号,希望在我的 LaTeX 写作中使用。它是一个 1,与波浪号重叠。此图显示了我想要的内容:

带有重叠摆动的数字“1”

波浪符号的实际符号是\sim。我见过\rlap它用来使字符重叠,例如

$\rlap{X}O$

从而创造了 大写 O 和大写 X 重叠;丑陋的向量空间积

但当我尝试

$\rlap{\sim}{1}$

我收到一条错误消息,抱怨缺少$。呃。获取此“一+波浪符号”的有效方法是什么?

我倾向于避免使用任何不常见的包或任何古怪的东西,以便正确的 LaTeX 方式可以用于在线标记,例如博客、wiki 和问答论坛,它们可能使用任何版本的 LaTeX,也可能有或没有任何特定所需的包。

答案1

以下示例将两个符号叠加:

  • 通过 实现,可以尊重当前的数学风格\mathpalette

  • 水平1居中。

  • 波浪号垂直居中。

  • 该实现不需要任何额外的包。

示例文件:

\documentclass{article}

\makeatletter
\newcommand*{\tildeone}{%
  \mathord{% or whatever
    \mathpalette\@tildeone{}%
  }%
}
\newcommand*{\@tildeone}[2]{%
  % #1: math style
  % #2: unused
  \sbox0{$#1\sim\m@th$}% tilde
  \sbox2{$#11$}% for height of "1"
  \sbox4{$#1\vcenter{}$}% math axis, presumably the middle of "\sim"
  \rlap{% place "1"
    \hbox to\wd0{\hfil$#11\m@th$\hfil}%
  }%
  % place the tilde raised to the correct height
  \raise\dimexpr.5\ht2 - \ht4\relax\copy0 %
}
\makeatother

\begin{document}
\[ 1 + {\sim} = \tildeone \]
\end{document}

结果

答案2

以下是基于\mathclapfrom\mathtools\stackinsetfrom 的三种解决方案stackengine

\documentclass[12pt]{article}
\usepackage{mathtools}
\usepackage{stackengine}

 \begin{document}

 \[ \mathclap {1}\mathclap{\sim}\qquad \mathclap {1}\mathclap{\raisebox{0.1ex}{$ \sim $}}\qquad \stackinset{c}{0pt}{c}{-0.2ex}{$ \sim $}{$ 1 $} \]%

\end{document} 

在此处输入图片描述

相关内容