Generating Gauge-True Knitting Chart Paper and Mesh Grids

Graph Paper generates printable chart paper in two modes: knitter's gauge-true grids, where each cell is proportioned to the actual stitch:row gauge so a charted motif knits up undistorted, and needlepoint mesh-count grids with true-square cells sized to the canvas. Output prints at real physical scale with bold counting rules every N cells. It is a pure generator — single file, offline, no stored state [1].

The problem

Knitting stitches are wider than they are tall. Chart a motif on ordinary square graph paper and the knitted result is vertically squashed — a circle charted on squares knits as an oval. The fix is paper whose cells have the same aspect ratio as the stitches themselves, which depends on the knitter's own gauge, which is why the right paper can't be bought in a pad. Needlepoint has the adjacent problem: planning a canvas project is easiest on a grid that matches the mesh count at true size, so the plan lays over the canvas 1:1.

How it works

In knitter mode, enter stitch and row gauge (per 4 in) and the bold-rule interval. In mesh mode, enter the canvas mesh count. Pick Letter or A4, portrait or landscape. The tool reports the resulting cell dimensions, aspect ratio, and how many stitches × rows fit on the sheet, renders a live preview, and prints via the Print sheet button. Because the grid is regenerated on every input, there is nothing to save — adjust and reprint freely.

Graph Paper showing a gauge-true grid preview with bold rules every ten cells and the cell-dimension readout
A gauge-true grid preview with bold counting rules and the cell-size readout. Placeholder pending a real screenshot.

The math

knitter mode:  cell_width  = 4 / stitch_gauge   (inches)
               cell_height = 4 / row_gauge
               aspect      = row_gauge / stitch_gauge   (> 1: stitches wider than tall)

mesh mode:     cell = 1 / mesh_count               (true square)

grid: cols = floor(printable_width / cell_width), rows likewise
printable area = paper − 0.5 in margin all round

At a typical 18 sts × 24 rows / 4 in, cells come out 0.222 in wide × 0.167 in tall — an aspect of 1.33, visibly and correctly non-square.

True-size printing

The SVG is built in real inches (inches as SVG user units, with the element's width/height set in in). On screen the preview scales responsively; when Print sheet is clicked the tool swaps in a fixed-size, non-responsive copy of the SVG, prints, and swaps back on afterprint. The print stylesheet strips every UI element and sets @page margins to 0.5 in, so the only thing on paper is the grid and a one-line header naming the gauge.

The printer dialog must be set to 100% / "Actual size" — not "Fit to page". Fit-scaling silently destroys the physical calibration that is the entire point. Verify once against a ruler: at 14-count mesh, ten cells should measure exactly 10/14 in ≈ 0.714 in.

Editing the config

There is nothing persisted and almost nothing to configure. The two constants at the top of the <script> block are PAPER (Letter and A4 dimensions in inches) and MARGIN (0.5 in). Stroke weights for thin and bold rules are the thin/bold locals in buildSVG().

Limitations

References

  1. Gauge-True Graph Paper