我有一个可以制作小图片的乳胶宏。在那张照片中,我需要绘制区域。该区域的边界是二次贝塞尔曲线,该区域将被填充。我不知道该怎么做,所以目前我正在通过在该区域内绘制大量贝塞尔曲线来“填充”该区域......
这会减慢排版速度,并且当多次使用宏时(因此 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 次(可能更多,具体取决于您的乳胶内存设置)。
非常感谢您的帮助