TikZ 中節點上方的標籤

TikZ 中節點上方的標籤

我希望在已包含標籤的節點上方新增一個標籤。

\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}

上面的標記會給我這個:

tikz圖片1

但我想要這樣的東西:

蒂克茲2

有什麼簡單的方法可以解決這個問題嗎?我是不是尋找解決方案使用\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}

輸出

請注意,您所要做的就是選擇參數的值,繪圖(包括邊界框)將進行相應調整。

相關內容