Estou com um problema ao usar o TikZ-UML, que é uma biblioteca legal, mas tem algum bug (ou não funciona na minha configuração). O LaTeX entra em um loop infinito se eu usar todos os comportamentos "do", "exit" e "entry" em um diagrama de máquina de estado UML.
Este exemplo é simplificado a partir dodocumentação.
\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}
Se eu excluir o "fazer", a "saída" ou a "entrada", tudo bem. Com todos eles, recebi um erro:
! TeX capacity exceeded, sorry [input stack size=5000].
Você tem alguma dica?
Responder1
Este é realmente um bug. Não sei qual versão eu tenho mas se você abrir tikz-uml.sty
e for para a linha 2857, você encontra uma recursão já que o conteúdo não está expandido (acho que era para coletar o texto vindo dessas opções);
\def\tikzumlStateText{\tikzumlStateTextOld \\ do/\umlstatedo}%
Mude para (já que não está no CTAN, você provavelmente o tem no seu texmf local),
\expandafter\def\expandafter\tikzumlStateText\expandafter{\tikzumlStateTextOld\\ do/\umlstatedo}%
Então funciona, independente da ordem
\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}