在以下屏幕截图中,
我使用 制作的箭头的水平部分有一些不精确之处\xrightarrow
,甚至可以在我的 pdf 查看器上突出显示。请注意,这在屏幕截图中也可见\Rightarrow 及其上方的文本。有办法解决这个问题吗?为什么实现会这样做\xrightarrow
?我在 Overleaf (pdflatex) 中运行了以下内容
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\newcommand{\isoto}{\xrightarrow{\sim}} % ``isomorphism to''
\let\.\! % \! is negative space command, so I replace
\newcommand{\twoto}{\raisebox{.56ex}{$\;\xrightarrow{\,\,\,\,}$}\hspace{-11.85pt}\raisebox{-.56ex}{$\xrightarrow{\,\,\,\,}\;$}} % 11/4/21
\begin{document}
$$f: X\to Y, X \isoto Y, X \twoto Y$$
\end{document}
产生
\xrightarrow
与 相比, 的斑点明显更厚\to
。
答案1
tikz-cd
这里有一种方法可以让你充分发挥创建箭头的能力。\myxarrow
定义一个宏,它接受一个必需参数和一个可选参数。
\myxarrow[<length>]{<tikzcd arrow commands>}
默认长度为,1.2em
但当然您可以根据需要进行设置。请注意,此解决方案不会自动拉伸箭头。
下面的代码中出现了几个示例。最上面的示例是\xrightarrow{\sim}
,它有您描述的重叠问题,而且(在我看来)将位置放得\sim
太高。我更喜欢提供的垂直间距tikzcd
。
\documentclass{article}
\usepackage{amsmath, tikz-cd}
\newcommand{\myxarrow}[2][1.2em]{\begin{tikzcd}[cramped, ampersand replacement=\&, outer sep=0pt, column sep=#1]{}#2\&{}\end{tikzcd}}
\begin{document}
\begin{align*}
f&\colon X\xrightarrow{\sim} Y\qquad\textup{(using \texttt{\textbackslash xrightarrow)}}\\
f&\colon X\myxarrow{\arrow[r,"\sim"]} Y\\
f&\colon X\myxarrow[2em]{\arrow[r,"\sim"']} Y\\
f&\colon X\myxarrow{\arrow[r, shift left]\arrow[r, shift right]} Y\\
f&\colon X\myxarrow{\arrow[r, shift left=1.5pt]\arrow[from=r, shift left=1.5pt]} Y\\
f&\colon X\myxarrow[3em]{\arrow[r, red, text=blue, "\mathrm{text}", hook, two heads, bend right, shift left]} Y\\
\end{align*}
\end{document}