]> git.donarmstrong.com Git - lilypond.git/commitdiff
Reduce size of PDF files when inc. in *TeX docs
authorKnut Petersen <knut_petersen@online.de>
Thu, 8 Jan 2015 18:00:44 +0000 (18:00 +0000)
committerJames Lowe <pkx166h@gmail.com>
Sat, 31 Jan 2015 12:57:08 +0000 (12:57 +0000)
Issue 4251

This 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.

Doc additions to the Usage Manual included:
Added a command line option
--bigpdf / -b, and documented that option in the german
and english versions of usage.pdf .

Internal hyperlinks are fully preserved with current
ghostscript git master.

External hyperlinks (GoToR) _to_ a file processed this
way are broken. Fixing this would require major changes
to ghostscript.

External hyperlinks _from_ a file processed this way to
other pdfs are preserved if the reader program isn't
broken (acroread is not broken in this respect, evince is).

For more details see Ghostscript bug #695747
<http://bugs.ghostscript.com/show_bug.cgi?id=695747#c22>

Documentation/de/usage/running.itely
Documentation/usage/running.itely
lily/general-scheme.cc
lily/global-vars.cc
lily/include/main.hh
lily/main.cc
ps/encodingdefs.ps [new file with mode: 0644]
scm/backend-library.scm
scm/framework-ps.scm
scm/output-ps.scm

index a4a46406a21f7060637815548542d3d46810da0c..ae9e99b7f11ec009b109b3aa2aa67880f4ce17f4 100644 (file)
@@ -154,6 +154,38 @@ Die folgenden Kommandozeilenoptionen werden von @command{lilypond} unterstützt:
 
 @table @code
 
