考虑一下这个 MWE
\documentclass[tikz]{minimal}
\usepackage{tikz}
\usetikzlibrary{graphdrawing}
\usetikzlibrary{graphs}
\usetikzlibrary{arrows}
\usetikzlibrary{shapes}
\usegdlibrary{layered,trees}
\begin{document}
\begin{tikzpicture}
\graph[layered layout,nodes={rectangle,fill=yellow,draw,}]{
{X, 7} % Inputs
->I/"\mbox{\quad}"[circle,fill=red] % Input port
--F/$\sum$[fill=cyan!20,minimum width=3em,minimum height=1em] % Function at the gate
--O/$\bot$[circle,fill=green!30,
% regardless at=(r.north) this option does not work
] % Output port%
};
[![\end{tikzpicture}][1]][1]
\end{document}
其输出是
我在这里尝试做的是,用节点 I、F 和 O 创建一个元节点,它类似于电子门。I 是输入端口,所有输入都进入该端口。F 是在节点处计算的函数,O 是输出节点。
我尝试将 I 和 O 定义为\graph
命令之外的节点,以便它们的位置相对于 F。缺点是布局算法生成的箭头连接 F,而不是 I 和 O。
如 MWE 所示,我尝试使用regardless at
密钥。但节点放置错误。
在任何特定情况下,I 和 O 都有可能nudge
朝向 F,但是否有可能针对所有可能的布局进行正确的推动?
有没有办法将 I 和 F 紧密结合在一起,以便它们在绘制图形时表现得像一个整体?
编辑 具体来说,我想我尝试做的是将图形绘制应用于算术门(类似于电路门)的放置。想想这个图,
想象一下能够使用图形绘制库来放置门。
正如我上面解释的那样,挑战在于实现端口功能。