tikzcd 中超大的“暗示”箭头

tikzcd 中超大的“暗示”箭头

我正在将所有箭头尖tikzcd从默认的切换到angle 45tikzarrows库中的箭头尖。当我尝试使用 将其应用于双箭头时tikzcd implies/.tip,箭头的尖端似乎过大。我如何调整尖端的大小,使其与箭头的尖端大小相同to

在此处输入图片描述

\documentclass{article}
\usepackage{tikz-cd}
\usetikzlibrary{arrows}

\tikzcdset{%
arrow style=tikz,
diagrams={>=angle 45},
tikzcd implies/.tip={>}
}

\begin{document}
\[
\begin{tikzcd}
A \arrow[r, bend left=50, ""{name=U, below}] \arrow[r, bend right=50, ""{name=D}] & 
B \arrow[Rightarrow,from=U,to=D]
\end{tikzcd}
\]
\end{document}

答案1

我建议使用特定线路tikzcd implies/.tip={Implies}代替tikzcd implies/.tip={>}

\documentclass{article}
\usepackage{tikz-cd}
\usetikzlibrary{arrows}

\tikzcdset{%
arrow style=tikz,
diagrams={>=angle 45},
tikzcd implies/.tip={Implies}
}

\begin{document}
\[
\begin{tikzcd}
A \arrow[r, bend left=50, ""{name=U, below}] \arrow[r, bend right=50, ""{name=D}] & 
B \arrow[Rightarrow,from=U,to=D]
\end{tikzcd}
\]
\end{document}

事实上,你会得到正确的建议暗示。以下是快照:

在此处输入图片描述

如果有一天,你使用一个名为的旧包xy,并带有选项2cell,你将获得以下结果(我使用了参数<5>来增加弧):

\documentclass[a4paper,12pt]{standalone}
\usepackage[all,cmtip,2cell]{xy}
\UseAllTwocells
\begin{document}
\xymatrix{ A\rtwocell<5> &B}
\end{document}

在此处输入图片描述

答案2

为了使箭头尖端呈直线,我建议使用Straight Barb尖端。默认情况下,它们看起来像这样:

在此处输入图片描述

\documentclass{article}
\usepackage{tikz-cd}
\usetikzlibrary{arrows}

\tikzcdset{%
arrow style=tikz,
diagrams={>={Straight Barb}},
tikzcd implies/.tip={Straight Barb[scale=0.5]}
}

\begin{document}
\[
\begin{tikzcd}
A \arrow[r, bend left=50, ""{name=U, below}] \arrow[r, bend right=50, ""{name=D}] & 
B \arrow[Rightarrow,from=U,to=D]
\end{tikzcd}
\]
\end{document}

如果你喜欢 45 度的笔尖,你可以angle按如下方式添加键

diagrams={>={Straight Barb[angle=45:4pt]}},

还有更多按键可以控制笔尖的外观,例如widthlength

编辑

快速阅读后tikz/pgf 手册,在第 16.4.3 节中,您可以看到针对尖端重叠问题的快速“修复”(请注意.添加到两个尖端),我还将角度尖端设置为 45 度:

\documentclass{article}
\usepackage{tikz-cd}
\usetikzlibrary{arrows, arrows.meta}

\tikzcdset{%
arrow style=tikz,
diagrams={>={.Straight Barb[angle=45:4pt]}},
tikzcd implies/.tip={.Straight Barb[angle=45:6pt]}
}

\begin{document}
\[
\begin{tikzcd}
A \arrow[r, bend left=50, ""{name=U, below}] \arrow[r, bend right=50, ""{name=D}] & 
B \arrow[Rightarrow,from=U,to=D]
\end{tikzcd}
\]
\end{document}

通过线和尖端之间的这种分离,您还可以避免尖端相对于线 45 度不居中的问题。

在此处输入图片描述

相关内容