Giuseppe Bilotta wrote:
Friday, July 20, 2007 Giuseppe Bilotta wrote:
Hello all,
I have to place a number of images into some given-size frames in a layer. The images should be scaled proportionally to fit into the frame. The code I'm working with is:
\defineframed[framedimg][ frame=on,framecolor=elux, background=color, backgroundcolor=white, width=\wdfig, height=\htfigone, offset=overlay, ]
\setlayer[figs][voffset=\nextfigvoff]{% \framedimg{% \externalfigure[#1][ factor=fit, % maxwidth=\wdfig, % maxheight=\htfigone, % frame=on, ]% }% }%
where \wdfig, \htfigone are the frame size and \nextfigvoff is the vertical offset which must be placed. I've tried factor=fit, factor=max, but in both cases I get images which cross the boundaries of the frame, mostly in the horizontal direction. If I add the maxwidth/maxheight specification, images don't get scaled at all.
I would expect factor=fit to scale the image in such a way that the biggest direction fits into the enclosing box, while factor=max would scale the image in such a way that the smallest direction fits into the enclosing box. Instead, in both cases the vertical direction is being fitted, with no apparent consideration for the horizontal direction.
What am I doing wrong and what should I do to fix it?
Ok, I've tried studying the source and I really think that the way factor scaling is computed is wrong. However, the fix is nontrivial, and a somewhat thorough checking should be implemented, with earlier check for the factor value (fit, max, broad), since the logic selecting which dimension to scale depends on the kind of scaling.
the fit assumes operating on a page not in a box; an alternative is: \framed[width=5cm,height4cm] {\externalfigure[mill.png][maxwidth=4cm,maxheight=5cm,width=10cm]} i.e. setting the maximum values
Anyway, I've found a temporary solutin to my problem by using a very large value of scale=, coupled with appropriate maxwidth and maxheight values.
-- ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------