+@item -b, --bigpdfs
+@cindex bigpdfs
+
+Mit dieser Option generierte PDF-Dateien sind deutlich größer als sonst,
+weil keine oder nur minimale Zeichensatz-Optimierung erfolgt.  Werden
+jedoch zwei oder mehrere solcher PDF-Dateien in @w{@code{pdftex}-},
+@w{@code{xetex}-} oder @w{@code{luatex}}-Dokumente eingebunden und
+anschließend mit ghostscript weiterverarbeitet, entstehen
+@emph{signifikant} kleinere PDF-Dokumente, da die Zeichensatzdaten mit
+dieser Methode viel besser reduziert werden können.
+
+Nach
+
+@example
+lilypond -b myfile
+@end example
+
+@noindent
+sollte @code{ghostscript} wie folgt ausgeführt werden.
+
+@example
+gs -q -sDEVICE=pdfwrite -o gsout.pdf myfile.pdf
+@end example
+
+Mit Hilfe von
+@uref{https://code.google.com/p/pdfsizeopt/,@code{pdfsizeopt.py}}
+kann die Ausgabedatei noch mehr verkleinert werden.
+
+@example
+pdfsizeopt.py --use-multivalent=no gsout.pdf final.pdf
+@end example
+
 @item -d, --define-default=@var{Variable}=@var{Wert}
 Siehe @ref{Fortgeschrittene Optionen auf der Kommandozeile für LilyPond}.
 
index c9051c71202b809df699b0e9c0f09053654b94e2..fab28a6297e5658ce0317eeeef5aea26bba77c9a 100644 (file)
@@ -179,6 +179,34 @@ The following options are supported:
 
 @table @code
 
+@item -b, --bigpdfs
+@cindex bigpdfs
+
+PDF files generated will be much larger than normal (due to little or no
+font optimization).  However, if two or more PDF files are included
+within @w{@code{pdftex}}, @w{@code{xetex}} or @w{@code{luatex}}
+documents they can then be processed further via ghostscript (merging
+duplicated font data) resulting in @emph{significantly} smaller PDF
+files.
+
+@example
+lilypond -b myfile
+@end example
+
+Then run @code{ghostscript};
+
+@example
+gs -q -sDEVICE=pdfwrite -o gsout.pdf myfile.pdf
+@end example
+
+@code{pdfsizeopt.py} can then be used to further optimize the size
+of file;
+
+@example
+pdfsizeopt.py --use-multivalent=no gsout.pdf final.pdf
+@end example
+
+
 @item -d, --define-default=@var{var}=@var{val}
 See @ref{Advanced command line options for LilyPond}.
 
index 2ab34a086f58dffe1d098c1addfb388ab2237528..068fb27aad255427f4c6239bfa8c370242985a19 100644 (file)
@@ -302,6 +302,14 @@ LY_DEFINE (ly_output_formats, "ly:output-formats",
   return lst;
 }
 
+LY_DEFINE (ly_bigpdfs, "ly:bigpdfs",
+           0, 0, 0, (),
+           "Return true if the command line includes the @option{--bigpdf} parameter."
+)
+{
+  return bigpdfs ? SCM_BOOL_T : SCM_BOOL_F;
+}
+
 LY_DEFINE (ly_wide_char_2_utf_8, "ly:wide-char->utf-8",
            1, 0, 0, (SCM wc),
            "Encode the Unicode codepoint @var{wc}, an integer, as UTF-8.")
index 45975cd666a8c95f017c920beea0504e53b00e6a..dce813691ad8c63cae791fbf1d7ba41eae2ddbe7 100644 (file)
@@ -33,6 +33,9 @@ string init_name_global;
 /* Output formats to generate.  */
 string output_format_global = "";
 
+/* Generate big pdfs */
+bool bigpdfs = false;
+
 /* Current output name. */
 string output_name_global;
 
index 472006a2698dbcb8ec948343decf66e85a60ba1c..1e6e2caf5185d99dcfd41d2c5829da4342435f9b 100644 (file)
@@ -39,6 +39,7 @@ extern vector<string> dump_header_fieldnames_global;
 extern vector<string> start_environment_global;
 extern string output_backend_global;
 extern string output_name_global;
+extern bool bigpdfs;
 extern bool be_safe_global;
 extern bool do_internal_type_checking_global;
 extern string lilypond_datadir;
index 93b784f0ffcc296015357e2101989b49c9fe63ee..808274c6e843c5959853a2d032279631690b4196 100644 (file)
@@ -158,6 +158,7 @@ static Long_option_init options_static[]
   {0, "pdf", 0, _i ("generate PDF (default)")},
   {0, "png", 0, _i ("generate PNG")},
   {0, "ps", 0, _i ("generate PostScript")},
+  {0, "bigpdfs", 'b', _i("generate big PDF files")},
   {0, "help", 'h', _i ("show this help and exit")},
   {
     _i ("FIELD"), "header", 'H', _i ("dump header field FIELD to file\n"
@@ -613,6 +614,10 @@ parse_argv (int argc, char **argv)
             relocate_binary = true;
           break;
 
+        case 'b':
+          bigpdfs = true;
+          break;
+
         case 'd':
           {
             string arg (option_parser->optional_argument_str0_);
diff --git a/ps/encodingdefs.ps b/ps/encodingdefs.ps
new file mode 100644 (file)
index 0000000..fe4db92
--- /dev/null
@@ -0,0 +1,1848 @@
+%!PS-Adobe-2.0: encodingdefs.ps
+
+%
+% Custom encodings and definitions for emmentaler-[[:digit:]]*
+% ad the emmentaler-brace fonts, used with --bigpdf
+%
+
+/LilyNoteHeadEncoding [
+  % 0x00
+  /.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
+  % 0xf
+  /noteheads.d1faWalker /noteheads.d1miFunk /noteheads.d1re
+  /noteheads.d1reFunk /noteheads.d1reThin /noteheads.d1reWalker
+  /noteheads.d1ti /noteheads.d1tiFunk /noteheads.d1tiThin
+  /noteheads.d1tiWalker /noteheads.d1triangle /noteheads.d2do
+  % 0x1e
+  /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
+  % 0x2d
+  /noteheads.d2tiWalker /noteheads.d2triangle /noteheads.d3kievan
+  /noteheads.dM2 /noteheads.dM2blackmensural /noteheads.dM2mensural
+  /noteheads.dM2neomensural /noteheads.dM2semimensural
+  /noteheads.dM3blackmensural /noteheads.dM3mensural
+  /noteheads.dM3neomensural /noteheads.dM3semimensural
+  % 0x39
+  /noteheads.drM2mensural /noteheads.drM2neomensural
+  /noteheads.drM2semimensural /noteheads.drM3mensural
+  /noteheads.drM3neomensural /noteheads.drM3semimensural /noteheads.s0
+  /noteheads.s0blackmensural /noteheads.s0blackpetrucci
+  /noteheads.s0cross /noteheads.s0diamond /noteheads.s0do
+  % 0x45
+  /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
+  % 0x54
+  /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
+  % 0x63
+  /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
+  % 0x72
+  /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
+  % 0x81
+  /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
+  % 0x8f
+  /noteheads.sM1neomensural /noteheads.sM1semimensural
+  /noteheads.sM2blackligmensural /noteheads.sM2kievan
+  /noteheads.sM2ligmensural /noteheads.sM2semiligmensural
+  /noteheads.sM3blackligmensural /noteheads.sM3ligmensural
+  /noteheads.sM3semiligmensural /noteheads.smedicaea.inclinatum
+  % 0x99
+  /noteheads.smedicaea.punctum  /noteheads.smedicaea.rvirga
+  /noteheads.smedicaea.virga /noteheads.sr1kievan
+  /noteheads.srM1mensural /noteheads.srM1neomensural
+  /noteheads.srM1semimensural /noteheads.srM2ligmensural
+  /noteheads.srM2semiligmensural /noteheads.srM3ligmensural
+  % 0xa3
+  /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
+  % 0xad
+  /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
+  % 0xb5
+  /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
+  % 0xc0
+  /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
+  % 0xcf
+  /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
+  % 0xde
+  /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
+  % 0xec
+  /noteheads.uM2neomensural /noteheads.uM2semimensural
+  /noteheads.uM3blackmensural /noteheads.uM3mensural
+  /noteheads.uM3neomensural /noteheads.uM3semimensural
+  /noteheads.urM2mensural /noteheads.urM2neomensural
+  % 0xf4
+  /noteheads.urM2semimensural /noteheads.urM3mensural
+  /noteheads.urM3neomensural /noteheads.urM3semimensural
+  % 0xf8
+  /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  % 0x103
+] def
+
+% 0x00
+/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
+% 0xa
+/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
+% 0x14
+/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
+% 0x1e
+/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
+% 0x28
+/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
+% 0x32
+/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
+% 0x3c
+/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
+% 0x46
+/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
+% 0x50
+/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
+% 0x5a
+/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
+% 0x64
+/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
+% 0x6e
+/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
+% 0x78
+/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
+% 0x82
+/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
+% 0x8c
+/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
+% 0x96
+/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
+% 0xa0
+/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
+% 0xaa
+/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
+% 0xb4
+/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
+% 0xbe
+/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
+% 0xc8
+/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
+% 0xd2
+/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
+% 0xdc
+/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
+% 0xe6
+/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
+% 0xf0
+/noteheads.urM2semimensural {<f1> show} def
+/noteheads.urM3mensural {<f2> show} def
+/noteheads.urM3neomensural {<f3> show} def
+/noteheads.urM3semimensural {<f4> show} def
+% 0xf4
+
+/LilyScriptEncoding [
+  % 0x00
+  /.notdef /clefs.blackmensural.c /clefs.blackmensural.c_change
+  /clefs.C /clefs.C_change /clefs.F
+  /clefs.F_change /clefs.G /clefs.G_change
+  /clefs.GG /clefs.GG_change /clefs.hufnagel.do
+  /clefs.hufnagel.do_change /clefs.hufnagel.do.fa
+  % 0xe
+  /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
+  % 01c
+  /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
+  % 0x29
+  /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.tenorG
+  /clefs.tenorG_change /clefs.varC /clefs.varC_change
+  /clefs.varpercussion /clefs.varpercussion_change /clefs.vaticana.do
+  % 0x38
+  /clefs.vaticana.do_change /clefs.vaticana.fa /clefs.vaticana.fa_change
+  /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
+  % 0x47
+  /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
+  % 0x55
+  /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
+  % 0x64
+  /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
+  % 0x73
+  /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
+  % 0x81
+  /scripts.varsegno
+  % 0x82
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  % 0x9e
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  % 0xc1
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  % 0xe4
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  % 0x100
+] def
+
+% 0x00
+/clefs.blackmensural.c {<01> show} def
+/clefs.blackmensural.c_change {<02> show} def
+/clefs.C {<03> show} def /clefs.C_change {<04> show} def
+/clefs.F {<05> show} def /clefs.F_change {<06> show} def
+/clefs.G {<07> show} def /clefs.G_change {<08> show} def
+/clefs.GG {<09> show} def /clefs.GG_change {<0a> show} def
+/clefs.hufnagel.do {<0b> show} def
+/clefs.hufnagel.do_change {<0c> show} def
+/clefs.hufnagel.do.fa {<0d> show} def
+/clefs.hufnagel.do.fa_change {<0e> show} def
+% 0xa
+/clefs.hufnagel.fa {<0f> show} def
+/clefs.hufnagel.fa_change {<10> show} def
+/clefs.kievan.do {<11> show} def
+/clefs.kievan.do_change {<12> show} def
+/clefs.medicaea.do {<13> show} def
+/clefs.medicaea.do_change {<14> show} def
+/clefs.medicaea.fa {<15> show} def
+/clefs.medicaea.fa_change {<16> show} def
+/clefs.mensural.c {<17> show} def
+/clefs.mensural.c_change {<18> show} def
+% 0x14
+/clefs.mensural.f {<19> show} def
+/clefs.mensural.f_change {<1a> show} def
+/clefs.mensural.g {<1b> show} def
+/clefs.mensural.g_change {<1c> show} def
+/clefs.neomensural.c {<1d> show} def
+/clefs.neomensural.c_change {<1e> show} def
+/clefs.percussion {<1f> show} def
+/clefs.percussion_change {<20> show} def
+/clefs.petrucci.c1 {<21> show} def
+/clefs.petrucci.c1_change {<22> show} def
+% 0x1e
+/clefs.petrucci.c2 {<23> show} def
+/clefs.petrucci.c2_change {<24> show} def
+/clefs.petrucci.c3 {<25> show} def
+/clefs.petrucci.c3_change {<26> show} def
+/clefs.petrucci.c4 {<27> show} def
+/clefs.petrucci.c4_change {<28> show} def
+/clefs.petrucci.c5 {<29> show} def
+/clefs.petrucci.c5_change {<2a> show} def
+/clefs.petrucci.f {<2b> show} def
+/clefs.petrucci.f_change {<2c> show} def
+% 0x28
+/clefs.petrucci.g {<2d> show} def
+/clefs.petrucci.g_change {<2e> show} def
+/clefs.tab {<2f> show} def
+/clefs.tab_change {<30> show} def
+/clefs.tenorG {<31> show} def
+/clefs.tenorG_change {<32> show} def
+/clefs.varC {<33> show} def
+/clefs.varC_change {<34> show} def
+/clefs.varpercussion {<35> show} def
+/clefs.varpercussion_change {<36> show} def
+% 0x32
+/clefs.vaticana.do {<37> show} def
+/clefs.vaticana.do_change {<38> show} def
+/clefs.vaticana.fa {<39> show} def
+/clefs.vaticana.fa_change {<3a> show} def
+/scripts.arpeggio {<3b> show} def
+/scripts.arpeggio.arrow.1 {<3c> show} def
+/scripts.arpeggio.arrow.M1 {<3d> show} def
+/scripts.augmentum {<3e> show} def
+/scripts.barline.kievan {<3f> show} def
+/scripts.caesura.curved {<40> show} def
+% 0x3c
+/scripts.caesura.straight {<41> show} def
+/scripts.circulus {<42> show} def
+/scripts.coda {<43> show} def
+/scripts.daccentus {<44> show} def
+/scripts.dfermata {<45> show} def
+/scripts.dlongfermata {<46> show} def
+/scripts.dmarcato {<47> show} def
+/scripts.downbow {<48> show} def
+/scripts.downmordent {<49> show} def
+/scripts.downprall {<4a> show} def
+% 0x46
+/scripts.dpedalheel {<4b> show} def
+/scripts.dpedaltoe {<4c> show} def
+/scripts.dportato {<4d> show} def
+/scripts.dsemicirculus {<4e> show} def
+/scripts.dshortfermata {<4f> show} def
+/scripts.dsignumcongruentiae {<50> show} def
+/scripts.dstaccatissimo {<51> show} def
+/scripts.dverylongfermata {<52> show} def
+/scripts.espr {<53> show} def
+/scripts.flageolet {<54> show} def
+% 0x50
+/scripts.halfopen {<55> show} def
+/scripts.halfopenvertical {<56> show} def
+/scripts.ictus {<57> show} def
+/scripts.lcomma {<58> show} def
+/scripts.lineprall {<59> show} def
+/scripts.lvarcomma {<5a> show} def
+/scripts.mordent {<5b> show} def
+/scripts.open {<5c> show} def
+/scripts.prall {<5d> show} def
+/scripts.pralldown {<5e> show} def
+% 0x5a
+/scripts.prallmordent {<5f> show} def
+/scripts.prallprall {<60> show} def
+/scripts.prallup {<61> show} def
+/scripts.rcomma {<62> show} def
+/scripts.reverseturn {<63> show} def
+/scripts.rvarcomma {<64> show} def
+/scripts.segno {<65> show} def
+/scripts.sforzato {<66> show} def
+/scripts.snappizzicato {<67> show} def
+/scripts.staccato {<68> show} def
+/scripts.stopped {<69> show} def
+% 0x64
+/scripts.tenuto {<6a> show} def
+/scripts.thumb {<6b> show} def
+/scripts.tickmark {<6c> show} def
+/scripts.trilelement {<6d> show} def
+/scripts.trill {<6e> show} def
+/scripts.trill_element {<6f> show} def
+/scripts.turn {<70> show} def
+/scripts.uaccentus {<71> show} def
+/scripts.ufermata {<72> show} def
+/scripts.ulongfermata {<73> show} def
+% 0x6e
+/scripts.umarcato {<74> show} def
+/scripts.upbow {<75> show} def
+/scripts.upedalheel {<76> show} def
+/scripts.upedaltoe {<77> show} def
+/scripts.upmordent {<78> show} def
+/scripts.uportato {<79> show} def
+/scripts.upprall {<7a> show} def
+/scripts.usemicirculus {<7b> show} def
+/scripts.ushortfermata {<7c> show} def
+/scripts.usignumcongruentiae {<7d> show} def
+% 0x78
+/scripts.ustaccatissimo {<7e> show} def
+/scripts.uverylongfermata {<7f> show} def
+/scripts.varcoda {<80> show} def
+/scripts.varsegno {<81> show} def
+% 0x7c
+
+/LilyOtherEncoding [
+  % 0x00
+  /.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
+  % 0xb
+  /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
+  % 0x17
+  /accidentals.natural.arrowup /accidentals.rightparen
+  /accidentals.sharp /accidentals.sharp.arrowboth
+  /accidentals.sharp.arrowdown /accidentals.sharp.arrowup
+  /accidentals.sharp.slashslashslash.stem
+  /accidentals.sharp.slashslashslash.stemstem
+  % 0x1f
+  /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
+  % 0x2b
+  /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 /comma /custodes.hufnagel.d0
+  /custodes.hufnagel.d1 /custodes.hufnagel.d2 /custodes.hufnagel.u0
+  % 0x39
+  /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
+  % 0x48
+  /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
+  % 0x57
+  /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
+  % 0x66
+  /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
+  % 0x75
+  /flags.u7 /flags.ugrace /four
+  /hyphen /m /nine
+  /one /p /pedal.. /pedal.*
+  /pedal.d /pedal.e /pedal.M
+  /pedal.P /pedal.Ped /period
+  % 0x84
+  /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.2z
+  % 0x93
+  /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
+  % 0xa2
+  /rests.M2neomensural /rests.M3 /rests.M3mensural
+  /rests.M3neomensural /s /seven
+  /six /space /three
+  /ties.lyric.default
+  /ties.lyric.short /timesig.C22 /timesig.C44
+  % 0xb1
+  /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
+  % 0xc0
+  /timesig.neomensural44 /timesig.neomensural48 /timesig.neomensural64
+  /timesig.neomensural68 /timesig.neomensural68alt
+  /timesig.neomensural94 /timesig.neomensural98
+  /two  /z /zero
+  % 0xca
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  % 0xed
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef
+  % 0xf6
+] def
+
+% 0x00
+/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
+% 0xa
+/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
+% 0x14
+/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
+% 0x1e
+/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
+% 0x28
+/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
+/comma {<35> show} def
+/custodes.hufnagel.d0 {<36> show} def
+% 0x32
+/custodes.hufnagel.d1 {<37> show} def
+/custodes.hufnagel.d2 {<38> show} def
+/custodes.hufnagel.u0 {<39> show} def
+/custodes.hufnagel.u1 {<3a> show} def
+/custodes.hufnagel.u2 {<3b> show} def
+/custodes.medicaea.d0 {<3c> show} def
+/custodes.medicaea.d1 {<3d> show} def
+/custodes.medicaea.d2 {<3e> show} def
+/custodes.medicaea.u0 {<3f> show} def
+/custodes.medicaea.u1 {<40> show} def
+/custodes.medicaea.u2 {<41> show} def
+% 0x3c
+/custodes.mensural.d0 {<42> show} def
+/custodes.mensural.d1 {<43> show} def
+/custodes.mensural.d2 {<44> show} def
+/custodes.mensural.u0 {<45> show} def
+/custodes.mensural.u1 {<46> show} def
+/custodes.mensural.u2 {<47> show} def
+/custodes.vaticana.d0 {<48> show} def
+/custodes.vaticana.d1 {<49> show} def
+/custodes.vaticana.d2 {<4a> show} def
+/custodes.vaticana.u0 {<4b> show} def
+% 0x46
+/custodes.vaticana.u1 {<4c> show} def
+/custodes.vaticana.u2 {<4d> show} def
+/dots.dot {<4e> show} def
+/dots.dotkievan {<4f> show} def
+/dots.dotvaticana {<50> show} def
+/eight {<51> show} def
+/f {<52> show} def
+/five {<53> show} def
+/flags.d3 {<54> show} def
+/flags.d4 {<55> show} def
+% 0x50
+/flags.d5 {<56> show} def
+/flags.d6 {<57> show} def
+/flags.d7 {<58> show} def
+/flags.dgrace {<59> show} def
+/flags.mensurald03 {<5a> show} def
+/flags.mensurald04 {<5b> show} def
+/flags.mensurald05 {<5c> show} def
+/flags.mensurald06 {<5d> show} def
+/flags.mensurald13 {<5e> show} def
+/flags.mensurald14 {<5f> show} def
+% 0x5a
+/flags.mensurald15 {<60> show} def
+/flags.mensurald16 {<61> show} def
+/flags.mensurald23 {<62> show} def
+/flags.mensurald24 {<63> show} def
+/flags.mensurald25 {<64> show} def
+/flags.mensurald26 {<65> show} def
+/flags.mensuralu03 {<66> show} def
+/flags.mensuralu04 {<67> show} def
+/flags.mensuralu05 {<68> show} def
+/flags.mensuralu06 {<69> show} def
+% 0x64
+/flags.mensuralu13 {<6a> show} def
+/flags.mensuralu14 {<6b> show} def
+/flags.mensuralu15 {<6c> show} def
+/flags.mensuralu16 {<6d> show} def
+/flags.mensuralu23 {<6e> show} def
+/flags.mensuralu24 {<6f> show} def
+/flags.mensuralu25 {<70> show} def
+/flags.mensuralu26 {<71> show} def
+/flags.u3 {<72> show} def
+/flags.u4 {<73> show} def
+% 0x6e
+/flags.u5 {<74> show} def
+/flags.u6 {<75> show} def
+/flags.u7 {<76> show} def
+/flags.ugrace {<77> show} def
+/four {<78> show} def
+/hyphen {<79> show} def
+/m {<7a> show} def
+/nine {<7b> show} def
+/one {<7c> show} def
+/p {<7d> show} def
+% 0x78
+/pedal.. {<7e> show} def
+/pedal.* {<7f> show} def
+/pedal.d {<80> show} def
+/pedal.e {<81> show} def
+/pedal.M {<82> show} def
+/pedal.P {<83> show} def
+/pedal.Ped {<84> show} def
+/period {<85> show} def
+/plus {<86> show} def
+/r {<87> show} def
+% 0x82
+/rests.0 {<88> show} def
+/rests.0mensural {<89> show} def
+/rests.0neomensural {<8a> show} def
+/rests.0o {<8b> show} def
+/rests.1 {<8c> show} def
+/rests.1mensural {<8d> show} def
+/rests.1neomensural {<8e> show} def
+/rests.1o {<8f> show} def
+/rests.2 {<90> show} def
+/rests.2classical {<91> show} def
+% 0x8c
+/rests.2mensural {<92> show} def
+/rests.2neomensural {<93> show} def
+/rests.2z {<94> show} def
+/rests.3 {<95> show} def
+/rests.3mensural {<96> show} def
+/rests.3neomensural {<97> show} def
+/rests.4 {<98> show} def
+/rests.4mensural {<99> show} def
+/rests.4neomensural {<9a> show} def
+/rests.5 {<9b> show} def
+% 0x96
+/rests.6 {<9c> show} def
+/rests.7 {<9d> show} def
+/rests.M1 {<9e> show} def
+/rests.M1mensural {<9f> show} def
+/rests.M1neomensural {<a0> show} def
+/rests.M1o {<a1> show} def
+/rests.M2 {<a2> show} def
+/rests.M2mensural {<a3> show} def
+/rests.M2neomensural {<a4> show} def
+/rests.M3 {<a5> show} def
+% 0xa0
+/rests.M3mensural {<a6> show} def
+/rests.M3neomensural {<a7> show} def
+/s {<a8> show} def
+/seven {<a9> show} def
+/six {<aa> show} def
+/space {<ab> show} def
+/three {<ac> show} def
+/ties.lyric.default {<ad> show} def
+/ties.lyric.short {<ae> show} def
+/timesig.C22 {<af> show} def
+% 0xaa
+/timesig.C44 {<b0> show} def
+/timesig.mensural22 {<b1> show} def
+/timesig.mensural24 {<b2> show} def
+/timesig.mensural32 {<b3> show} def
+/timesig.mensural34 {<b4> show} def
+/timesig.mensural44 {<b5> show} def
+/timesig.mensural48 {<b6> show} def
+/timesig.mensural64 {<b7> show} def
+/timesig.mensural68 {<b8> show} def
+/timesig.mensural68alt {<b9> show} def
+% 0xb4
+/timesig.mensural94 {<ba> show} def
+/timesig.mensural98 {<bb> show} def
+/timesig.neomensural22 {<bc> show} def
+/timesig.neomensural24 {<bd> show} def
+/timesig.neomensural32 {<be> show} def
+/timesig.neomensural34 {<bf> show} def
+/timesig.neomensural44 {<c0> show} def
+/timesig.neomensural48 {<c1> show} def
+/timesig.neomensural64 {<c2> show} def
+/timesig.neomensural68 {<c3> show} def
+% 0xbe
+/timesig.neomensural68alt {<c4> show} def
+/timesig.neomensural94 {<c5> show} def
+/timesig.neomensural98 {<c6> show} def
+/two {<c7> show} def
+/z {<c8> show} def
+/zero {<c9> show} def
+% 0xc4
+
+%
+% Custom encodings and definitions for the emmentaler-brace font
+%
+/BracesNEncoding [
+  % 0x00
+  /.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
+  % 0x24
+  /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
+  % 0x47
+  /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
+  % 0x6a
+  /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
+  % 0x8d
+  /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
+  % 0xb0
+  /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
+  % 0xd3
+  /brace288 /brace289 /brace290 /brace291 /brace292 /brace293 /brace294
+  /brace295 /brace296 /brace297 /brace298 /brace299
+  % 0xdf
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef
+  % 0xff
+] def
+
+% 0x00
+/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
+% 0xa
+/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
+% 0x14
+/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
+% 0x1e
+/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
+% 0x28
+/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
+% 0x32
+/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
+% 0x3c
+/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
+% 0x46
+/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
+% 0x50
+/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
+% 0x5a
+/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
+% 0x64
+/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
+% 0x6e
+/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
+% 0x78
+/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
+% 0x82
+/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
+% 0x8c
+/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
+% 0x96
+/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
+% 0xa0
+/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
+% 0xaa
+/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
+% 0xb4
+/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
+% 0xbe
+/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
+% 0xc8
+/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
+% 0xd2
+/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
+% 0xdc
+/brace298 {<dd> show} def
+/brace299 {<de> show} def
+% 0xde
+
+/BracesSEncoding [
+  % 0x00
+  /.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
+  % 0x24
+  /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
+  % 0x47
+  /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
+  % 0x6a
+  /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
+  % 0x8d
+  /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
+  % 0xb0
+  /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
+  % 0xd3
+  /brace488 /brace489 /brace490 /brace491 /brace492 /brace493 /brace494
+  /brace495 /brace496 /brace497 /brace498 /brace499
+  % 0xdf
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef
+  % 0xff
+] def
+
+% 0x00
+/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
+% 0xa
+/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
+% 0x14
+/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
+% 0x1e
+/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
+% 0x28
+/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
+% 0x32
+/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
+% 0x3c
+/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
+% 0x46
+/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
+% 0x50
+/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
+% 0x5a
+/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
+% 0x64
+/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
+% 0x6e
+/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
+% 0x78
+/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
+% 0x82
+/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
+% 0x8c
+/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
+% 0x96
+/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
+% 0xa0
+/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
+% 0xaa
+/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
+% 0xb4
+/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
+% 0xbe
+/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
+% 0xc8
+/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
+% 0xd2
+/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
+% 0xdc
+/brace498 {<dd> show} def
+/brace499 {<de> show} def
+% 0xde
+
+/BracesOEncoding [
+  % 0x00
+  /.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
+  % 0x24
+  /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
+  % 0x47
+  /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
+  % 0x6a
+  /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
+  % 0x85
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  % 0xa8
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  % 0xcb
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  % 0xee
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef
+  % 0xff
+] def
+
+% 0x00
+/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
+% 0xa
+/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
+% 0x14
+/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
+% 0x1e
+/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
+% 0x28
+/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
+% 0x32
+/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
+% 0x3c
+/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
+% 0x46
+/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
+% 0x50
+/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
+% 0x5a
+/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
+% 0x64
+/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
+% 0x6e
+/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
+% 0x78
+/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
+% 0x82
+/brace574 {<83> show} def
+/brace575 {<84> show} def
+% 0x84
+
+FontDirectory /Emmentaler-Brace known {
+  /Emmentaler-Brace findfont dup length dict copy begin
+  /Encoding BracesNEncoding def
+  /Emmentaler-Brace-N currentdict definefont pop end
+  /Emmentaler-Brace findfont dup length dict copy begin
+  /Encoding BracesSEncoding def
+  /Emmentaler-Brace-S currentdict definefont pop end
+  /Emmentaler-Brace findfont dup length dict copy begin
+  /Encoding BracesOEncoding def
+  /Emmentaler-Brace-O currentdict definefont pop end
+} if
+
+FontDirectory /Emmentaler-11 known {
+  /Emmentaler-11 findfont dup length dict copy begin
+  /Encoding LilyNoteHeadEncoding def
+  /Emmentaler-11-N currentdict definefont pop end
+  /Emmentaler-11 findfont dup length dict copy begin
+  /Encoding LilyScriptEncoding def
+  /Emmentaler-11-S currentdict definefont pop end
+  /Emmentaler-11 findfont dup length dict copy begin
+  /Encoding LilyOtherEncoding def
+  /Emmentaler-11-O currentdict definefont pop end
+} if
+
+FontDirectory /Emmentaler-13 known {
+  /Emmentaler-13 findfont dup length dict copy begin
+  /Encoding LilyNoteHeadEncoding def
+  /Emmentaler-13-N currentdict definefont pop end
+  /Emmentaler-13 findfont dup length dict copy begin
+  /Encoding LilyScriptEncoding def
+  /Emmentaler-13-S currentdict definefont pop end
+  /Emmentaler-13 findfont dup length dict copy begin
+  /Encoding LilyOtherEncoding def
+  /Emmentaler-13-O currentdict definefont pop end
+} if
+
+FontDirectory /Emmentaler-14 known {
+  /Emmentaler-14 findfont dup length dict copy begin
+  /Encoding LilyNoteHeadEncoding def
+  /Emmentaler-14-N currentdict definefont pop end
+  /Emmentaler-14 findfont dup length dict copy begin
+  /Encoding LilyScriptEncoding def
+  /Emmentaler-14-S currentdict definefont pop end
+  /Emmentaler-14 findfont dup length dict copy begin
+  /Encoding LilyOtherEncoding def
+  /Emmentaler-14-O currentdict definefont pop end
+} if
+
+FontDirectory /Emmentaler-16 known {
+  /Emmentaler-16 findfont dup length dict copy begin
+  /Encoding LilyNoteHeadEncoding def
+  /Emmentaler-16-N currentdict definefont pop end
+  /Emmentaler-16 findfont dup length dict copy begin
+  /Encoding LilyScriptEncoding def
+  /Emmentaler-16-S currentdict definefont pop end
+  /Emmentaler-16 findfont dup length dict copy begin
+  /Encoding LilyOtherEncoding def
+  /Emmentaler-16-O currentdict definefont pop end
+} if
+
+FontDirectory /Emmentaler-18 known {
+  /Emmentaler-18 findfont dup length dict copy begin
+  /Encoding LilyNoteHeadEncoding def
+  /Emmentaler-18-N currentdict definefont pop end
+  /Emmentaler-18 findfont dup length dict copy begin
+  /Encoding LilyScriptEncoding def
+  /Emmentaler-18-S currentdict definefont pop end
+  /Emmentaler-18 findfont dup length dict copy begin
+  /Encoding LilyOtherEncoding def
+  /Emmentaler-18-O currentdict definefont pop end
+} if
+
+FontDirectory /Emmentaler-20 known {
+  /Emmentaler-20 findfont dup length dict copy begin
+  /Encoding LilyNoteHeadEncoding def
+  /Emmentaler-20-N currentdict definefont pop end
+  /Emmentaler-20 findfont dup length dict copy begin
+  /Encoding LilyScriptEncoding def
+  /Emmentaler-20-S currentdict definefont pop end
+  /Emmentaler-20 findfont dup length dict copy begin
+  /Encoding LilyOtherEncoding def
+  /Emmentaler-20-O currentdict definefont pop end
+} if
+
+FontDirectory /Emmentaler-23 known {
+  /Emmentaler-23 findfont dup length dict copy begin
+  /Encoding LilyNoteHeadEncoding def
+  /Emmentaler-23-N currentdict definefont pop end
+  /Emmentaler-23 findfont dup length dict copy begin
+  /Encoding LilyScriptEncoding def
+  /Emmentaler-23-S currentdict definefont pop end
+  /Emmentaler-23 findfont dup length dict copy begin
+  /Encoding LilyOtherEncoding def
+  /Emmentaler-23-O currentdict definefont pop end
+} if
+
+FontDirectory /Emmentaler-26 known {
+  /Emmentaler-26 findfont dup length dict copy begin
+  /Encoding LilyNoteHeadEncoding def
+  /Emmentaler-26-N currentdict definefont pop end
+  /Emmentaler-26 findfont dup length dict copy begin
+  /Encoding LilyScriptEncoding def
+  /Emmentaler-26-S currentdict definefont pop end
+  /Emmentaler-26 findfont dup length dict copy begin
+  /Encoding LilyOtherEncoding def
+  /Emmentaler-26-O currentdict definefont pop end
+} if
+
+% end encodingdefs.ps
index b0007e65ec86e0b528d9d5f4638bd0d9a28a4308..3a70c5c07d081c2efaae7ed951685249a93b0be8 100644 (file)
@@ -82,6 +82,7 @@
                    "-dNOPAUSE"
                    "-dBATCH"
                    "-r1200"
+                   (if (ly:bigpdfs) "-dSubsetFonts=false")
                    "-sDEVICE=pdfwrite"
                    (string-append "-sOutputFile="
                                   (string-join
index c6e8eb7855d94c64472b2dcef26ab44ddc1025f6..9e2b7521ad38f174573ddeaf7acbc086576e568a 100644 (file)
   "")
 
 (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 (ly:bigpdfs)
+      (string-append
+       "/" (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"
+       "/help" font-name " {\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")
+      (string-append
+       "/" (ps-font-command font)
+       " { /" font-name
+       " " (ly:number->string scaling) " output-scale div selectfont }"
+       " bind def\n")))
 
 ;; FIXME: duplicated in other output backends
 ;; FIXME: silly interface name
         "")
     "%%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"
+    "/helpEmmentaler-Brace where {pop helpEmmentaler-Brace} if\n"
+    "/helpEmmentaler-11 where {pop helpEmmentaler-11} if\n"
+    "/helpEmmentaler-13 where {pop helpEmmentaler-13} if\n"
+    "/helpEmmentaler-14 where {pop helpEmmentaler-14} if\n"
+    "/helpEmmentaler-16 where {pop helpEmmentaler-16} if\n"
+    "/helpEmmentaler-18 where {pop helpEmmentaler-18} if\n"
+    "/helpEmmentaler-20 where {pop helpEmmentaler-20} if\n"
+    "/helpEmmentaler-23 where {pop helpEmmentaler-23} if\n"
+    "/helpEmmentaler-26 where {pop helpEmmentaler-26} if\n"))
   (ly:outputter-dump-stencil outputter page)
   (ly:outputter-dump-string outputter "stroke grestore\nshowpage\n"))
 
                   (display (cdr f) port)
                   (display "%%EndFont\n" port))
                 (load-fonts paper)))
