Das mag oder kann nicht Ihre Rechnung passen, aber der Interpreter, den ich schrieb (xpost) verwendet Cairo für alle seine Grafiken und Schriftartfunktionen, einschließlich show
. Was auch immer die Unterstützung von Kairo sein mag, xpost steht nicht im Weg. Aber bevor du zu aufgeregt wirst, ist es ein Ein-Mann-Projekt und bietet noch nicht das vollständige Level-1-Postscript.
Edit: Die neueste Version unterstützt dies nicht. Here ist die letzte Version, die (listing) tat.
Hier ist meine C-Code für die Show Betreiber selbst.
OPFN_ void show(state *st, object s) {
char str[s.u.c.n+1];
memcpy(str, STR(s), s.u.c.n); str[s.u.c.n] = '\0';
//printf("showing (%s)\n", str);
if (st->cr) {
cairo_show_text(st->cr, str);
cairo_surface_flush(st->surface);
XFlush(st->dis);
}
}
Und von der Cairo docs:
cairo_show_text()
Leere cairo_show_text (cairo_t * cr,
const char * UTF-8);
Ein Zeichenoperator, der die Form aus einer Folge von UTF-8-Zeichen generiert, die entsprechend der aktuellen font_face, font_size (font_matrix) und font_options gerendert werden.
Diese Funktion berechnet zunächst eine Reihe von Glyphen für die Textzeichenfolge. Die erste Glyphe wird so platziert, dass ihr Ursprung am aktuellen Punkt liegt. Der Ursprung jedes nachfolgenden Glyphs ist gegenüber dem des vorherigen Glyphs um die Vorauswerte des vorherigen Glyphs versetzt.
Nach diesem Aufruf wird der aktuelle Punkt an den Ursprung verschoben, an dem das nächste Glyph in derselben Progression platziert wird. Das heißt, der aktuelle Punkt wird am Ursprung des letzten Glyphen-Offsets durch seine Vorlaufwerte liegen. Dies ermöglicht die einfache Anzeige einer einzelnen logischen Zeichenfolge mit mehreren Aufrufen von cairo_show_text().
Hinweis: Der Funktionsaufruf cairo_show_text() ist Teil dessen, was die Designer von cairo die Text-API "toy" nennen. Es ist praktisch für kurze Demos und einfache Programme, aber es wird nicht erwartet, dass es für ernsthafte Text verwendende Anwendungen geeignet ist. Siehe cairo_show_glyphs() für die "echte" Textanzeige-API in Kairo.
http://www.cairographics.org/manual/cairo-text.html#cairo-show-text
So ist es UTF-8 in Postscript, in der Nähe, wie ich herausfinden kann! :)
Tks, es ist wirklich peinlich, und etwas plattorm-abhängig (zusätzlich zu Schrift abhängig); aber bis jetzt ist es der einzige Schritt in die richtige Richtung, die ich gesehen habe – Javier