(updated for Ringdove font)

How to use text

Use the text tool from the toolbar to place text. Font style, size and color are defined by the stroke pen of the text object. Use the property editor (right click context menu) to change stroke. Alternatively the "edit stroke" hotkey, {e s} can be used hovering over the text (may need a finer grid, e.g. 1000, or hover over the bottom left corner of the text).

The default size of text is 3000 units (should be about 3mm when printed to scale). This is the "small font" size that fits between terminals and can be used as terminal label.

The property editor or the usual {e t} key can be used to change text string.

Font considerations

sch-rnd uses Ringdove font (like pcb-rnd).

Different systems may have different font installed, the same schematics sheet will look slightly differently. To make the render somewhat stable, cschem defines two methods (bbox-based when has_bbox is set and pen font height based), both using cschem coords for sizes instead of font-units such as pt.

Font reference is made portable by not hardwiring a font name but giving short hints on font family and style. Both family and style are case insensitive regular expressions. sch-rnd will search the font directory to find the best matching family/style combination. Family and style are encoded in font file name.

Family should be "sans" or "serif" in generic case, but can be more specific, like "vera" or "times". Style is normally empty or one of regular, bold, oblique, bold-oblique. When empty, regular is assumed.

If no match is found for the pen stroke font (which typically happens if family is too narrow), the configured default font (conf nodes: editor/default_font/family and editor/default_font/style) is searched. If that fails too, the first font from the font map cache is picked.

Yes: arbitrary rotation, arbitrary size

Text objects can be rotated in in 90 degree steps using the rotate tool. The object has a rot field that specifies the rotation (around bottom left corner). This field can be changed to an arbitrary value using the property editor.

No: complex xor-draw

Before you place a new text object or when you move a text object, only the bounding box is drawn by the tool (as the "xor-draw" annotation). This differs from pcb-rnd, where you see the font rendered in thin-line.

This is not a bug but a design decision for now.

No: multiline, unicode, mirrored

Long term sch-rnd will support multiline text and the associated per-line text alignment (the halign field). For the beta, only single-line text is supported.

Text strings are ASCII. Long term cschem allows using "&unicode;" inserts but this won't be supported in the beta.

Text can not be mirrored, only rotated.

Is it vector font?

Yes. It's built of lines, circular arcs and polygons. Font drawn with lines and arcs are usually stroke fonts. Font drawn with polygons are usually outline fonts. We have no beziers.


The code for text object bbox fitting is rather complex. If you think the text is misplaced or truncated you can turn on rendering the expected bounding box using the conf node rc/debug/draw_text_bbox.

If font selection doesn't seem to do what is expected, run ./configure with --debug, compile and issue the following action with font and style substituted:

FontFind(family, style)

This prints the matching score for each font from the font map cache to stderr. The font with the highest score is picked (even if the score is negative).