自定义 Dynkin 图箭头提示

自定义 Dynkin 图箭头提示

了解优秀套餐dynkin 图经过本杰明·麦凯,我还需要其他东西,因为在回答我上一个问题时,已经有人贴心地提供了一些定制如何在节点子集周围绘制边框这里是由前 TeX.SE 用户 marmot 提供的,我需要使用它。

所以我想要的是在 TikZ 中绘制形状的箭头=>=,我的意思是字面上地这种精确的形状(除了=部分可能需要一些拉伸),三箭也是一样。

虽然pgf 手册有很多关于箭头的详细信息,但我找不到这种类型的说明。你能帮助我吗?

答案1

更新:

随着 2021 年 4 月 6 日发布的 dynkin-diagrams 包,您将获得: 在此处输入图片描述

只需将 [Bourbaki-arrow] 作为选项添加到包中:

\documentclass{amsart}
\usepackage[Bourbaki-arrow]{dynkin-diagrams}
\begin{document}
\dynkin F4

\dynkin G2
\end{document}

旧答案:仅适用于 Dynkin 图。我不确定您想要直线还是弧线(如 Dynkin 图包的默认设置),因此这里是包标准箭头,以及两个选项:

带三种箭头的 Dynkin 图

\documentclass{standalone}
\usepackage{dynkin-diagrams}

\pgfdeclarearrow{
name = jibladze,
parameters = { \the\pgfarrowlength },
setup code = {},
drawing code = {
  \pgfsetdash{}{0pt} % do not dash
      \pgfsetroundjoin   % fix join
  \pgfsetroundcap    % fix cap
  \pgfsetlinewidth{5\pgflinewidth}
  \pgfsetstrokecolor{white}
  \pgfpathmoveto{\pgfpoint{-.75\pgfarrowlength}{\pgfarrowlength}}
  \pgfpathlineto{\pgfpoint{0}{0}}
  \pgfpathlineto{\pgfpoint{-.75\pgfarrowlength}{-\pgfarrowlength}}
  \pgfusepathqstroke
  \pgfsetlinewidth{.2\pgflinewidth}
  \pgfsetstrokecolor{black}
  \pgfpathmoveto{\pgfpoint{-.75\pgfarrowlength}{\pgfarrowlength}}
  \pgfpathlineto{\pgfpoint{0}{0}}
  \pgfpathlineto{\pgfpoint{-.75\pgfarrowlength}{-\pgfarrowlength}}
  \pgfusepathqstroke
},
defaults = { length = 2pt }
}

\pgfdeclarearrow{
name = mamuka,
parameters = { \the\pgfarrowlength },
setup code = {},
drawing code = {
  \pgfsetdash{}{0pt} % do not dash
  \pgfsetroundjoin   % fix join
  \pgfsetroundcap    % fix cap
  \pgfsetlinewidth{5\pgflinewidth}
  \pgfsetstrokecolor{white}
  \pgfpathmoveto{\pgfpoint{-.75\pgfarrowlength}{\pgfarrowlength}}
  \pgfpatharc{180}{270}{\pgfarrowlength}
  \pgfpatharc{90}{180}{\pgfarrowlength}
  \pgfusepathqstroke
  \pgfsetlinewidth{.2\pgflinewidth}
  \pgfsetstrokecolor{black}
  \pgfpathmoveto{\pgfpoint{-.75\pgfarrowlength}{\pgfarrowlength}}
  \pgfpatharc{180}{270}{\pgfarrowlength}
  \pgfpatharc{90}{180}{\pgfarrowlength}
  \pgfusepathqstroke
},
defaults = { length = 2pt }
}

\begin{document}
\begin{tabular}{c}
\dynkin G2\\
\dynkin[arrow shape/.style={-{jibladze}}]G2\\
\dynkin[arrow shape/.style={-{mamuka}}]G2\\
\dynkin F4\\
\dynkin[arrow shape/.style={-{jibladze}}]F4\\
\dynkin[arrow shape/.style={-{mamuka}}]F4
\end{tabular}
\end{document}

答案2

它是一个 tikz 图片组件,而不是箭头。

>是一个经典的 TikZ 箭头,=很可能是thin, double两个节点之间的边。

我(目前没有时间)理解(高度参数化的) dynkin 包代码 - 所以不是一个答案 - 但这里有一个非常简单的即兴主题重新解释(不一定准确)这种构造:

伪箭头

平均能量损失

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{
    arrows.meta,
    positioning,
    }
\begin{document}
\begin{tikzpicture}[inner sep=2pt,outer sep=0pt]
\node [circle,fill=black,radius=2pt,draw,label=A] (A) at (0,0) {};
\node [circle,fill=black,radius=2pt,draw,label=B] (B) at (1,0) {};
\node [label=C] (C) at (1.5,0) {};
\node [circle,fill=black,radius=2pt,draw,label=D] (D) at (2,0) {};
\draw[thin] (A) -- (B);
\draw[thin,double] (C.west) -- (D);
\draw[-{Classical TikZ Rightarrow[red,length=1mm,]},thin,double,] (B) -- (C.east);
\end{tikzpicture}
\end{document}

您可以=>=使用不可见的节点模拟箭头,例如像这样:

\begin{tikzpicture}[inner sep=2pt,outer sep=0pt]
\node [label=B] (B) at (1,0) {};
\node [label=C] (C) at (1.5,0) {};
\node [label=D] (D) at (2,0) {};
\draw[thin,double] (C.west) -- (D);
\draw[-{Classical TikZ Rightarrow[red,length=1mm,]},thin,double,] (B) -- (C.east);
\end{tikzpicture}

仅限箭头

相关内容