有没有办法在 LaTeX 中排版出\simeq
带有较长线条的字体,或者等效地 \stackrel{\sim}{\longrightarrow}
不使用箭头?
答案1
以下构造\isomorphism
类似于的数学符号\simeq
,但行更长:
\documentclass{article}
\makeatletter
\newcommand*{\isomorphism}{%
\mathrel{%
\mathpalette\@isomorphism{}%
}%
}
\newcommand*{\@isomorphism}[2]{%
% Calculate the amount of moving \sim up as in \simeq
\sbox0{$#1\simeq$}%
\sbox2{$#1\sim$}%
\dimen@=\ht0 %
\advance\dimen@ by -\ht2 %
%
% Compose the two symbols
\sbox0{%
\lower1.9\dimen@\hbox{%
$\m@th#1\relbar\isomorphism@joinrel\relbar$%
}%
}%
\rlap{%
\hbox to \wd0{%
\hfill\raise\dimen@\hbox{$\m@th#1\sim$}\hfill
}%
}%
\copy0 %
}
\newcommand*{\isomorphism@joinrel}{%
\mathrel{%
\mkern-3.4mu %
\mkern-1mu %
\nonscript\mkern1mu %
}%
}
\makeatother
\begin{document}
\[ A \isomorphism B \simeq C = D \sim E \]
\[ A \isomorphism B^{C \isomorphism D^{E \isomorphism F}} \]
\end{document}
评论:
线的构造类似于
\longrightarrow
。其中一条线\relbar
与 连接\rightarrow
。连接会移除侧边距,这意味着字形的左侧和右侧可以有白色边距。LaTeX 会\joinrel
添加 的负空间以3mu
将关系符号移动到一起。测试文件在较小的数学样式中使用符号, 会-3mu
留下一个间隙,因此使用自定义设置(对于和,对于和)\isomorphism@joinrel
进行定义。-3.4mu
\displaystyle
\textstyle
-4.4mu
scriptstyle
\scriptscriptstyle
该符号
\sim
水平居中,并采用相同的数学样式和大小。它的高度与 aymbol 相同\simeq
。\simeq
不幸的是,TeX 中无法提供线条的垂直位置,因此使用了一个猜测值(偏移\sim
量乘以 1.9)。如果您希望线条稍微高一点,则可以减小该系数。\mathpalette
用于支持所有数学样式中的符号。然后内部宏\@isomorphism
将数学样式(\displaystyle
,\textstyle
,\scriptstyle
,\scriptscriptstyle
)作为第一个参数。第二个参数未使用并留空。为了提高效率(和乐趣),测量和字形组合是使用许多低级纯 TeX 宏完成的。
\m@th
设置\mathsurround
为0pt
。通常该值为0pt
,但如果设置,则应围绕数学表达式的空格不应出现在公式或数学符号内。
答案2
我为我们的学生制作了这个,统计时需要类似的符号
\newcommand\DistTo{\xrightarrow{
\,\smash{\raisebox{-0.65ex}{\ensuremath{\scriptstyle\sim}}}\,}}
答案3
结合@Ian Thompson 和@daleif 的回答中的一些想法,我认为以下内容非常好。
\newcommand{\iso}{\ \raisebox{0.5ex}{\ensuremath{\stackrel{\sim}{\rule{16pt}{0.7pt}}}\ \,}}
答案4
尝试这个。
\documentclass{article}
\begin{document}
\[
A \stackrel{\displaystyle\sim}{\smash{\rule[1.5pt]{2em}{0.5pt}}} B
\]
\end{document}
根据需要调整参数。您可以使用它\raisebox
来提升整个符号。
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\[
A \raisebox{0pt}{$\stackrel{\displaystyle\sim}{\smash{\rule[1.5pt]{2em}{0.5pt}}}$} B
\]
\end{document}