+  (if (ly:bigpdfs)
+      (display (procset "encodingdefs.ps") port))
   (display (setup-variables paper) port)
 
   ;; adobe note 5002: should initialize variables before loading routines.
     (write-preamble paper load-fonts port)
     (display "/mark_page_link { pop pop pop pop pop } bind def\n" port)
     (display "gsave set-ps-scale-to-lily-scale\n" port)
+    (display "/helpEmmentaler-Brace where {pop helpEmmentaler-Brace} if\n" port)
+    (display "/helpEmmentaler-11 where {pop helpEmmentaler-11} if\n" port)
+    (display "/helpEmmentaler-13 where {pop helpEmmentaler-13} if\n" port)
+    (display "/helpEmmentaler-14 where {pop helpEmmentaler-14} if\n" port)
+    (display "/helpEmmentaler-16 where {pop helpEmmentaler-16} if\n" port)
+    (display "/helpEmmentaler-18 where {pop helpEmmentaler-18} if\n" port)
+    (display "/helpEmmentaler-20 where {pop helpEmmentaler-20} if\n" port)
+    (display "/helpEmmentaler-23 where {pop helpEmmentaler-23} if\n" port)
+    (display "/helpEmmentaler-26 where {pop helpEmmentaler-26} if\n" port)
     (ly:outputter-dump-stencil outputter dump-me)
     (display "stroke grestore\n%%Trailer\n%%EOF\n" port)
     (ly:outputter-close outputter)))
index 45ef4e9ff3c147728e021188b52dce479c678d12..c4c0a4da07bb93d1547927c3a2be119a407031c6 100644 (file)
                       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 (and (ly:bigpdfs) (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)
       ""))
 
 (define (named-glyph font glyph)
-  (ly:format "~a /~a glyphshow " ;;Why is there a space at the end?
-             (ps-font-command font)
-             glyph))
+  (if (and (ly:bigpdfs) (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) "-N" ) glyph)
+              (if (or (string-startswith glyph "brace3") (string-startswith glyph "brace4"))
+                  (ly:format "~a ~a" (string-append (ps-font-command font) "-S" ) glyph)
+                  (ly:format "~a ~a" (string-append (ps-font-command font) "-O" ) glyph)))
+          (if (string-startswith glyph "noteheads")
+              (ly:format "~a ~a" (string-append (ps-font-command font) "-N" ) glyph)
+              (if (or (string-startswith glyph "scripts") (string-startswith glyph "clefs"))
+                  (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)
   "")