6. Layouts: paper size, scale, map frame
A layout is a template for a map sheet. An event usually has one to five, for example A4 at 1:4000 for the older classes and A3 at 1:3000 for the youngest. Each layout becomes one PDF.
[[layouts]]
id = "a3-3000"
paper = "A3"
orientation = "landscape"
print_scale = 3000
north_lines = "auto"
hide_parts = []
hide_shared = []
map_frame = { margin_mm = 10.0, border_mm = 0.25 }
| Key | Default | Meaning |
|---|---|---|
id | name of the layout and of its PDF (a3-3000.pdf), required | |
paper | "A4" | "A4" or "A3" |
page_mm | paper | a page of any size instead, [width, height] in portrait, each side 10 to 5080 mm: page_mm = [500.0, 700.0]. For a map larger than A3 at map scale. The orientation applies to it. Larger than A3, the check says so, because an office printer will not take it |
orientation | "auto" | "portrait", "landscape" or "auto": the orientation in which less of the map is cut off |
print_scale | scale of the map | denominator of the print scale, 3000 for 1:3000 |
north_lines | "auto" | "auto" adds north lines when the map has none; "never" never does |
hide_parts | empty | map parts the sheet leaves out, by their exact name in OOM |
hide_shared | empty | ids of shared elements this layout does not show |
elements | empty | this layout's own sheet elements, chapter 7 |
map_frame.margin_mm | 8 | width of the passe-partout in mm, the same on every side; less than half the shorter paper side |
map_frame.border_mm | 0.25 | width of the frame line in mm, at most 20; 0 draws none |
map_frame.centre_map_mm | middle of the map | map point [x, y] in the centre of the map frame, as OOM shows it |
map_frame.crop | false | true: the frame cuts the map on purpose; the overflow is a note only |
The layout id becomes a file name. It must therefore not contain any of / \ : * ? " < > |, must not start or end with a dot, and must not be a Windows device name (con, nul, com1 …). The program refuses two ids that differ only in upper and lower case, because their PDFs would be one file on macOS and Windows.
Map frame and passe-partout
The map frame is the sheet without the passe-partout. The program cuts the map to it and never shrinks it, because that would falsify the scale. If the map reaches beyond it, check says by how many millimetres (chapter 9). The frame line is centred on the edge of the map frame: one half covers the cut edge of the map, the other lies on the passe-partout.

An A4 sheet with a 30 mm passe-partout and crop = true: the map ends at the frame line, and the credit line sits below it in the passe-partout. Map: Remo Madella, MOO Challenge Berlin 2025.
Without centre_map_mm, the middle of what is printed lands in the middle of the frame. With centre_map_mm = [x, y] that map point lands there. The numbers are millimetres on the map at map scale, exactly as OOM shows them in its status bar when the coordinate display is set to map coordinates: point at the spot in OOM and copy both numbers. OOM shows y pointing up (its source prints x and -y in MapWidget::updateCursorposLabel); the program converts that to the y-down coordinates of the .omap file itself. Each number may be at most 2 000 000 mm from the map origin. For a map larger than the sheet, this is how you put the frame on the competition area.
If the sheet is meant to show only part of the map, set crop = true as well (map_frame = { centre_map_mm = [120.0, -80.0], crop = true }). The overflow is then a note for information, and check still ends with 0.
How wide the passe-partout must be depends mostly on the footer (chapter 7): it goes below the map frame only when all of it fits there. Two lines fit into 8 mm, five need about 14 mm.
Print scale
Without print_scale the layout prints at the scale of the map. Another scale changes the symbol sizes as the standard says (chapter 9). A sprint map prints at 1:3000, 1:4000 and 1:5000, a forest map at 1:5000 to 1:20000. Sheet elements keep their size in millimetres: a 14 pt title is as large on the A3 sheet at 1:3000 as on the A4 sheet at 1:4000.
North lines
North lines (symbol 601) belong to the map. If the map has them, the program prints them as drawn, with their gaps at small features. If it has none and north_lines is "auto", the program adds vertical lines across the whole map frame at the ground spacing of the map kind: 120 m for sprint maps (30 mm at 1:4000, 40 mm at 1:3000), 300 m for forest maps, 37.5 m for schoolyard maps. They use the map's own 601 symbol and so lie under walls and fences like drawn ones. They still run without gaps; the mapper sets those in OOM. A layout that hides the map part holding the map's own north lines with hide_parts gets no added ones.
On a sheet with a mask (chapter 11) the north lines of the map, drawn or added with the 601 symbol, are hidden with the rest of the map. If the symbol set has no 601 symbol, the program draws plain black lines on the sheet layer instead, and those stay visible across the masked white paper.
Hiding map parts
hide_parts = ["peripheral information"] leaves out the map part of that name. Upper and lower case count. A name the map does not have gives a note. freemapper's information block (title, scale, scale bar) never prints on a layout's sheet; the sheet elements take its place.
The base area of sprint maps
Newer sprint maps from freemapper lie on a base area: one area in the colour "walkable area", a light brown like that of paved areas, in the map part base. It belongs to the map and always prints, cut at the map frame. It cannot be switched off, and the program refuses hide_parts = ["base"] with an error. As it reaches a little beyond the map, it does not count for the centre of the map frame, the overflow, the added north lines or the placement of control numbers. Print such maps in colour: in greyscale the light brown is hard to tell from paper white and from paved areas. Schoolyard maps have no base area.