Difference between revisions of "Image Placement"
Jump to navigation
Jump to search
(some Lua code) |
m (forgot "local") |
||
Line 71: | Line 71: | ||
function ImgSize(resolution) | function ImgSize(resolution) | ||
− | filename = figures.current().status.fullname -- current image | + | local filename = figures.current().status.fullname -- current image |
local pic = img.scan{filename = filename} | local pic = img.scan{filename = filename} | ||
local picH = pic.ysize * TEXptpi * TEXpt / resolution -- picture height in sp | local picH = pic.ysize * TEXptpi * TEXpt / resolution -- picture height in sp |
Revision as of 20:37, 8 February 2018
< Using Graphics >
If you’re using ConTeXt for complex layout tasks, you need to calculate with image sizes. Often it makes sense to use Lua functions.
Beware, TeX calculates internally in "scaled points" (sp), 1 sp = 1/65536 pt.
Measures in pure ConTeXt
You can get at a picture’s dimensions with one line of TeX code:
\setupexternalfigures[location=default] % necessary to find pictures in tree \getfiguredimensions[hacker.jpg]
This defines a bunch of variables:
Calculations in Lua
TEXpt = 65536 -- sp per pt TEXptpi = 72.27 -- pt per inch function sp2mm(n) -- convert sp into mm return math.floor(n * 35.28 / TEXpt)/100 end function glue2num(glue) -- convert TeX glue (e.g. skips) into dimensions(? or numbers) return glue.width + (glue.stretch * glue.stretch_order) - (glue.shrink * glue.shrink_order) end function ImgSize(resolution) local filename = figures.current().status.fullname -- current image local pic = img.scan{filename = filename} local picH = pic.ysize * TEXptpi * TEXpt / resolution -- picture height in sp local picW = pic.xsize * TEXptpi * TEXpt / resolution -- picture width in sp context("height=" .. picH .. ",width=" .. picW) end
((WORK IN PROGRESS))