我想排版一个表示“元素或等于”的符号,它只是一个元素符号加上下面的一条短水平线。
我尝试过$\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
显示边界框。