根据 PGF/TikZ 3.0.0 版文档(第节19 指定图表,第 258 页),强大的graphs
库:
[...] 提供了一个强大的路径命令,用于指定图中的节点如何通过边和弧连接:图形路径命令,当您加载库时该命令可用
graphs
。
下面几行是使用路径的一些示例;在这些示例中,可以发现:
\tikz
\graph [nodes={draw, circle}, clockwise, radius=.5cm, empty nodes, n=5] {
subgraph I_n [name=inner] --[complete bipartite]
subgraph I_n [name=outer]
};
和
\tikz
\graph [nodes={draw, circle}, clockwise, radius=.75cm, empty nodes, n=8] {
subgraph C_n [name=inner] <->[shorten <=1pt, shorten >=1pt]
subgraph C_n [name=outer]
};
它应该产生以下图像(直接从文档中获取):
但是,当我在“真实”文档中尝试完全相同的代码时:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{graphs}
\begin{document}
\tikz
\graph [nodes={draw, circle}, clockwise, radius=.5cm, empty nodes, n=5] {
subgraph I_n [name=inner] --[complete bipartite]
subgraph I_n [name=outer]
};
\tikz
\graph [nodes={draw, circle}, clockwise, radius=.75cm, empty nodes, n=8] {
subgraph C_n [name=inner] <->[shorten <=1pt, shorten >=1pt]
subgraph C_n [name=outer]
};
\end{document}
这就是我得到的全部内容(图像放大 400%):
更令人失望的是第 276 页上的以下示例:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{graphs}
\begin{document}
\tikz \graph [simple] {
subgraph K_n [n=8, clockwise];
% Get rid of the following edges:
1 -!- 2;
3 -!- 4;
6 -!- 8;
% And make one edge red:
1 --[red] 3;
};
\end{document}
文档显示了这样的结果:
但我只收到一条错误消息:
! Missing $ inserted.
<inserted text>
$
l.15 }
;
?
我是不是漏掉了什么?是否需要其他库才能获得预期的图表?
答案1
根据pgf
文档的 LaTeX 源代码以及这个答案,我认为文档应该列出两个都graphs
和库graphs.standard
都包含在内以生成这些图形。
\usetikzlibrary{graphs,graphs.standard}
如果我使用而不是,所有示例都可以正常工作\usetikzlibrary{graphs}
。这是一个示例:
代码
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{graphs,graphs.standard} % both are required, in this order
\begin{document}
\tikz \graph [simple] {
subgraph K_n [n=8, clockwise];
% Get rid of the following edges:
1 -!- 2;
3 -!- 4;
6 -!- 8;
% And make one edge red:
1 --[red] 3;
};
\end{document}
输出