if not modules then modules = { } end modules ['mlib-int'] = { version = 1.001, comment = "companion to mlib-ctx.mkiv", author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", copyright = "PRAGMA ADE / ConTeXt Development Team", license = "see context related readme files", } local factor = number.dimenfactors.bp local mpprint = mp.print local mpboolean = mp.boolean local mpquoted = mp.quoted local getdimen = tex.getdimen local getcount = tex.getcount local get = tex.get local mpcolor = attributes.colors.mpcolor local emwidths = fonts.hashes.emwidths local exheights = fonts.hashes.exheights function mp.PaperHeight () mpprint(getdimen("paperheight") *factor) end function mp.PaperWidth () mpprint(getdimen("paperwidth") *factor) end function mp.PrintPaperHeight () mpprint(getdimen("printpaperheight") *factor) end function mp.PrintPaperWidth () mpprint(getdimen("printpaperwidth") *factor) end function mp.TopSpace () mpprint(getdimen("topspace") *factor) end function mp.BottomSpace () mpprint(getdimen("bottomspace") *factor) end function mp.BackSpace () mpprint(getdimen("backspace") *factor) end function mp.CutSpace () mpprint(getdimen("cutspace") *factor) end function mp.MakeupHeight () mpprint(getdimen("makeupheight") *factor) end function mp.MakeupWidth () mpprint(getdimen("makeupwidth") *factor) end function mp.TopHeight () mpprint(getdimen("topheight") *factor) end function mp.TopDistance () mpprint(getdimen("topdistance") *factor) end function mp.HeaderHeight () mpprint(getdimen("headerheight") *factor) end function mp.HeaderDistance () mpprint(getdimen("headerdistance") *factor) end function mp.TextHeight () mpprint(getdimen("textheight") *factor) end function mp.FooterDistance () mpprint(getdimen("footerdistance") *factor) end function mp.FooterHeight () mpprint(getdimen("footerheight") *factor) end function mp.BottomDistance () mpprint(getdimen("bottomdistance") *factor) end function mp.BottomHeight () mpprint(getdimen("bottomheight") *factor) end function mp.LeftEdgeWidth () mpprint(getdimen("leftedgewidth") *factor) end function mp.LeftEdgeDistance () mpprint(getdimen("leftedgedistance") *factor) end function mp.LeftMarginWidth () mpprint(getdimen("leftmarginwidth") *factor) end function mp.LeftMarginDistance () mpprint(getdimen("leftmargindistance") *factor) end function mp.TextWidth () mpprint(getdimen("textwidth") *factor) end function mp.RightMarginDistance () mpprint(getdimen("rightmargindistance") *factor) end function mp.RightMarginWidth () mpprint(getdimen("rightmarginwidth") *factor) end function mp.RightEdgeDistance () mpprint(getdimen("rightedgedistance") *factor) end function mp.RightEdgeWidth () mpprint(getdimen("rightedgewidth") *factor) end function mp.InnerMarginDistance () mpprint(getdimen("innermargindistance") *factor) end function mp.InnerMarginWidth () mpprint(getdimen("innermarginwidth") *factor) end function mp.OuterMarginDistance () mpprint(getdimen("outermargindistance") *factor) end function mp.OuterMarginWidth () mpprint(getdimen("outermarginwidth") *factor) end function mp.InnerEdgeDistance () mpprint(getdimen("inneredgedistance") *factor) end function mp.InnerEdgeWidth () mpprint(getdimen("inneredgewidth") *factor) end function mp.OuterEdgeDistance () mpprint(getdimen("outeredgedistance") *factor) end function mp.OuterEdgeWidth () mpprint(getdimen("outeredgewidth") *factor) end function mp.PageOffset () mpprint(getdimen("pagebackgroundoffset")*factor) end function mp.PageDepth () mpprint(getdimen("pagebackgrounddepth") *factor) end function mp.LayoutColumns () mpprint(getcount("layoutcolumns")) end function mp.LayoutColumnDistance() mpprint(getdimen("layoutcolumndistance")*factor) end function mp.LayoutColumnWidth () mpprint(getdimen("layoutcolumnwidth") *factor) end function mp.SpineWidth () mpprint(getdimen("spinewidth") *factor) end function mp.PaperBleed () mpprint(getdimen("paperbleed") *factor) end function mp.PageNumber () mpprint(getcount("pageno")) end function mp.RealPageNumber () mpprint(getcount("realpageno")) end function mp.NOfPages () mpprint(getcount("lastpageno")) end function mp.CurrentColumn () mpprint(getcount("mofcolumns")) end function mp.NOfColumns () mpprint(getcount("nofcolumns")) end function mp.BaseLineSkip () mpprint(getdimen("baselineskip") *factor) end function mp.LineHeight () mpprint(getdimen("lineheight") *factor) end function mp.BodyFontSize () mpprint(getdimen("bodyfontsize") *factor) end function mp.TopSkip () mpprint(getdimen("topskip") *factor) end function mp.StrutHeight () mpprint(getdimen("strutht") *factor) end function mp.StrutDepth () mpprint(getdimen("strutdp") *factor) end function mp.PageNumber () mpprint(getcount("pageno")) end function mp.RealPageNumber () mpprint(getcount("realpageno")) end function mp.NOfPages () mpprint(getcount("lastpageno")) end function mp.CurrentWidth () mpprint(get("hsize") *factor) end function mp.CurrentHeight () mpprint(get("vsize") *factor) end function mp.EmWidth () mpprint(emwidths [false]*factor) end function mp.ExHeight () mpprint(exheights[false]*factor) end mp.HSize = mp.CurrentWidth mp.VSize = mp.CurrentHeight mp.LastPageNumber = mp.NOfPages function mp.PageFraction () local lastpage = getcount("lastpageno") if lastpage > 1 then mpprint((getcount("realpageno")-1)/(lastpage-1)) else mpprint(1) end end -- locals local on_right = structures.pages.on_right local is_odd = structures.pages.is_odd local in_body = structures.pages.in_body mp.OnRightPage = function() mpprint(on_right()) end -- needs checking mp.OnOddPage = function() mpprint(is_odd ()) end -- needs checking mp.InPageBody = function() mpprint(in_body ()) end -- needs checking -- mp.CurrentLayout : \currentlayout function mp.OverlayWidth () mpprint(getdimen("d_overlay_width") *factor) end function mp.OverlayHeight () mpprint(getdimen("d_overlay_height") *factor) end function mp.OverlayDepth () mpprint(getdimen("d_overlay_depth") *factor) end function mp.OverlayLineWidth () mpprint(getdimen("d_overlay_linewidth")*factor) end function mp.OverlayOffset () mpprint(getdimen("d_overlay_offset") *factor) end function mp.defaultcolormodel() local colormethod = getcount("MPcolormethod") -- if colormethod == 0 then -- return 1 -- elseif colormethod == 1 then -- return 1 -- elseif colormethod == 2 then -- return 3 -- else -- return 3 -- end return (colormethod == 0 or colormethod == 1) and 1 or 3 end -- not much difference (10000 calls in a graphic neither as expansion seems to win -- over defining the macro etc) so let's not waste counters then -- function mp.OverlayColor() -- local c = mpcolor( -- getcount("c_overlay_colormodel"), -- getcount("c_overlay_color"), -- getcount("c_overlay_transparency") -- ) -- mpquoted(c) -- end -- -- function mp.OverlayLineColor() -- local c = mpcolor( -- getcount("c_overlay_colormodel"), -- getcount("c_overlay_linecolor"), -- getcount("c_overlay_linetransparency") -- ) -- mpquoted(c) -- end