数学模式和 tikz-cd 中带上标的箭头

数学模式和 tikz-cd 中带上标的箭头

我有两种情况需要使用带有上标星号的箭头:数学模式和tikz-cd图表。我希望能够在两种情况下都显示这样的箭头,使箭头看起来相同,即在星号的位置方面。

考虑下面的 MWE。这就是我希望箭头的样子。

平均能量损失

\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz-cd}

\newcommand*\dirinfsymname{Rightarrow}
\newcommand*\directdatacolourname{PineGreen}
\newcommand*\directdatacolour{\textcolor{\directdatacolourname}}
\newcommand*\dirinfsym{\mathbin{\directdatacolour{\Rightarrow}}}

\newcommand{\pathdirinfsym}[1][]{\mathrel{
  \vphantom{\dirinfsym{#1}}
  \smash{\dirinfsym{#1}}
  \vphantom{\to}^{\textcolor{PineGreen}{*}}}
}

\begin{document}

$a \pathdirinfsym b$

\end{document}

输出:

在此处输入图片描述

现在,考虑这个 MWE。

平均能量损失

\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz,tikz-cd}
\usetikzlibrary{shapes,fit}
\usetikzlibrary{positioning}
\usetikzlibrary{decorations.pathmorphing}

\newcommand*\dirinfsymname{Rightarrow}
\newcommand*\directdatacolourname{PineGreen}
\newcommand*\directdatacolour{\textcolor{\directdatacolourname}}
\newcommand*\dirinfsym{\mathbin{\directdatacolour{\Rightarrow}}}

\begin{document}

\begin{tikzcd}[
    column sep=small,
    cells={nodes={draw=black, ellipse, anchor=center, minimum height=2em}}
]
    a  \arrow[\dirinfsymname, \directdatacolourname, bend left]{rrrrr}{*} & a \arrow[\dirinfsymname, \directdatacolourname]{r}{*}  & a  & |[draw=none]|a\vphantom{1}  & a  & a
\end{tikzcd}

\end{document}

输出:

在此处输入图片描述

注意两个箭头的星号位于字干的中间。我希望星号位于与第一张图相同的位置。

此外,我希望这不仅适用于\Rightarrow。我希望能够为 做同样的事情\rightarrow

答案1

tizk-cd可以使用箭头的字形,并arrows.meta允许我们将箭头拼凑在一起。这里有一个更 TiZy 和更短的代码也具有\to-type 箭头。

\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz-cd}
\usetikzlibrary{shapes.geometric,arrows.meta}

\newcommand{\mysym}{\vphantom{\to}^{*}}

\begin{document}

\tikzset{
startip/.tip={Glyph[glyph math command=mysym]},
Rightarrow*/.style={PineGreen,double equal sign distance,>={Implies},->.startip},
to*/.style={PineGreen,->.startip}}
\begin{tikzcd}[
    column sep=small,
    cells={nodes={draw=black, ellipse, anchor=center, minimum height=2em}}
]
    a \arrow[r,Rightarrow*] 
    \arrow[Rightarrow*, bend left]{rrrrr}{m} & a \arrow[Rightarrow*,r] & a
    \arrow[to*,r] &
    |[draw=none,rectangle,inner sep=1pt]|a\vphantom{1} \arrow[Rightarrow*,r] & a \arrow[Rightarrow*,r] & a
\end{tikzcd}
\end{document}

在此处输入图片描述

请注意,您不必停在这里,使用它您可以将任何符号拼凑在一起并将它们用作箭头。(当然,在给定点您可能想要使用bending。)

这是使用宏的旧版本。

\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz-cd}
\usetikzlibrary{shapes.geometric,arrows.meta}

\newcommand*\dirinfsymname{Rightarrow}
\newcommand*\directdatacolourname{PineGreen}
\newcommand*\directdatacolour{\textcolor{\directdatacolourname}}
\newcommand*\dirinfsym{\mathbin{\directdatacolour{\Rightarrow}}}

\newcommand{\pathdirinfsym}[1][]{\mathrel{
  \vphantom{\dirinfsym{#1}}
  \smash{\dirinfsym{#1}}
  \vphantom{\to}^{\textcolor{PineGreen}{*}}}
}
\newcommand{\mysym}{\hspace{1em}\vphantom{\to}^{\textcolor{PineGreen}{*}}}
\usetikzlibrary{arrows}

\begin{document}

\tikzset{
fancy/.tip={Glyph[glyph math command=mysym]},
pft/.style={\directdatacolourname,double equal sign
distance,>={Implies},->.fancy}
}
\begin{tikzcd}[
    column sep=small,
    cells={nodes={draw=black, ellipse, anchor=center, minimum height=2em}}
]
    a \arrow[r,pft] 
    \arrow[pft, bend left]{rrrrr}{m} & a \arrow[pft,r] & a \arrow[pft,r] &
    |[draw=none,rectangle,inner sep=1pt]|a\vphantom{1} \arrow[pft,r] & a \arrow[pft,r] & a
\end{tikzcd}

\end{document}

在此处输入图片描述

相关内容