Index: trunk/doc/developer/lihata_format/pcb-rnd-font-v1.svg =================================================================== --- trunk/doc/developer/lihata_format/pcb-rnd-font-v1.svg (revision 38348) +++ trunk/doc/developer/lihata_format/pcb-rnd-font-v1.svg (nonexistent) @@ -1,415 +0,0 @@ - - - - - - -li:pcb-rnd-font-v1 - - - -/lht_tree_doc/roots/pcb-rnd-font-v1 - - -li:pcb-rnd-font-v1 - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID - - -ha:FONT-ID - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1->/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/cell_height - - -cell_height -coord - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID->/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/cell_height - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/cell_width - - -cell_width -coord - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID->/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/cell_width - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/id - - -id -integer - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID->/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/id - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/name - - -name -string - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID->/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/name - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols - - -ha:symbols - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID->/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER - - -ha:CHARACTER - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols->/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/height - - -height -coord - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER->/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/height - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/width - - -width -coord - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER->/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/width - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/delta - - -delta -coord - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER->/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/delta - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects - - -li:objects - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER->/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/line.ID - - -ha:line.ID - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects->/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/line.ID - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/simplearc.ID - - -ha:simplearc.ID - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects->/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/simplearc.ID - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/simplepoly.ID - - -li:simplepoly.ID - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects->/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/simplepoly.ID - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/line.ID/children/x1 - - -x1 -coord - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/line.ID->/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/line.ID/children/x1 - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/line.ID/children/y1 - - -y1 -coord - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/line.ID->/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/line.ID/children/y1 - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/line.ID/children/x2 - - -x2 -coord - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/line.ID->/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/line.ID/children/x2 - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/line.ID/children/y2 - - -y2 -coord - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/line.ID->/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/line.ID/children/y2 - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/line.ID/children/thickness - - -thickness -coord - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/line.ID->/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/line.ID/children/thickness - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/simplearc.ID/children/x - - -x -coord - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/simplearc.ID->/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/simplearc.ID/children/x - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/simplearc.ID/children/y - - -y -coord - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/simplearc.ID->/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/simplearc.ID/children/y - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/simplearc.ID/children/r - - -r -coord - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/simplearc.ID->/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/simplearc.ID/children/r - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/simplearc.ID/children/thickness - - -thickness -coord - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/simplearc.ID->/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/simplearc.ID/children/thickness - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/simplearc.ID/children/astart - - -astart -angle - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/simplearc.ID->/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/simplearc.ID/children/astart - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/simplearc.ID/children/adelta - - -adelta -angle - - - - - -/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/simplearc.ID->/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID/children/symbols/children/CHARACTER/children/objects/children/simplearc.ID/children/adelta - - - - - Index: trunk/doc/developer/lihata_format/pcb-rnd-board-v.svg =================================================================== --- trunk/doc/developer/lihata_format/pcb-rnd-board-v.svg (revision 38348) +++ trunk/doc/developer/lihata_format/pcb-rnd-board-v.svg (revision 38349) @@ -51,7 +51,7 @@ /lht_tree_doc/roots/pcb-rnd-board-v*/children/font - + ha:font Index: trunk/doc/developer/lihata_format/root_board.lht =================================================================== --- trunk/doc/developer/lihata_format/root_board.lht (revision 38348) +++ trunk/doc/developer/lihata_format/root_board.lht (revision 38349) @@ -92,9 +92,9 @@ } ha:font { type=ha - desc { font kit: all fonts used on the board (if no font specified, default font will be used) } + desc { font kit: all fonts used on the board (if no font specified, default font will be used); old boards use pcb-rnd-font-v1, boards >= v9 use pcb-rnd-font-v2 } li:children { - sy:FONT-ID {/lht_tree_doc/roots/pcb-rnd-font-v1/children/FONT-ID} + sy:FONT-ID {/lht_tree_doc/roots/pcb-rnd-font-v*/children/FONT-ID} } } ha:styles { Index: trunk/doc/developer/lihata_format/root_font.lht =================================================================== --- trunk/doc/developer/lihata_format/root_font.lht (revision 38348) +++ trunk/doc/developer/lihata_format/root_font.lht (revision 38349) @@ -1,6 +1,6 @@ ha:lht_tree_doc { ha:roots { - ha:pcb-rnd-font-v1 { + ha:pcb-rnd-font-v* { type=li desc={font description} li:children { @@ -11,6 +11,11 @@ li:children { ha:cell_height { valtype=coord; desc={height of the tallest glyph}} ha:cell_width { valtype=coord; desc={width of the widest glyph}} + ha:height { valtype=coord; ver={>=2}; desc={total height, font-wise (distance between lowest point of the lowest glyph and highest point of the tallest glyph }} + ha:cent_height { valtype=coord; ver={>=2}; desc={same as height but computed for centerline of stroke}} + ha:tab_width { valtype=coord; ver={>=2}; desc={optional: tab column width}} + ha:line_height { valtype=coord; ver={>=2}; desc={optional: vertical advance from one line to the next in multiline rendering}} + ha:baseline { valtype=coord; ver={>=2}; desc={normally the origin of a text object is the top-left of the glyph coord system; when this is enabled and the font has a baseline, the glyphs are moved up so the origin is at the custom baseline of the font (bbox is modified too); measured from the top (from the glyph coord system y=0)}} ha:id { valtype=integer; desc={unique font ID within the fontkit; fonts are referenced by ID}} ha:name { valtype=string; desc={user specified, user readable font name}} ha:symbols { @@ -62,6 +67,22 @@ } } } + ha:entities { + ver={>=2}; + type=ha + desc={table for translating named &entity; characters to character indices} + li:children { + ha:ENTITYNAME { valtype=integer; desc={translate &ENTITYNAME; to the charatcter addressed by the integer value (should be between 1 and 254)}} + } + } + ha:kerning { + ver={>=2}; + type=ha + desc={kerning table: tune horizontal distance of character pairs} + li:children { + ha:CHAR1-CHAR2 { valtype=coord; desc={if CHAR1 is followed by CHAR2 while rendering a string, move CHAR2 horizontally by the value; negative means CHAR2 is moved toward CHAR1}} + } + } } } } Index: trunk/doc/developer/lihata_format/tree.html =================================================================== --- trunk/doc/developer/lihata_format/tree.html (revision 38348) +++ trunk/doc/developer/lihata_format/tree.html (revision 38349) @@ -57,8 +57,8 @@      substrate flag   material: substrate or insulator     name string >=6 purpose of layer groups (useful with mechanical/documentation groups     li:layers     ordered list of logical layer IDs hosted by this layer group -  ha:font     font kit: all fonts used on the board (if no font specified, default font will be used) -   ha:FONT-ID     the full description of a font; the node name is the integer font id or "geda_pcb" for font 0 (for historical reasons); the name is used only to make each node unique, the ID is also a field below -> +  ha:font     font kit: all fonts used on the board (if no font specified, default font will be used); old boards use pcb-rnd-font-v1, boards >= v9 use pcb-rnd-font-v2 +   ha:FONT-ID     the full description of a font; the node name is the integer font id or "geda_pcb" for font 0 (for historical reasons); the name is used only to make each node unique, the ID is also a field below ->  ha:styles     routing styles hash: collection of all available routing syles  ha:netlists     all available netlists   li:input     the input netlist (as seen in the last netlist import, a.k.a. forward annotation) @@ -135,36 +135,45 @@    desc string   human readable description of the violation, with hints on how to resolve it    query string   query script to execute for finding violations -

li:pcb-rnd-font-v1

+

li:pcb-rnd-font-v*

type:name value ver description -
li:pcb-rnd-font-v1     font description -
 ha:FONT-ID     the full description of a font; the node name is the integer font id or "geda_pcb" for font 0 (for historical reasons); the name is used only to make each node unique, the ID is also a field below -
  cell_height coord   height of the tallest glyph -
  cell_width coord   width of the widest glyph -
  id integer   unique font ID within the fontkit; fonts are referenced by ID -
  name string   user specified, user readable font name -
  ha:symbols     a collections of glyphs availbale in the font -
   ha:CHARACTER     Description of a glyph (symbol). Node name is a signel ASCII character or is of format &xx where xx is a hex digit of the ASCII code of the character. Characters that must use the hex version are: codes below 33 or over 126, &, #, {, }, /, :, ;, =, \, : -
    height coord   height of the glyph -
    width coord   width of the glyph -
    delta coord   extra space always inserted after the current symbol, before the next character -
    li:objects     objects that make up the symbol; IDs are per symbol local IDs counted from 0 -
     ha:line.ID     round cap line, simplified -
      x1 coord   line first endpoint, horizontal offset -
      y1 coord   line first endpoint, vertical offset -
      x2 coord   line second endpoint, horizontal offset -
      y2 coord   line second endpoint, vertical offset -
      thickness coord   width of the line -
     ha:simplearc.ID     round cap arc, simplified -
      x coord   center, X coord -
      y coord   center, Y coord -
      r coord   radius (of the centerline of the arc) -
      thickness coord   width of the pen the arc is drawn with -
      astart angle   start angle -
      adelta angle   delta angle -
     li:simplepoly.ID     round cap arc, simplified; contains a flat list of coords; each coord pair is an x;y corner of the outline of the polygon (odd indices are x coords, even indices are y coords) +
li:pcb-rnd-font-v*     font description +
 ha:FONT-ID     the full description of a font; the node name is the integer font id or "geda_pcb" for font 0 (for historical reasons); the name is used only to make each node unique, the ID is also a field below +
  cell_height coord   height of the tallest glyph +
  cell_width coord   width of the widest glyph +
  height coord >=2 total height, font-wise (distance between lowest point of the lowest glyph and highest point of the tallest glyph +
  cent_height coord >=2 same as height but computed for centerline of stroke +
  tab_width coord >=2 optional: tab column width +
  line_height coord >=2 optional: vertical advance from one line to the next in multiline rendering +
  baseline coord >=2 normally the origin of a text object is the top-left of the glyph coord system; when this is enabled and the font has a baseline, the glyphs are moved up so the origin is at the custom baseline of the font (bbox is modified too); measured from the top (from the glyph coord system y=0) +
  id integer   unique font ID within the fontkit; fonts are referenced by ID +
  name string   user specified, user readable font name +
  ha:symbols     a collections of glyphs availbale in the font +
   ha:CHARACTER     Description of a glyph (symbol). Node name is a signel ASCII character or is of format &xx where xx is a hex digit of the ASCII code of the character. Characters that must use the hex version are: codes below 33 or over 126, &, #, {, }, /, :, ;, =, \, : +
    height coord   height of the glyph +
    width coord   width of the glyph +
    delta coord   extra space always inserted after the current symbol, before the next character +
    li:objects     objects that make up the symbol; IDs are per symbol local IDs counted from 0 +
     ha:line.ID     round cap line, simplified +
      x1 coord   line first endpoint, horizontal offset +
      y1 coord   line first endpoint, vertical offset +
      x2 coord   line second endpoint, horizontal offset +
      y2 coord   line second endpoint, vertical offset +
      thickness coord   width of the line +
     ha:simplearc.ID     round cap arc, simplified +
      x coord   center, X coord +
      y coord   center, Y coord +
      r coord   radius (of the centerline of the arc) +
      thickness coord   width of the pen the arc is drawn with +
      astart angle   start angle +
      adelta angle   delta angle +
     li:simplepoly.ID     round cap arc, simplified; contains a flat list of coords; each coord pair is an x;y corner of the outline of the polygon (odd indices are x coords, even indices are y coords) +
  ha:entities   >=2 table for translating named &entity; characters to character indices +
   ENTITYNAME integer   translate &ENTITYNAME; to the charatcter addressed by the integer value (should be between 1 and 254) +
  ha:kerning   >=2 kerning table: tune horizontal distance of character pairs +
   CHAR1-CHAR2 coord   if CHAR1 is followed by CHAR2 while rendering a string, move CHAR2 horizontally by the value; negative means CHAR2 is moved toward CHAR1

ha:pcb-rnd-log-v*

Index: trunk/doc/developer/lihata_format/tree.txt =================================================================== --- trunk/doc/developer/lihata_format/tree.txt (revision 38348) +++ trunk/doc/developer/lihata_format/tree.txt (revision 38349) @@ -51,7 +51,7 @@ substrate flag material: substrate or insulator name string >=6 purpose of layer groups (useful with mechanical/documentation groups li:layers ordered list of logical layer IDs hosted by this layer group - ha:font font kit: all fonts used on the board (if no font specified, default font will be used) + ha:font font kit: all fonts used on the board (if no font specified, default font will be used); old boards use pcb-rnd-font-v1, boards >= v9 use pcb-rnd-font-v2 ha:FONT-ID the full description of a font; the node name is the integer font id or "geda_pcb" for font 0 (for historical reasons); the name is used only to make each node unique, the ID is also a field below -> ha:styles routing styles hash: collection of all available routing syles ha:netlists all available netlists @@ -126,13 +126,19 @@ desc string human readable description of the violation, with hints on how to resolve it query string query script to execute for finding violations -li:pcb-rnd-font-v1 +li:pcb-rnd-font-v* type:name value ver description -li:pcb-rnd-font-v1 font description +li:pcb-rnd-font-v* font description ha:FONT-ID the full description of a font; the node name is the integer font id or "geda_pcb" for font 0 (for historical reasons); the name is used only to make each node unique, the ID is also a field below cell_height coord height of the tallest glyph cell_width coord width of the widest glyph + height coord >=2 total height, font-wise (distance between lowest point of the lowest glyph and highest point of the tallest glyph + cent_height coord >=2 same as height but computed for centerline of stroke + tab_width coord >=2 optional: tab column width + line_height coord >=2 optional: vertical advance from one line to the next in multiline rendering + baseline coord >=2 normally the origin of a text object is the top-left of the glyph coord system; when this is enabled and the font has a baseline, the glyphs are moved up so the origin is at the custom baseline of the font (bbox is + modified too); measured from the top (from the glyph coord system y=0) id integer unique font ID within the fontkit; fonts are referenced by ID name string user specified, user readable font name ha:symbols a collections of glyphs availbale in the font @@ -156,6 +162,10 @@ astart angle start angle adelta angle delta angle li:simplepoly.ID round cap arc, simplified; contains a flat list of coords; each coord pair is an x;y corner of the outline of the polygon (odd indices are x coords, even indices are y coords) + ha:entities >=2 table for translating named &entity; characters to character indices + ENTITYNAME integer translate &ENTITYNAME; to the charatcter addressed by the integer value (should be between 1 and 254) + ha:kerning >=2 kerning table: tune horizontal distance of character pairs + CHAR1-CHAR2 coord if CHAR1 is followed by CHAR2 while rendering a string, move CHAR2 horizontally by the value; negative means CHAR2 is moved toward CHAR1 ha:pcb-rnd-log-v*