我怎么会在 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}