使用 tikz 命名的箭头宏

使用 tikz 命名的箭头宏

以下宏在两个对象之间生成一个带有名称的箭头。它有三个参数。

\newcommand{\rname}[3]{
        \begin{tikzcd}[ampersand replacement=\&]
            {#1} \arrow[r, "{#2}"] \& {#3}
        \end{tikzcd}
    }

但是,我只想要一个参数,即箭头的名称:

\newcommand{\rname}[1]{
        \begin{tikzcd}[ampersand replacement=\&]
              \arrow[r, "{#1}"] \& 
        \end{tikzcd}
    }

但这不适用于 tikz。我该如何修复它?这是一个可编译的示例:

\documentclass{article}

\usepackage{tikz-cd}

\newcommand{\rname}[3]{
    \begin{tikzcd}[ampersand replacement=\&]
        {#1} \arrow[r, "{#2}"] \& {#3}
    \end{tikzcd}
}

\begin{document}
    $\rname{A}{f}{B}$
   %$A\rname{f}B$ I would like it to function like this.
\end{document}

答案1

您的单参数尝试几乎有效,您只需要确保单元格不是完全为空的,例如,一个空的{}就可以完成这项工作:

\documentclass{article}

\usepackage{tikz-cd}

\newcommand{\rname}[1]{
    \begin{tikzcd}[ampersand replacement=\&]
        \arrow[r, "{#1}"] \& {}
    \end{tikzcd}
}

\begin{document}
    $A\rname{f}B$
\end{document}

但是,如果你只是想在箭头上方添加一些文字,使用tikzcd似乎有点过头了。我建议使用

\documentclass{article}

\usepackage{amsmath}

\newcommand{\rname}[1]{
    \xrightarrow{~~#1~~}
}

\begin{document}
    $A\rname{f}B$
\end{document}

相关内容