TikZ 极短的代码中存在错误

TikZ 极短的代码中存在错误

我怎么会在 TikZ 图表的代码中得到错误?我试图做的就是调用一个顶点“$P$”!我收到的错误消息是“我不知道您传递的‘\coordinate (P) at (0,0)’的键‘tikz/pics/fpic’,我将忽略它。也许你拼错了。”

\documentclass[10pt]{amsart}
\usepackage{mathtools,array}


\usepackage{tikz}
\usetikzlibrary{calc,intersections,arrows.meta,bending}


\usepackage{pgfplots}
\pgfplotsset{compat=1.11}



\begin{document}



\noindent \hspace*{\fill}
\begin{tikzpicture}

[nodes={inner sep=0, font=\scriptsize,
execute at begin node={\setlength\abovedisplayskip{0.75ex}%
\setlength\belowdisplayskip{0.5ex}%
\setlength\abovedisplayshortskip{0.75ex}%
\setlength\belowdisplayshortskip{0.5ex}}},
shorten/.style={shorten >=#1,shorten <=#1},
pics/fpic/.style={code={#1}}, x=1.5cm, y=1.5cm]

%A forest with a vertex P is drawn.

\matrix[row sep=4.5em]{\pic{fpic={
\coordinate (P) at (0,0);
}};
};
%
%



\end{tikzpicture}
\hspace{\fill}


\end{document}

答案1

原始错误如评论中所述,原因是您使用了pic未在任何地方定义的:fpic。正如 David 提到的,的一个可能定义fpic位于在 TikZ 图中插入键,因此您也许可以使用它。

在更新后的代码中,您犯了两个错误:

  • \begin{tikzpicture}和 下一个之间的空行[
  • \\结尾处没有\matrix。在 TikZ 中\matrix,每一行都必须以 结尾\\

这是一个完整的例子,仅包括必要的部分。

\documentclass[10pt]{amsart}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[
  % define fpic
  pics/fpic/.style={code={#1}},
]

\matrix[row sep=4.5em]{\pic{fpic={
\coordinate (P) at (0,0);
}}; \\ % <-- all rows in a TikZ \matrix must end with \\
};
%

\end{tikzpicture}
\end{document}

相关内容