我有一个制作小图片的 LaTeX 宏。在这个图片中,我需要绘制一个区域。该区域的边界是二次贝塞尔曲线,并且需要填充该区域。由于不知道如何实现,所以目前我通过在其中绘制大量的贝塞尔曲线来“填充”该区域... 这会减慢排版速度,当多次使用宏时(因此 TeX 实际上正在绘制大量的二次贝塞尔曲线),会产生以下错误:
以下是一些变量的示例值:
! TeX capacity exceeded, sorry [main memory size=3000000].
我该如何防止这个错误?(通过在宏或其他操作后释放内存...)甚至更好的方法是如何填充由两个二次贝塞尔曲线确定的区域?
导致错误的代码:
\usepackage{forloop}
\usepackage{picture}
\usepackage{eepic}
...
\linethickness{\lineThickness\unitlength}%
\forloop[\lineThickness]{cy}{\cymin}{\value{cy} < \cymax}{%
\qbezier(\ax, \ay)(\cx, \value{cy})(\bx, \by)%
}%
以下是一些变量的示例值:
\setlength{\unitlength}{0.01pt}
\lineThickness=20
%cy is just a counter - inital value is not important
\cymin=450 \cymax=900
%from following only the difference between \ax and \bx is important
\ax=0 \ay=0 \bx=550 \by=0
注:为了重现错误,此代码需要执行约150次(根据您的LaTeX内存设置可能更多)。
非常感谢任何帮助。