Hi Mikael, With your new definitions and lua code I could typeset and test a few examples: it is very nice, thanks for sharing!
Best regards: OK On 1 mai 2014, at 17:07, Mikael P. Sundqvist <mic...@gmail.com> wrote: > Interesting, > > I use ConTeXt ver: 2014.04.28 23:24 MKIV beta fmt: 2014.4.29 int: > english/english > > and it works. I now defined this with argument: > > \startluacode > userdata = userdata or {} > function userdata.lundklippfyllbild(str, bredd, hojd) > 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({str},{width=bredd}) > 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({str},{height=hojd}) > context.sprint("bar") > end > end > \stopluacode > > \unexpanded\def\lundklippfyllbild#1#2#3{% > \startexternalfigurecollection[#1]% > \useexternalfigure[#1][#1]% > \stopexternalfigurecollection% > \clip[ > width=#2, > height=#3, > hoffset=0mm, > voffset=0mm, > ]{% > \framed[width=#2,height=#3,align={middle,lohi},offset=overlay,frame=off]{% > \dimen0=\externalfigurecollectionminwidth{#1}% > \dimen2=\externalfigurecollectionmaxheight{#1}% > \dimen4=#2% > \dimen6=#3% > {\ctxlua{userdata.lundklippfyllbild([==[#1]==],[==[#2]==],[==[#3]==])}}}}} > > > > and then run > > > \lundklippfyllbild{k.jpg}{\textwidth}{\textheight} > > > it works well. Of course you should replace k.jpg with some other image > name... > > /Mikael > > PS And please, if someone has opinions about the code, don't hesitate > to tell me. This is my first time using lua... > > > On Thu, May 1, 2014 at 4:59 PM, Otared Kavian <ota...@gmail.com> wrote: >> 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 <mic...@gmail.com> wrote: >> >>> 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 <mic...@gmail.com> >>> 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 >>> ___________________________________________________________________________________ >> >> ___________________________________________________________________________________ >> 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 >> ___________________________________________________________________________________ > ___________________________________________________________________________________ > 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 > ___________________________________________________________________________________ ___________________________________________________________________________________ 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 ___________________________________________________________________________________