Превышена пропускная способность TeX с TikZ-UML

Превышена пропускная способность TeX с TikZ-UML

У меня возникла проблема с использованием TikZ-UML, это хорошая библиотека, но в ней есть ошибка (или она не работает в моей конфигурации). LaTeX переходит в бесконечный цикл, если я использую все поведения «do», «exit» и «entry» в диаграмме состояний UML.

Этот пример упрощен сдокументация.

\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}

Если я удаляю "do", "exit" или "entry", то все в порядке. Со всеми ними я получил ошибку:

! TeX capacity exceeded, sorry [input stack size=5000].

Есть ли у вас какие-либо подсказки?

решение1

Это действительно ошибка. Я не знаю, какая у меня версия, но если вы откроете tikz-uml.styи перейдете к строке 2857, вы обнаружите рекурсию, поскольку содержимое не развернуто (я думаю, что предполагалось собрать текст, поступающий из этих опций);

\def\tikzumlStateText{\tikzumlStateTextOld \\ do/\umlstatedo}%

Измените его на (так как его нет в CTAN, он, вероятно, есть в вашем локальном texmf),

\expandafter\def\expandafter\tikzumlStateText\expandafter{\tikzumlStateTextOld\\ do/\umlstatedo}%

Тогда это работает, независимо от порядка.

\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}

введите описание изображения здесь

Связанный контент