我正在写一篇包含大量交换图的论文,使用tikz-cd
,并使用不同的样式来区分图中不同类型的映射。例如,单射映射有一个钩状尾部,由 定义和使用
\tikzset{inj/.code={\pgfsetarrowsstart{right hook}}}
\begin{tikzcd} A \ar[r,inj] & B \end{tikzcd}
有一个我很难定义。它应该大致产生一个箭头旁边的下标“lw”,即\类似
\begin{tikzcd} A \ar[r,"lw"' very near end] & B \end{tikzcd}
。
我如何定义一种样式lw
,以便我可以\begin{tikzcd} A \ar[r,lw] & B \end{tikzcd}
像上面描述的那样在箭头旁边获取下标“lw”?
像上面的例子一样,添加一个标签的属性"lw"' very near end
就足够了。但是,如果可以做一些事情,比如将节点相对于箭头放置,这样就可以使用节点定位的通用语法来微调“lw”的位置,那就更好了。
梅威瑟:
\documentclass{standalone}
\usepackage{tikz-cd} \usetikzlibrary{arrows}
\begin{document}
% example of defining/using arrow styles:
\tikzset{inj/.code={\pgfsetarrowsstart{right hook}}}
\begin{tikzcd} A \ar[r,inj] & B \end{tikzcd}
% what I want to define a style for:
\begin{tikzcd} A \ar[r,"lw"' very near end] & B \end{tikzcd}
\end{document}
答案1
非常简单:
\tikzset{lw/.style={"lw"' very near end}}
如果您希望向标签添加更多设置,您可以执行以下操作:
\tikzset{
lw/.style={"lw"'{very near end,#1}},
lw/.default={}
}
然后,您可以使用不带参数的样式 ( \ar[r,lw]
),或者带参数的样式 ( \ar[r,lw={blue}]
)。
\documentclass[border=5mm]{standalone}
\usepackage{amsmath}
\usepackage{tikz-cd}
\usetikzlibrary{arrows}
\tikzset{
lw/.style={"lw"'{very near end,#1}},
lw/.default={}
}
\begin{document}
\begin{tikzcd}
A \ar[r,lw] & B \ar[r,lw={pos=1,yshift=-2pt,blue,draw}] & C
\end{tikzcd}
\end{document}