
Согласно документации для версии 3.0.0 PGF/TikZ (Раздел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}
Выход