元素或等于符号

元素或等于符号

我想排版一个表示“元素或等于”的符号,它只是一个元素符号加上下面的一条短水平线。

我尝试过$\underline{\in}$,但是这会使下划线太粗:

在此处输入图片描述

有没有办法直接排版这个符号,或者让下划线变细一点?

答案1

这是初步近似:

\documentclass{article}
\newcommand{\ineq}{%
  \mathrel{\mkern1mu\underline{\mkern-1mu\in\mkern-1mu}\mkern1mu}}

\begin{document}
$\alpha\ineq\beta$
\end{document}

在此处输入图片描述

这会自动改变下标的大小。

您可能更喜欢在主符号下方带有圆头条的解决方案:

\documentclass{article}
\usepackage{amsmath}

\makeatletter
\newcommand{\ineq}{\mathrel{\text{\in@eq}}}
\newcommand{\in@eq}{%
  \oalign{%
    \hidewidth$\m@th\in$\hidewidth\cr
    \noalign{\nointerlineskip\kern1ex}%
    $\m@th\smash{-}$\cr
    \noalign{\nointerlineskip\kern-.5ex}%
  }%
}
\makeatother
\begin{document}
$\alpha\ineq\beta_{\ineq}$
\end{document}

在此处输入图片描述

答案2

字符 ⋸ 是 Unicode 字符 U+2278,参见 Barbara Beeton 的评论

我找到了两种数学字体,其中包含以下字符:

  • 体位数学
  • XITS 数学

它们可以与 XeTeX 或 LuaTeX 一起使用。使用包unicode-math,命令为\isinvb,或者可以直接将字符指定为 UTF-8 字符,或者^^^^可以使用 -escape 表示法:^^^^22F8

以下示例显示:

  • 直接字形(仅限 Asana Math 和 XITS Math)。
  • \isinvbA\isinvbB
    • 它们由 ∈ ( \in) 和减号组成。如果减号太长(拉丁现代字体),则会水平缩放以适合符号 ∈。
    • 间隙是通过 ∈ 高度的百分之十与减号线粗细的 150% 的中间位置来估算的。
    • 保留圆形线帽(但在拉丁现代语中需进行水平缩放)。
    • Asana Math 将整个符号置于数学轴的中心。这是通过\isinvbA使用 来实现的\vcenter
    • XITS Math 保留符号in并在其下方添加线条。这是通过\isinvbB使用实现的\vtop
  • 这些符号可以在所有数学风格中使用。

示例和测试文件:

\tracinglostchars=2
\documentclass{article}
\usepackage{unicode-math}

\newcommand*{\teststring}{%
  \fbox{$\isinvb$}% U+22F8
}

\usepackage{graphicx}

\makeatletter
\newcommand*{\isinvbA}{%
  \mathrel{%
    \mathpalette\@isinvb@\vcenter
  }%
}
\newcommand*{\isinvbB}{%
  \mathrel{%
    \mathpalette\@isinvb@\vtop
  }%
}
\newcommand*{\@isinvb@}[2]{%
  % #1: math style   
  % #2: \vcenter or \vtop
  #2{%   
    \sbox0{$#1\in\m@th$}%
    \copy0 %
    \sbox2{$#1-\m@th$}%
    \sbox4{$#1\vcenter{}$}%
    \dimen@=\dimexpr\ht2-\ht4\relax
    \sbox2{\lower\dimexpr\ht4-\dimen@\relax\hbox{\unhcopy2}}%
    \dp2=\z@
    \kern.5\dimexpr3\dimen@ + .1\ht0\relax
    \ifdim\wd2>\wd0 %
      \hbox to \wd0{\hss\resizebox{\wd0}{\ht2}{\copy2}}%
    \else
      \hbox to \wd0{\hss\copy2}%
    \fi
  }%
}
\makeatother

\begin{document}

\setlength{\fboxsep}{0pt}
\setlength{\fboxrule}{.1pt}   
\newcommand*{\test}[1]{%
  \fontfamily{lmvtt}\tiny #1 &
  \setmathfont{#1.otf}$\teststring$
  &
  \setmathfont{#1.otf}${\in}{-}$
  &      
  \setmathfont{#1.otf}%  
  \fbox{$\isinvbA$}$^{\isinvbA^{\isinvbA}}$%
  &
  \setmathfont{#1.otf}%
  \fbox{$\isinvbB$}$^{\isinvbB^{\isinvbB}}$%
  \\
}
\begin{tabular}{@{}l@{ }l@{ }l@{\quad}l@{ }l@{}}
  \test{Asana-Math}  
  \test{xits-math}
  \test{latinmodern-math}
  \test{texgyretermes-math}
  \test{texgyrepagella-math}
  \test{texgyrebonum-math}
  \test{texgyreschola-math}
\end{tabular}
\end{document}

结果

评论:

  • \tracinglostchar=2非常重要,因为 TeX 会报告所用字体中不存在的字符,例如:

    Missing character: There is no ⋸ (U+22F8) in font "[texgyrebonum-math.otf]:mode=base;script=math;language=DFLT;"!
    
  • \isinvbA\isinvbB依赖于LuaTeX或XeTeX,它们也可以与pdflatex或latex一起使用。

  • 命令\fbox显示边界框。

相关内容