我是 TikZ 的新手,画了下面的图,
\documentclass[12pt,a4paper]{article}
\usepackage{tikz}
\usetikzlibrary{trees,arrows}
\begin{document}
\begin{tikzpicture}[every node/.style={draw,shape=circle,inner sep=2pt,fill=black}]
\node [label=above:$a$]{}
child {node[label=above:$b$,label=below:$p\land q$]{}}
child {node[label=above:$c$,label=below:$p\land \lnot q$]{}}
;
\end{tikzpicture}
\end{document}
但是右边的命题公式上方的空间太多了,有什么办法可以减少空白量,使其更接近标签 a、b、c 的空白量?
[编辑] Jesse 给我提供了一种手动调整标签位置的方法,但如果有一种无需微调就能对齐两个标签的方法就更好了。
答案1
这种不良对齐源自every node/.style={draw,shape=circle,inner sep=2pt,fill=black}
。标签也是节点,因此shape=circle
所有标签都是圆圈。
\documentclass[tikz,border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{trees,arrows}
\begin{document}
\begin{tikzpicture}[every node/.style={draw,shape=circle,inner sep=2pt,fill=black},
every label/.style={draw,fill=none}]
\node [label=above:$a$]{}
child {node[label=above:$b$,label=below:$p\land q$]{}}
child {node[label=above:$c$,label=below:$p\land \lnot q$]{}}
;
\end{tikzpicture}
\end{document}
every label/.style={shape=rectangle, draw=none, fill=none}
您可以使用或every label/.append style={shape=rectangle}
来改变这种行为
如果你想了解为什么选项draw=none
和fill=none
包含在every label
定义中,请查看TikZ 中的每个非标签节点。