Превышена емкость TeX, размер стека ввода
Я пытаюсь прочитать некоторые координаты из файла, а затем нарисовать их с помощью TikZ. Файл в этом формате:
timestamp 1.002132 3.2131231
timestamp 1.332132 2.9120
Вот код, который у меня есть:
\begin{tikzpicture}
\draw[step=0.5,black,thin,xshift=0cm,yshift=0cm, opacity=0.3] (0,0) grid (8,4);
\draw [->](-.5,.5) -- (8.5,.5);
\draw [->] (4, -.5) -- (4, 4.5);
% read file and draw coordinates
\newread\file
\openin\file=recording2
\loop
\read\file to\fileline
\unless\ifeof\file
% Fetch coordinates in \coordX and \coordY
\StrSplit{\fileline}{14}{\ts}{\coords}
\def\coordX{\StrBefore{\coords}{ }}
\def\coordY{\StrBehind{\coords}{ }}
\draw (1,1) node {\coordX}; %this works fine
\draw (1,1) node {\coordY}; %this works fine
\draw (\coordX+4,\coordY+0.5) circle(1pt); %this cause the error
\repeat
\closein\file
\end{tikzpicture}
Я напечатал оба значения координаты X и координаты, и они верны. У вас есть идеи, что вызывает ошибку? Нужно ли "приводить" значения для того, чтобы TikZ интерпретировал значения как числовые значения?
Я попытался отредактировать настройки памяти для LaTeX безуспешно, поэтому я предполагаю, что ошибка в коде (ууууу).
1 ответ
Решение
Ну, я думаю, я понял, почему это не сработало.
xstring
пакет:
The macros of this package are not purely expandable
Я считаю, что именно поэтому мой coordX
а также coordY
не может быть оценено как аргумент.
Я решил это переключением
\def\coordX{\StrBefore{\coords}{ }}
\def\coordY{\StrBehind{\coords}{ }}
в
\StrBefore{\coords}{ }[\coordX]
\StrBehind{\coords}{ }[\coordY]
Это очевидно способ идти с xstring
,