\postscript mit Library-Ergänzung

Begonnen von Arnold, Montag, 27. April 2020, 08:27

« vorheriges - nächstes »

Arnold

Hallo zusammen - vor allem den SCHEME-Experten.

Ich möchte das \postscript-Kommando erweitern um »einzubindende Bibliotheken«.

Diese Bibliotheken können Definitionen von Postscript-Operationen sein, aber genauso eine PS-Font-Definition (der Type-3-Font wird gerne für Logos verwendet). Eine solche Font-Definition ist dann auch im PDF vorteilhaft, wenn das Logo häufig verwendet wird, da es dann die Dateigröße kleiner hält.

In meinem Anwendungscode möchte ich zuerst die »Bibliothek« definieren, also in der Regel einen Dateinamen (irgendwo im Suchpfad für die LY-Dateien), und dem ein Symbol zuordnen.

In den entsprechenden Markups wird dann eine Erweiterung der \postscript-Anweisung aufgerufen - als weiteres Funktionsargument wird das oben genannte Symbol (bzw. eine Liste von Symbolen) übergeben, welche(s) beschreibt, welche der deklarierten Postscript-Resourcen dazu benötigt wird/werden.

Bei der Ausgabe in die PS-Datei muß nun also geprüft werden, ob die angeforderte Postcript-Resource schon ausgegeben wurde, und falls noch nicht wird diese vorangestellt. Damit möchte ich sicherstellen, daß die Resource nur einmal in die PS-Datei exportiert wird, und daß diese bei mehrfacher Anforderung nicht zu spät übertragen wird.

Mein Versuch, diese stencil-output-Funktion in der Anwender-Ebene zu definieren schlug fehl, (ly:register-stencil-expression 'embedded-ps-with-lib) genügte nicht. Erst als ich sie direkt in .../output-ps.scm definierte, konnte ich sie aufrufen, dann aber weder ein Symbol noch eine association-list an diese Funktion übergeben.

  • Wie definiert man eine stencil-output-Funktion außerhalb der Installationsdateien?
  • Wie kann man außerdem prüfen, ob es überhaupt eine Postscipt-basierte Ausgabe ist, um andernfalls auf ein Ersatz-Markup umschalten zu können?
  • Sollte die Deklaration der benutzen Fonts im \paper-Block passieren? Wie dann?

Arnold