Der Editor atom erfreut sich großer Beliebtheit.
Derzeit sind 6000 Pakete und über 2000 Themes für den OpenSource Editor verfügbar, der auf den gängigen Betriebssystemen läuft.
Seit diesem Wochenende ist nun ein Paket für diesen Editor verfügbar.
Installiert wird er mit dem integrierten Paketmanager:
Menü “Preferences” -> “Install”
Dort eingeben speedata und auf “Packages” tippen
Nach dem Klick auf “Install”, ist das Paket installiert.
Alternativ dazu kann man das Paket mit dem Kommandozeilentool apm installieren:
apm install language-speedata-publisher
Autovervollständigung und Dokumentation im Editor Atom
Dieser Artikel bezieht sich auf den speedata Publisher in der Version 2.9.6. Andere Versionen haben womöglich andere Befehle oder die genannten Befehle zeigen ein anderes Verhalten. Bitte schau im Zweifelsfall in der Anleitung nach.
In der Serie »Feature der Woche« beschreibe ich einmal in der Woche mehr oder weniger nützliche Eigenschaften des Publishers. Kommentare gerne an mich per E-Mail oder einfach im Kommentarfeld.
Ein ganz neues Feature ist die Angabe von bleed="auto" beim Befehl <Image>.
Was ist das Problem?
Im professionellen Druck wird in der Regel nicht auf dem Endformat (z.B. DIN A4) ausgedruckt, sondern auf einem größeren Bogen, der dann zugeschnitten wird. Das erlaubt einen randlosen Druck, wo Bilder oder andere Flächen direkt bis zum Papierrand reichen. Um das zu erreichen, druckt man diese Objekte z.B. 3 Millimeter über den Rand hinweg und schneidet anschließend auf das Endformat.
Dieser sogenannte Beschnitt wird über <Options> gesteuert:
Im November hatte ich schon die rasterbasierte und die absolute Platzierung im Blog. Nun gibt es Neuigkeiten zur absoluten Positionierung (also mit der Angabe von Längeneinheiten bei row und column bei PlaceObject).
Bisher war es so, dass die rasterbasierte Platzierung Flächen im Raster als belegt markiert und damit keine anderen Objekte auf diesen Flächen ausgegeben werden können. Mit dem Schalter allocate="no" kann man diese Belegung abschalten. Die absolute Ausgabe von Objekten (z.B. column=“3cm” row=“5cm”, vom linken oberen Seiten gemessen) hingegen bewirkt keine Belegung der Flächen.
Diese kann man seit Version 2.9.5 über den Schalter allocate="yes" einschalten. Damit kann man das Umfließen von Texten mit absolut platzierten Objekten kombinieren.
allocate-left und allocate-bottom geben den zusätzlichen Rahmen an, der als belegt markiert werden soll. In diesem Fall wird ein Rahmen von mindestens 1mm links von der Box und mindestens 3mm unterhalb der Box eingefügt, immer auf ganze Rasterzellen aufgerundet.
Das Ergebnis:
Die Ausgabe des Listings oben.
Mit <Trace gridallocation="yes" grid="yes" />:
Umfließen mit Rasterbelegung sichtbar gemacht.
Die absolute Platzierung kann auch mit dem Feature der Bildumrisse kombiniert werden. Ein kleines Programm zum Erzeugen der Umrisse habe ich unter https://github.com/speedata/imageshaper veröffentlicht. Damit kann man zu einer Bilddatei eine XML-Datei erstellen, die den Bildumriss enthält. Der speedata Publisher kann dies auswerten und nur die vom Bild belegten Flächen als belegt markieren. Dazu muss nur die XML-Datei zur Bilddatei kopiert werden, so dass der Publisher diese findet.
Die vier grundlegenden Transformationen (aus der PDF-Spezifikation)
Mit dem Befehl <PlaceObject> können Texte, Bilder, Kästchen und andere Objekte ausgegeben werden.
Ein besonderes Objekt ist die <Transformation>, die Objekte drehen, stauchen und verzerren kann.
Der Befehl enthält wiederum das Objekt, das manipuliert werden soll. Das Grundgerüst ist folgendes:
Letzte Woche habe ich wieder ein Feature eingebaut, das ich in einem aktuellen Projekte benötige: Man kann die Textfarbe nun für eine Seite voreinstellen. Das ist praktisch, wenn z.B. auf der ersten Seite die Textfarbe weiß sein soll (weil auf einem dunklen Hintergrund geschrieben wird) und auf den Folgeseiten schwarz.
Unabdingbar ist das Feature, wenn bei der Textausgabe von <Output> mit <Text> ein Seitenumbruch mitten im Absatz vorkommt. Bisher ist es nicht möglich, dass der Text dann nach dem Umbruch automatisch eine andere Farbe bekommt.
Die Schriftfarbe wechselt automatisch von Weiß zu Schwarz
Dieser Artikel bezieht sich auf den speedata Publisher in der Version 2.9.3. Andere Versionen haben womöglich andere Befehle oder die genannten Befehle zeigen ein anderes Verhalten. Bitte schau im Zweifelsfall in der Anleitung nach.
In der Serie »Feature der Woche« beschreibe ich einmal in der Woche mehr oder weniger nützliche Eigenschaften des Publishers. Kommentare gerne an mich per E-Mail oder einfach im Kommentarfeld.
Pünktlich zur XMLPrague gibt es eine neue stabile Version des Publishers.
Es ist ein weiterer Schritt Richtung 3.0. Einige Verhaltensweisen haben sich geändert, weil sie sinnfrei waren. Das hatte ich auch schon im Beitrag vom September geschrieben. Es geht hauptsächlich um das Verhalten des Cursors, wenn man ein Objekt ausgibt, das an den rechten Rand ragt. Auch etliche Bugfixes sind enthalten
Ebenfalls wurde das Verhalten beim Laden von Bildern über href="..." verbessert.
Nun können auch Bilder über HTTPS abgerufen werden und gecached werden.
Bei den Trennungen gibt es auch Änderungen: U+2011 NON-BREAKING HYPHEN wird nun als solcher akzeptiert.
Diverse Sonderfarben sind im Publisher vorgegeben, so die Farbe Pantone 116.
Wird eine eigene Sonderfarbe definiert, die noch nicht im Publisher enthalten ist, muss sie CMYK-Werte enthalten, damit im PDF ein Ersatz dargestellt werden kann.
Sonderfarben sind im PDF an sich unbekannt und nur als Anweisung für den Drucker vorhanden.
Daher müssen im PDF ebenfalls Anweisungen enthalten sein, wie diese Farbe am Bildschirm oder auf Druckern, die diese Sonderfarbe nicht enthalten, ausgegeben werden.
Hier wird eine Farbe definiert, die im Publisher bei den Ausgabebefehlen unter dem Namen meinefarbe angesprochen wird.
Im PDF wird diese Farbe unter dem Namen speedatagrün geführt und in der Ausgabe erscheint diese dann in einem dunklen grün.
Die neue Farbe erscheint im PDF als eigener Farbkanal.
Dieser Artikel bezieht sich auf den speedata Publisher in der Version 2.8. Andere Versionen haben womöglich andere Befehle oder die genannten Befehle zeigen ein anderes Verhalten. Bitte schau im Zweifelsfall in der Anleitung nach.
In der Serie »Feature der Woche« beschreibe ich einmal in der Woche mehr oder weniger nützliche Eigenschaften des Publishers. Kommentare gerne an mich per E-Mail oder einfach im Kommentarfeld.
Eine Besonderheit beim speedata Publisher ist sicherlich, dass die Eingabesprache in XML formuliert ist.
XML ist in manchen Kreisen nicht sonderlich beliebt, besonders weil es verhältnismäßig »geschwätzig« ist:
Man muss für die Start-Tags auch immer Ende-Tags schreiben:
<PlaceObject> ...
</PlaceObject>
im Vergleich zu einer C-ähnlichen Schreibweise wie
placeOjbect(...)
ist das schon mehr Tipparbeit. Die Lösung für dieses »Problem« ist die Verwendung eines Texteditors, der gut mit XML umgehen kann.
Die Eingabe eines Start-Tags würde beispielsweise sofort auch das Ende-Tag einfügen.
Oder bei einer Änderung im Tagnamen würden sowohl Start-Tag als auch das Ende-Tag gleichzeitig geändert werden.
Gute XML-Editoren bewirken aber noch viel mehr, als nur die erleichterte Eingabe von Tags.
Was ist ein Schema?
In einem Schema (z.B. XML-Schema oder RelaxNG) stehen Informationen über den erlaubten Aufbau einer XML-Datei.
So steht im Schema, das mit dem speedata Publisher mitgeliefert wird, beispielsweise
Das Wurzelelement muss Layout heißen
Das Kindelement von PlaceObject muss entweder Barcode, Box, Circle, Frame, Image, Rule, Table, Textblock oder Transformation sein.
Das Attribut valign in der Tabellenzeile darf eines der Werte top, middle oder bottom sein
u.v.m.
Ebenso steht in dem mitgelieferten Schema die Dokumentation der einzelnen Befehle sowie die der Auwahlmöglichkeiten.
Ein guter XML-Editor kann ein solches Schema einlesen und dem Anwender die Eingabe des Quelltextes erheblich erleichtern.
Und mit erheblich meine ich das wirklich so.
Die Eingabe mit einem guten Schema mach viel Spaß und hat einige Vorteile gegenüber dem klassischen Texteditor:
Syntaxfehler werden sofort angezeigt
Befehle (Tags) müssen nicht vollständig eingegeben werden, weil der Editor eine Autovervollständigung bietet
Die erlaubten Werte in Attributen werden sofort auf sinnvolle Werte überprüft
Dokumentation steht direkt im Editor bereit
Im Prinzip das, was man von einer integrierten Entwicklungsumgebung (IDE) erwartet.
Auswahl an erlaubten Kindelementen
Erlaubte Attribute bei Textblock
Einbinden des RelaxNG-Schemas
Die Einbindung eines Schemas ist natürlich stark abhängig vom Editor.
Für oXygen XML kann man in den Einstellungen eine neue Dokumenttypen-Zuordnung erstellen.
Einerseits muss festlegen, bei welchem Namensraum das Schema benutzt werden soll
Verknüpfungsregeln
Dann muss man noch definieren, welches Schema für diese Verknüpfungsregeln geladen werden soll.
Das wird im zweiten Tab der Einstellung festgelegt:
Als Schema RelaxNG + Schematron einstellen
Ab sofort sollte zu jedem Layout im Namensraum
xmlns="urn:speedata.de:2009/publisher/en"
das Schema hinterlegt sein.
Das erkennt man daran, dass nun bei Eingabe einer öffnenden spitzen Klammer (<) eine Auswahl der Befehle erscheint.
Ist das Schema richtig eingebunden, dann erscheint eine Auswahlliste sobald man einen Befehl eingibt.
Dieser Artikel bezieht sich auf den speedata Publisher in der Version 2.7.11. Andere Versionen haben womöglich andere Befehle oder die genannten Befehle zeigen ein anderes Verhalten. Bitte schau im Zweifelsfall in der Anleitung nach.
In der Serie »Feature der Woche« beschreibe ich einmal in der Woche mehr oder weniger nützliche Eigenschaften des Publishers. Kommentare gerne an mich per E-Mail oder einfach im Kommentarfeld.