{"id":5326,"date":"2010-11-23T21:48:44","date_gmt":"2010-11-23T19:48:44","guid":{"rendered":"http:\/\/ospublish.constantvzw.org\/?p=5326"},"modified":"2010-11-24T10:19:34","modified_gmt":"2010-11-24T08:19:34","slug":"scenario-for-vowels-consonants-and-a-text-engine","status":"publish","type":"post","link":"http:\/\/ospublish.constantvzw.org\/blog\/typo\/scenario-for-vowels-consonants-and-a-text-engine","title":{"rendered":"Scenario for vowels, consonants and a text-engine"},"content":{"rendered":"
Imagine1<\/a><\/sup> a paragraph<\/a> in Scribus. The first word consists of three vowels and a consonant. The Scribus text-engine<\/em> receives this cluster<\/em> of characters as a first input. Now the shaper<\/em> will start to work; it has to decide what features need to be applied to the cluster. Do characters need to be re-ordered? Do ligatures need to be applied? If the answer is ‘yes’, the shaper will ask the font-software if there is a ligature available that can be used. Each cluster is treated in this way and subsequently added to the list of glyphs<\/em>. This list of glyphs output by the shaper is than entered into the second part of the text-engine, the block-compositor<\/em>. The block-compositor is in contact with the line-lay-outer<\/em>. It knows that a certain line starts at a given point and it also knows about the width of the frame containing it. The block-compositor will ask the line-lay-outer to come up with a certain amount of propositions per line. Per proposition, a penalty is given, based on the quality of the break (does it require hyphenation?) and the amount of stretching needed to reach the width of the frame. Now the block-composer can produce an oriented graph2<\/a><\/sup> on the basis of which it can decide what is the least penalized route3<\/a><\/sup>). But a second parameter is also taken into account: what combination of line-propositions will result in the most uniform distribution of line-width per paragraph? After the block-compositor has found the optimal solution, the text engine outputs the paragraph to the canvas.<\/p>\n Imagine1 a paragraph in Scribus. The first word consists of three vowels and a consonant. The Scribus text-engine receives this cluster of characters as a first input. Now the shaper will start to work; it has to decide what features need to be applied to the cluster. Do characters need to be re-ordered? Do ligatures […]<\/p>\n","protected":false},"author":14,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[38,3],"tags":[2,232,202],"_links":{"self":[{"href":"http:\/\/ospublish.constantvzw.org\/blog\/wp-json\/wp\/v2\/posts\/5326"}],"collection":[{"href":"http:\/\/ospublish.constantvzw.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/ospublish.constantvzw.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/ospublish.constantvzw.org\/blog\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"http:\/\/ospublish.constantvzw.org\/blog\/wp-json\/wp\/v2\/comments?post=5326"}],"version-history":[{"count":23,"href":"http:\/\/ospublish.constantvzw.org\/blog\/wp-json\/wp\/v2\/posts\/5326\/revisions"}],"predecessor-version":[{"id":5352,"href":"http:\/\/ospublish.constantvzw.org\/blog\/wp-json\/wp\/v2\/posts\/5326\/revisions\/5352"}],"wp:attachment":[{"href":"http:\/\/ospublish.constantvzw.org\/blog\/wp-json\/wp\/v2\/media?parent=5326"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/ospublish.constantvzw.org\/blog\/wp-json\/wp\/v2\/categories?post=5326"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/ospublish.constantvzw.org\/blog\/wp-json\/wp\/v2\/tags?post=5326"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}