Hi Mikael,
Out of curiosity I tried to typeset your example (after adding the usual \starttext, \stoptext), but using
ConTeXt ver: 2014.04.28 23:24 MKIV beta fmt: 2014.4.29 int: english/english
I obtained a TeX error:
tex error > error on line 13 in file /Users/kavian/Context/essais/mkii/figures/resize-and-center.tex: ! Undefined control sequence
\startexternalfigurecollection ...igurecollection
{#1}\settrue \c_grph_inclu...
l.13 \clip[width=8cm,height=7cm]
{%
3 \startexternalfigurecollection[k.jpg]
4 \useexternalfigure[k.jpg][k.jpg]
5 \stopexternalfigurecollection
I did not understand what is the « Undefined control sequence », since I think \clip is a known control sequence.
Best regards: OK
On 1 mai 2014, at 15:38, Mikael P. Sundqvist
OK, sorry for the noise. I think I have the solution:
\startexternalfigurecollection[k.jpg] \useexternalfigure[k.jpg][k.jpg] \stopexternalfigurecollection
\externalfigurecollectionminwidth{k.jpg} \externalfigurecollectionmaxheight{k.jpg}
\clip[width=8cm,height=7cm]{% \framed[width=8cm,height=7cm,align={middle,lohi},offset=overlay]{% \dimen0=\externalfigurecollectionminwidth{k.jpg} \dimen2=\externalfigurecollectionmaxheight{k.jpg} \dimen4=8cm \dimen6=7cm \startluacode if tex.dimen[0] / tex.dimen[2] < tex.dimen[4] / tex.dimen[6] then local skalning = -0.5*(tex.dimen[4]/tex.dimen[0]*tex.dimen[2]-tex.dimen[6]) context("\\vskip%ssp", skalning) context.externalfigure({"k.jpg"},{width="8cm"}) context.sprint("foo") else local skalning = -0.5*(tex.dimen[6]/tex.dimen[2]*tex.dimen[0]-tex.dimen[4]) context("\\hskip%ssp", skalning) context.externalfigure({"k.jpg"},{height="7cm"}) context.sprint("bar") end \stopluacode }}
If there are any bad side effects of this or simplifications, please do not hesitate to tell me :)
/Mikael
On Thu, May 1, 2014 at 1:50 PM, Mikael P. Sundqvist
wrote: Hi!
Assume that I want to fill in the text area with images, and I want to clip and scale them according to these rules:
1) If the image is "too wide" (in sense of proportions), then scale it so that the height fits the text area height, center it, and clip it to the text area. (See the attached image, on top, where the blue area is supposed to show the text area and the red rectangle the image.)
2) If the image is "too high" (in sense of proportions), then scale it so that the width fits the text area width, center it, and clip it to the text area. (See the attached image, on bottom.)
The background why I want to do this is that I'm making a small template for presentations, and I'd like the users to insert images as background without really having to think about if their proportions fit or not.
Best regards, Mikael
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________