headerbild blog

»boxes and glue« oder: TeX-Implementierung in Go

Meine Hauptentwicklung ist der speedata Publisher, eine Software für datenbasiertes Publizieren (database publishing). Die Basis dafür ist (Lua)TeX, ein Satzprogramm das bekannt für seine hohe Ausgabequalität ist (einen Überblick über die Architektur habe ich an einer anderen Stelle im Blog). Zwar ist LuaTeX eine moderne Weiterentwicklung von TeX, das mit OpenType Schriftarten und erweitertem Zeichensatz zurecht kommt, doch die Entwicklung des speedata Publishers mit LuaTeX stößt immer wieder an Grenzen.

von Patrick Gundlach |

Neue Version 4.6

Es ist mal wieder Zeit für eine neue stabile Version. Hauptsächlich, weil sich bei macOS 12 (Monterey) etwas geändert hat, so dass der letzte stabile speedata Publisher nicht mehr ausführbar war (der Pfad zur splib-Bibliothek musste nun mit DYLD_LIBRARY_PATH anstelle von LD_LIBRARY_PATH angegeben werden - das aber nur als Information für die Techniker unter uns). In der Regel empfehle ich ja eh, immer die neuste und frischeste Entwicklerversion (ungerade Zahl an zweiter Stelle) zu nehmen, aber die Download-Statistiken zeigen, dass viele die stabile Version bevorzugen.

Es hat sich gar nicht so viel geändert unter der Haube:

von Patrick Gundlach |

Arbeiten mit Maßeinheiten

Der speedata Publisher kennt zwei unterschiedliche Modi beim Platzieren von Objekten.

  1. absolute Positionierung auf der Seite
  2. rasterbasierte bzw. relative Positionierung von Objekten

Die absolute Positionierung wird häufig benutzt um Logos und ähnliche fixe Seitenelemente auszugeben während die rasterbasierte Platzierung für Objekte gedacht ist, die fortlaufend auf der Seite ausgegeben werden müssen.

Die absolute Positionierung hat immer eine Maßeinheit anbei. So kann ein Objekt links oben bei Position (2cm, 2cm) ausgegeben werden. Die rasterbasierte Positionierung arbeitet mit den Zellen im (virtuellen) Seitenraster. Diese wird immer ohne Maßeinheit angegeben. Die erste Zelle links oben ist die Zelle (1,1).

Rechnen mit Maßeinheiten

von Patrick Gundlach |

Neue Version 4.4

Die Version 4.4 des speedata Publishers enthält wieder einige Verbesserungen und Erweiterungen. Dazu gehören:

  • Transparenz (für Text und Bilder)
  • MetaPost Integration
  • Binaries für Windows 64
  • Logische Dokumentstruktur (Hauptteil, Anhang, …)
  • Logische und tatsächliche Seitennummern
  • Verbesserte Hyperlinks innerhalb eines Dokuments (Hyperlinks auf Seiten, Seitennummern, Leitlinien, klickbare Bilder und Kästen)
  • und natürlich viele Fehlerkorrekturen (die meisten bei Tabellenköpfen und -füßen)
von Patrick Gundlach |

MetaPost Grafiken im speedata Publisher nutzen

Die Version 4.3.10 des speedata Publishers kann nun MetaPost-Grafiken ohne Umwege direkt einbinden.

Was ist MetaPost?

MetaPost ist eine Programmiersprache, mit der man Grafiken erstellen kann. So erzeugt man beispielsweise aus folgendem Programmcode:

beginfig(1)
    for a=0 upto 9:
      draw (0,0){dir 45}..{dir -10a}(6cm,0);
    endfor
endfig;

diese Grafik:

Die Zeichenbefehle sehen einfach aus, aber man muss die Syntax schon verinnerlicht haben, um das lesen zu können. Der grundlegende Aufbau sollte aber klar sein.

von Patrick Gundlach |

speedata auf den Chemnitzer Linux-Tagen

Die Chemnitzer Linux-Tage finden dieses Jahr virtuell statt. Es gibt sehr viele Vorträge und Workshops am nächsten Samstag und Sonntag (13./14.3.). Ich habe die Gelegenheit, den speedata Publisher am Sonntag Nachmittag vorzustellen. Ihr könnt einfach mit einem Browser dabei sein (ohne Anmeldung!) und im Anschluss an den Vortrag noch Fragen stellen. Der Vortrag selber dauert ca. 15 Minuten, ebenso lang ist die Fragezeit.

von Patrick Gundlach |

Neue Version 4.2

Vor vier Monaten habe ich die Version 4.0 veröffentlicht, als Start für viele Neuerungen. Zuerst erwartete ich deutlich sichtbare Inkompatibilitäten zur letzten stabilen Version, doch so wie es aussieht, gibt es viele neue Features, aber keine Änderungen bei bestehenden Dokumenten.

Unter der Haube hat sich viel geändert. Neu ist das ganze Thema Mehrsprachigkeit, das ich schon im Blog hatte und damit zusammenhängend die Einbindung von Schriftarten.

Fonts und Sprachunterstützung

Beim Einbinden von Schriftdateien gibt es nun die Wahl zwischen »alt« und »neu« (fontforge und harfbuzz). Die Voreinstellung ist derzeit noch fontforge, doch das wird sich irgendwann ändern. Daher ist es sinnvoll, die Dokumente jetzt schon mal mit der Option fontloader="harfbuzz" bei <LoadFontfile> zu testen.

von Patrick Gundlach |

Mehrsprachigkeit

Der speedata Publisher kann seit jeher mit mehrsprachigen Texten umgehen. Für sehr viele (westliche) Sprachen gibt es Trennmuster. Einfache Texte in Chinesisch waren schon immer möglich. Mit der Version 4.1 hat sich sehr viel im Bereich der Sprachfähigkeit getan. Nun können auch komplexe Sprachen wie Arabisch und gemischte rechts-nach-links (RTL) und links-nach-rechts (LTR) Texte korrekt dargestellt werden.

Der speedata Publisher integriert zwei wichtige Funktionen bzw. Bibliotheken, um das zu können. Das sind

  • harfbuzz Bibliothek
  • Bidi-Algorithmus

Harfbuzz

von Patrick Gundlach |

Version 4.0

Es ist knapp ein Monat her, dass ich die Version 4.0 veröffentlicht habe. Da einige größere Änderungen anstehen, habe ich mich entschlossen, die Versionsnummer von 3 auf 4 zu erhöhen.

Die letzte stabile Version 3.8 ist vom Januar 2020. In den gut sieben Monaten ist natürlich wieder einiges passiert. Hier ein paar der Highlights:

von Patrick Gundlach |

speedata in 1000 Jahren und TUG 2020 Konferenz

Die TUG 2020 Konferenz ist zu Ende. Da es eine online-Konferenz war, konnte man prima seinen Talk vorher aufzeichnen und dann einfach online präsentieren. Als »Abfallprodukt« habe ich das Video auf youtube online gestellt:

Vielleicht ist es ja auch für den Besucher hier interessant. Länge: ca. 30 Minuten.

Die Folien liegen auf notist und auf der Übersichtsseite der Konferenz gibt es auch mein Paper dazu als PDF zum Download.

von Patrick Gundlach |