Я сделал несколько диаграмм, используя TikZ с матрицей в качестве макета.
При использовании Pgf версии 2.10 все шло хорошо, но теперь я использую Pgf версии 3.0.0 (TexLive2013) и есть проблема, которая, я почти уверен, связана с использованием узлов с пользовательским стилем в качестве элементов таблицы. Проблема в том, что я не могу использовать обычную ссылку ((matrixName)-(rowNum)-(colNum))
, потому что она недоступна.
Я сократил свой документ до формата MWE:
\documentclass[12pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric, matrix}
\tikzset{newIdea/.style={rectangle, fill=blue!90},
newPlan/.style={rectangle, rounded corners=2mm, text=white, fill=blue!90}
}
\begin{document}
\begin{tikzpicture}
\matrix (magic) [matrix of nodes, column sep=10mm]
{
\node[newIdea] {8}; & \node[newPlan] {1}; & \node[newIdea] {6}; \\
};
\draw[thick,red,->] (magic-1-1) |- (magic-1-2);
\end{tikzpicture}
\end{document}
При использовании Pgf 2.10 все работает; при использовании Pgf 3.0.0 появляется следующее сообщение об ошибке:
Ошибка пакета pgf: неизвестна форма с именем magic-1-1.
решение1
Начиная с версии 3.0.0, использование a внутри ячеек matrix of nodes
, похоже, \node
не допускается (сначала мне эта функция не понравилась (надеюсь, это функция, а не ошибка), но после размышлений она стала вполне логичной); однако вы по-прежнему можете использовать синтаксис |[<options>]|
для изменения узлов:
\documentclass[12pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric, matrix}
\tikzset{newIdea/.style={rectangle, fill=blue!90},
newPlan/.style={rectangle, rounded corners=2mm, text=white, fill=blue!90}
}
\begin{document}
\begin{tikzpicture}
\matrix (magic) [matrix of nodes, column sep=10mm]
{
|[newIdea]|8 & |[newPlan]|1 & |[newIdea]|6 \\
};
\draw[thick,red,->] (magic-1-1) |- (magic-1-2);
\end{tikzpicture}
\end{document}