sile 0.15.11

Simon’s Improved Layout Engine
Documentation
local plain = require("classes.plain")
local testsidenote = pl.class(plain)
testsidenote._name = "testsidenote"

local gutterWidth = "3%pw"

function testsidenote:_init (options)
   plain._init(self, options)
   self:declareFrame(
      "contentA",
      { left = "left(content)", right = "left(gutter)", top = "top(content)", bottom = "bottom(content)" }
   )
   self:declareFrame("sidenotes", {
      left = "right(gutter)",
      width = "width(contentA) * 2 / 3",
      right = "right(content)",
      top = "top(content)",
      bottom = "bottom(content)",
      balanced = true,
   })
   self:declareFrame("gutter", { left = "right(contentA)", right = "left(sidenotes)", width = gutterWidth })
   self.pageTemplate.firstContentFrame = self.pageTemplate.frames["contentA"]
   self:loadPackage("insertions")
   self:loadPackage("footnotes")
   self:initInsertionClass("footnote", {
      maxHeight = SILE.types.length("75%ph"):absolute(),
      topBox = SILE.types.node.zerovglue(),
      interInsertionSkip = SILE.types.length("1ex"),
      insertInto = { frame = "sidenotes", ratio = 0 },
      stealFrom = {},
   })
end

return testsidenote