TeX-Kapazität mit TikZ-UML überschritten

TeX-Kapazität mit TikZ-UML überschritten

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.styund 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}

Bildbeschreibung hier eingeben

verwandte Informationen