我对使用自定义符号很感兴趣。因此,我在 MWE 中尝试了一些数字(因为编译速度要快得多),然后在原始文档中尝试了它。我最终得到了以下结果。(这些参数是通过实验找到的。)
\documentclass{minimal}
\usepackage{graphicx}
\newcommand{\ineq}{\mathrel{\mkern -3mu \in \mkern -16mu \makebox[0.5em]{\raisebox{-.225em}{\scalebox{1.68}[1]{\_}}}}}
\begin{document}
$x\ineq y$
\end{document}
然后,我将其添加到我想要实际使用它的文档中,但看起来不太好看。下面,我包含了与以前相同的 MWE,但现在包含了大多数与字体相关的命令,这些命令出现在文档的序言中,供最终使用。 (这些行插入在\documentclass{minimal}
和之间\usepackage{graphicx}
。)
\documentclass{minimal}
\usepackage[utf8]{luainputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage[tracking=true]{microtype}
\usepackage{avant}
\usepackage{mathptmx}
\usepackage{graphicx}
\newcommand{\ineq}{\mathrel{\mkern -3mu \in \mkern -16mu \makebox[0.5em]{\raisebox{-.225em}{\scalebox{1.68}[1]{\_}}}}}
\begin{document}
$x\ineq y$
\end{document}
现在,我只需重新定义符号并修改参数,这样新序言看起来就正确了,但这种解决方案并不理想,因为每次我想在不同的设置中重复使用符号时,我都必须返回并再次处理数字。如果我可以定义一个足够强大的命令,以便在几乎任何环境中“正确”显示,那就最好了。可以做这样的事情吗?
答案1
恐怕字体独立只是一个梦想。
您可以尝试添加下划线,但要假装\in
比其边界框略细。“变细”的程度取决于字体,但根据当前需求调整宏并不困难。
\documentclass{article}
\usepackage{amsmath}
\usepackage{newtxtext,newtxmath}
\newcommand{\ineq}{%
\mathrel{%
\mspace{1.2mu}%
\underline{\mspace{-1.2mu}\in\mspace{-1.2mu}}%
\mspace{1.2mu}%
}%
}
\begin{document}
$x\ineq y$
\end{document}
笔记
minimal
永远不应该使用mathptmx
是一个 20 年前的黑客,用于获得一种几乎可以很好地与 Times 文本字体搭配的数学字体- 如今,NewTX 做得更好了。
答案2
下面显示了三个版本,通过取消注释 MWE 中的相应行。我依赖于这样一个事实:减号通常应该与 宽度相似 \in
(实际上我将减号缩小到其原始宽度的 0.85 倍)。我将其用于stackengine
减号的子位置,并scalerel
使其适用于各种数学样式。
正如 egreg 所说,很难获得跨字体的通用定义。
\documentclass{article}
\usepackage{graphicx,stackengine,scalerel}
%\usepackage{mathptmx}
%\usepackage{newtxmath}
\newcommand{\ineq}{\mathrel{\ThisStyle{\ensurestackMath{%
\stackengine{-1.5\LMpt}{\SavedStyle\in}{%
\SavedStyle\kern.5\LMpt\hstretch{.85}{-}}{U}{c}{F}{T}{S}}}}}
\begin{document}
$x\ineq y \quad\scriptstyle x\ineq y \quad\scriptscriptstyle x\ineq y$
\end{document}
计算机现代:
mathptmx
newtxmath