Я хочу добавить метку над узлом, который уже содержит метку.
\begin{tikzpicture}[scale=0.8,every node/.style={draw=black,circle}]
\node (a) at (0,0) {a};
\node (b) at (2,0) {b};
\draw[->] (a) to (b);
\end{tikzpicture}
Разметка выше даст мне следующее:
Но я хочу что-то вроде этого:
Есть ли какой-нибудь простой способ решить эту проблему? Янетищу решения с использованием\tikzlibrary{background}
решение1
На самом деле, узлы tikz имеют текст внутри и метки снаружи:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[scale=0.8,every node/.style={draw=black,circle}]
\node[label={\small 1/16}] (a) at (0,0) {a};
\node (b) at (2,0) {b};
\draw[->] (a) to (b);
\end{tikzpicture}
\end{document}
решение2
Решение PSTricks с использованиемpst-node
упаковка:
\documentclass{article}
\usepackage{pst-node}
\def\labelSep{\fpeval{28.75*\radius+3.375}} % found by experimenting
% parameters
\def\arrowLength{1.8}
\def\radius{0.3}
\begin{document}
\begin{pspicture}(\fpeval{4*\radius+\arrowLength},\fpeval{2*\radius+0.35})
% change `0.35` in the calculation of the height of the bounding box
% according to the contents on top of the node
\cnode(\radius,\radius){\radius}{A}
\rput(A){a}
\cnode(\fpeval{3*\radius+\arrowLength},\radius){\radius}{B}
\rput(B){b}
\ncline{->}{A}{B}
\uput{\labelSep pt}[90](A){\small\texttt{1/16}}
\end{pspicture}
\end{document}
Обратите внимание, что все, что вам нужно сделать, это выбрать значения параметров, и рисунок (включая ограничивающую рамку) будет соответствующим образом скорректирован.