带 tikz 的 EXPRESS-G 风格箭头

带 tikz 的 EXPRESS-G 风格箭头

我正在尝试制作 EXPRESS-G 图 (维基百科或 ISO 10303-11,附件 B)。

我在为继承关系生成正确的箭头时遇到了困难 - 它与线本身一起变粗,这是不想要的。

MWE:B 处的圆应与 C 处的圆大小相同,线条粗细保持不变。

\documentclass[tikz]{standalone}
\usetikzlibrary{arrows,arrows.meta,positioning}
\begin{document}
  \begin{tikzpicture}[every node/.style={draw}]
    \node (a) {A};
    \node[left=of a] (b) {B};
    \node[right=of a] (c) {C};
    \draw[-o] (a) -- (c);
    \draw[-o,ultra thick] (a) -- (b); % how to only change line width, but not the arrowhead thickness?
  \end{tikzpicture}
\end{document}

产生的结果

我曾尝试过line width替代方法ultra thick,但无济于事。

注意:我知道,如果 tikzlibrary 能完成所有这些工作,那就太好了,但我还没有深入研究 tikz 库编程。也许以后再说吧。

答案1

arrows.meta实际上,你可以向箭头添加绘图指令,因此你可以使用

circ/.tip={Circle[/tikz/thin, open, width=5pt, length=5pt]}

并使用-circ

在此处输入图片描述

\documentclass[tikz,border=5mm]{standalone}
\usetikzlibrary{arrows,arrows.meta,positioning}
\begin{document}
  \begin{tikzpicture}[
      every node/.style={draw},
      circ/.tip={Circle[/tikz/thin, open, width=5pt, length=5pt]} % the default line width is actually thin
      ]
    \node (a) {A};
    \node[left=of a] (b) {B};
    \node[right=of a] (c) {C};
    \draw[-circ] (a) -- (c);
    \draw[-circ,ultra thick] (a) -- (b); % how to only change line width, but not the arrowhead thickness?
  \end{tikzpicture}
\end{document}

答案2

我是 EXPRESS-G 的开发人员,编写了expressg用于轻松创建 EXPRESS-G 和其他 BLA(BoX Line Annotation)图表的软件包。

不幸的是,出于某种原因,执行此操作会texdoc expressg返回expeg.pdf显示包输出的示例。出于某种原因,该包不在我的计算机的 TexLive 副本中,但可以从https://ctan.org/pkg/expressg

相关内容