我想使用 csv 并根据列来绘制思维导图branch
。
LaTeX 向我抛出了以下错误信息:
!软件包 tikz 错误:放弃此路径。您忘记了分号吗?。
请参阅 tikz 包文档以了解解释。输入 H 可立即获得帮助。...
l.63 };
datatool
但我可以将其归结为中的语法的使用DTLforeach
。
我的 MWE:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{mindmap,trees}
\usepackage{xstring}
\begin{filecontents}[overwrite]{partnerships.csv}
branch,name
nhr,name1
nrw,name2
nrw,name3
nrw,name4
nrw,name5
tech,name6
tech,name7
tech,name8
tech,name9
coop,name10
coop,name11
coop,name12
coop,name13
network,name15
network,name16
\end{filecontents}
\usepackage{datatool}
\DTLloaddb{partnerships}{partnerships.csv}
\DTLsort{branch,name}{partnerships}
\NewDocumentCommand{\getBranch}{m}{%
\IfEqCase{#1}{
{nhr}{Nationales Hochleistungsrechnen}
{nrw}{Landesdienste NRW}
{tech}{Tech\-nologie\-partner}
{coop}{Kooperationen}
{network}{Netzwerke}
}}
\tikzset{concept/.append style={fill={none}}}
\begin{document}
\pagestyle{empty}
\begin{tikzpicture}[rotate=-90]
\path[mindmap,concept color=black,text=black, grow cyclic]
node[concept] {RPDM}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
child[concept color=green!50!black] {
node[concept] {\getBranch{tech}}
\DTLforeach[\DTLisinlist{\branch}{tech}]{partnerships}{%
\branch=branch,%
\name=name%
}{
child { node[concept] {\name} }
}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
child[concept color=blue!50!black] {
node[concept] {\getBranch{nrw}}
\DTLforeach[\DTLisinlist{\branch}{nrw}]{partnerships}{%
\branch=branch,%
\name=name%
}{
child { node[concept] {\name} }
}
};
\end{tikzpicture}
\end{document}
附加请求:有没有办法获取数据库的第二级,以便代码为所有分支创建节点,然后为单个项目创建节点?这样我就不需要手动为分支创建条目,例如“tech”。