![带 tikz 的 EXPRESS-G 风格箭头](https://linux22.com/image/423326/%E5%B8%A6%20tikz%20%E7%9A%84%20EXPRESS-G%20%E9%A3%8E%E6%A0%BC%E7%AE%AD%E5%A4%B4.png)
我正在尝试制作 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