Example photo page layout
Jump to navigation
Jump to search
The following creates a 10x10in page with four pictures on it in a nice grid. You can change the size of the page and the image sizes will adjust as well. The images can be scaled, cropped, and moved behind the display frame. There is probably easier ways to do this, but I needed a way that would work with our web service. This captured all the parts we needed in a generic way.
% output=pdftex \definepapersize[imb][width=10in,height=10in] \setuppapersize[imb][imb] \setuppagenumbering[alternative=doublesided, location=] \setuplayout [backspace=1.25in, cutspace=1.0in, width=fit, topspace=.25in, bottomspace=.25in, header=1.0in, footer=1.0in, height=fit] \newdimen\spacebetween \spacebetween = 0.5in \newdimen\imagewidth \imagewidth = 6in \newdimen\imageheight \imageheight = 4.5in %my cow.jpg image was 6in x 4.5in @300dpi \useexternalfigure[imagea][cow.jpg][width=\imagewidth,height=\imageheight,frame=off] \useexternalfigure[imageb][cow.jpg][width=\imagewidth,height=\imageheight,frame=off] \useexternalfigure[imagec][cow.jpg][width=\imagewidth,height=\imageheight,frame=off] \useexternalfigure[imaged][cow.jpg][width=\imagewidth,height=\imageheight,frame=off] \starttext % slot a \newdimen\slotawidth \slotawidth = \dimexpr((\paperwidth-\innerspacewidth-\outerspacewidth-\spacebetween)/2) \newdimen\slotaheight \slotaheight = \dimexpr((\paperheight-\headerheight-\footerheight-\spacebetween)/2) \newdimen\slotatop \slotatop = \dimexpr(\headerheight) \newdimen\slotaleft \slotaleft = \dimexpr(\innerspacewidth) \newdimen\clipatop \clipatop = \dimexpr(.416666666666\imageheight)-(.5\slotaheight) \newdimen\clipaleft \clipaleft = \dimexpr(.302083333333\imagewidth)-(.5\slotawidth) % slot b \newdimen\slotbwidth \slotbwidth = \dimexpr((\paperwidth-\innerspacewidth-\outerspacewidth-\spacebetween)/2) \newdimen\slotbheight \slotbheight = \dimexpr((\paperheight-\headerheight-\footerheight-\spacebetween)/2) \newdimen\slotbtop \slotbtop = \dimexpr(\headerheight) \newdimen\slotbleft \slotbleft = \dimexpr(\innerspacewidth+\slotawidth+\spacebetween) \newdimen\clipbtop \clipbtop = \dimexpr(1.1\imageheight)-(.5\slotaheight) \newdimen\clipbleft \clipbleft = \dimexpr(1.05\imagewidth)-(.5\slotawidth) % slot c \newdimen\slotcwidth \slotcwidth = \dimexpr((\paperwidth-\innerspacewidth-\outerspacewidth-\spacebetween)/2) \newdimen\slotcheight \slotcheight = \dimexpr((\paperheight-\headerheight-\footerheight-\spacebetween)/2) \newdimen\slotctop \slotctop = \dimexpr(\headerheight+\slotaheight+\spacebetween) \newdimen\slotcleft \slotcleft = \dimexpr(\innerspacewidth) \newdimen\clipctop \clipctop = \dimexpr(.58\imageheight)-(.5\slotaheight) \newdimen\clipcleft \clipcleft = \dimexpr(.52\imagewidth)-(.5\slotawidth) % slot d \newdimen\slotdwidth \slotdwidth = \dimexpr((\paperwidth-\innerspacewidth-\outerspacewidth-\spacebetween)/2) \newdimen\slotdheight \slotdheight = \dimexpr((\paperheight-\headerheight-\footerheight-\spacebetween)/2) \newdimen\slotdtop \slotdtop = \dimexpr(\headerheight+\slotbheight+\spacebetween) \newdimen\slotdleft \slotdleft = \dimexpr(\innerspacewidth+\slotcwidth+\spacebetween) \newdimen\clipdtop \clipdtop = \dimexpr(.583333333333\imageheight)-(.5\slotdheight) \newdimen\clipdleft \clipdleft = \dimexpr(.697916666666\imagewidth)-(.5\slotdwidth) \strut \definelayer [page] [width=\paperwidth, height=\paperheight] \setupbackgrounds [page] [background=page] \setlayer [page] [voffset=\slotatop, hoffset=\slotaleft, preset=lefttop, width=\paperwidth, height=\paperheight] {\clip[voffset=\clipatop, hoffset=\clipaleft, width=\slotawidth, height=\slotaheight] {\scale[sx=1,sy=1]{\rotate[rotation=90]{\externalfigure[imagea]}}}} \setlayer [page] [voffset=\slotbtop, hoffset=\slotbleft, preset=lefttop, width=\paperwidth, height=\paperheight] {\clip[voffset=\clipbtop, hoffset=\clipbleft, width=\slotbwidth, height=\slotbheight] {\scale[sx=2,sy=2]{\rotate[rotation=0]{\externalfigure[imageb]}}}} \setlayer [page] [voffset=\slotctop, hoffset=\slotcleft, preset=lefttop, width=\paperwidth, height=\paperheight] {\clip[voffset=\clipctop, hoffset=\clipcleft, width=\slotcwidth, height=\slotcheight] {\scale[sx=1,sy=1]{\rotate[rotation=0]{\externalfigure[imagec]}}}} \setlayer [page] [voffset=\slotdtop, hoffset=\slotdleft, preset=lefttop, width=\paperwidth, height=\paperheight] {\clip[voffset=\clipdtop, hoffset=\clipdleft, width=\slotdwidth, height=\slotdheight] {\scale[sx=1,sy=1]{\rotate[rotation=35]{\externalfigure[imaged]}}}} \page \externalfigure[imaged] \stoptext