使用以下代码,我得到以下结果
\documentclass[convert,border=2mm,10pt]{standalone}
\usepackage{tikz}
\usepackage{xcolor}
\usetikzlibrary{positioning,mindmap}
\begin{document}
\Large
\begin{tikzpicture}[thin,rounded corners]
\node (A1) {$x$};
\node (A2) [minimum size=0pt,above right=-4.5mm of A1] {\scriptsize $n$};
\node (A4) [shape=circle,draw,fill=violet!10,align=center,above=1mm of A2,scale=0.20,thin] {-$1$} edge [->,scale=0.2] (A2);
\end{tikzpicture}
\end{document}
但我需要这支箭更接近n,类似这样:
我怎样才能得到类似的结果?提前致谢。
答案1
draw=red
如果向节点添加一个A2
,你就会看到发生了什么:
这是节点的效果inner sep
(也许您将其与minimum size
?混淆了)。
\documentclass[convert,border=2mm,10pt]{standalone}
\usepackage{tikz}
\usepackage{xcolor}
\usetikzlibrary{positioning,mindmap}
\begin{document}
\Large
\begin{tikzpicture}[thin,rounded corners]
\node (A1) {$x$};
\node (A2) [above right=-2.5 mm of A1, inner sep=0pt] {\scriptsize $n$};
\node (A4) [shape=circle,draw,fill=violet!10,align=center,above=2mm of A2,scale=0.20,thin] {-$1$} edge [->,scale=0.2] (A2);
\end{tikzpicture}
\end{document}
但是...你确定要这么做吗?使用tikzmark
(并让 LaTeX 构建公式,这是它做得很好的事情)会更好一些...例如
\documentclass[12pt]{article}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\begin{document}
\Large
\[
x^{\tikzmarknode[inner sep=1pt]{myn}{n}}
\]
\begin{tikzpicture}[overlay, remember picture]
\draw [<-] (pic cs:myn) ++(0, 0.2) -- ++(0,.5)
node[shape=circle,draw,fill=violet!10, scale=0.2]{$-1$};
\end{tikzpicture}
\end{document}
它仍然需要特别指定调整距离,并且是tikz
一个覆盖,所以你必须小心创建空间,但是......