我正在尝试在 TikZ 中绘制 Kripke 结构,虽然大部分都成功了,但我对结果并不满意。这是我的序言:
\documentclass[10pt,letterpaper]{amsart}
% Personal Packages
\usepackage{notation}
% TikZ Drawing packages
\usepackage{tikz}
\usetikzlibrary{arrows}
% Font and Typography Settings
\usepackage{concrete}
\usepackage{euler}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[babel=true]{microtype}
关注我的 MWE:
\begin{figure}
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=3cm,
thick,base node/.style={circle,draw}, real node/.style={double,circle,draw}]
\node[real node] (1) {$s(C)$};
\node[base node] (2) [below left of=1] {$s(\alpha)$};
\node[base node] (3) [below right of=1] {$\neg{s(\alpha)}$};
\path[]
(1) edge node[left] {$L,J$} (2)
edge node[right] {$L,J$} (3)
edge [loop above] node {$C$} (1)
(2) edge [bend left] node {$C,L,J$} (3)
edge [loop left] node {$C,L,J$} (2)
(3) edge [bend left] node {$C,L,J$} (2)
edge [loop right] node {$C,L,J$} (3);
\end{tikzpicture}
\caption{The initial state of the domain in Ex.~\ref{ex:whisper}.}
\end{figure}
我遇到的困难是节点3
大于节点2
(可能是因为它正在调整自身大小以适应标签文本)。有什么方法可以让所有节点都具有相同的大小?此外,任何关于如何使图表更美观的建议都将不胜感激(我来自 OmniGraffle,过渡有点困难)。
答案1
您可以使用以下minimum size=
密钥:
\documentclass[10pt,letterpaper]{amsart}
% Personal Packages
%\usepackage{notation}
% TikZ Drawing packages
\usepackage{tikz}
\usetikzlibrary{arrows}
% Font and Typography Settings
\usepackage{concrete}
\usepackage{euler}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[babel=true]{microtype}
\begin{document}
\begin{figure}
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=3cm,
thick,base node/.style={circle,draw,minimum size=35pt}, real node/.style={double,circle,draw,minimum size=35pt}]
\node[real node] (1) {$s(C)$};
\node[base node] (2) [below left of=1] {$s(\alpha)$};
\node[base node] (3) [below right of=1] {$\neg{s(\alpha)}$};
\path[]
(1) edge node[left] {$L,J$} (2)
edge node[right] {$L,J$} (3)
edge [loop above] node {$C$} (1)
(2) edge [bend left] node {$C,L,J$} (3)
edge [loop left] node {$C,L,J$} (2)
(3) edge [bend left] node {$C,L,J$} (2)
edge [loop right] node {$C,L,J$} (3);
\end{tikzpicture}
\caption{The initial state of the domain in Ex.~\ref{ex:whisper}.}
\end{figure}
\end{document}
来自 pgf 手册:
最好使用
minimum size
选项。此选项允许 > Hagen 指定节点应具有的最小大小。如果由于文本较长而导致节点实际上需要更大,则节点会更大,但如果文本为空,则节点将具有最小大小。此选项还可用于确保包含不同数量文本的多个节点具有相同的大小。