为了表示 x 是 X 的一个元素,我们可以写成x \in X
。但是,在标准包中,结果的成员符号太大;它太引人注目了。当我们进行集合论并将集合写成小写时,这一点尤其明显,例如x \in y
。有人知道如何绘制一个不那么引人注目的成员符号吗?
答案1
- 包裹
mathdesign
提供\smallin
。 \in
包装MnSymbol
看起来比通常的形式要小。
也可以看看“综合 LaTeX 符号列表”。
MnSymbol
示例文件将默认值与未加载包的版本进行比较(它还会更改其他符号):
\documentclass{article}
\DeclareFontFamily{U}{MnSymbolD}{}
\DeclareSymbolFont{MnSyD}{U}{MnSymbolD}{m}{n}
\SetSymbolFont{MnSyD}{bold}{U}{MnSymbolD}{b}{n}
\DeclareFontShape{U}{MnSymbolD}{m}{n}{
<-6> MnSymbolD5
<6-7> MnSymbolD6
<7-8> MnSymbolD7
<8-9> MnSymbolD8
<9-10> MnSymbolD9
<10-12> MnSymbolD10
<12-> MnSymbolD12
}{}
\DeclareFontShape{U}{MnSymbolD}{b}{n}{
<-6> MnSymbolD-Bold5
<6-7> MnSymbolD-Bold6
<7-8> MnSymbolD-Bold7
<8-9> MnSymbolD-Bold8
<9-10> MnSymbolD-Bold9
<10-12> MnSymbolD-Bold10
<12-> MnSymbolD-Bold12
}{}
\DeclareMathSymbol{\insmall}{\mathrel}{MnSyD}{"3E}
\begin{document}
\[ a\in b \]
\[ a\insmall b\]
\end{document}
带缩放功能的版本
与 Enrico Gregorio 的解决方案类似,但计算的垂直位置与数学轴不变。
\documentclass{article}
\usepackage{graphicx}
\makeatletter
\newdimen\scalemath@axis
% Macro \scalemath
% #1: math class (\mathrel, \mathbin, ...)
% #2: scale factor
% #3: symbol
\newcommand*{\scalemath}[3]{%
#1{%
\mathpalette{\scalemath@aux{#2}}{#3}%
}%
}
% Macro \scalemath@aux
% #1: factor
% #2: math style
% #3: symbol
\newcommand*{\scalemath@aux}[3]{%
\begingroup
\everyvbox{}%
\settoheight\scalemath@axis{$#2\vcenter{}$}%
\raisebox{\scalemath@axis}{%
\scalebox{#1}{%
\raisebox{-\scalemath@axis}{%
$\m@th#2#3$%
}%
}%
}%
\endgroup
}
\makeatother
\newcommand*{\smallin}{\scalemath{\mathrel}{.75}{\in}}
\newcommand*{\smallni}{\scalemath{\mathrel}{.75}{\ni}}
\newcommand*{\smallnotin}{\scalemath{\mathrel}{.75}{\notin}}
% for testing
\newcommand*{\test}[1]{%
\[%
\testaux{#1}^{\testaux{#1}^{\testaux{#1}}}%
\quad
\rlap{\scriptsize\texttt{\string#1}}%
\]%
}
\newcommand*{\testaux}[1]{%
\testrule\!\!#1\!\!\testrule
}
\newcommand*{\testrule}{%
\vcenter{\hrule width .5em height .01pt depth .01pt}%
}
\begin{document}
\[ a\in b \ni c \notin d \quad\rlap{\scriptsize(normal)} \]
\[ a\smallin b \smallni c \smallnotin d \quad\rlap{\scriptsize(small)} \]
\test\in
\test\smallin
\test\smallni
\test\smallnotin
\end{document}
答案2
这似乎是一个很好的折衷方案:
\documentclass{article}
\usepackage{graphicx}
\newcommand{\smallerrel}[1]{\mathrel{\mathpalette\smallerrelaux{#1}}}
\newcommand{\smallerrelaux}[2]{\raisebox{.1ex}{\scalebox{.75}{$#1#2$}}}
\newcommand{\smallin}{\smallerrel{\in}}
\newcommand{\smallnotin}{\smallerrel{\notin}}
\begin{document}
$x\smallin y\smallnotin z$
$x\in y\notin z$
\end{document}