The attached patch (against 2.18.2) changes the way lilypond uses fonts to draw glyphs.
It avoids to used glyphshow for all emmentaler glyphs and adds encoding vectors to the emmentaler fonts before they are used. It also changes the ghostscript parameters used to generate pdfs from postscript code. These changes help to reduce pdf file sizes if you include lilypond snippets in *TeX documents. The pdfs generated by a patched lilypond and *tex themselves are _much_ bigger, but if you run ghostscript and pdfsizeopt.py on those files they implode. As this patch changes only very low-level routines it should be invisible to the lilypond user interface. But links from other pdfs into the processed files are broken. Changing this would require a major extension of ghostscript. I think if the discussion in this list shows that this code is regarded to be usefull, a command line parameter should be added to lilypond to enable these changes only on user request. If you don't include lilypond pdfs in *TeX documents you don't need it and you don't want it. I don't know scheme well, so somebody should have a close look at the code. Probably it looks ugly and inefficient to an experienced scheme programmer. notation.pdf is a good test object: file size in bytes / comment ============================ 27.171.654 original 2.18.2 notation.pdf (3442 fonts) 20.074.736 original 2.18.2 notation.pdf + pdfsizeopt.py (completely broken pdf) 23.644.317 original 2.18.2 notation.pdf + ghostscript (1737 fonts) 19.979.555 original 2.18.2 notation.pdf + ghostscript + pdfsizeopt (1736 fonts) 127.676.999 patched 2.18.2 notation.pdf (3458 fonts) ---.---.--- patched 2.18.2 notation.pdf + pdfsizeopt.py (pdfsizeopt aborts with error) 5.953.377 patched 2.18.2 notation.pdf + ghostscript (69 fonts) 4.307.825 patched 2.18.2 notation.pdf + ghostscript + pdfsizeopt (69 fonts) + ghostscript means: ==================== gs -dNOPAUSE -dBATCH -q -r1200 -sDEVICE=pdfwrite -o outfile.pdf infile.pdf + pdfsizeopt means: =================== pdfsizeopt.py --use-multivalent=false infile.pdf Comments: ========= - pdfsizeopt.py is neither capable to process the notation.pdf from 2.18.2 nor the notation.pdf generated by the patched version of lilypond correctly. - ghostscript up to version 9.14 breaks internal and external links. - ghostscript 9.15 produces an invalid but readable pdf whenever it processes an external link (GoToR) - ghostscript git master preserves external and internal links - processing of links in ghostscript git master exposes a bug in evince, external links are broken in that program as a result. - link targets in files processed by ghostscript git master are lost. cu, Knut
diff --git a/ps/encodingdefs.ps b/ps/encodingdefs.ps new file mode 100644 index 0000000..eabfd35 --- /dev/null +++ b/ps/encodingdefs.ps @@ -0,0 +1,746 @@ +%!PS-Adobe-2.0: encodingdefs.ps + +% +% Custom encodings and definitions for emmentaler-[[:digit:]]* fonts +% + +/LilyNoteHeadEncoding [ /.notdef /noteheads.d0doFunk /noteheads.d0fa /noteheads.d0faFunk +/noteheads.d0faThin /noteheads.d0miFunk /noteheads.d0reFunk /noteheads.d0tiFunk +/noteheads.d1do /noteheads.d1doFunk /noteheads.d1doThin /noteheads.d1doWalker +/noteheads.d1fa /noteheads.d1faFunk /noteheads.d1faThin /noteheads.d1faWalker +/noteheads.d1miFunk /noteheads.d1re /noteheads.d1reFunk /noteheads.d1reThin +/noteheads.d1reWalker /noteheads.d1ti /noteheads.d1tiFunk /noteheads.d1tiThin +/noteheads.d1tiWalker /noteheads.d1triangle /noteheads.d2do /noteheads.d2doFunk +/noteheads.d2doThin /noteheads.d2doWalker /noteheads.d2fa /noteheads.d2faFunk +/noteheads.d2faThin /noteheads.d2faWalker /noteheads.d2kievan /noteheads.d2re +/noteheads.d2reFunk /noteheads.d2reThin /noteheads.d2reWalker /noteheads.d2ti +/noteheads.d2tiFunk /noteheads.d2tiThin /noteheads.d2tiWalker /noteheads.d2triangle +/noteheads.d3kievan /noteheads.dM2 /noteheads.dM2blackmensural /noteheads.dM2mensural +/noteheads.dM2neomensural /noteheads.dM2semimensural /noteheads.dM3blackmensural +/noteheads.dM3mensural /noteheads.dM3neomensural /noteheads.dM3semimensural +/noteheads.drM2mensural /noteheads.drM2neomensural /noteheads.drM2semimensural +/noteheads.drM3mensural /noteheads.drM3neomensural /noteheads.drM3semimensural +/noteheads.s0 /noteheads.s0blackmensural /noteheads.s0blackpetrucci /noteheads.s0cross +/noteheads.s0diamond /noteheads.s0do /noteheads.s0doThin /noteheads.s0doWalker +/noteheads.s0faWalker /noteheads.s0harmonic /noteheads.s0kievan /noteheads.s0la +/noteheads.s0laFunk /noteheads.s0laThin /noteheads.s0laWalker /noteheads.s0mensural +/noteheads.s0mi /noteheads.s0miMirror /noteheads.s0miThin /noteheads.s0miWalker +/noteheads.s0neomensural /noteheads.s0petrucci /noteheads.s0re /noteheads.s0reThin +/noteheads.s0reWalker /noteheads.s0slash /noteheads.s0sol /noteheads.s0solFunk +/noteheads.s0ti /noteheads.s0tiThin /noteheads.s0tiWalker /noteheads.s0triangle +/noteheads.s1 /noteheads.s1blackpetrucci /noteheads.s1cross /noteheads.s1diamond +/noteheads.s1kievan /noteheads.s1la /noteheads.s1laFunk /noteheads.s1laThin +/noteheads.s1laWalker /noteheads.s1mensural /noteheads.s1mi /noteheads.s1miMirror +/noteheads.s1miThin /noteheads.s1miWalker /noteheads.s1neomensural /noteheads.s1petrucci +/noteheads.s1slash /noteheads.s1sol /noteheads.s1solFunk /noteheads.s2 +/noteheads.s2blackpetrucci /noteheads.s2cross /noteheads.s2diamond /noteheads.s2harmonic +/noteheads.s2la /noteheads.s2laFunk /noteheads.s2laThin /noteheads.s2laWalker +/noteheads.s2mensural /noteheads.s2mi /noteheads.s2miFunk /noteheads.s2miMirror +/noteheads.s2miThin /noteheads.s2miWalker /noteheads.s2neomensural /noteheads.s2petrucci +/noteheads.s2slash /noteheads.s2sol /noteheads.s2solFunk /noteheads.s2xcircle +/noteheads.shufnagel.lpes /noteheads.shufnagel.punctum /noteheads.shufnagel.virga +/noteheads.sM1 /noteheads.sM1blackmensural /noteheads.sM1double /noteheads.sM1kievan +/noteheads.sM1mensural /noteheads.sM1neomensural /noteheads.sM1semimensural +/noteheads.sM2blackligmensural /noteheads.sM2kievan /noteheads.sM2ligmensural +/noteheads.sM2semiligmensural /noteheads.sM3blackligmensural /noteheads.sM3ligmensural +/noteheads.sM3semiligmensural /noteheads.smedicaea.inclinatum /noteheads.smedicaea.punctum +/noteheads.smedicaea.rvirga /noteheads.smedicaea.virga /noteheads.sr1kievan +/noteheads.srM1mensural /noteheads.srM1neomensural /noteheads.srM1semimensural +/noteheads.srM2ligmensural /noteheads.srM2semiligmensural /noteheads.srM3ligmensural +/noteheads.srM3semiligmensural /noteheads.ssolesmes.auct.asc /noteheads.ssolesmes.auct.desc +/noteheads.ssolesmes.incl.auctum /noteheads.ssolesmes.incl.parvum /noteheads.ssolesmes.oriscus +/noteheads.ssolesmes.stropha /noteheads.ssolesmes.stropha.aucta /noteheads.svaticana.cephalicus +/noteheads.svaticana.epiphonus /noteheads.svaticana.inclinatum +/noteheads.svaticana.inner.cephalicus /noteheads.svaticana.linea.punctum +/noteheads.svaticana.linea.punctum.cavum /noteheads.svaticana.lpes +/noteheads.svaticana.plica /noteheads.svaticana.punctum /noteheads.svaticana.punctum.cavum +/noteheads.svaticana.quilisma /noteheads.svaticana.reverse.plica +/noteheads.svaticana.reverse.vplica /noteheads.svaticana.upes /noteheads.svaticana.vepiphonus +/noteheads.svaticana.vlpes /noteheads.svaticana.vplica /noteheads.svaticana.vupes +/noteheads.u0doFunk /noteheads.u0fa /noteheads.u0faFunk /noteheads.u0faThin /noteheads.u0miFunk +/noteheads.u0reFunk /noteheads.u0tiFunk /noteheads.u1do /noteheads.u1doFunk /noteheads.u1doThin +/noteheads.u1doWalker /noteheads.u1fa /noteheads.u1faFunk /noteheads.u1faThin +/noteheads.u1faWalker /noteheads.u1miFunk /noteheads.u1re /noteheads.u1reFunk /noteheads.u1reThin +/noteheads.u1reWalker /noteheads.u1ti /noteheads.u1tiFunk /noteheads.u1tiThin +/noteheads.u1tiWalker /noteheads.u1triangle /noteheads.u2do /noteheads.u2doFunk +/noteheads.u2doThin /noteheads.u2doWalker /noteheads.u2fa /noteheads.u2faFunk +/noteheads.u2faThin /noteheads.u2faWalker /noteheads.u2kievan /noteheads.u2re +/noteheads.u2reFunk /noteheads.u2reThin /noteheads.u2reWalker /noteheads.u2ti +/noteheads.u2tiFunk /noteheads.u2tiThin /noteheads.u2tiWalker /noteheads.u2triangle +/noteheads.u3kievan /noteheads.uM2 /noteheads.uM2blackmensural /noteheads.uM2mensural +/noteheads.uM2neomensural /noteheads.uM2semimensural /noteheads.uM3blackmensural +/noteheads.uM3mensural /noteheads.uM3neomensural /noteheads.uM3semimensural +/noteheads.urM2mensural /noteheads.urM2neomensural /noteheads.urM2semimensural +/noteheads.urM3mensural /noteheads.urM3neomensural /noteheads.urM3semimensural +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +] def + +/LilyScriptEncoding [ /.notdef /scripts.arpeggio /scripts.arpeggio.arrow.1 /scripts.arpeggio.arrow.M1 +/scripts.augmentum /scripts.barline.kievan /scripts.caesura.curved /scripts.caesura.straight +/scripts.circulus /scripts.coda /scripts.daccentus /scripts.dfermata /scripts.dlongfermata +/scripts.dmarcato /scripts.downbow /scripts.downmordent /scripts.downprall /scripts.dpedalheel +/scripts.dpedaltoe /scripts.dportato /scripts.dsemicirculus /scripts.dshortfermata +/scripts.dsignumcongruentiae /scripts.dstaccatissimo /scripts.dverylongfermata /scripts.espr +/scripts.flageolet /scripts.halfopen /scripts.halfopenvertical /scripts.ictus /scripts.lcomma +/scripts.lineprall /scripts.lvarcomma /scripts.mordent /scripts.open /scripts.prall +/scripts.pralldown /scripts.prallmordent /scripts.prallprall /scripts.prallup /scripts.rcomma +/scripts.reverseturn /scripts.rvarcomma /scripts.segno /scripts.sforzato /scripts.snappizzicato +/scripts.staccato /scripts.stopped /scripts.tenuto /scripts.thumb /scripts.tickmark +/scripts.trilelement /scripts.trill /scripts.trill_element /scripts.turn /scripts.uaccentus +/scripts.ufermata /scripts.ulongfermata /scripts.umarcato /scripts.upbow /scripts.upedalheel +/scripts.upedaltoe /scripts.upmordent /scripts.uportato /scripts.upprall /scripts.usemicirculus +/scripts.ushortfermata /scripts.usignumcongruentiae /scripts.ustaccatissimo +/scripts.uverylongfermata /scripts.varcoda /scripts.varsegno /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +] def + +/LilyOtherEncoding [/.notdef /accidentals.doublesharp /accidentals.flat /accidentals.flat.arrowboth +/accidentals.flat.arrowdown /accidentals.flat.arrowup /accidentals.flatflat +/accidentals.flatflat.slash /accidentals.flat.slash /accidentals.flat.slashslash +/accidentals.hufnagelM1 /accidentals.kievan1 /accidentals.kievanM1 /accidentals.leftparen +/accidentals.medicaeaM1 /accidentals.mensural1 /accidentals.mensuralM1 /accidentals.mirroredflat +/accidentals.mirroredflat.backslash /accidentals.mirroredflat.flat /accidentals.natural +/accidentals.natural.arrowboth /accidentals.natural.arrowdown /accidentals.natural.arrowup +/accidentals.rightparen /accidentals.sharp /accidentals.sharp.arrowboth +/accidentals.sharp.arrowdown /accidentals.sharp.arrowup /accidentals.sharp.slashslashslash.stem +/accidentals.sharp.slashslashslash.stemstem /accidentals.sharp.slashslash.stem +/accidentals.sharp.slashslash.stemstemstem /accidentals.vaticana0 /accidentals.vaticanaM1 +/accordion.bayanbass /accordion.discant /accordion.dot /accordion.freebass /accordion.oldEE +/accordion.pull /accordion.push /accordion.stdbass /arrowheads.close.01 /arrowheads.close.0M1 +/arrowheads.close.11 /arrowheads.close.1M1 /arrowheads.open.01 /arrowheads.open.0M1 +/arrowheads.open.11 /arrowheads.open.1M1 /brackettips.down /brackettips.up /clefs.blackmensural.c +/clefs.blackmensural.c_change /clefs.C /clefs.C_change /clefs.F /clefs.F_change /clefs.G +/clefs.G_change /clefs.hufnagel.do /clefs.hufnagel.do_change /clefs.hufnagel.do.fa /clefs.hufnagel.do.fa_change +/clefs.hufnagel.fa /clefs.hufnagel.fa_change /clefs.kievan.do /clefs.kievan.do_change +/clefs.medicaea.do /clefs.medicaea.do_change /clefs.medicaea.fa /clefs.medicaea.fa_change +/clefs.mensural.c /clefs.mensural.c_change /clefs.mensural.f /clefs.mensural.f_change +/clefs.mensural.g /clefs.mensural.g_change /clefs.neomensural.c /clefs.neomensural.c_change +/clefs.percussion /clefs.percussion_change /clefs.petrucci.c1 /clefs.petrucci.c1_change +/clefs.petrucci.c2 /clefs.petrucci.c2_change /clefs.petrucci.c3 /clefs.petrucci.c3_change +/clefs.petrucci.c4 /clefs.petrucci.c4_change /clefs.petrucci.c5 /clefs.petrucci.c5_change +/clefs.petrucci.f /clefs.petrucci.f_change /clefs.petrucci.g /clefs.petrucci.g_change +/clefs.tab /clefs.tab_change /clefs.vaticana.do /clefs.vaticana.do_change /clefs.vaticana.fa +/clefs.vaticana.fa_change /comma /custodes.hufnagel.d0 /custodes.hufnagel.d1 /custodes.hufnagel.d2 +/custodes.hufnagel.u0 /custodes.hufnagel.u1 /custodes.hufnagel.u2 /custodes.medicaea.d0 +/custodes.medicaea.d1 /custodes.medicaea.d2 /custodes.medicaea.u0 /custodes.medicaea.u1 +/custodes.medicaea.u2 /custodes.mensural.d0 /custodes.mensural.d1 /custodes.mensural.d2 +/custodes.mensural.u0 /custodes.mensural.u1 /custodes.mensural.u2 /custodes.vaticana.d0 +/custodes.vaticana.d1 /custodes.vaticana.d2 /custodes.vaticana.u0 /custodes.vaticana.u1 +/custodes.vaticana.u2 /dots.dot /dots.dotkievan /dots.dotvaticana /eight /f /five /flags.d3 +/flags.d4 /flags.d5 /flags.d6 /flags.d7 /flags.dgrace /flags.mensurald03 /flags.mensurald04 +/flags.mensurald05 /flags.mensurald06 /flags.mensurald13 /flags.mensurald14 /flags.mensurald15 +/flags.mensurald16 /flags.mensurald23 /flags.mensurald24 /flags.mensurald25 /flags.mensurald26 +/flags.mensuralu03 /flags.mensuralu04 /flags.mensuralu05 /flags.mensuralu06 /flags.mensuralu13 +/flags.mensuralu14 /flags.mensuralu15 /flags.mensuralu16 /flags.mensuralu23 /flags.mensuralu24 +/flags.mensuralu25 /flags.mensuralu26 /flags.u3 /flags.u4 /flags.u5 /flags.u6 /flags.u7 +/flags.ugrace /four /hyphen /m /nine /one /p /pedal.. /pedal.* /pedal.d /pedal.e /pedal.M +/pedal.P /pedal.Ped /period /plus /r /rests.0 /rests.0mensural /rests.0neomensural /rests.0o +/rests.1 /rests.1mensural /rests.1neomensural /rests.1o /rests.2 /rests.2classical +/rests.2mensural /rests.2neomensural /rests.3 /rests.3mensural /rests.3neomensural /rests.4 +/rests.4mensural /rests.4neomensural /rests.5 /rests.6 /rests.7 /rests.M1 /rests.M1mensural +/rests.M1neomensural /rests.M1o /rests.M2 /rests.M2mensural /rests.M2neomensural /rests.M3 +/rests.M3mensural /rests.M3neomensural /s /seven /six /space /three/ties.lyric.default +/ties.lyric.short /timesig.C22 /timesig.C44 /timesig.mensural22 /timesig.mensural24 +/timesig.mensural32 /timesig.mensural34 /timesig.mensural44 /timesig.mensural48 +/timesig.mensural64 /timesig.mensural68 /timesig.mensural68alt /timesig.mensural94 +/timesig.mensural98 /timesig.neomensural22 /timesig.neomensural24 /timesig.neomensural32 +/timesig.neomensural34 /timesig.neomensural44 /timesig.neomensural48 /timesig.neomensural64 +/timesig.neomensural68 /timesig.neomensural68alt /timesig.neomensural94 /timesig.neomensural98 +/two /z /zero /.notdef /.notdef /.notdef /.notdef +] def + +/noteheads.d0doFunk {<01> show} def /noteheads.d0fa {<02> show} def +/noteheads.d0faFunk {<03> show} def /noteheads.d0faThin {<04> show} def +/noteheads.d0miFunk {<05> show} def /noteheads.d0reFunk {<06> show} def +/noteheads.d0tiFunk {<07> show} def /noteheads.d1do {<08> show} def +/noteheads.d1doFunk {<09> show} def /noteheads.d1doThin {<0a> show} def +/noteheads.d1doWalker {<0b> show} def /noteheads.d1fa {<0c> show} def +/noteheads.d1faFunk {<0d> show} def /noteheads.d1faThin {<0e> show} def +/noteheads.d1faWalker {<0f> show} def /noteheads.d1miFunk {<10> show} def +/noteheads.d1re {<11> show} def /noteheads.d1reFunk {<12> show} def +/noteheads.d1reThin {<13> show} def /noteheads.d1reWalker {<14> show} def +/noteheads.d1ti {<15> show} def /noteheads.d1tiFunk {<16> show} def +/noteheads.d1tiThin {<17> show} def /noteheads.d1tiWalker {<18> show} def +/noteheads.d1triangle {<19> show} def /noteheads.d2do {<1a> show} def +/noteheads.d2doFunk {<1b> show} def /noteheads.d2doThin {<1c> show} def +/noteheads.d2doWalker {<1d> show} def /noteheads.d2fa {<1e> show} def +/noteheads.d2faFunk {<1f> show} def /noteheads.d2faThin {<20> show} def +/noteheads.d2faWalker {<21> show} def /noteheads.d2kievan {<22> show} def +/noteheads.d2re {<23> show} def /noteheads.d2reFunk {<24> show} def +/noteheads.d2reThin {<25> show} def /noteheads.d2reWalker {<26> show} def +/noteheads.d2ti {<27> show} def /noteheads.d2tiFunk {<28> show} def +/noteheads.d2tiThin {<29> show} def /noteheads.d2tiWalker {<2a> show} def +/noteheads.d2triangle {<2b> show} def /noteheads.d3kievan {<2c> show} def +/noteheads.dM2 {<2d> show} def /noteheads.dM2blackmensural {<2e> show} def +/noteheads.dM2mensural {<2f> show} def /noteheads.dM2neomensural {<30> show} def +/noteheads.dM2semimensural {<31> show} def /noteheads.dM3blackmensural {<32> show} def +/noteheads.dM3mensural {<33> show} def /noteheads.dM3neomensural {<34> show} def +/noteheads.dM3semimensural {<35> show} def /noteheads.drM2mensural {<36> show} def +/noteheads.drM2neomensural {<37> show} def /noteheads.drM2semimensural {<38> show} def +/noteheads.drM3mensural {<39> show} def /noteheads.drM3neomensural {<3a> show} def +/noteheads.drM3semimensural {<3b> show} def /noteheads.s0 {<3c> show} def +/noteheads.s0blackmensural {<3d> show} def /noteheads.s0blackpetrucci {<3e> show} def +/noteheads.s0cross {<3f> show} def /noteheads.s0diamond {<40> show} def +/noteheads.s0do {<41> show} def /noteheads.s0doThin {<42> show} def +/noteheads.s0doWalker {<43> show} def /noteheads.s0faWalker {<44> show} def +/noteheads.s0harmonic {<45> show} def/noteheads.s0kievan {<46> show} def +/noteheads.s0la {<47> show} def /noteheads.s0laFunk {<48> show} def +/noteheads.s0laThin {<49> show} def /noteheads.s0laWalker {<4a> show} def +/noteheads.s0mensural {<4b> show} def /noteheads.s0mi {<4c> show} def +/noteheads.s0miMirror {<4d> show} def /noteheads.s0miThin {<4e> show} def +/noteheads.s0miWalker {<4f> show} def /noteheads.s0neomensural {<50> show} def +/noteheads.s0petrucci {<51> show} def /noteheads.s0re {<52> show} def +/noteheads.s0reThin {<53> show} def /noteheads.s0reWalker {<54> show} def +/noteheads.s0slash {<55> show} def /noteheads.s0sol {<56> show} def +/noteheads.s0solFunk {<57> show} def /noteheads.s0ti {<58> show} def +/noteheads.s0tiThin {<59> show} def /noteheads.s0tiWalker {<5a> show} def +/noteheads.s0triangle {<5b> show} def /noteheads.s1 {<5c> show} def +/noteheads.s1blackpetrucci {<5d> show} def /noteheads.s1cross {<5e> show} def +/noteheads.s1diamond {<5f> show} def /noteheads.s1kievan {<60> show} def +/noteheads.s1la {<61> show} def /noteheads.s1laFunk {<62> show} def +/noteheads.s1laThin {<63> show} def /noteheads.s1laWalker {<64> show} def +/noteheads.s1mensural {<65> show} def /noteheads.s1mi {<66> show} def +/noteheads.s1miMirror {<67> show} def /noteheads.s1miThin {<68> show} def +/noteheads.s1miWalker {<69> show} def /noteheads.s1neomensural {<6a> show} def +/noteheads.s1petrucci {<6b> show} def /noteheads.s1slash {<6c> show} def +/noteheads.s1sol {<6d> show} def /noteheads.s1solFunk {<6e> show} def +/noteheads.s2 {<6f> show} def /noteheads.s2blackpetrucci {<70> show} def +/noteheads.s2cross {<71> show} def /noteheads.s2diamond {<72> show} def +/noteheads.s2harmonic {<73> show} def /noteheads.s2la {<74> show} def +/noteheads.s2laFunk {<75> show} def /noteheads.s2laThin {<76> show} def +/noteheads.s2laWalker {<77> show} def /noteheads.s2mensural {<78> show} def +/noteheads.s2mi {<79> show} def /noteheads.s2miFunk {<7a> show} def +/noteheads.s2miMirror {<7b> show} def /noteheads.s2miThin {<7c> show} def +/noteheads.s2miWalker {<7d> show} def /noteheads.s2neomensural {<7e> show} def +/noteheads.s2petrucci {<7f> show} def /noteheads.s2slash {<80> show} def +/noteheads.s2sol {<81> show} def /noteheads.s2solFunk {<82> show} def +/noteheads.s2xcircle {<83> show} def /noteheads.shufnagel.lpes {<84> show} def +/noteheads.shufnagel.punctum {<85> show} def /noteheads.shufnagel.virga {<86> show} def +/noteheads.sM1 {<87> show} def /noteheads.sM1blackmensural {<88> show} def +/noteheads.sM1double {<89> show} def /noteheads.sM1kievan {<8a> show} def +/noteheads.sM1mensural {<8b> show} def /noteheads.sM1neomensural {<8c> show} def +/noteheads.sM1semimensural {<8d> show} def /noteheads.sM2blackligmensural {<8e> show} def +/noteheads.sM2kievan {<8f> show} def /noteheads.sM2ligmensural {<90> show} def +/noteheads.sM2semiligmensural {<91> show} def /noteheads.sM3blackligmensural {<92> show} def +/noteheads.sM3ligmensural {<93> show} def /noteheads.sM3semiligmensural {<94> show} def +/noteheads.smedicaea.inclinatum {<95> show} def /noteheads.smedicaea.punctum {<96> show} def +/noteheads.smedicaea.rvirga {<97> show} def /noteheads.smedicaea.virga {<98> show} def +/noteheads.sr1kievan {<99> show} def /noteheads.srM1mensural {<9a> show} def +/noteheads.srM1neomensural {<9b> show} def /noteheads.srM1semimensural {<9c> show} def +/noteheads.srM2ligmensural {<9d> show} def /noteheads.srM2semiligmensural {<9e> show} def +/noteheads.srM3ligmensural {<9f> show} def /noteheads.srM3semiligmensural {<a0> show} def +/noteheads.ssolesmes.auct.asc {<a1> show} def /noteheads.ssolesmes.auct.desc {<a2> show} def +/noteheads.ssolesmes.incl.auctum {<a3> show} def /noteheads.ssolesmes.incl.parvum {<a4> show} def +/noteheads.ssolesmes.oriscus {<a5> show} def /noteheads.ssolesmes.stropha {<a6> show} def +/noteheads.ssolesmes.stropha.aucta {<a7> show} def /noteheads.svaticana.cephalicus {<a8> show} def +/noteheads.svaticana.epiphonus {<a9> show} def /noteheads.svaticana.inclinatum {<aa> show} def +/noteheads.svaticana.inner.cephalicus {<ab> show} def /noteheads.svaticana.linea.punctum {<ac> show} def +/noteheads.svaticana.linea.punctum.cavum {<ad> show} def /noteheads.svaticana.lpes {<ae> show} def +/noteheads.svaticana.plica {<af> show} def /noteheads.svaticana.punctum {<b0> show} def +/noteheads.svaticana.punctum.cavum {<b1> show} def /noteheads.svaticana.quilisma {<b2> show} def +/noteheads.svaticana.reverse.plica {<b3> show} def /noteheads.svaticana.reverse.vplica {<b4> show} def +/noteheads.svaticana.upes {<b5> show} def /noteheads.svaticana.vepiphonus {<b6> show} def +/noteheads.svaticana.vlpes {<b7> show} def /noteheads.svaticana.vplica {<b8> show} def +/noteheads.svaticana.vupes {<b9> show} def /noteheads.u0doFunk {<ba> show} def +/noteheads.u0fa {<bb> show} def /noteheads.u0faFunk {<bc> show} def +/noteheads.u0faThin {<bd> show} def /noteheads.u0miFunk {<be> show} def +/noteheads.u0reFunk {<bf> show} def /noteheads.u0tiFunk {<c0> show} def +/noteheads.u1do {<c1> show} def /noteheads.u1doFunk {<c2> show} def +/noteheads.u1doThin {<c3> show} def /noteheads.u1doWalker {<c4> show} def +/noteheads.u1fa {<c5> show} def /noteheads.u1faFunk {<c6> show} def +/noteheads.u1faThin {<c7> show} def /noteheads.u1faWalker {<c8> show} def +/noteheads.u1miFunk {<c9> show} def /noteheads.u1re {<ca> show} def +/noteheads.u1reFunk {<cb> show} def /noteheads.u1reThin {<cc> show} def +/noteheads.u1reWalker {<cd> show} def /noteheads.u1ti {<ce> show} def +/noteheads.u1tiFunk {<cf> show} def /noteheads.u1tiThin {<d0> show} def +/noteheads.u1tiWalker {<d1> show} def /noteheads.u1triangle {<d2> show} def +/noteheads.u2do {<d3> show} def /noteheads.u2doFunk {<d4> show} def +/noteheads.u2doThin {<d5> show} def /noteheads.u2doWalker {<d6> show} def +/noteheads.u2fa {<d7> show} def /noteheads.u2faFunk {<d8> show} def +/noteheads.u2faThin {<d9> show} def /noteheads.u2faWalker {<da> show} def +/noteheads.u2kievan {<db> show} def /noteheads.u2re {<dc> show} def +/noteheads.u2reFunk {<dd> show} def /noteheads.u2reThin {<de> show} def +/noteheads.u2reWalker {<df> show} def /noteheads.u2ti {<e0> show} def +/noteheads.u2tiFunk {<e1> show} def /noteheads.u2tiThin {<e2> show} def +/noteheads.u2tiWalker {<e3> show} def /noteheads.u2triangle {<e4> show} def +/noteheads.u3kievan {<e5> show} def /noteheads.uM2 {<e6> show} def +/noteheads.uM2blackmensural {<e7> show} def /noteheads.uM2mensural {<e8> show} def +/noteheads.uM2neomensural {<e9> show} def /noteheads.uM2semimensural {<ea> show} def +/noteheads.uM3blackmensural {<eb> show} def /noteheads.uM3mensural {<ec> show} def +/noteheads.uM3neomensural {<ed> show} def /noteheads.uM3semimensural {<ee> show} def +/noteheads.urM2mensural {<ef> show} def /noteheads.urM2neomensural {<f0> show} def +/noteheads.urM2semimensural {<f1> show} def /noteheads.urM3mensural {<f2> show} def +/noteheads.urM3neomensural {<f3> show} def /noteheads.urM3semimensural {<f4> show} def + +/scripts.arpeggio {<01> show} def /scripts.arpeggio.arrow.1 {<02> show} def +/scripts.arpeggio.arrow.M1 {<03> show} def /scripts.augmentum {<04> show} def +/scripts.barline.kievan {<05> show} def /scripts.caesura.curved {<06> show} def +/scripts.caesura.straight {<07> show} def /scripts.circulus {<08> show} def +/scripts.coda {<09> show} def /scripts.daccentus {<0a> show} def +/scripts.dfermata {<0b> show} def /scripts.dlongfermata {<0c> show} def +/scripts.dmarcato {<0d> show} def /scripts.downbow {<0e> show} def +/scripts.downmordent {<0f> show} def /scripts.downprall {<10> show} def +/scripts.dpedalheel {<11> show} def /scripts.dpedaltoe {<12> show} def +/scripts.dportato {<13> show} def /scripts.dsemicirculus {<14> show} def +/scripts.dshortfermata {<15> show} def /scripts.dsignumcongruentiae {<16> show} def +/scripts.dstaccatissimo {<17> show} def /scripts.dverylongfermata {<18> show} def +/scripts.espr {<19> show} def /scripts.flageolet {<1a> show} def +/scripts.halfopen {<1b> show} def /scripts.halfopenvertical {<1c> show} def +/scripts.ictus {<1d> show} def /scripts.lcomma {<1e> show} def +/scripts.lineprall {<1f> show} def /scripts.lvarcomma {<20> show} def +/scripts.mordent {<21> show} def /scripts.open {<22> show} def +/scripts.prall {<23> show} def /scripts.pralldown {<24> show} def +/scripts.prallmordent {<25> show} def /scripts.prallprall {<26> show} def +/scripts.prallup {<27> show} def /scripts.rcomma {<28> show} def +/scripts.reverseturn {<29> show} def /scripts.rvarcomma {<2a> show} def +/scripts.segno {<2b> show} def /scripts.sforzato {<2c> show} def +/scripts.snappizzicato {<2d> show} def /scripts.staccato {<2e> show} def +/scripts.stopped {<2f> show} def /scripts.tenuto {<30> show} def +/scripts.thumb {<31> show} def /scripts.tickmark {<32> show} def +/scripts.trilelement {<33> show} def /scripts.trill {<34> show} def +/scripts.trill_element {<35> show} def /scripts.turn {<36> show} def +/scripts.uaccentus {<37> show} def /scripts.ufermata {<38> show} def +/scripts.ulongfermata {<39> show} def /scripts.umarcato {<3a> show} def +/scripts.upbow {<3b> show} def /scripts.upedalheel {<3c> show} def +/scripts.upedaltoe {<3d> show} def /scripts.upmordent {<3e> show} def +/scripts.uportato {<3f> show} def /scripts.upprall {<40> show} def +/scripts.usemicirculus {<41> show} def /scripts.ushortfermata {<42> show} def +/scripts.usignumcongruentiae {<43> show} def /scripts.ustaccatissimo {<44> show} def +/scripts.uverylongfermata {<45> show} def /scripts.varcoda {<46> show} def +/scripts.varsegno {<47> show} def /accidentals.doublesharp {<01> show} def +/accidentals.flat {<02> show} def /accidentals.flat.arrowboth {<03> show} def +/accidentals.flat.arrowdown {<04> show} def /accidentals.flat.arrowup {<05> show} def +/accidentals.flatflat {<06> show} def /accidentals.flatflat.slash {<07> show} def +/accidentals.flat.slash {<08> show} def /accidentals.flat.slashslash {<09> show} def +/accidentals.hufnagelM1 {<0a> show} def /accidentals.kievan1 {<0b> show} def +/accidentals.kievanM1 {<0c> show} def /accidentals.leftparen {<0d> show} def +/accidentals.medicaeaM1 {<0e> show} def /accidentals.mensural1 {<0f> show} def +/accidentals.mensuralM1 {<10> show} def /accidentals.mirroredflat {<11> show} def +/accidentals.mirroredflat.backslash {<12> show} def /accidentals.mirroredflat.flat {<13> show} def +/accidentals.natural {<14> show} def /accidentals.natural.arrowboth {<15> show} def +/accidentals.natural.arrowdown {<16> show} def /accidentals.natural.arrowup {<17> show} def +/accidentals.rightparen {<18> show} def /accidentals.sharp {<19> show} def +/accidentals.sharp.arrowboth {<1a> show} def /accidentals.sharp.arrowdown {<1b> show} def +/accidentals.sharp.arrowup {<1c> show} def /accidentals.sharp.slashslashslash.stem {<1d> show} def +/accidentals.sharp.slashslashslash.stemstem {<1e> show} def /accidentals.sharp.slashslash.stem {<1f> show} def +/accidentals.sharp.slashslash.stemstemstem {<20> show} def /accidentals.vaticana0 {<21> show} def +/accidentals.vaticanaM1 {<22> show} def /accordion.bayanbass {<23> show} def +/accordion.discant {<24> show} def /accordion.dot {<25> show} def +/accordion.freebass {<26> show} def /accordion.oldEE {<27> show} def +/accordion.pull {<28> show} def /accordion.push {<29> show} def +/accordion.stdbass {<2a> show} def /arrowheads.close.01 {<2b> show} def +/arrowheads.close.0M1 {<2c> show} def /arrowheads.close.11 {<2d> show} def +/arrowheads.close.1M1 {<2e> show} def /arrowheads.open.01 {<2f> show} def +/arrowheads.open.0M1 {<30> show} def /arrowheads.open.11 {<31> show} def +/arrowheads.open.1M1 {<32> show} def /brackettips.down {<33> show} def +/brackettips.up {<34> show} def /clefs.blackmensural.c {<35> show} def +/clefs.blackmensural.c_change {<36> show} def /clefs.C {<37> show} def +/clefs.C_change {<38> show} def /clefs.F {<39> show} def +/clefs.F_change {<3a> show} def /clefs.G {<3b> show} def +/clefs.G_change {<3c> show} def /clefs.hufnagel.do {<3d> show} def +/clefs.hufnagel.do_change {<3e> show} def /clefs.hufnagel.do.fa {<3f> show} def +/clefs.hufnagel.do.fa_change {<40> show} def /clefs.hufnagel.fa {<41> show} def +/clefs.hufnagel.fa_change {<42> show} def /clefs.kievan.do {<43> show} def +/clefs.kievan.do_change {<44> show} def /clefs.medicaea.do {<45> show} def +/clefs.medicaea.do_change {<46> show} def /clefs.medicaea.fa {<47> show} def +/clefs.medicaea.fa_change {<48> show} def /clefs.mensural.c {<49> show} def +/clefs.mensural.c_change {<4a> show} def /clefs.mensural.f {<4b> show} def +/clefs.mensural.f_change {<4c> show} def /clefs.mensural.g {<4d> show} def +/clefs.mensural.g_change {<4e> show} def /clefs.neomensural.c {<4f> show} def +/clefs.neomensural.c_change {<50> show} def /clefs.percussion {<51> show} def +/clefs.percussion_change {<52> show} def /clefs.petrucci.c1 {<53> show} def +/clefs.petrucci.c1_change {<54> show} def /clefs.petrucci.c2 {<55> show} def +/clefs.petrucci.c2_change {<56> show} def /clefs.petrucci.c3 {<57> show} def +/clefs.petrucci.c3_change {<58> show} def /clefs.petrucci.c4 {<59> show} def +/clefs.petrucci.c4_change {<5a> show} def /clefs.petrucci.c5 {<5b> show} def +/clefs.petrucci.c5_change {<5c> show} def /clefs.petrucci.f {<5d> show} def +/clefs.petrucci.f_change {<5e> show} def /clefs.petrucci.g {<5f> show} def +/clefs.petrucci.g_change {<60> show} def /clefs.tab {<61> show} def +/clefs.tab_change {<62> show} def /clefs.vaticana.do {<63> show} def +/clefs.vaticana.do_change {<64> show} def /clefs.vaticana.fa {<65> show} def +/clefs.vaticana.fa_change {<66> show} def /comma {<67> show} def +/custodes.hufnagel.d0 {<68> show} def /custodes.hufnagel.d1 {<69> show} def +/custodes.hufnagel.d2 {<6a> show} def /custodes.hufnagel.u0 {<6b> show} def +/custodes.hufnagel.u1 {<6c> show} def /custodes.hufnagel.u2 {<6d> show} def +/custodes.medicaea.d0 {<6e> show} def /custodes.medicaea.d1 {<6f> show} def +/custodes.medicaea.d2 {<70> show} def /custodes.medicaea.u0 {<71> show} def +/custodes.medicaea.u1 {<72> show} def /custodes.medicaea.u2 {<73> show} def +/custodes.mensural.d0 {<74> show} def /custodes.mensural.d1 {<75> show} def +/custodes.mensural.d2 {<76> show} def /custodes.mensural.u0 {<77> show} def +/custodes.mensural.u1 {<78> show} def /custodes.mensural.u2 {<79> show} def +/custodes.vaticana.d0 {<7a> show} def /custodes.vaticana.d1 {<7b> show} def +/custodes.vaticana.d2 {<7c> show} def /custodes.vaticana.u0 {<7d> show} def +/custodes.vaticana.u1 {<7e> show} def /custodes.vaticana.u2 {<7f> show} def +/dots.dot {<80> show} def /dots.dotkievan {<81> show} def +/dots.dotvaticana {<82> show} def /eight {<83> show} def +/f {<84> show} def /five {<85> show} def +/flags.d3 {<86> show} def /flags.d4 {<87> show} def +/flags.d5 {<88> show} def /flags.d6 {<89> show} def +/flags.d7 {<8a> show} def /flags.dgrace {<8b> show} def +/flags.mensurald03 {<8c> show} def /flags.mensurald04 {<8d> show} def +/flags.mensurald05 {<8e> show} def /flags.mensurald06 {<8f> show} def +/flags.mensurald13 {<90> show} def /flags.mensurald14 {<91> show} def +/flags.mensurald15 {<92> show} def /flags.mensurald16 {<93> show} def +/flags.mensurald23 {<94> show} def /flags.mensurald24 {<95> show} def +/flags.mensurald25 {<96> show} def /flags.mensurald26 {<97> show} def +/flags.mensuralu03 {<98> show} def /flags.mensuralu04 {<99> show} def +/flags.mensuralu05 {<9a> show} def /flags.mensuralu06 {<9b> show} def +/flags.mensuralu13 {<9c> show} def /flags.mensuralu14 {<9d> show} def +/flags.mensuralu15 {<9e> show} def /flags.mensuralu16 {<9f> show} def +/flags.mensuralu23 {<a0> show} def /flags.mensuralu24 {<a1> show} def +/flags.mensuralu25 {<a2> show} def /flags.mensuralu26 {<a3> show} def +/flags.u3 {<a4> show} def /flags.u4 {<a5> show} def +/flags.u5 {<a6> show} def /flags.u6 {<a7> show} def +/flags.u7 {<a8> show} def /flags.ugrace {<a9> show} def +/four {<aa> show} def /hyphen {<ab> show} def +/m {<ac> show} def /nine {<ad> show} def +/one {<ae> show} def /p {<af> show} def +/pedal.. {<b0> show} def /pedal.* {<b1> show} def +/pedal.d {<b2> show} def /pedal.e {<b3> show} def +/pedal.M {<b4> show} def /pedal.P {<b5> show} def +/pedal.Ped {<b6> show} def /period {<b7> show} def +/plus {<b8> show} def /r {<b9> show} def +/rests.0 {<ba> show} def /rests.0mensural {<bb> show} def +/rests.0neomensural {<bc> show} def /rests.0o {<bd> show} def +/rests.1 {<be> show} def /rests.1mensural {<bf> show} def +/rests.1neomensural {<c0> show} def /rests.1o {<c1> show} def +/rests.2 {<c2> show} def /rests.2classical {<c3> show} def +/rests.2mensural {<c4> show} def /rests.2neomensural {<c5> show} def +/rests.3 {<c6> show} def /rests.3mensural {<c7> show} def +/rests.3neomensural {<c8> show} def /rests.4 {<c9> show} def +/rests.4mensural {<ca> show} def /rests.4neomensural {<cb> show} def +/rests.5 {<cc> show} def /rests.6 {<cd> show} def +/rests.7 {<ce> show} def /rests.M1 {<cf> show} def +/rests.M1mensural {<d0> show} def /rests.M1neomensural {<d1> show} def +/rests.M1o {<d2> show} def /rests.M2 {<d3> show} def +/rests.M2mensural {<d4> show} def /rests.M2neomensural {<d5> show} def +/rests.M3 {<d6> show} def /rests.M3mensural {<d7> show} def +/rests.M3neomensural {<d8> show} def /s {<d9> show} def +/seven {<da> show} def /six {<db> show} def +/space {<dc> show} def /three {<dd> show} def +/ties.lyric.default {<de> show} def /ties.lyric.short {<df> show} def +/timesig.C22 {<e0> show} def /timesig.C44 {<e1> show} def +/timesig.mensural22 {<e2> show} def /timesig.mensural24 {<e3> show} def +/timesig.mensural32 {<e4> show} def /timesig.mensural34 {<e5> show} def +/timesig.mensural44 {<e6> show} def /timesig.mensural48 {<e7> show} def +/timesig.mensural64 {<e8> show} def /timesig.mensural68 {<e9> show} def +/timesig.mensural68alt {<ea> show} def /timesig.mensural94 {<eb> show} def +/timesig.mensural98 {<ec> show} def /timesig.neomensural22 {<ed> show} def +/timesig.neomensural24 {<ee> show} def /timesig.neomensural32 {<ef> show} def +/timesig.neomensural34 {<f0> show} def /timesig.neomensural44 {<f1> show} def +/timesig.neomensural48 {<f2> show} def /timesig.neomensural64 {<f3> show} def +/timesig.neomensural68 {<f4> show} def /timesig.neomensural68alt {<f5> show} def +/timesig.neomensural94 {<f6> show} def /timesig.neomensural98 {<f7> show} def +/two {<f8> show} def /z {<f9> show} def /zero {<fa> show} def + +% +% Custom encodings and definitions for the emmentaler-brace font +% +/BracesAEncoding [ /.notdef +/brace1 /brace2 /brace10 /brace11 /brace12 /brace13 /brace14 /brace15 /brace16 /brace17 +/brace18 /brace19 /brace20 /brace21 /brace22 /brace23 /brace24 /brace25 /brace26 /brace27 +/brace28 /brace29 /brace100 /brace101 /brace102 /brace103 /brace104 /brace105 /brace106 +/brace107 /brace108 /brace109 /brace110 /brace111 /brace112 /brace113 /brace114 /brace115 +/brace116 /brace117 /brace118 /brace119 /brace120 /brace121 /brace122 /brace123 /brace124 +/brace125 /brace126 /brace127 /brace128 /brace129 /brace130 /brace131 /brace132 /brace133 +/brace134 /brace135 /brace136 /brace137 /brace138 /brace139 /brace140 /brace141 /brace142 +/brace143 /brace144 /brace145 /brace146 /brace147 /brace148 /brace149 /brace150 /brace151 +/brace152 /brace153 /brace154 /brace155 /brace156 /brace157 /brace158 /brace159 /brace160 +/brace161 /brace162 /brace163 /brace164 /brace165 /brace166 /brace167 /brace168 /brace169 +/brace170 /brace171 /brace172 /brace173 /brace174 /brace175 /brace176 /brace177 /brace178 +/brace179 /brace180 /brace181 /brace182 /brace183 /brace184 /brace185 /brace186 /brace187 +/brace188 /brace189 /brace190 /brace191 /brace192 /brace193 /brace194 /brace195 /brace196 +/brace197 /brace198 /brace199 /brace200 /brace201 /brace202 /brace203 /brace204 /brace205 +/brace206 /brace207 /brace208 /brace209 /brace210 /brace211 /brace212 /brace213 /brace214 +/brace215 /brace216 /brace217 /brace218 /brace219 /brace220 /brace221 /brace222 /brace223 +/brace224 /brace225 /brace226 /brace227 /brace228 /brace229 /brace230 /brace231 /brace232 +/brace233 /brace234 /brace235 /brace236 /brace237 /brace238 /brace239 /brace240 /brace241 +/brace242 /brace243 /brace244 /brace245 /brace246 /brace247 /brace248 /brace249 /brace250 +/brace251 /brace252 /brace253 /brace254 /brace255 /brace256 /brace257 /brace258 /brace259 +/brace260 /brace261 /brace262 /brace263 /brace264 /brace265 /brace266 /brace267 /brace268 +/brace269 /brace270 /brace271 /brace272 /brace273 /brace274 /brace275 /brace276 /brace277 +/brace278 /brace279 /brace280 /brace281 /brace282 /brace283 /brace284 /brace285 /brace286 +/brace287 /brace288 /brace289 /brace290 /brace291 /brace292 /brace293 /brace294 /brace295 +/brace296 /brace297 /brace298 /brace299 /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +] def + +/BracesBEncoding [ /.notdef +/brace3 /brace4 /brace30 /brace31 /brace32 /brace33 /brace34 /brace35 /brace36 +/brace37 /brace38 /brace39 /brace40 /brace41 /brace42 /brace43 /brace44 /brace45 +/brace46 /brace47 /brace48 /brace49 /brace300 /brace301 /brace302 /brace303 /brace304 +/brace305 /brace306 /brace307 /brace308 /brace309 /brace310 /brace311 /brace312 /brace313 +/brace314 /brace315 /brace316 /brace317 /brace318 /brace319 /brace320 /brace321 /brace322 +/brace323 /brace324 /brace325 /brace326 /brace327 /brace328 /brace329 /brace330 /brace331 +/brace332 /brace333 /brace334 /brace335 /brace336 /brace337 /brace338 /brace339 /brace340 +/brace341 /brace342 /brace343 /brace344 /brace345 /brace346 /brace347 /brace348 /brace349 +/brace350 /brace351 /brace352 /brace353 /brace354 /brace355 /brace356 /brace357 /brace358 +/brace359 /brace360 /brace361 /brace362 /brace363 /brace364 /brace365 /brace366 /brace367 +/brace368 /brace369 /brace370 /brace371 /brace372 /brace373 /brace374 /brace375 /brace376 +/brace377 /brace378 /brace379 /brace380 /brace381 /brace382 /brace383 /brace384 /brace385 +/brace386 /brace387 /brace388 /brace389 /brace390 /brace391 /brace392 /brace393 /brace394 +/brace395 /brace396 /brace397 /brace398 /brace399 /brace400 /brace401 /brace402 /brace403 +/brace404 /brace405 /brace406 /brace407 /brace408 /brace409 /brace410 /brace411 /brace412 +/brace413 /brace414 /brace415 /brace416 /brace417 /brace418 /brace419 /brace420 /brace421 +/brace422 /brace423 /brace424 /brace425 /brace426 /brace427 /brace428 /brace429 /brace430 +/brace431 /brace432 /brace433 /brace434 /brace435 /brace436 /brace437 /brace438 /brace439 +/brace440 /brace441 /brace442 /brace443 /brace444 /brace445 /brace446 /brace447 /brace448 +/brace449 /brace450 /brace451 /brace452 /brace453 /brace454 /brace455 /brace456 /brace457 +/brace458 /brace459 /brace460 /brace461 /brace462 /brace463 /brace464 /brace465 /brace466 +/brace467 /brace468 /brace469 /brace470 /brace471 /brace472 /brace473 /brace474 /brace475 +/brace476 /brace477 /brace478 /brace479 /brace480 /brace481 /brace482 /brace483 /brace484 +/brace485 /brace486 /brace487 /brace488 /brace489 /brace490 /brace491 /brace492 /brace493 +/brace494 /brace495 /brace496 /brace497 /brace498 /brace499 /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef +] def + +/BracesCEncoding [ /.notdef +/brace0 /brace5 /brace6 /brace7 /brace8 /brace9 /brace50 /brace51 /brace52 +/brace53 /brace54 /brace55 /brace56 /brace57 /brace58 /brace59 /brace60 /brace61 +/brace62 /brace63 /brace64 /brace65 /brace66 /brace67 /brace68 /brace69 /brace70 +/brace71 /brace72 /brace73 /brace74 /brace75 /brace76 /brace77 /brace78 /brace79 +/brace80 /brace81 /brace82 /brace83 /brace84 /brace85 /brace86 /brace87 /brace88 +/brace89 /brace90 /brace91 /brace92 /brace93 /brace94 /brace95 /brace96 /brace97 +/brace98 /brace99 /brace500 /brace501 /brace502 /brace503 /brace504 /brace505 /brace506 +/brace507 /brace508 /brace509 /brace510 /brace511 /brace512 /brace513 /brace514 /brace515 +/brace516 /brace517 /brace518 /brace519 /brace520 /brace521 /brace522 /brace523 /brace524 +/brace525 /brace526 /brace527 /brace528 /brace529 /brace530 /brace531 /brace532 /brace533 +/brace534 /brace535 /brace536 /brace537 /brace538 /brace539 /brace540 /brace541 /brace542 +/brace543 /brace544 /brace545 /brace546 /brace547 /brace548 /brace549 /brace550 /brace551 +/brace552 /brace553 /brace554 /brace555 /brace556 /brace557 /brace558 /brace559 /brace560 +/brace561 /brace562 /brace563 /brace564 /brace565 /brace566 /brace567 /brace568 /brace569 +/brace570 /brace571 /brace572 /brace573 /brace574 /brace575 /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef +] def + +/brace1 {<01> show} def /brace2 {<02> show} def /brace10 {<03> show} def +/brace11 {<04> show} def /brace12 {<05> show} def /brace13 {<06> show} def +/brace14 {<07> show} def /brace15 {<08> show} def /brace16 {<09> show} def +/brace17 {<0a> show} def /brace18 {<0b> show} def /brace19 {<0c> show} def +/brace20 {<0d> show} def /brace21 {<0e> show} def /brace22 {<0f> show} def +/brace23 {<10> show} def /brace24 {<11> show} def /brace25 {<12> show} def +/brace26 {<13> show} def /brace27 {<14> show} def /brace28 {<15> show} def +/brace29 {<16> show} def /brace100 {<17> show} def /brace101 {<18> show} def +/brace102 {<19> show} def /brace103 {<1a> show} def /brace104 {<1b> show} def +/brace105 {<1c> show} def /brace106 {<1d> show} def /brace107 {<1e> show} def +/brace108 {<1f> show} def /brace109 {<20> show} def /brace110 {<21> show} def +/brace111 {<22> show} def /brace112 {<23> show} def /brace113 {<24> show} def +/brace114 {<25> show} def /brace115 {<26> show} def /brace116 {<27> show} def +/brace117 {<28> show} def /brace118 {<29> show} def /brace119 {<2a> show} def +/brace120 {<2b> show} def /brace121 {<2c> show} def /brace122 {<2d> show} def +/brace123 {<2e> show} def /brace124 {<2f> show} def /brace125 {<30> show} def +/brace126 {<31> show} def /brace127 {<32> show} def /brace128 {<33> show} def +/brace129 {<34> show} def /brace130 {<35> show} def /brace131 {<36> show} def +/brace132 {<37> show} def /brace133 {<38> show} def /brace134 {<39> show} def +/brace135 {<3a> show} def /brace136 {<3b> show} def /brace137 {<3c> show} def +/brace138 {<3d> show} def /brace139 {<3e> show} def /brace140 {<3f> show} def +/brace141 {<40> show} def /brace142 {<41> show} def /brace143 {<42> show} def +/brace144 {<43> show} def /brace145 {<44> show} def /brace146 {<45> show} def +/brace147 {<46> show} def /brace148 {<47> show} def /brace149 {<48> show} def +/brace150 {<49> show} def /brace151 {<4a> show} def /brace152 {<4b> show} def +/brace153 {<4c> show} def /brace154 {<4d> show} def /brace155 {<4e> show} def +/brace156 {<4f> show} def /brace157 {<50> show} def /brace158 {<51> show} def +/brace159 {<52> show} def /brace160 {<53> show} def /brace161 {<54> show} def +/brace162 {<55> show} def /brace163 {<56> show} def /brace164 {<57> show} def +/brace165 {<58> show} def /brace166 {<59> show} def /brace167 {<5a> show} def +/brace168 {<5b> show} def /brace169 {<5c> show} def /brace170 {<5d> show} def +/brace171 {<5e> show} def /brace172 {<5f> show} def /brace173 {<60> show} def +/brace174 {<61> show} def /brace175 {<62> show} def /brace176 {<63> show} def +/brace177 {<64> show} def /brace178 {<65> show} def /brace179 {<66> show} def +/brace180 {<67> show} def /brace181 {<68> show} def /brace182 {<69> show} def +/brace183 {<6a> show} def /brace184 {<6b> show} def /brace185 {<6c> show} def +/brace186 {<6d> show} def /brace187 {<6e> show} def /brace188 {<6f> show} def +/brace189 {<70> show} def /brace190 {<71> show} def /brace191 {<72> show} def +/brace192 {<73> show} def /brace193 {<74> show} def /brace194 {<75> show} def +/brace195 {<76> show} def /brace196 {<77> show} def /brace197 {<78> show} def +/brace198 {<79> show} def /brace199 {<7a> show} def /brace200 {<7b> show} def +/brace201 {<7c> show} def /brace202 {<7d> show} def /brace203 {<7e> show} def +/brace204 {<7f> show} def /brace205 {<80> show} def /brace206 {<81> show} def +/brace207 {<82> show} def /brace208 {<83> show} def /brace209 {<84> show} def +/brace210 {<85> show} def /brace211 {<86> show} def /brace212 {<87> show} def +/brace213 {<88> show} def /brace214 {<89> show} def /brace215 {<8a> show} def +/brace216 {<8b> show} def /brace217 {<8c> show} def /brace218 {<8d> show} def +/brace219 {<8e> show} def /brace220 {<8f> show} def /brace221 {<90> show} def +/brace222 {<91> show} def /brace223 {<92> show} def /brace224 {<93> show} def +/brace225 {<94> show} def /brace226 {<95> show} def /brace227 {<96> show} def +/brace228 {<97> show} def /brace229 {<98> show} def /brace230 {<99> show} def +/brace231 {<9a> show} def /brace232 {<9b> show} def /brace233 {<9c> show} def +/brace234 {<9d> show} def /brace235 {<9e> show} def /brace236 {<9f> show} def +/brace237 {<a0> show} def /brace238 {<a1> show} def /brace239 {<a2> show} def +/brace240 {<a3> show} def /brace241 {<a4> show} def /brace242 {<a5> show} def +/brace243 {<a6> show} def /brace244 {<a7> show} def /brace245 {<a8> show} def +/brace246 {<a9> show} def /brace247 {<aa> show} def /brace248 {<ab> show} def +/brace249 {<ac> show} def /brace250 {<ad> show} def /brace251 {<ae> show} def +/brace252 {<af> show} def /brace253 {<b0> show} def /brace254 {<b1> show} def +/brace255 {<b2> show} def /brace256 {<b3> show} def /brace257 {<b4> show} def +/brace258 {<b5> show} def /brace259 {<b6> show} def /brace260 {<b7> show} def +/brace261 {<b8> show} def /brace262 {<b9> show} def /brace263 {<ba> show} def +/brace264 {<bb> show} def /brace265 {<bc> show} def /brace266 {<bd> show} def +/brace267 {<be> show} def /brace268 {<bf> show} def /brace269 {<c0> show} def +/brace270 {<c1> show} def /brace271 {<c2> show} def /brace272 {<c3> show} def +/brace273 {<c4> show} def /brace274 {<c5> show} def /brace275 {<c6> show} def +/brace276 {<c7> show} def /brace277 {<c8> show} def /brace278 {<c9> show} def +/brace279 {<ca> show} def /brace280 {<cb> show} def /brace281 {<cc> show} def +/brace282 {<cd> show} def /brace283 {<ce> show} def /brace284 {<cf> show} def +/brace285 {<d0> show} def /brace286 {<d1> show} def /brace287 {<d2> show} def +/brace288 {<d3> show} def /brace289 {<d4> show} def /brace290 {<d5> show} def +/brace291 {<d6> show} def /brace292 {<d7> show} def /brace293 {<d8> show} def +/brace294 {<d9> show} def /brace295 {<da> show} def /brace296 {<db> show} def +/brace297 {<dc> show} def /brace298 {<dd> show} def /brace299 {<de> show} def + +/brace3 {<01> show} def /brace4 {<02> show} def /brace30 {<03> show} def +/brace31 {<04> show} def /brace32 {<05> show} def /brace33 {<06> show} def +/brace34 {<07> show} def /brace35 {<08> show} def /brace36 {<09> show} def +/brace37 {<0a> show} def /brace38 {<0b> show} def /brace39 {<0c> show} def +/brace40 {<0d> show} def /brace41 {<0e> show} def /brace42 {<0f> show} def +/brace43 {<10> show} def /brace44 {<11> show} def /brace45 {<12> show} def +/brace46 {<13> show} def /brace47 {<14> show} def /brace48 {<15> show} def +/brace49 {<16> show} def /brace300 {<17> show} def /brace301 {<18> show} def +/brace302 {<19> show} def /brace303 {<1a> show} def /brace304 {<1b> show} def +/brace305 {<1c> show} def /brace306 {<1d> show} def /brace307 {<1e> show} def +/brace308 {<1f> show} def /brace309 {<20> show} def /brace310 {<21> show} def +/brace311 {<22> show} def /brace312 {<23> show} def /brace313 {<24> show} def +/brace314 {<25> show} def /brace315 {<26> show} def /brace316 {<27> show} def +/brace317 {<28> show} def /brace318 {<29> show} def /brace319 {<2a> show} def +/brace320 {<2b> show} def /brace321 {<2c> show} def /brace322 {<2d> show} def +/brace323 {<2e> show} def /brace324 {<2f> show} def /brace325 {<30> show} def +/brace326 {<31> show} def /brace327 {<32> show} def /brace328 {<33> show} def +/brace329 {<34> show} def /brace330 {<35> show} def /brace331 {<36> show} def +/brace332 {<37> show} def /brace333 {<38> show} def /brace334 {<39> show} def +/brace335 {<3a> show} def /brace336 {<3b> show} def /brace337 {<3c> show} def +/brace338 {<3d> show} def /brace339 {<3e> show} def /brace340 {<3f> show} def +/brace341 {<40> show} def /brace342 {<41> show} def /brace343 {<42> show} def +/brace344 {<43> show} def /brace345 {<44> show} def /brace346 {<45> show} def +/brace347 {<46> show} def /brace348 {<47> show} def /brace349 {<48> show} def +/brace350 {<49> show} def /brace351 {<4a> show} def /brace352 {<4b> show} def +/brace353 {<4c> show} def /brace354 {<4d> show} def /brace355 {<4e> show} def +/brace356 {<4f> show} def /brace357 {<50> show} def /brace358 {<51> show} def +/brace359 {<52> show} def /brace360 {<53> show} def /brace361 {<54> show} def +/brace362 {<55> show} def /brace363 {<56> show} def /brace364 {<57> show} def +/brace365 {<58> show} def /brace366 {<59> show} def /brace367 {<5a> show} def +/brace368 {<5b> show} def /brace369 {<5c> show} def /brace370 {<5d> show} def +/brace371 {<5e> show} def /brace372 {<5f> show} def /brace373 {<60> show} def +/brace374 {<61> show} def /brace375 {<62> show} def /brace376 {<63> show} def +/brace377 {<64> show} def /brace378 {<65> show} def /brace379 {<66> show} def +/brace380 {<67> show} def /brace381 {<68> show} def /brace382 {<69> show} def +/brace383 {<6a> show} def /brace384 {<6b> show} def /brace385 {<6c> show} def +/brace386 {<6d> show} def /brace387 {<6e> show} def /brace388 {<6f> show} def +/brace389 {<70> show} def /brace390 {<71> show} def /brace391 {<72> show} def +/brace392 {<73> show} def /brace393 {<74> show} def /brace394 {<75> show} def +/brace395 {<76> show} def /brace396 {<77> show} def /brace397 {<78> show} def +/brace398 {<79> show} def /brace399 {<7a> show} def /brace400 {<7b> show} def +/brace401 {<7c> show} def /brace402 {<7d> show} def /brace403 {<7e> show} def +/brace404 {<7f> show} def /brace405 {<80> show} def /brace406 {<81> show} def +/brace407 {<82> show} def /brace408 {<83> show} def /brace409 {<84> show} def +/brace410 {<85> show} def /brace411 {<86> show} def /brace412 {<87> show} def +/brace413 {<88> show} def /brace414 {<89> show} def /brace415 {<8a> show} def +/brace416 {<8b> show} def /brace417 {<8c> show} def /brace418 {<8d> show} def +/brace419 {<8e> show} def /brace420 {<8f> show} def /brace421 {<90> show} def +/brace422 {<91> show} def /brace423 {<92> show} def /brace424 {<93> show} def +/brace425 {<94> show} def /brace426 {<95> show} def /brace427 {<96> show} def +/brace428 {<97> show} def /brace429 {<98> show} def /brace430 {<99> show} def +/brace431 {<9a> show} def /brace432 {<9b> show} def /brace433 {<9c> show} def +/brace434 {<9d> show} def /brace435 {<9e> show} def /brace436 {<9f> show} def +/brace437 {<a0> show} def /brace438 {<a1> show} def /brace439 {<a2> show} def +/brace440 {<a3> show} def /brace441 {<a4> show} def /brace442 {<a5> show} def +/brace443 {<a6> show} def /brace444 {<a7> show} def /brace445 {<a8> show} def +/brace446 {<a9> show} def /brace447 {<aa> show} def /brace448 {<ab> show} def +/brace449 {<ac> show} def /brace450 {<ad> show} def /brace451 {<ae> show} def +/brace452 {<af> show} def /brace453 {<b0> show} def /brace454 {<b1> show} def +/brace455 {<b2> show} def /brace456 {<b3> show} def /brace457 {<b4> show} def +/brace458 {<b5> show} def /brace459 {<b6> show} def /brace460 {<b7> show} def +/brace461 {<b8> show} def /brace462 {<b9> show} def /brace463 {<ba> show} def +/brace464 {<bb> show} def /brace465 {<bc> show} def /brace466 {<bd> show} def +/brace467 {<be> show} def /brace468 {<bf> show} def /brace469 {<c0> show} def +/brace470 {<c1> show} def /brace471 {<c2> show} def /brace472 {<c3> show} def +/brace473 {<c4> show} def /brace474 {<c5> show} def /brace475 {<c6> show} def +/brace476 {<c7> show} def /brace477 {<c8> show} def /brace478 {<c9> show} def +/brace479 {<ca> show} def /brace480 {<cb> show} def /brace481 {<cc> show} def +/brace482 {<cd> show} def /brace483 {<ce> show} def /brace484 {<cf> show} def +/brace485 {<d0> show} def /brace486 {<d1> show} def /brace487 {<d2> show} def +/brace488 {<d3> show} def /brace489 {<d4> show} def /brace490 {<d5> show} def +/brace491 {<d6> show} def /brace492 {<d7> show} def /brace493 {<d8> show} def +/brace494 {<d9> show} def /brace495 {<da> show} def /brace496 {<db> show} def +/brace497 {<dc> show} def /brace498 {<dd> show} def /brace499 {<de> show} def + +/brace0 {<01> show} def /brace5 {<02> show} def /brace6 {<03> show} def +/brace7 {<04> show} def /brace8 {<05> show} def /brace9 {<06> show} def +/brace50 {<07> show} def /brace51 {<08> show} def /brace52 {<09> show} def +/brace53 {<0a> show} def /brace54 {<0b> show} def /brace55 {<0c> show} def +/brace56 {<0d> show} def /brace57 {<0e> show} def /brace58 {<0f> show} def +/brace59 {<10> show} def /brace60 {<11> show} def /brace61 {<12> show} def +/brace62 {<13> show} def /brace63 {<14> show} def /brace64 {<15> show} def +/brace65 {<16> show} def /brace66 {<17> show} def /brace67 {<18> show} def +/brace68 {<19> show} def /brace69 {<1a> show} def /brace70 {<1b> show} def +/brace71 {<1c> show} def /brace72 {<1d> show} def /brace73 {<1e> show} def +/brace74 {<1f> show} def /brace75 {<20> show} def /brace76 {<21> show} def +/brace77 {<22> show} def /brace78 {<23> show} def /brace79 {<24> show} def +/brace80 {<25> show} def /brace81 {<26> show} def /brace82 {<27> show} def +/brace83 {<28> show} def /brace84 {<29> show} def /brace85 {<2a> show} def +/brace86 {<2b> show} def /brace87 {<2c> show} def /brace88 {<2d> show} def +/brace89 {<2e> show} def /brace90 {<2f> show} def /brace91 {<30> show} def +/brace92 {<31> show} def /brace93 {<32> show} def /brace94 {<33> show} def +/brace95 {<34> show} def /brace96 {<35> show} def /brace97 {<36> show} def +/brace98 {<37> show} def /brace99 {<38> show} def /brace500 {<39> show} def +/brace501 {<3a> show} def /brace502 {<3b> show} def /brace503 {<3c> show} def +/brace504 {<3d> show} def /brace505 {<3e> show} def /brace506 {<3f> show} def +/brace507 {<40> show} def /brace508 {<41> show} def /brace509 {<42> show} def +/brace510 {<43> show} def /brace511 {<44> show} def /brace512 {<45> show} def +/brace513 {<46> show} def /brace514 {<47> show} def /brace515 {<48> show} def +/brace516 {<49> show} def /brace517 {<4a> show} def /brace518 {<4b> show} def +/brace519 {<4c> show} def /brace520 {<4d> show} def /brace521 {<4e> show} def +/brace522 {<4f> show} def /brace523 {<50> show} def /brace524 {<51> show} def +/brace525 {<52> show} def /brace526 {<53> show} def /brace527 {<54> show} def +/brace528 {<55> show} def /brace529 {<56> show} def /brace530 {<57> show} def +/brace531 {<58> show} def /brace532 {<59> show} def /brace533 {<5a> show} def +/brace534 {<5b> show} def /brace535 {<5c> show} def /brace536 {<5d> show} def +/brace537 {<5e> show} def /brace538 {<5f> show} def /brace539 {<60> show} def +/brace540 {<61> show} def /brace541 {<62> show} def /brace542 {<63> show} def +/brace543 {<64> show} def /brace544 {<65> show} def /brace545 {<66> show} def +/brace546 {<67> show} def /brace547 {<68> show} def /brace548 {<69> show} def +/brace549 {<6a> show} def /brace550 {<6b> show} def /brace551 {<6c> show} def +/brace552 {<6d> show} def /brace553 {<6e> show} def /brace554 {<6f> show} def +/brace555 {<70> show} def /brace556 {<71> show} def /brace557 {<72> show} def +/brace558 {<73> show} def /brace559 {<74> show} def /brace560 {<75> show} def +/brace561 {<76> show} def /brace562 {<77> show} def /brace563 {<78> show} def +/brace564 {<79> show} def /brace565 {<7a> show} def /brace566 {<7b> show} def +/brace567 {<7c> show} def /brace568 {<7d> show} def /brace569 {<7e> show} def +/brace570 {<7f> show} def /brace571 {<80> show} def /brace572 {<81> show} def +/brace573 {<82> show} def /brace574 {<83> show} def /brace575 {<84> show} def + +% end encodingdefs.ps diff --git a/scm/backend-library.scm b/scm/backend-library.scm index a167718..f91491f 100644 --- a/scm/backend-library.scm +++ b/scm/backend-library.scm @@ -82,6 +82,7 @@ "-dNOPAUSE" "-dBATCH" "-r1200" + "-dSubsetFonts=false" "-sDEVICE=pdfwrite" (string-append "-sOutputFile=" (string-join diff --git a/scm/framework-ps.scm b/scm/framework-ps.scm index bb7dc55..4076b80 100644 --- a/scm/framework-ps.scm +++ b/scm/framework-ps.scm @@ -52,11 +52,66 @@ "") (define (ps-define-font font font-name scaling) - (string-append - "/" (ps-font-command font) - " { /" font-name - " " (ly:number->string scaling) " output-scale div selectfont }" - " bind def\n")) + (if (string=? "Emmentaler-Brace" font-name) + (string-append + "/" font-name " findfont dup length dict copy begin " + "/Encoding BracesAEncoding def " + "/" font-name "-A currentdict definefont pop end\n" + "/" font-name " findfont dup length dict copy begin " + "/Encoding BracesBEncoding def " + "/" font-name "-B currentdict definefont pop end\n" + "/" font-name " findfont dup length dict copy begin " + "/Encoding BracesCEncoding def " + "/" font-name "-C currentdict definefont pop end\n" + "/" (ps-font-command font) "-A" + " { /" font-name "-A" + " " (ly:number->string scaling) " output-scale div selectfont }" + " bind def\n" + "/" (ps-font-command font) "-B" + " { /" font-name "-B" + " " (ly:number->string scaling) " output-scale div selectfont }" + " bind def\n" + "/" (ps-font-command font) "-C" + " { /" font-name "-C" + " " (ly:number->string scaling) " output-scale div selectfont }" + " bind def\n" + "/helpBgs {\n gsave\n 1 setgray\n /" + font-name "-A" + " 0.001 selectfont 0 0 moveto <01> show\n /" + font-name "-B" + " 0.001 selectfont 0 0 moveto <01> show\n /" + font-name "-C" + " 0.001 selectfont 0 0 moveto <01> show\n grestore\n} def\n") + (string-append + "/" font-name " findfont dup length dict copy begin " + "/Encoding LilyNoteHeadEncoding def " + "/" font-name "-N currentdict definefont pop end\n" + "/" font-name " findfont dup length dict copy begin " + "/Encoding LilyScriptEncoding def " + "/" font-name "-S currentdict definefont pop end\n" + "/" font-name " findfont dup length dict copy begin " + "/Encoding LilyOtherEncoding def " + "/" font-name "-O currentdict definefont pop end\n" + "/" (ps-font-command font) "-N" + " { /" font-name "-N" + " " (ly:number->string scaling) " output-scale div selectfont }" + " bind def\n" + "/" (ps-font-command font) "-S" + " { /" font-name "-S" + " " (ly:number->string scaling) " output-scale div selectfont }" + " bind def\n" + "/" (ps-font-command font) "-O" + " { /" font-name "-O" + " " (ly:number->string scaling) " output-scale div selectfont }" + " bind def\n" + "/helpNgs {\n gsave\n 1 setgray\n /" + font-name "-N" + " 0.001 selectfont 0 0 moveto <01> show\n /" + font-name "-S" + " 0.001 selectfont 0 0 moveto <01> show\n /" + font-name "-O" + " 0.001 selectfont 0 0 moveto <01> show\n grestore\n} def\n") +)) ;; FIXME: duplicated in other output backends ;; FIXME: silly interface name @@ -99,7 +154,9 @@ "") "%%EndPageSetup\n" "\n" - "gsave 0 paper-height translate set-ps-scale-to-lily-scale\n")) + "gsave 0 paper-height translate set-ps-scale-to-lily-scale\n" + "/helpBgs where {pop helpBgs} {} ifelse\n" + "/helpNgs where {pop helpNgs} {} ifelse\n")) (ly:outputter-dump-stencil outputter page) (ly:outputter-dump-string outputter "stroke grestore\nshowpage\n")) @@ -392,6 +449,7 @@ (display (cdr f) port) (display "%%EndFont\n" port)) (load-fonts paper))) + (display (procset "encodingdefs.ps") port) (display (setup-variables paper) port) ;; adobe note 5002: should initialize variables before loading routines. diff --git a/scm/output-ps.scm b/scm/output-ps.scm index 813211f..c97b165 100644 --- a/scm/output-ps.scm +++ b/scm/output-ps.scm @@ -117,28 +117,30 @@ size cid? w-x-y-named-glyphs) - (define (glyph-spec w h x y g) ; h not used (let ((prefix (if (string? g) "/" ""))) - (ly:format "~4f ~4f ~4f ~a~a" - w x y - prefix g))) - - (ly:format - (if cid? - "/~a /CIDFont findresource ~a output-scale div scalefont setfont -~a -~a print_glyphs" - - "/~a ~a output-scale div selectfont -~a -~a print_glyphs") - postscript-font-name - size - (string-join (map (lambda (x) (apply glyph-spec x)) - (reverse w-x-y-named-glyphs)) "\n") - (length w-x-y-named-glyphs))) - + (ly:format "~4f ~4f ~4f ~a~a" w x y prefix g))) + (define (emglyph-spec w h x y g) ; h not used + (if (and (= x 0) (= y 0)) + (ly:format "currentpoint ~a moveto ~4f 0 rmoveto" g w) + (ly:format "currentpoint ~4f ~4f rmoveto ~a moveto ~4f 0 rmoveto" x y g w))) + (if cid? + (ly:format + "/~a /CIDFont findresource ~a output-scale div scalefont setfont\n~a\n~a print_glyphs" + postscript-font-name size + (string-join (map (lambda (x) (apply glyph-spec x)) + (reverse w-x-y-named-glyphs)) "\n") + (length w-x-y-named-glyphs)) + (if (string-startswith postscript-font-name "Emmentaler") + (ly:format "/~a-O ~a output-scale div selectfont\n~a" + postscript-font-name size + (string-join (map (lambda (x) (apply emglyph-spec x)) + w-x-y-named-glyphs) "\n")) + (ly:format "/~a ~a output-scale div selectfont\n~a\n~a print_glyphs" + postscript-font-name size + (string-join (map (lambda (x) (apply glyph-spec x)) + (reverse w-x-y-named-glyphs)) "\n") + (length w-x-y-named-glyphs))))) (define (grob-cause offset grob) (if (ly:get-option 'point-and-click) @@ -183,9 +185,19 @@ "")) (define (named-glyph font glyph) - (ly:format "~a /~a glyphshow " ;;Why is there a space at the end? - (ps-font-command font) - glyph)) + (if (string-startswith (ly:font-file-name font) "emmentaler") + (if (string-endswith (ly:font-file-name font)"-brace" ) + (if (or (string-startswith glyph "brace1") (string-startswith glyph "brace2")) + (ly:format "~a ~a" (string-append (ps-font-command font) "-A" ) glyph) + (if (or (string-startswith glyph "brace3") (string-startswith glyph "brace4")) + (ly:format "~a ~a" (string-append (ps-font-command font) "-B" ) glyph) + (ly:format "~a ~a" (string-append (ps-font-command font) "-C" ) glyph))) + (if (string-startswith glyph "noteheads") + (ly:format "~a ~a" (string-append (ps-font-command font) "-N" ) glyph) + (if (string-startswith glyph "scripts") + (ly:format "~a ~a" (string-append (ps-font-command font) "-S" ) glyph) + (ly:format "~a ~a" (string-append (ps-font-command font) "-O" ) glyph)))) + (ly:format "~a /~a glyphshow" (ps-font-command font) glyph))) (define (no-origin) "")
_______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel