如何在 TikZ 之外创建无头箭头?

如何在 TikZ 之外创建无头箭头?

我有一位教授经常使用特定符号来表示集合包含;它本质上看起来像,\hookrightarrow但没有箭头。由于我们通常使用特定符号\hookrightarrow来表示函数符号(例如,具体来说,定义一个注入函数),我认为在我的 LaTeX 代码中创建这样的符号将有助于清晰度。我设法得到的最接近的是以下 MWE:

\documentclass[10pt,letterpaper]{article}
\usepackage{mathtools}
\DeclareMathOperator{\hookinclude}{\,\raisebox{0.02ex}{$\lhook$}\joinrel\hspace{-0.4ex}\mathrel{\raisebox{-0.048ex}{$\textbf{--}$}}}
\begin{document}
$A \hookinclude B$
$A \subseteq B$
\end{document}

但是,这看起来太糟糕了,我无法让短划线与 正确对齐\lhook,所以我认为最好使用\hookrightarrow并以某种方式移除箭头,但我一直找不到这样做的方法。任何建议都将不胜感激。

答案1

怎么样

\newcommand\hookinclude{\mathrel{\lhook\joinrel\relbar}}

答案2

clipbox您实际上可以用包装中的来移除箭头trimclip。但是,很难获得完全正确的剪裁,并且箭头末端的线条看起来不会完全相同。但是,头部也可以用减号的一部分替换,例如。

以下是两种解决方案的比较。

\documentclass[10pt,letterpaper]{article}
\usepackage{amsmath}
\usepackage{trimclip}
\newlength{\hrawidth}
\newlength{\hraheight}
\settowidth{\hrawidth}{$\hookrightarrow$}
\settoheight{\hraheight}{$\hookrightarrow$}
\newcommand{\clippedhookrightarrow}{%
    \mathrel{%
        \clipbox{0 0 .5\hrawidth{} 0}{$\hookrightarrow$}%
        \raisebox{.498\hraheight}{%
            \clipbox{.5\hrawidth{} .498\hraheight{} 0 .419\hraheight{}}{$\hookrightarrow$}%
        }%
    }%
}
\newlength{\minuswidth}
\settowidth{\minuswidth}{$-$}
\addtolength{\minuswidth}{-.5\hrawidth}
\newcommand{\hookinclude}{%
    \mathrel{%
        \clipbox{0 0 .5\hrawidth{} 0}{$\hookrightarrow$}%
        \clipbox{\minuswidth{} 0 0 0}{$-$}%
    }
}
\begin{document}
\begin{tabular}{ll}
    Original \verb|\hookrightarrow|: & \(A \hookrightarrow B\) \\
    Removing the head:               & \(A \clippedhookrightarrow B\) \\
    Replacing the head by a \(-\):   & \(A \hookinclude B\)
\end{tabular}
\end{document}

相关内容