内联数学中的隐形钩箭?

内联数学中的隐形钩箭?

对于显示数学,我使用tikzcd隐形箭头样式,它满足了我所有的需要。

从答案 数学中的隐形箭?我(从mathabx包中)获得了用于内联数学公式的隐形箭头,但是这个包没有钩子版本,所以我无法从中提取这些箭头。

包装boisik上有类似的标志,但是是“老式风格”。

我尝试使用 TikZ 构建符号,tikzcd但它们修改了线条之间的空间。

因此,我希望有一个不需要 tikz、LuaTex 或 XeTeX 就可以工作的\newcommandas来解决发布问题。\varhookrightarrow

答案1

这是一种不涉及 TikZ 的方法(不是完整的事实 - 请参阅先决条件):p

先决条件:您需要一张钩箭的图片(最好是矢量格式)。当然,一种方法是使用 TikZ。另一种方法是在 Inkscape 或类似软件中绘制它。关键是.tex使用此命令的主文件不需要明确使用 TikZ,也不需要使用 XeTeX 或 LuaTeX。我用 TikZ 绘制了箭头,我在本答案的最后提供了其代码。


接下来是正确代码:

  • 我使用包\includegraphics中的命令graphicx将钩箭头的图像包含在内,
  • 将其包含在包\scalerel中的命令中\scalerel(由 Steven 在另一个答案中编写),以确保它在内联使用时可以很好地扩展,
  • 然后,我在数学模式下将整个内容括在\mathrel适当的间距中,就像正常情况一样\rightarrow
  • 最后,我将整个内容包装在一个\hookrightstealtharrow按要求调用的宏中。

代码:

\documentclass{article}
\usepackage{scalerel,graphicx}
\usepackage[nopar]{lipsum} % for dummy text only
\newcommand\hookrightstealtharrow{%
    \mathrel{%
    \scalerel*{\includegraphics{arrow}}{x}}}

\begin{document}
    \textbf{Exhibit A: Comparison with original hooked arrow} \par\medskip
    \verb!Normal \hookrightarrow:! $x \hookrightarrow y$ \par
    \verb!\hookrightarrow with stealth:! $x \hookrightstealtharrow y$ \par
    \bigskip

    \textbf{Exhibit B: Showing in-line use} \par\medskip
    \lipsum[28]
    $x \hookrightstealtharrow y$,
    $A_{x \hookrightstealtharrow y} B$,
    $C^{x \hookrightstealtharrow y} D$
    \lipsum[13]
    \bigskip

    \textbf{Exhibit C: In various font sizes} \par\medskip
    \small $x \hookrightstealtharrow y$\par
    \normalsize $x \hookrightstealtharrow y$\par
    \large $x \hookrightstealtharrow y$\par
    \huge $x \hookrightstealtharrow y$
\end{document}

展览

附件 b

展览品

附言:抱歉,展品的尺寸不同。为了使图像更清晰,我不得不放大它们。所以我单独截取了屏幕截图。另外,请注意,没有 TikZ :p


绘制箭头

你可以按照你喜欢的方式去做,但我用 TikZ 来做,见此处:

\documentclass[border=1.5pt,tikz]{standalone}
\usetikzlibrary{arrows.meta} 

\begin{document}
 \tikz[baseline=-.2ex] \draw[{Hooks[right]}-{stealth},] (0,0)--(1.5em,0);
\end{document}

箭

我使用 pdfLaTeX 编译上述内容以生成该图像的 .pdf 文件,然后将其放在与主.tex文件相同的目录中。

答案2

这对你有用吗?

在多行设置中显示,以表明行距不会受到不利影响。已编辑以使宏既强大又一流\mathrel

\documentclass{article}
\usepackage{tikz-cd}
\usepackage[nopar]{lipsum}
\usetikzlibrary{arrows} 

\tikzset{
  commutative diagrams/.cd, 
  arrow style=tikz, 
  diagrams={>=stealth},
  ampersand replacement=\&
}
\usepackage{etoolbox}
\DeclareRobustCommand\hookrightstealtharrow{%
  \mathrel{\!\!\!\!\begin{tikzcd}\arrow[r,hook]\&{}\end{tikzcd}\!\!\!\!}}

\begin{document}
\lipsum[1]
Inline math $x \hookrightstealtharrow y$ or just $\hookrightstealtharrow$ by itself.
\lipsum[2]
\end{document}

在此处输入图片描述

相关内容