Ich habe ein Problem bei der Verwendung von TikZ-UML, einer netten Bibliothek, die aber einige Fehler aufweist (oder in meiner Konfiguration nicht funktioniert). LaTeX geht in eine Endlosschleife, wenn ich alle „do“-, „exit“- und „entry“-Verhaltensweisen in einem UML-Zustandsdiagramm verwende.
Dieses Beispiel ist vereinfacht aus demDokumentation.
\documentclass{article}
\usepackage{tikz-uml}
\begin{document}
\begin{tikzpicture}
\begin{umlstate}[name=state, do=b, exit=c, entry=d]{state}
\end{umlstate}
\end{tikzpicture}
\end{document}
Wenn ich entweder „do“, „exit“ oder „entry“ lösche, ist alles ok. Bei allen habe ich einen Fehler bekommen:
! TeX capacity exceeded, sorry [input stack size=5000].
Hast du einen Tipp?
Antwort1
Das ist tatsächlich ein Fehler. Ich weiß nicht, welche Version ich habe, aber wenn Sie die öffnen tikz-uml.sty
und zu Zeile 2857 gehen, finden Sie eine Rekursion, da der Inhalt nicht erweitert ist (ich glaube, es sollte den Text aus diesen Optionen sammeln);
\def\tikzumlStateText{\tikzumlStateTextOld \\ do/\umlstatedo}%
Ändern Sie es in (da es nicht auf CTAN ist, haben Sie es wahrscheinlich in Ihrem lokalen texmf),
\expandafter\def\expandafter\tikzumlStateText\expandafter{\tikzumlStateTextOld\\ do/\umlstatedo}%
Dann funktioniert es, unabhängig von der Reihenfolge
\documentclass{article}
\usepackage{tikz-uml}
\begin{document}
\begin{tikzpicture}
\begin{umlstate}[name=state,
entry=d,
exit=b,
do=c,
]{state}
\end{umlstate}
\end{tikzpicture}
\end{document}