按照第 33 页的第一个示例https://github.com/hackl/tikz-network/blob/master/manual.pdf我收到了以下错误。
! Package pgf Error: No shape named C is known.
See the pgf package documentation for explanation.
Type H <return> for immediate help.
...
l.6 ... layer={1,2},style=dashed]{data/ml_edges.csv}
?
我是否在代码中写错了什么或者遗漏了什么?
平均能量损失
\documentclass{article}
\usepackage{tikz-network}
\thispagestyle{empty}
\begin{document}
\begin{tikzpicture}[multilayer=3d]
\Edges[vertices=data/ml_vertices.csv, layer={1,2},style=dashed]{data/ml_edges.csv}
\end{tikzpicture}
\end{document}
ml_vertices.csv
id, x, y ,size,color,opacity,label,layer
A, 0, 0, .4 , green, .9 , a , 1
B, 1, .7, .6 , , .5 , b , 1
C, 2, 1, .8 ,orange, .3 , c , 1
D, 2, 0, .5 , red, .7 , d , 2
E,.2,1.5, .5 , gray, , e , 1
F,.1, .5, .7 , blue, .3 , f , 2
G, 2, 1, .4 , cyan, .7 , g , 2
H, 1, 1, .4 ,yellow, .7 , h , 2
ml_edges.csv
u,v,label,lw,color,opacity,bend,Direct
A,B, ab ,.5,red , 1 , 30,false
B,C, bc ,.7,blue , 1 , -60,false
A,E, ae , 1,green , 1 , 45,true
C,E, ce , 2,orange, 1 , 0,false
A,A, aa ,.3,black , .5 , 75,false
C,G, cg , 1,blue , .5 , 0,false
E,H, eh , 1,gray , .5 , 0,false
F,A, fa ,.7,red , .7 , 0,true
D,F, df ,.7,cyan , 1 , 30,true
F,H, fh ,.7,purple, 1 , 60,false
D,G, dg ,.7,blue , .7 , 60,false
答案1
我认为它在手册中有效但在你的情况下无效的原因是,在 Ti钾Z 坐标是全局的。也就是说,当手册编译时,首先编译第 32 页上的示例,然后它们创建顶点。也就是说,以下内容有效:
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{data/ml_vertices.csv}
id,x,y,size,color,opacity,label,layer
A,0,0,.4,green,.9,a,1
B,1,.7,.6,purple,.5,b,1
C,2,1,.8,orange,.3,c,1
D,2,0,.5,red,.7,d,2
E,.2,1.5,.5,gray,,e,1
F,.1,.5,.7,blue,.3,f,2
G,2,1,.4,cyan,.7,g,2
H,1,1,.4,yellow,.7,h,2
\end{filecontents*}
\begin{filecontents*}{data/ml_edges.csv}
u,v,label,lw,color,opacity,bend,Direct
A,B,ab,.5,red,1,30,false
B,C,bc,.7,blue,1,-60,false
A,E,ae,1,green,1,45,true
C,E,ce,2,orange,1,0,false
A,A,aa,.3,black,.5,75,false
C,G,cg,1,blue,.5,0,false
E,H,eh,1,gray,.5,0,false
F,A,fa,.7,red,.7,0,true
D,F,df,.7,cyan,1,30,true
F,H,fh,.7,purple,1,60,false
D,G,dg,.7,blue,.7,60,false
\end{filecontents*}
\usepackage{tikz-network}
\thispagestyle{empty}
\begin{document}
\begin{tikzpicture}[multilayer=3d]
\Vertices[layer=1]{data/ml_vertices.csv}
\Vertices[layer=2]{data/ml_vertices.csv}
\Edges[style=dashed]{data/ml_edges.csv}
\end{tikzpicture}
\begin{tikzpicture}[multilayer=3d]
\Edges[vertices=data/ml_vertices.csv, layer={1,2},style=dashed]{data/ml_edges.csv}
\end{tikzpicture}
\end{document}
为什么?只是因为坐标在第一个中正确生成tikzpicture
。如果我将其注释掉,我会重现您收到的错误,因为坐标没有定义。我想你应该将这些问题告知作者,有些人可能想称之为错误。