考虑一下:
存在几个问题:
- 操作
\exists
符与以下节点 (a,b) 未水平对齐。 foobar
与其下方的节点之间以及 (a,b) 节点与其下方的节点之间的空间太小。- 右箭头未与前后节点水平对齐。(我知道我可以用 TikZ 绘制箭头,这只是一个占位符。)
任何帮助解决这些问题的帮助都将不胜感激。这是目前的代码。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.multipart,positioning,fit}
\begin{document}
\begin{tikzpicture}[
node distance=3mm and 3mm,
drs/.style={draw, rectangle split, rectangle split parts=2}
]
\node[drs,align=left]
{ foo
\nodepart{two}
foobar \
\tikz{
\node (operator) {$\exists$};
\node[drs,right=of operator]{
a%
\nodepart{two}{
b%
}
};
} \
\tikz{
\node[drs] (left side)
{ 1%
\nodepart{two}
2%
};
\node[right=of left side] (operator) {$\rightarrow$};
\node[drs,right=of operator] (right side)
{ 3%
\nodepart{two}
4 \\
5 \\
6%
};
}
};
\end{tikzpicture}
\end{document}
答案1
mid
问题 1) 和 3):您可以使用节点的锚点来控制对齐。问题 2):您可以使用换行命令的可选参数\\
;这是您的代码的修改版本,请根据需要随意更改长度:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.multipart,positioning,fit}
\begin{document}
\begin{tikzpicture}[
drs/.style={draw, rectangle split, rectangle split parts=2}
]
\node[drs,align=left]
{ foo
\nodepart{two}
foobar \\[.5em]
\tikz{
\node (operator) {$\exists$};
\node[drs,right=2mm of operator.mid]{
a%
\nodepart{two}{
b%
}
};
} \\[.5em]
\tikz{
\node (operator) {$\rightarrow$};
\node[drs,left=4mm of operator.mid] (left side)
{ 1%
\nodepart{two}
2%
};
\node[drs,right=4mm of operator.mid] (right side)
{ 3%
\nodepart{two}
4 \\
5 \\
6%
};
}
};
\end{tikzpicture}
\end{document}