
Ich verwende eins smartdiagram
von hier:http://www.texample.net/tikz/examples/smart-description/
Das Problem ist, dass die Rechtecke unordentlich aussehen, nachdem ich die Aufzählungspunkte eingefügt habe, die ich brauche. Beispiel:
\documentclass[border=10pt]{standalone}
%%%<
\usepackage{verbatim}
%%%>
\usepackage{smartdiagram}
\begin{document}
\smartdiagram[descriptive diagram]{
{Cat. 1,{ \begin{itemize}
\item Define shapes, colors, shading,
\item and line styles for nodes and arrows
\item new item
\item another item
\item one more
\item OK, I lied
\end{itemize}}},
{Position, {Place nodes using a matrix,
relative or absolute positioning}},
{Relation, Insert edges or arrows
between selected nodes},
{Label, Add labels on edges or arrows}}
\end{document}
Wie kann ich das Problem beheben, sodass sich die Rechtecke an die Größe der Aufzählungsliste anpassen und nicht übereinander liegen?
Antwort1
In der Dokumentation habe ich den Befehl gefunden \smartdiagramset{descriptive items y sep=SOMEVALUE}
, der anscheinend das tut, was Sie brauchen:
\documentclass[border=10pt]{standalone}
%%%<
\usepackage{verbatim}
%%%>
\usepackage{smartdiagram}
\begin{document}
\smartdiagramset{descriptive items y sep=90pt}
\smartdiagram[descriptive diagram]{
{Cat. 1,{\begin{itemize}
\item Define shapes, colors, shading,
\item and line styles for nodes and arrows
\item new item
\item another item
\item one more
\item OK, I lied
\end{itemize}}},
{Position, {Place nodes using a matrix,
relative or absolute positioning}},
{Relation, Insert edges or arrows
between selected nodes},
{Label, Add labels on edges or arrows}}
\end{document}
Ausgabe:
Wie Sie sehen, sind danach alle Abstände gleich und dieser Befehl hilft Ihnen nicht dabei, den „Abstand“ nach der ersten Verwendung neu zu definieren. (Zumindest habe ich das nicht gemacht.) Wenn Sie den Abstand nach der ersten Verwendung ändern möchten, lassen Sie es mich wissen, damit ich mir das genauer anschauen kann. Aber ich denke, er sollte konstant bleiben.
Antwort2
bearbeiten(zweite Version der Antwort, zuerst habe ich das Problem falsch verstanden:-( ): mit pure tikz
ist es einfach, das gewünschte Ergebnis zu erzielen, aber der Code ist nicht mehr so kurz:
\documentclass[tikz, border=10pt]{standalone}
\usetikzlibrary{backgrounds, chains, positioning, shadows}
\usepackage{enumitem}
\begin{document}
\begin{tikzpicture}[
node distance = 2mm and 0mm,
start chain = going below,
box/.style = {rectangle, rounded corners, draw=gray, very thick,
minimum height=16mm, text width=60mm, align=flush center,
top color=#1!90, bottom color=#1!10,
drop shadow, on chain},
cir/.style = {circle, draw=gray, very thick,
minimum size=16mm, inner sep=2pt, outer sep=0pt,
top color=#1, bottom color=#1!10,
drop shadow},
]
\node (n1) [box=red] {\begin{itemize}[nosep, leftmargin=*]
\item Define shapes, colors, shading,
\item and line styles for nodes and arrows
\item new item
\item another item
\item one more
\item OK, I lied
\end{itemize}};
\node (n2) [box=cyan] {Place nodes using a matrix,
relative or absolute positioning};
\node (n3) [box=blue] {Insert edges or arrows
between selected nodes};
\node (n4) [box=green] {Add labels on edges or arrows};
\begin{scope}[on background layer]
\node [cir=red, left=of n1] {Cat. 1};
\node [cir=cyan, left=of n2] {Position};
\node [cir=blue, left=of n3] {Relation};
\node [cir=green,left=of n4] {Label};
\end{scope}
\end{tikzpicture}
\end{document}