29.05.2014 Views

The history of luaTEX 2006–2009 / v 0.50 - Pragma ADE

The history of luaTEX 2006–2009 / v 0.50 - Pragma ADE

The history of luaTEX 2006–2009 / v 0.50 - Pragma ADE

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

1.771.678 1.658.461 palatinosanscom-bold.tma<br />

1.695.251 1.584.491 palatinosanscom-regular.tma<br />

13.736.534 13.409.446 zapnoextraltpro.tma<br />

Since we compile the tables to bytecode, the effects are more spectacular there.<br />

normal compact lename<br />

13.679.038 11.774.106 arabtype.tmc<br />

886.248 754.944 lmroman10-italic.tmc<br />

729.828 466.864 lmroman10-regular.tmc<br />

688.482 441.962 lmsans10-regular.tmc<br />

128.685 95.853 lmtypewriter10-regular.tmc<br />

715.929 582.985 palatinosanscom-bold.tmc<br />

669.942 540.126 palatinosanscom-regular.tmc<br />

1.560.588 1.317.000 zapnoextraltpro.tmc<br />

Especially when a table is partially indexed and hashed, readability is a bit less than normal<br />

but in practice one will seldom consult such tables in its verbose form.<br />

After going beta, users reported problems with scaling <strong>of</strong> the the Latin Modern and TEX-Gyre<br />

fonts. <strong>The</strong> troubles originate in the fact that the OpenType versions <strong>of</strong> these fonts lack a<br />

design size specication and it happens that the Latin Modern fonts do have design sizes<br />

other than 10 points. Here the power <strong>of</strong> a exible TEX engine shows . . . we can repair<br />

this when we load the font. In MkIV we can now dene patches:<br />

do<br />

local function patch(data,filename)<br />

if data.design_size == 0 then<br />

local ds = (file.basename(filename)):match("(%d+)")<br />

if ds then<br />

logs.report("load otf",string.format("patching design<br />

size (%s)",ds))<br />

data.design_size = tonumber(ds) * 10<br />

end<br />

end<br />

end<br />

end<br />

fonts.otf.enhance.patches["^lmroman"] = patch<br />

fonts.otf.enhance.patches["^lmsans"] = patch<br />

fonts.otf.enhance.patches["^lmmono"] = patch<br />

Eventually such code will move to typescripts instead <strong>of</strong> in the kernel code.<br />

Optimization 129

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!