对于显示数学,我使用tikzcd
隐形箭头样式,它满足了我所有的需要。
从答案 数学中的隐形箭?我(从mathabx
包中)获得了用于内联数学公式的隐形箭头,但是这个包没有钩子版本,所以我无法从中提取这些箭头。
包装boisik
上有类似的标志,但是是“老式风格”。
我尝试使用 TikZ 构建符号,tikzcd
但它们修改了线条之间的空间。
因此,我希望有一个不需要 tikz、LuaTex 或 XeTeX 就可以工作的\newcommand
as来解决发布问题。\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}
附言:抱歉,展品的尺寸不同。为了使图像更清晰,我不得不放大它们。所以我单独截取了屏幕截图。另外,请注意,没有 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}