Willkommen auf den RagTime-Expertenseiten.
Auf diesen Seiten kann zu RagTime diskutiert werden, RagTime-Kenner können ihr Know-How anbieten und zeigen. Viele Informationen und Beispieldateien stehen kostenlos zur Verfügung, sie finden aber auch Angebote kommerzieller Schulungsunternehmen und von Beratern.
Was können Sie auf diesen Seiten?
Als nicht-registrierter Besucher dürfen Sie sich die Seiten ansehen und Dateien herunterladen.
Wenn Sie sich als Teilnehmer registrieren, können Sie zusätzlich:
Letztere sind allerdings "moderiert", das heißt, die Beiträge müssen von einem der Verwalter freigeschaltet werden, bevor andere sie sehen können. Während der normalen Büro-Zeiten wird dies recht schnell geschehen.
Diese Seiten wenden sich an registrierte Besucher und geben eine kleine Einführung, wie man mit diesen Web-Seiten umgeht.
Wie registriert man sich?
Damit Sie Beiträge schreiben können, müssen Sie auf diesem Web-Server registriert sein.
Klicken Sie links auf "Anmelden", dann darunter auf "Konto einrichten". Geben Sie in dem folgenden Formular bitte mindestens einen Benutzernamen und eine E-Mail-Adresse an. Die Mail-Adresse wird zum Beispiel benötigt, um Ihnen Ihr vorläufiges Kennwort zuzusenden.
Auch Benachrichtigungen über neue Beiträge (frei konfigurierbar) funktionieren natürlich nur, wenn das System Sie per Mail erreichen kann.
Wie viele persönliche Informationen Sie eingeben, bleibt Ihnen überlassen. Diese Informationen sind für andere registrierte Besucher sichtbar. Auch diese können Sie noch später ändern.
Sobald Sie Ihr Kennwort per E-Mail erhalten haben, können Sie sich unter "Anmeldung" an dem System anmelden. Sie gelangen auf die Seite mit Ihren Daten. Mit dem Link "Mein Konto" können Sie diese Seite jederzeit wieder öffnen.
Die Seite für Ihr Konto zeigt drei Reiter: "Anzeigen", "Bearbeiten" und "Benachrichtigungseinstellungen".
Unter "Bearbeiten" können Sie Ihr vorläufiges Kennwort ändern. ebenso wie Ihren Benutzernamen und Ihre E-Mail-Anschrift. Beachten Sie auch die Untergruppe "Persönliche Informationen", die jetzt unter den Seitenreitern steht. Klicken Sie sie, um die Daten zu ändern, die andere Benutzer über Sie sehen können.
Unter "Benachrichtigungs-Einstellungen" können Sie das System veranlassen, Sie per E-Mail zu informieren, wenn neue Beiträge erschienen sind.
Lesen Sie auch die ausführlichen Informationen zu Konto-Einstellungen
Wie schreibt man Beiträge?
Wenn Sie als registrierter Besucher angemeldet sind, erscheint in der Navigation links unter Ihrem Namen der Link "Beitrag schreiben".
Klicken Sie ihn an, wenn Sie auf dem Web-Site einen Beitrag veröffentlichen wollen. Alle Beiträge (mit Ausnahme des Forums) sind moderiert, das heißt, sie müssen von einem Administrator freigeschaltet werden.
Es gibt mehrere Web-Formulare, die Sie für Beiträge benutzen können. Sie unterscheiden sich etwas in ihren Möglichkeiten:
Die meisten Beiträge werden mit dem Link "Beitrag mit Download-Dokument" angelegt. Das Web-Formular erlaubt Ihnen, ein kleines Bild als Vorschau zu benutzen, und ein größeres Bild für den Text selbst. Einem Beitrag können Dateien (RagTime-Dokumente zum Beispiel) angehängt werden.
Wenn Sie für einen Beitrag mehrere Bilder brauchen, dann benutzen Sie bitte den Link "Mehrere Texte und Bilder". Das Formular erlaubt bis zu sechs Bilder und Textabschnitte. Im übrigen entspricht es dem normalen "Beitrag mit Download-Dokument".
Anbieter von RagTime-Trainingsveranstaltungen können diese mit "Schulung" ankündigen. Zu solchen Beiträgen können Datum und Uhrzeit festgelegt werden. Der Beitrag erscheint dann in der Liste rechts unter den "Nächsten Terminen" und im Veranstaltungskalender.
Sie können an dieser Stelle auch mit "Forum-Beitrag" eine neue Diskussion im Forum beginnen, einfacher geht das jedoch im Forum selbst.
Klicken Sie in der Navigation links unter "Diskussion" auf "RagTime-Forum". Die Liste mit den aktuellen Forum-Beiträgen wird gezeigt, Beiträge mit den neuesten Antworten stehen oben.
Mit dem Link "Neue Diskussion anfangen" können Sie neues Thema in dem Forum beginnen.
Klicken Sie auf eines der Themen, sehen Sie den ursprünglichen Diskussionsbeitrag mit allen Antworten. Jeweils unter jedem Abschnitt gibt es den Link "Antworten". Benutzen Sie ihn, wenn Sie sich an der Diskussion zu dem Thema beteiligen wollen.
Beiträge im Forum sind nicht moderiert, d.h. sie sind sofort öffentlich. Alle Beiträge werden auch an die Mailing-Liste zu RagTime weiter geleitet, die macnews.de betreibt.
Weshalb kann man sich Diskussionen zu einigen Teilnehmern die Informationen anzeigen lassen, zu anderen nicht?
Dieses Forum zeigt auch Beiträge von Teilnehmern der RagTime-Mailing-Liste von macnews.de. Zu Beiträgen aus der Mailing-Liste liegen keine weiteren Informationen zum Verfasser vor.
Download-Seiten anlegen
Bitte beachten Sie die grundsätzlichen Spielregeln: Veröffentlichen Sie nichts, an dem andere Personen das Copyright haben! Veröffentlichen Sie bitte auch nichts, was andere Besucher beleidigen könnte.
Jeder Beitrag braucht einen Titel, den Sie gleich im ersten Feld des Formulars eingeben. In dem Menü darunter wählen Sie aus, wo in der Navigation des Download-Bereichs die Seite erscheinen soll.
Es gibt zwei Beschreibungsfelder: "Kurzbeschreibung" und "Ausführliche Beschreibung". Die Kurzbeschreibung erscheint in Listendarstellungen, z.B. auf der Startseite und wenn ein Besucher auf einen der Links in der Navigation zum Download-Bereich klickt. Die "Ausführliche Beschreibung" wird erst sichtbar, wenn jemand auf "Ganzen Beitrag lesen" klickt.
Enstsprechend gibt es für eine Vorschau des Dokuments zwei Bildfelder, in denen Sie beispielsweise .png-Dateien auf den Server laden können. "Kleines Bild" erscheint in den Listendarstellungen, klickt ein Leser auf "Ganzen Beitrag lesen" sieht er zusätzlich ein ggf. vorhandenes großes Bild.
Geben Sie Ihre Beschreibung in die Felder ein. Dabei könne Sie entweder einfachen Text benutzen, oder aber auch einen Teil der HTML-Auszeichnungsmarken. Klicken Sie auf das kleine + hinter "Filtered HTML" um zu sehen, welche HTML-Tags hier funktionieren.
Im unteren Bereich des Formulars können Sie die Datei anhängen. Falls es eine geeignete Abbildung gibt, laden Sie diese bitte zusätzlich unter "Kleines Bild" oder "Großes Bild" auf den Server. Benutzen Sie bitte Standardformate wie .png oder .jpg.
Download-Seiten haben folgende Voreinstellungen, die nach dem Freischalten greifen:
- Der Beitrag erscheint automatisch auf der Startseite
- Registrierte Besucher dürfen frei Kommentare zu den Seiten schreiben
Dieses Web-Formular für Veröffentlichungen ist die Alternative zu "Beitrag mit Download-Dokument", wenn Sie in einem Beitrag mehrere Bilder benötigen.
Das Formular unterscheidet sich von der normalen Web-Formular für Veröffentlichungen nur dadurch, dass es je sechs Felder für Texte, Bilder und Bildzuschriften gibt. Die von Ihnen benutzten Felder werden in der Veröffentlichung in dieser Reihenfolge gezeigt.
Schulungs-Ankündigungen anlegen
Wenn Sie selbst Schulungen zu RagTime anbieten (oder aber von einer RagTime-Schulung wissen), können Sie sie mit dem Formular "Schulung" in das System stellen.
Jeder Beitrag braucht einen Titel, den Sie gleich im ersten Feld des Formulars eingeben. Schulungs-Hinweise sollten bereits hier den Veranstaltungsort erkennen lassen. Falls sich die Veranstaltung an eine eingeschränkte Gruppe richtet (z.B. Hochschulveranstaltung nur für Studenten), vermerken Sie bitte auch das "eingeschränkt" gleich im Titel. Damit ersparen Sie anderen Besuchern viele unnötige Mausklicks.
Geben Sie eine Beschreibung ein. Dabei könne Sie entweder einfachen Text benutzen, oder aber auch einen Teil der HTML-Auszeichnungsmarken. Klicken Sie auf das kleine + unter "Formatierungsrichtlinien" um zu sehen, welche HTML-Tags hier funktionieren. Anker können benutzt werden, falls Sie auf eine ausführliche Beschreibung verzweigen wollen.
Geben Sie für die Veranstaltung den Beginn und das Ende ein, gleich ob die Veranstaltung nur an einem Tag stattfindet oder an mehreren aufeinander folgenden.
Ggf. können Sie noch eine Datei anhängen, z.B. ein PDF mit genaueren Informationen.
Voreinstellungen für Schulungs-Seiten:
Schulungsseiten gehören zu den Terminen, von denen immer die nächsten in dem Navigationsbalken rechts erscheinen. Betrachtet ein Besucher eine dieser Seiten, steht ihm der Kalender zur Verfügung, um sich durch weitere Termine zu navigieren.
Schulungsseiten dürfen nicht kommentiert werden.
Um einen Text hervorzuheben, schreiben Sie ihn so: "<em>hervorgehoben</em>". Er erscheint dann als hervorgehoben.
Alternativ kann "strong" benutzt werden: Schreiben Sie es dann so: "<strong>hervorgehoben</strong>". Er erscheint dann als hervorgehoben.
Wenn Sie einen einfachen Web-Link wie www.ragtime.de schreiben, erscheint er automatisch als www.ragtime.de
Entsprechend wird aus "support@ragtime.de" automatisch support@ragtime.de.
Links im Wiki-Stil erlauben, einen anderen Text als die Link-Adresse selbst zu haben. Einen Link wie:
Seiten der RagTime GmbH
können Sie schreiben als "[http://www.ragtime.de|Seiten der RagTime GmbH]". Im Text erscheinen die Worte nach dem senkrechten Strich, der Teil davor ist der Link.
Wie bei der Wikipedia können auch doppelte eckige Klammern benutzt werden.
Wiki-Links zu Seiten innerhalb der Experten-Seiten beginnen mit Doppelpunkt, gefolgt von dem Teil, der hinter ".../experts/" steht. Beispiel;
[:node/118|Anleitung Formatierung]
verlinkt zu dieser Seite. (Jede Seite bei den RagTime Experts hat so eine eindeutige "node"-Kennung.)
Alle Seiten auf diesem Web Site sind eindeutig in der Form "node/xxxx" ansprechbar, einige Seiten haben aber auch Namen oder zusätzliche andere Kennungen.
Weitere mögliche Anfänge für Wiki-Links:
[w:RagTime_(Software)|Wikipedia zu RagTime] verlinkt zu der RagTime-Seite in der Wikipedia in der Form:
[google:RagTime|Google-Suche zu RagTime] erzeugt den Link "http://www.google.com/search?q=%22RagTime%22"
Dieselbe Technik können Sie verwenden für Links der Form "mailto:" und "ftp://".
Kommentare schreiben
Zu vielen Seiten dürfen frei Kommentare geschrieben werden. ("Frei" soll hier heißen: Diese Beiträge werden nicht moderiert. Wir behalten uns natürlich vor, Seiten zu entfernen, die beleidigenden Inhalt haben oder Rechte verletzen.)
Kann eine Seite kommentiert werden, gibt es unten auf dieser Seite den Link "Antworten". Klicken Sie ihn an um das Formular für Kommentare zu erhalten. Kommentare bestehen aus einem Betreff und dem eigentlichen Kommentar selbst. Für die Formatierung können Sie dieselben Techniken benutzen, wie für Seiten. Klicken Sie auf das "+"-Zeichen unter "Formatierungsrichtlinien" um die Liste der möglichen Tags zu sehen.
Mit Verfassern von Seiten Kontakt aufnehmen
Sofern ein Benutzer dies zugelassen hat, können Sie ihn über den Link "dem Verfasser schreiben" erreichen. Sofern der betreffende das nicht ausdrücklich abgeschaltet hat, wird er einmal pro Tag per E-Mail über ungelesene Nachrichten in diesem System informiert. Es gibt also eine gute Chance, den Betreffenden auf diesem Weg wirklich zu erreichen.
Bitte beachten Sie, dass Beiträge von "admin" nicht unbedingt von einem Administrator geschrieben wurden. "admin" ist ein sehr abstrakter Benutzer und sollte nur für Nachrichten benutzt werden, die das Funktionieren dieses Web-Sites betreffen.
Registrierte Benutzer dieses Web Sites finden nach dem Anmelden in der Navigation links unter ihrem Namen den Punkt "Mein Konto".
Unter dem Reiter »Anzeigen« sehen Sie alles, was auch andere Besucher von experts.ragtime.de über Sie sehen können. Falls dort mehr steht, als Sie wollen: Ändern Sie die Einträge unter »Bearbeiten - Persönliche Informationen«.
Ein Klick auf diesen Link führt auf Einstellungsseiten, auf denen vor allem zu folgenden Bereichen Änderungen möglich sind:
Die Tafel "Anzeigen" gibt einen Überblick über Informationen, die auch andere Besucher dieses Web-Sites sehen können.
Beispielsweise über die Suche kann ein Besucher nach registrierten Benutzern suchen. Klickt er auf eine Fundstelle, sieht er die Informationen, die auch auf dieser Tafel erscheinen. Sie bearbeiten sie unter "Bearbeiten-Persönliche Informationen".
Die Tafel "Bearbeiten" hat zwei Unter-Tafeln: "Kontoeinstellungen" und "Persönliche Informationen".
"Kontoeinstellungen" betreffen Ihren Zugang zu diesem System, "Persönliche Informationen" enthält die Dinge, die andere Benutzer über sie sehen können.
Beachten Sie, dass es in beiden Tafeln eine E-Mail-Adresse gibt: Die unter "Kontoeinstellungen" benutzt der Server, um Ihnen Nachrichten zu senden. Die unter "Persönliche Informationen" ist ausschließlich eine Information für andere Benutzer.
Private Nachrichten ermöglichen
Ist diese Option eingeschaltet, können andere Benutzer dieses Servers Ihnen Nachrichten senden. Diese Nachrichten erscheinen nach dem Anmelden unter dem Navigationslink "Posteingang".
Ist diese Option eingeschaltet, erscheint auf jeder Seite, die sie veröffentlichen und auf jedem Kommentar, den Sie schreiben, ein Link, um Ihnen direkt zu antworten.
Tägliche E-Mail für ungelesene Nachrichten
Ist die Option eingeschaltet, sendet der Server einmal pro Tag eine Information an Sie, wenn noch ungelesene Post in Ihrem Posteingang liegt.
Wenn Sie private Nachrichten erlauben, sollten Sie diese Option einschalten.
Benutzername
Dies ist der Name, unter dem Sie sich anmelden können und der als Verfassername für Ihre Beiträge erscheint. Der Name kann nachträglich geändert werden und erscheint dann an allen Stellen korrigiert. Mit Umlauten haben wir bisher keine Probleme beobachten können.
E-Mail-Adresse
Dies ist die Mail-Adresse, an die der Server Ihnen Nachrichten schickt, z.B. über ungelesenen Posteingang oder auch über neue Seiten auf dem Server, wenn unter "Benachrichtigungs-Einstellungen" eingeschaltet.
Passwort
Ändern Sie hier bei Bedarf Ihr Passwort. Es muss zweimal eigegeben werden, um Tippfehler zu vermeiden.
Die Tafel "Persönliche Information" enthält Informationen, die für andere Benutzer über Sie sichtbar sind.
Das Feld "E-Mail-Anschrift" ist ein freies Textfeld. Eine Adresse kann also als "irgendwer -ad- irgend.eine.domain" eingegeben werden, falls Sie den Missbrauch durch Spam-Roboter fürchten. Die Leser des Feldes werden das schon verstehen.
Das Feld "Web" ist ein normales URL-Feld, der Eintrag kann also in den Informationen über Ihr Konto einfach angeklickt werden. Bitte geben Sie das "http://" mit ein.
Der Server kann Sie per E-Mail informieren, wenn es neue Beiträge gibt. Zur Zeit ist die Einstellung, dass einmal pro Tag eine Benachrichtigung mit der Liste der neuen Beiträge erzeugt wird.
Hauptschalter
Wählen Sie hier "Aktiviert" wenn Sie über neue Seiten informiert werden wollen. Ist der Hauptschalter "Deaktiviert" sind die übrigen Einstellungen dieser Tafel wirkungslos.
Detaillierte Einstellungen
Dieser Abschnitt kann im Laufe der Zeit variieren, je nach Modulen, die wir einschalten.
Schalten Sie "Ãœber neuen Inhalt benachrichtigen" auf "aktiviert", wenn Sie Zusammenfassungen mit neuen Seiten erhalten wollen.
Die meisten Seiten werden mit einem Einleitungstext und einem Haupttext geschrieben. (Einleitungstexte sind die, die Sie z.B. auf der Startseite sehen.) Wählen Sie unter "Inhalt", wie ausführlich die Benachrichtigung sein soll. In den meisten Fällen wird "Nur Titel" zu den übersichtlichsten Listen führen.
Schalten Sie "Bei neuen Kommentaren benachrichtigen" auf "aktiviert", wenn auch Kommentare anderer Benutzer in die Benachrichtigung aufgenommen werden sollen. Die meisten Seiten dieses Sites können von allen registrierten Benutzern kommentiert werden.
Auch Antworten im Forum sind "Kommentare" im Sinne der Benachrichtigungen.
Informationen zur Technik, auf der diese Web-Seiten beruhen
Diese Web-Seiten beruhen auf dem Web Content Management System "Drupal",
Wenn Sie sich für dieses System interessieren, finden Sie ausführliche Informationen auf den Seiten.
Vergleiche auch
Note: A French version of this text can be found here
______________
RagTime 5 kann unter Mac OS in fast allen Bereichen von einem AppleScript gesteuert werden. Damit lassen sich sowohl regelmäßige Aufgaben innerhalb RagTimes automatisieren als auch durch Integration mit anderen Programmen komplexe Speziallösungen bauen.
AppleScript ist zugleich die interne Scriptingsprache von RagTime (Macintosh). Scripts können also sowohl das Programm von außen steuern als auch innerhalb des Programms ablaufen (und dabei ggf. andere Programme steuern).
Die Abbildungen zeigen dasselbe Script, einmal in dem Script-Bearbeitungsfenster von RagTime, einmal in einem separaten Script Editor. In beiden Fällen verhält sich das Script gleich, wenn es gestartet wird.
Dieser Artikel gibt eine knappe Übersicht über die Arbeit mit AppleScript in RagTime. Er wurde ursprünglich für RagTime Version 5 geschrieben und hier leicht angepasst.
Wenn Sie AppleScripts für RagTime entwickeln, ist das normale Vorgehen:
Zunächst bauen Sie das Script in einem externen Editor auf. Das kann der Apple Skripteditor sein oder auch das Produkt eines anderen Herstellers wie der Script Debugger von Late Night Software. In unseren Abbildungen eines Editors wird durchweg der Script Debugger gezeigt.
Ist das Script fertig und soll in RagTime installiert werden, kopieren Sie den kompletten Scripttext aus Ihrem Editor. In RagTime legen Sie unter „Extras -> AppleScript -> Skripte verwalten“ ein neues Script an und setzten den Scripttext dort ein. Klicken Sie dann den Knopf „Aufheben“. In RagTime dauert vor allem bei längeren Scripten das Kompilieren und aufheben recht lange. Dieser Schritt sollte also zum Schluss erfolgen.
Umgekehrt können Sie auch den Text eines bestehenden Scripts aus RagTime kopieren und in einem anderen Script-Editor einsetzen. Dies Vorgehen ist sinnvoll, wenn Sie ein bestehendes Script überarbeiten wollen.
Beispielscripts in diesem Aufsatz sind vollständig gehalten, Sie können Sie also aus dem Browser in einen Script Editor kopieren und haben nach dem Kompilieren ihre bevorzugte Syntax-Färbung.
Der Name im RagTime-Scripteditor erscheint danach im RagTime-Menü, der Beschreibungstext wird als Hilfstext angezeigt, wenn die Maus über der Anweisung bleibt.
Versions-Hinweis: Beispiele für RagTime 6.5 und aktuelles OS X 10.5 angepasst. Dabei einige Änderungen insbesondere zum Objekt selection, die notwendig wurden. Bei der Gelegenheit hab ich noch Seiten zum Anlegen von Polygonen und Bézierkurven und zur Transformation von Zeichenobjekten ergänzt.
Juni 2009, Jürgen Schell
Mit einem Script-Editor können Sie das RagTime-Verzeichnis der vorhandenen AppleScript-Elemente öffnen. Am einfachsten geht das, indem Sie das Programm RagTime auf den Script Editor ziehen. Es wird ein Fenster angezeigt, dass bei den meisten Editoren links die Gruppen der AppleScript-Elemente zeigt. Unsere Abbildung zeigt das Fenster im Apple Scripteditor.
Die Liste ist in „Suiten“ gegliedert, Gruppen von sinnvoll zusammenhängenden Objekte und Anweisungen.
Die folgenden Seiten führen durch die wichtigsten Objekte, ihre Eigenschaften und ihre Anweisungen.
Der Dialog „Extras -> AppleScript -> Scripte verwalten“? zeigt in der Liste links zwei Haupteinträge: Die RagTime-Hilfsmittel (je nach RagTime-Version heißen sie etwas unterschiedlich) und den Titel Ihres aktiven Dokuments.
In den Hilfsmitteln und im Dokument können AppleScripts gesichert werden. Scripts in den Hilfsmitteln stehen immer zur Verfügung, wenn mit RagTime gearbeitet wird. Scripts in einem Dokument stehen nur zur Verfügung, wenn dieses Dokument im Vordergrund ist.
Durch Ziehen können Sie Scripts von einem Dokument auf die Hilfsmittel übertragen und umgekehrt. Ein Doppelklick auf ein Script öffnet den RagTime-Script-Editor für dieses Script. Mit dem Knopf „Neu“ legen Sie ein neues Script an.
Der Script-Editor von RagTime hat ähnlich dem AppleScript-Editor einen Bereich für die Beschreibung und für das Script selbst. Zusätzlich gibt es noch eine Bereich für den Titel.
Die Beschreibung hat eine Besonderheit: Was Sie hier eintippen, erscheint als Balloon-Hilfe, wenn ein Anwender mit der Maus auf den Script-Menüeintrag geht.
Beachten Sie noch den Knopf „Aufheben“. Er heißt absichtlich nicht „Sichern“. Wenn Sie ihn klicken, wird ein Script dem Dokument zugefügt (bzw. Änderungen in das Dokument übernommen). Dies findet aber zunächst nur im Hauptspeicher statt. Wenn Sie das Dokument nicht sichern, geht das Script beim Schließen verloren.
(Die Hilfsmittel werden automatisch gesichert, wenn Sie RagTime beenden.)
Wenn Scripte sich innerhalb RagTimes und außerhalb gleich verhalten, weshalb sollte man sie überhaupt in RagTime installieren?
a) Scripte in RagTime können Sie direkt aus dem Menü Extras aufrufen während Sie in RagTime arbeiten. Sie können Scripte auch Knöpfen auf Dokumentseiten zuweisen.
b) Der Teil der Scripte, der RagTime steuert, läuft innerhalb RagTimes deutlich schneller. (Wird zugleich ein anderes Programm wie FileMaker angesprochen, ist es für diesen Teil der Scripte gleichgültig, ob sie in RagTime oder im Skripteditor laufen.)
c) Scripte können in einem RagTime-Dokument gesichert sein. Dann kann das Dokument zusammen mit seinen Scripts eine komplexe Lösung bilden, die vollständig innerhalb einer Datei gesichert ist und sich deshalb leicht weitergeben lässt.
Textkomponenten heißen in RagTimes Scriptspache “text flows�. Ein text flow besteht aus paragraphs, words und characters.
Folgendes Script weist den Textinhalt einer ganzen Textkomponente einer Variable zu:
tell application "RagTime 6.5"
     tell document 1
          set derText to text flow 1 as text
     end tell
end tell
Beachten Sie dabei die Anweisung zur Typumwandlung, “as text�. Dies ist ungewöhnlich, aber ohne die Umwandlung wird der Text nicht korrekt zurück geliefert.
“as text� liefert liefert auch Text mit Zeichen aus anderen Schriftsystemen zurück, vgl. Abbildung.
Weitere typische Konstruktionen:
tell application "RagTime 6.5"
     tell text flow 1 of document 1
          set derText to paragraphs 2 thru 6 as text
     end tell
end tell
weist “derText� den Textinhalt der Absätze 2 bis 6 zu. Etwas aufpassen muss man bei Wörtern: Der Code
tell application "RagTime 6.5" -- Problembeispiel!!!
     tell text flow 1 of document 1
          set derText to words 2 thru 6 as text
     end tell
end tell
führt zu meist unerwünschten Resultaten. RagTime liefert die Wörter als Liste zurück und AppleScript verbindet deren Bestandteile zu einem Text. Das Ergebnis ist die Sequenz der Wörter, getrennt vom aktuellen text item delimiter von AppleScript, ohne Satzzeichen etc. Die korrekte Sequenz liefert:
tell application "RagTime 6.5"
     tell text flow 1 of document 1
          set derText to text from word 2 to word 6 as text
     end tell
end tell
Will man nur die Wörter, getrennt von Leerzeichen haben, kann man die erste Variante nehmen und den text item delimiter umsetzen:
tell application "RagTime 6.5" --Problembeispiel!!!
set AppleScript's text item delimiters to " "
tell text flow 1 of document 1
set derText to words 2 thru 3 as text
end tell
set AppleScript's text item delimiters to ""
end tell
(Man sollte den text item delimiter zum Schluss zurücksetzen, sonst kann es Nebenwirkungen auf andere Scripts geben.)
Texte werden am einfachsten mit “make new text� eingefügt:
tell application "RagTime 6.5"
     tell text flow 1 of document 1
          make new text at end with data " Schlusswort"
     end tell
end tell
Am Ende der Komponente wird “ Schlusswort� angehängt. Die Position kann mit den gängigen “at beginning�, “at end�, “at after� und “at before� erfolgen. Beispiele:
tell application "RagTime 6.5"
     tell text flow 1 of document 1
          make new text at after paragraph 2 with data "Dies ist ein zusätzlicher Absatz nach Absatz 2\r"
     end tell
end tell
Beachten Sie, dass nur am Ende des Textes ein Return steht, nicht am Anfang. “after paragraph� erzeugt immer einen neuen Absatz.
Eine Besonderheit von Texten ist, dass man oft dort etwas einfügen will, wo noch nichts steht. Soll heißen: Nicht Buchstabe 2 eines Absatzes soll auf xyz gesetzt werden, sondern zwischen Buchstabe 2 und 3 soll xyz eingefügt werden. In der von Apple normierten Text Suite ist das Hilfsmittel dafür der “insertion point�. Der folgender Code setzt am Anfang des zweiten Absatzes Text ein:
tell application "RagTime 6.5"
     tell text flow 1 of document 1
          set insertion point before paragraph 2 to "Dies ist ein neuer Anfangssatz für Absatz 2. "
     end tell
end tell
Statt “before paragraph 2� könnte auch “after paragraph 1� stehen. Der Effekt wäre derselbe. In dieser Notation können Sie das Ende eines Absatzes ansprechen in der Form:
...
set insertion point after character -2 of paragraph 2 to...
...
Achten Sie darauf, dass der insertion point mit after oder before, nicht aber mit at benutzt wird: Das Ziel ist nicht ein bestehendes Objekt.
Formeln sind in RagTime Eigenschaften. Bei Tabellen ist es intuitiv recht klar, dass Formeln als Eigenschaften von Zellen gefasst werden. In Texten mag das zunächst etwas verblüffen. Man setzt nicht eine Formel an einer Textstelle ein sondern man setzt die Formeleigenschaft einer Textstelle.
Formeln werden am einfachsten als Eigenschaft des insertion point gesetzt. Bei der Gelegenheit kann auch gleich das Werteformat präzisiert werden.
tell application "RagTime 6.5"
     tell text flow 1 of document 1
          set insertion point before paragraph 2 to " "
          set formula of insertion point before paragraph 2 to "Heute()"
          set value format of first character of paragraph 2 to "Vollständiges Datum"
     end tell
end tell
fügt am Anfang des zweiten Absatzes ein automatisches Datum ein, gefolgt von einem Leerzeichen. Analog:
tell application "RagTime 6.5"
     tell text flow 1 of document 1
          set insertion point before paragraph 2 to "\t"
          set paragraph numbers of insertion point before paragraph 2 to ""
     end tell
end tell
Dieser Code setzt eine (römische) Absatznumerierung am Anfang von Absatz 2 ein, gefolgt von einem Tab. (Die Syntax für Absatznummer-Formeln finden Sie in der RagTime On-Screen-Referenz unter dem Stichwort “Absatznummern (Menü)�)
Im Falle von Bildern braucht man fast immer den Import. Folgender Code lädt eine Datei in ein RagTime-Dokument:
set dasBild to choose file with prompt "Bitte Bild wählen"
tell application "RagTime 6.5"
     tell document 1
          make new picture at end with data dasBild
     end tell
end tell
Das Bild erscheint im Inventar und ist nirgends platziert. Die Komponente hat den Namen der Bilddatei. Folgender Code lädt ein neues Bild in eine bestehende Komponente:
set dasBild to choose file with prompt "Bitte Bild wählen"
tell application "RagTime 6.5"
     tell document 1
          change picture 1 to dasBild
     end tell
end tell
Bei der change-Anweisung kann man auch expizit angeben, ob das Bild mit der Datei verknüpft sein soll oder nicht: “...dasBild with link to file� oder “...dasBild without link to file�. Soll ein Bild mit Verknüpfung geladen werden, benutzt man zuerst make ohne data, dann change:
set Bilddatei to choose file with prompt "Bitte Bild wählen"
tell application "RagTime 6.5"
     tell document 1
          set dasBild to make new picture at end
          change dasBild to Bilddatei with link to file
     end tell
end tell
Unter den properties von Bildern befinden sich welche, die den guten RagTime-Kenner verblüffen werden: scaling, horizontal scaling und vertical scaling.
Ein Bild kann in einem Dokument mehrfach platziert sein und dabei in jedem der Container eine andere Skalierung haben. Skalierung ist genau genommen nicht die Eigenschaft eines Bildes sondern einer konkreten Installation des Bildes. Sehen wir uns zuerst an, was die Abfrage einer Skalierung liefert. In einem Dokument haben wir dafür zwei Bilder geladen. Das erste ist einmal platziert und auf 50% skaliert. Das zweite ist doppelt platziert, einmal mit 25%, einmal mit 75 % Skalierung. In das folgende Script sind die Antworten aus dem AppleEvent Log hineinkopiert:
tell application "RagTime 6.5"
     tell document 1
          get scaling factor of picture 1
          --> 0.5
          get scaling factor of picture 2
          --> {0.25, 0.75}
     end tell
end tell
Im Falle des einfach platzierten Bildes wird eine Zahl geliefert, im anderen eine Liste. Die Liste enthält alle vorkommenden Skalierungsfaktoren. Ist ein Bild mehrfach platziert aber immer mit derselben Skalierung, wird nur eine Zahl und keine Liste geliefert.
Mit set darf nur eine Zahl benutzt werden:
tell application "RagTime 6.5"
     tell document 1
          set scaling factor of picture 1 to 0.5
     end tell
end tell
Dieser Code setzt die Skalierung aller Installationen von Bild 1 auf 50%.
Wollen Sie bei mehrfach installierten Bildern mit der Skalierung einer bestimmten Installation arbeiten, führt der Weg über den contents des Containers.
Die Abfrage:
tell application "RagTime 6.5"
     tell page 1 of layout 1 of document 1
          scaling factor of contents of rectangle 2
     end tell
end tell
Die Form beim setzen:
tell application "RagTime 6.5"
     tell page 1 of layout 1 of document 1
          set scaling factor of contents of rectangle 2 to 0.3
     end tell
end tell
Dichter an der RagTime-Bedienung über Menü ist die Anweisung “align picture�. Hier einige Beispiele:
tell application "RagTime 6.5"
     tell document 1
          align picture picture 1 relative size fitting picture to frame
     end tell
end tell
passt alle Installationen eines Bildes an den Container an. Dabei erscheint ggf. die Meldung, ob die Einstellung “Original Seitenverhältnis bewahren� ausgeschaltet werden soll.
Mit der Zeile “align picture picture 1 relative size fitting picture to frame keeping proportions� kann das Seitenverhältnis bewahrt werden.
align picture kann nicht direkt für einzelne Installationen benutzt werden
tell application "RagTime 6.5" -- Problem-Beispiel!!!
     tell page 1 of layout 1 of document 1
          align picture (contents of rectangle 1) horizontally at left side
     end tell
end tell
richtet alle Installationen aus. Dies ist einer der wenigen Fälle, in denen Sie beim RagTime-Scripting notfalls über eine Auswahl arbeiten müssen:
tell application "RagTime 6.5"
     tell page 1 of layout 1 of document 1
          select contents of rectangle 1
     end tell
     align picture selection horizontally at left side
end tell
(Achtung: Weil Dokumente keine Auswahl kennen sondern nur das Programm und Fenster, muss hier das align picture außerhalb des “tell page...� stehen!)
Formatvorlagen sind generell eine Zusammenfassung von Eigenschaften unter einem Namen, die dann Objekten insgesamt zugewiesen werden können. Eine Schriftvorlage umfasst z.B. die Schriftart, -größe, -farbe etc. Eine Absatzvorlage kennt Ränder, Zeilen- und Absatzabstände... Linienvorlagen kennen Linienstärken, -strichelungen, Arten von Linienenden...
Formatvorlagen sind Bestandteil eines Dokuments auf oberster Ebene. Bei der Arbeit stehen immer die Vorlagen aus zwei Dokumenten zur Verfügung: die des aktuellen Dokuments und die des RagTime-Hilfsmittel-Dokuments.
Weil neu angelegten Objekten in einem neuen Dokument immer bestimmte Standardvorlagen aus den Hilfsmitteln zugeordnet wird (solange der Anwender keine andere wählt), steckt in diesen Vorlagen auch ein großer Teil der RagTime-Voreinstellungen, beispielsweise, welche Schriftart ein neues Dokument voreingestellt bekommt.
Bei allen Unterschieden in den einzelnen Merkmalen werden Formatvorlagen sehr einheitlich bearbeitet.
tell application "RagTime 6.5"
     tell document 1
          make new character style sheet at end
     end tell
end tell
erzeugt eine neue Schriftvorlage mit dem Standardnamen (“Ohne Titel�), öffnet das Fenster zur Bearbeitung der Vorlagen und wählt sie aus.
Nicht geöffnet wird das Fenster, wenn die Vorlage zusammen mit ihren properties angelegt wird:
tell application "RagTime 6.5"
     tell document 1
          make new character style sheet with properties {name:"Vorlage 1", font:"Arial", size:10} at end
     end tell
end tell
Das Ergebnis ist eine Schriftvorlage namens “Vorlage 1� im Dokument, die 10 Punkt Arial benutzt.
Die meisten Arten von Formatvorlagen kennen Hierarchien für vererbte Merkmale. Eine Schriftvorlage unterhalb von Standardschrift kann alle Merkmale von Standardschrift erben, die Größe z.B. könnte man dagegen aus der Vererbung herausnehmen und fest, unvererbt festlegen. Wenn man dann die Schriftart von Standardschrift ändert, ändert sich auch die (vererbte) Schriftarteigenschaft des untergeordneten Stils, die Größe würde in diesem Beispiel aber nicht mit geändert werden. Für die Vererbung muss man neue Vorlagen in der Hierarchie einordnen können. Betrachten Sie folgendes Script:
tell application "RagTime 6.5"
     tell document 1
          set stil_1 to (make new character style sheet with properties {name:"Top Stil"} at before character style sheet 1)
          set stil_2 to (make new character style sheet with properties {name:"Kind 1"} at end of stil_1)
          set stil_3 to (make new character style sheet with properties {name:"Kind 2"} at end of stil_1)
          set stil_4 to (make new character style sheet with properties {name:"Enkel"} at end of stil_2)
     end tell
end tell
Der Stil “Top Stil� wird vor dem ersten vorhandenen Stil angelegt. Da der bisher erste Stil immer auf oberster Ebene (d.h. ohne geerbte Eigenschaften) liegt, liegt jetzt auch Top Stil auf oberster Ebene.
Unterhalb von Top Stil werden die beiden Stile “Kind 1� und “Kind 2� angelegt. “Enkel� dagegen wird unterhalb von “Kind 1� angelegt. Wenn man dieses Script auf ein neues Dokument anwendet, sieht die Anordnung der Schriftvorlagen im Inventar aus wie Abgebildet.
Es gibt im Dokument spezielle Vorlagen für Farben, die zu einem von drei Farbmodellen gehören, die RagTime kennt: RGB, CMYK und CIE Lab.
Grundsätzlich werden Farben wie folgt angelegt:
tell application "RagTime 6.5"
     tell document 1
          make new named color with properties ¬
               {name:"Lab-Rot", kind:process, color:{LabL:50, Laba:80, Labb:80}} at end
     end tell
end tell
Die Script-Bezeichnung für benannte Farben ist “named color�. Im record der properties ist ein Eintrag wiederum ein record: color. Für Lab- und RGB-Farben hat dieser record drei Einträge, für CMYK 4. Die benutzten Koordinaten im record bestimmen das Farbmodell. Beispiele für die drei Modelle:
color: {LabL:80, Laba:-50, Labb:-60}
color: {red:0.0, green:82.0, blue:100.0}
color: {cyan:55.0, magenta:0.0, yellow:6.0, black:0.0}
(Es ist in diesen records sinnlos, Koordinaten verschiedener Modelle zu mischen.)
Bei Lab liegen die Werte für Luminanz im Bereich 0 bis 100, die beiden Farbton-Koordinaten a und b liegen im Bereich von -127 bis +128.
Die Komponenten von RGB- und CMYK-Farben werden in Prozent angegeben, also im Wertebereich von je 0 bis 100.
Infografiken haben sehr viele Eigenschaften, die meisten sind aber einfach zu handhaben. Als Einstieg zeigen wir ein Script, dass ein komplettes Beispiel-Dokument aufbaut. Zunächst wird ein Rechenblatt auf einer Seite mit ein paar Werten angelegt. (Die Werte werden in den Rechenblattbereich einfach als Text eingetragen. Dies entspricht einer manuellen Eingabe einschließlich der normalen Typerkennung. Man könnte auch den Bereich A2:B6 in einem Durchlauf setzen, indem man abwechselnd Tabulatoren und returns zwischen den Zahlen einfügt. Die Konstruktion hier wurde gewählt, damit Kopieren / Einsetzen aus dem Web-Browser funktioniert.)
Dann wird eine Infografik erzeugt, in einem Rechteck platziert und ihre Eigenschaften gesetzt:
-----------------------------
set Werte1 to "4
6
3
8"
set Werte2 to "2
3
9
3"
tell application "RagTime 6.5"
     set dasdokument to (make new document with properties {component types:layout} at end)
     tell dasdokument
          delete every drawing object of page 1 of layout 1
          set dieTabelle to (make new table at end)
          tell dieTabelle
               set range "A2:A6" to Werte1
               set range "B2:B6" to Werte2
          end tell
          make new rectangle at beginning of page 1 of layout 1 with data {100, 50, 400, 250}
          set contents of rectangle 1 of page 1 of layout 1 to dieTabelle
          make new rectangle at beginning of page 1 of layout 1 with data {100, 300, 400, 800}
          -- Damit ist die Seite aufgebaut und der Code für die Grafik kann beginnen
          set dieGrafik to (make new graph at end)
          set contents of rectangle 1 of page 1 of layout 1 to dieGrafik
          set chart type of dieGrafik to xy graph
          set neueserie to (make new series at end of dieGrafik)
          set formula of x value list of neueserie to name of dieTabelle & "!A2:A7"
          set formula of y value list of neueserie to name of dieTabelle & "!B2:B7"
     end tell
end tell
-----------------------------
Der einzige interessante Trick hier ist, wie die Formeln für die Datenreihe aufgebaut wird. Die Formel wird als Text übergeben. Sie enthält den Namen des Rechenblatts, dann ein Semikolen und abschließend den Bereich. Der Teil ab dem Semikolen ist hier als Textkonstante fest eingegeben. Der Name davor wird über “name of dieTabelle� berechnet.
Pipelines sind Bestandteile des Dokuments auf oberster Ebene und nicht einzelnen Komponenten zugeordnet. Master Pipelines sind die Variante, die für Stammlayouts benutzt wird. Wiederum sind sie nicht Bestandteil des Stammlayouts sondern des Dokuments.
Angelegt werden sie mit einer Liste von Referenzen auf Container. Ein Script-Beispiel vermittelt die Struktur am besten. Angenommen wird ein Dokument mit einem Layout und diversen Seiten. Jeweils rectangle 1 auf jeder Seite soll in die Pipeline aufgenommen werden:
set rechteckListe to {}
tell application "RagTime 6.5"
     tell document 1
          tell layout 1
               repeat with n from 1 to count pages
                    copy (a reference to rectangle 1 of page n) to end of rechteckListe
               end repeat
          end tell
          set diePipeline to make new pipeline with data rechteckListe at end
     end tell
end tell
Nach der repeat-Schleife enthält rechteckListe die Referenzen auf die Rechtecke, in der make-Anweisung werden sie übergeben. Die Variable diePipeline enthält anschließend einen Wert wie
pipeline "Pipeline 1" of document id 1 of application "RagTime 6.5"
Soll die Pipeline anschließend noch im Script bearbeitet werden, muss man sich diesen Bezug unbedingt in eine Variable schreiben, man hat sonst kaum eine Chance, die Pipeline wieder anzusprechen.
Im folgenden Script erzeugen wir eine Pipeline, die abwechselnd das rectangle 1 jeder Seite mit einer vertikalen und einer horizontalen Verbindung versieht. Installiert man in dieser Pipeline ein Rechenblatt, werden die ersten Spalten auf den (linken) Seiten 2, 4, 6.. gezeigt. Die folgenden Spalten der Tabelle erscheinen auf den (rechten) Seiten 3, 5, 7...
set rechteckListe to {}
tell application "RagTime 6.5"
     tell document 1
          tell layout 1
               set seitenAnzahl to count pages
                    repeat with n from 2 to seitenAnzahl by 2
                         copy (a reference to rectangle 1 of page n) to end of rechteckListe
                    end repeat
          end tell
          set diePipeline to make new pipeline with data rechteckListe at end
          repeat with n from 1 to round ((seitenAnzahl - 1) / 2) rounding down
               set horizontal successor of pipeline element n of diePipeline to rectangle 1 of page (n * 2 + 1) of layout 1
          end repeat
     end tell
end tell
In der ersten Schleife wird die vertikale Pipeline auf mit den Rechtecken auf den geraden Seiten angelegt.
In der zweiten Schleife wird jedem Element der Pipeline ein horizontaler Nachfolger zugewiesen.
Die Eigenschaften horizontal successor, vertical successor, horizontal predecessor und vertical predecessor gehören den Objekten “pipeline element�. Mit ihnen kann eine Pipeline an bestimmten Positionen gezielt erweitert oder umgelenkt werden
Die wichtigsten zwei Objekte des Programms sind die geöffneten Dokumente und die Fenster.
Wollen Sie ein Dokument ansprechen und kennen dessen Namen, können sie ihn benutzen:
tell application “RagTime 6.5�
     tell document “Bericht 1� -- nach Name
          -- hier der Code
     end tell
end tell
Das Dokument wird dann unabhängig davon angeprochen, ob es gerade im Vordergrund ist oder ein anderes.
Wollen Sie das Dokument ansprechen, an dem der Benutzer gerade arbeitet, benutzen Sie den Index:
tell application “RagTime 6.5�
     tell document 1 -- nach Index
          -- hier der Code
     end tell
end tell
document 1 ist immer das gerade aktive Dokument. Das nächste, das dahinter liegt, ist document 2 usw.
Folgender Code legt ein neues RagTime-Dokument, beginnend mit einem Layout, an:
tell application "RagTime 6.5" set neues_dokument to (make new document at end with properties {component types:layout}) end tell
Dasselbe funktioniert natürlich auch mit anderen Komponenten zum Start. Hier für ein Rechenblatt:
Bei Bedarf kann man das Dokument auch gleich benennen, obwohl es noch gar nicht gesichert ist:
Oder man sichert die Datei gleich nach dem Anlegen:
set save_file to (((path to documents folder) as text) & "Testdatei.rtd") tell application "RagTime 6.5" set neues_dokument to (make new document at end with properties {component types:layout}) save neues_dokument in file save_file end tell
Fenster werden ähnlich angesprochen, aber ein Dokument kann mehrere geöffnete Fenster haben. Beachten Sie dabei, dass auch das Inventar ein Fenster ist.
Mögliche Ergebnisse von
tell application “RagTime 6.5�
     get name of window 1
end tell
sind zum Beispiel:
--> Bericht 1, Layout 1
--> Bericht 1, Inventar
--> Schriftvorlagen
--> Dokumenteinstellungen
Sie sehen an den Beispielen, dass ein Fenster nicht unbedingt eine Dokumentkomponente enthalten muss.
Ein RagTime-Dokument ist ähnlich wie ein Dateisystem aufgebaut. Sollen bestimmte Objekte in einem Dokument verändert werden, muss deshalb zunächst die Komponente angesprochen werden.
Komponenten sind:
layout
master layout -- Stammlayout
text flow -- eine Textkomponente
table -- ein Rechenblatt
drawing -- eine Zeichnung
picture -- ein Bild
button -- ein Knopf
graph -- eine Infografik
Layouts und Stammlayouts sind dabei wieder aus ihren Seiten aufgebaut - technisch entprechen sie tatsächlich weitgehend einer Zeichnungskomponente.
Typische Code-Fragmente sind deshalb:
tell application “RagTime 6.5�
     tell document 1
          tell text flow “Text 1�
               -- hier der Code
          end tell
     end tell
end tell
oder aber:
tell application “RagTime 6.5�
     tell document 1
          tell layout 1
               tell page 2
                    -- hier der Code
               end tell
          end tell
     end tell
end tell
Wiederum können die Komponenten über ihren Namen oder den Index angesprochen werden. Der Index hängt mit der Reihenfolge zusammen, in der die Komponenten dem Dokument zugefügt oder aus ihn gelöscht werden. Solange Sie während des Script-Ablaufs keine Komponente löschen, bleibt deshalb ein Index konstant.
Erzeugt werden Komponenten mit “make�. Die make-Anweisung benötigt in fast allen Fällen eine Positionsangabe der Form “at beginning� oder “at end�, selbst, wenn technisch nur eines von beiden möglich ist (zu Ausnahmen der Abschnitt über fehlende Zielangaben).
tell application “RagTime 6.5�
     tell document 1
          make new table at end
     end tell
end tell
erzeugt ein neues Rechenblatt im Dokument. Es ist in keinem Container installiert. Sie sehen es nur im Inventar aufgelistet und können es von dort mit einem Doppelklick in einem eigenen Fenster öffnen.
Seiten können eine flexible Referenz im make haben:
tell application "RagTime 6.5"
     tell layout 1 of document 1
          make new page at after page 1
     end tell
end tell
Analog: “at end�, “at before page 1�.
Das Programm und Fenster haben eine Vielzahl von Eigenschaften. Für die Navigation in einem Script ähnlich wichtig wie Fenster und Dokumente ist die “selection�.
Die selection des Programms ist das Objekt, dass der Benutzer im aktiven Fenster ausgewählt hat. Zugleich ist selection auch eine Eigenschaft von Fenstern. Damit können Sie zusätzlich auf die Auswahl in weiter hinten liegenden Fenstern zugreifen.
Auf die selection des Programms kann nur zugegriffen werden, wenn RagTime im Vordergrund ist.
tell application "RagTime 6.5"
     activate
     get selection
end tell
oder
tell application "RagTime 6.5"
     get selection of window 2
end tell
Beispiele für Antworten:
--> insertion point after character 5 of contents of text flow "Text 1" of document id 1 of application "RagTime 6.5"
--> rectangle 1 of page 1 of layout "Layout 1" of document id 1 of application "RagTime 5"
--> cell "A1" of table "Rechenblatt 1" of document id 1 of application "RagTime 6.5"
Wichtig: Die selection kann für des Programms und die Fenster angesprochen werden, nicht aber für Dokumente. Während
tell application "RagTime 6.5"
     tell window 1
          get selection
     end tell
end tell
ein korrekter Code ist, führt
tell application "RagTime 6.5" -- Fehlerbeispiel
     tell document 1
          get selection
     end tell
end tell
zu einer Fehlermeldung!
Beachten Sie weiter, dass das Resultat von selection eine vollständige Referenz ist. Folgender Code ist deshalb OK:
tell application "RagTime 6.5"
     tell window 1
          set Auswahl to selection
     end tell
     tell document 1
          -- hier weiterer Code
          delete Auswahl
          -- hier weiterer Code
     end tell
end tell
Tabellen sind eine angenehm klar gegliederte Struktur. Entsprechend sind die Objekte in Tabellen aus Script-Sicht auch sehr übersichtlich. Es gibt columns, rows, ranges, cells.
In der ersten Lage zeigt das folgende Script zusammen mit der Abbildung des Resultats, wie Zellbereiche angesprochen werden:
tell application "RagTime 6.5"
     tell table 1 of document 1
          set color of column 2 to {cyan:80, magenta:80, yellow:20, black:5}-- dunkelblau
          set color of row 3 to {cyan:5, magenta:100, yellow:100, black:20}-- dunkelrot
          set color of cell 5 of column 3 to {cyan:0, magenta:0, yellow:0, black:40}-- hellgrau
          set color of cell "C6" to {cyan:20, magenta:20, yellow:20, black:50}-- dunkelgrau
          set color of range "B10:D15" to {cyan:5, magenta:100, yellow:100, black:0}-- kräftiges rot
     end tell
end tell
Wenn ein Rechenblatt mehrere Lagen hat, sollten Sie Zellen in anderen Lagen als 1 mit der Bereichsbezeichnung ansprechen:
...
set color of range "[3]B:[3]B" to {cyan:80, magenta:80, yellow:20, black:5}
...
setzt die Farbe von Spalte B in Lage 3.
Wird in eine RagTime-Zelle etwas getippt, erfolgt eine automatische Typerkennung. Ziffernsequenzen werden als Zahlen erkannt, Zeichenfolgen wie “15.2.2002� als Datum etc.
Wird, wie auf der vorangehenden Seite, ein Text mit “value of� an eine Zelle übergeben, erfolgt keine Typerkennung.
...
set value of cell "A2" to "15.2.2002" liefert einen Text in der Zelle ab.
Setzt man dagegen die Zelle ohne explizit die value-Eigenschaft zu benutzen, erfolgt die Typerkennung wie bei manueller Eingabe:
set cell “A2� to “15.2.2002�
erzeugt ein Datum. Beispiel:
tell application "RagTime 6.5"
     tell column 1 of table 1 of document 1
          set cell 1 to "15%"
          -- die Zelle A1 enthält die Zahl 0,15 mit der Formatierung Prozent
          set value of cell 2 to "15%"
          -- die Zelle A2 enthält den Text "15%"
     end tell
end tell
Der Weg über “value of� ist direkter und deshalb schneller. Werden in einer Schleife viele Werte gesetzt, sollte man deshalb value of cell benutzen, wenn man nicht ausdrücklich die Typerkennung haben will.
Ähnlich wie im grafischen User Interface kann die Typerkennung von Zellen auch abgeschaltet werden:
tell application "RagTime 6.5"
     tell table 1 of document 1
          set preset type of column 2 to single line text
     end tell
end tell
setzt die Spalte B der Tabelle auf einfachen Text. Zulässige Werte für "set preset type" sind:
auto
single line text
multi line text
Die wichtigsten Eigenschaften einer Zelle sind ihr value und ihre formula.
tell application "RagTime 6.5"
     tell column 1 of table 1 of document 1
          set value of cell 1 to "abc"
          set value of cell 2 to 250.052
     end tell
end tell
trägt in die Zelle A1 den Text “abc� ein, in Zelle A2 die Zahl 250,052
Folgendes Script erzeugt in zwei Zellen dieselbe Formel, aber mit einer unterschiedlichen Technik:
tell application "RagTime 6.5"
     tell column 1 of table 1 of document 1
          set formula of cell 1 to "Summe(B:B)"
          set sylk formula of cell 2 to "SUM(C[1]:C[1])"
     end tell
end tell
Sowohl in Zelle A1 als auch A2 wird die Formel “Summe(B:B)� eingetragen. Der Unterschied ist: Variante 1 funktioniert nur mit einem deutsch-sprachigen RagTime, Variante 2 mit allen Sprachen. SYLK-Formeln sind unabhängig von der Sprache normiert. Wie bekommen Sie die Syntax für eine SYLK-Formel heraus? Einfach mit einem Script. Installieren Sie sich folgendes Hilfsscript in RagTime:
-- Hilfsscript für SYLK-Syntax
tell application "RagTime 6.5"
     set dieSYLKFormel to (sylk formula of selection) as text
end tell
set the clipboard to dieSYLKFormel
Wählen Sie eine Zelle mit einer Formel aus und rufen das Script auf. Die Formal steht danach in der SYLK-Syntax in der Zwischenablage und kann in einem Script eingesetzt werden.
path to me
Läuft ein Script innerhalb RagTimes, liefert path to me den Pfad zur RagTime-Programmdatei. Wenn Sie ein Script in der Entwurfsphase in einem Script Editor anlegen, ist das Resultat naturgemäß ein anderes. Das Verhalten des Scripts innerhalb von RagTime kann aber ohne Probleme bereits in der Entwurfsphase erzwungen werden: Machen Sie RagTime zum parent des Scripts. Irgendwo am Anfang muss folgende property-Deklaration stehen:
property parent : application "RagTime 6.5"
Alle Anweisungen werden dann zuerst an RagTime geschickt und erst später in der Hierarchie ggf. weitergeleitet.
Umgekehrt setzt folgendes Script auch innerhalb von RagTime an der Auswahl den Pfad zum Programm FileMaker ein (sofern die Auswahl Text annehmen kann):
property parent : application "FileMaker Pro"
tell application "RagTime 6.5"
set selection to (path to me as text)
end tell
(Hinweis: Im vorangehenden Beispiel ist das »tell application "RagTime 6.5"« auch dann unbedingt nötig, wenn da Script innerhalb von RagTime läuft. Die parent-Eigenschaft sorgt sonst dafür, dass die selection-Abfrage an FileMaker geschickt wird!)
Die Lebesdauer von properties
Scripts werden innerhalb von RagTime nach bloßem Ablauf nicht neu in das Dokument oder die Hilfsmittel zurück geschrieben. Wird während eines Script-Ablaufs eine property geändert und das Script später neu aufgerufen, überlebt deshalb die Änderung nur so lange, wie sich das Script im Hauptspeicher befindet. Für ein Script im Dokument bedeutet das: Eine property überlebt, bis Sie das Dokument schließen. Für ein Script in den Hilfsmitteln bedeutet das: Die property überlebt, bis Sie RagTime beenden. Ein Beispielscript:
property Eigenschaft : 1
display dialog "Die Eigenschaft beträgt " & Eigenschaft as text buttons {"OK"} default button 1
set Eigenschaft to Eigenschaft + 1
Ist dieses Script in einem Dokument gesichert, zeigt der Dialog beim ersten Aufruf nach Öffnen des Dokuments immer 1, beim nächsten Aufruf 2 etc. Wird das Dokument geschlossen und wieder geöffnet, beträgt der Wert wieder 1.
Ist das Script in den Hilfsmitteln gesichert, zeigt der Dialog beim ersten Aufruf nach Programmstart eine 1. Mit jedem Aufruf wird um 1 hoch gezählt, bis Sie RagTime beenden.
Zeichnungen und Seiten sind aus drawing objects aufgebaut. Sie umfassen gezeichnete Objekte wie Rechtecke und Kurven sowie grafische Texte.
Die Objekte werden über ihren Index oder - sofern sie haben - über ihren Namen angesprochen. Der Name kann vom Anwender über die Palette Objektkoordinaten vergeben werden, oder das Script legt sie mit einem Namen an.
Der Index zählt in der Zeichnung von vorn nach hinten: Das am weitesten vorn liegende Zeichnungsobjekt hat den Index 1, das nächste 2 usw.
drawing objects haben für die Varianten Unterklassen:
rectangle -- Rechteck
graphic line -- Linie
graphic text -- Graphischer Text
arc -- Bogen
oval
sector
polygon
Bezier curve
multigon -- Vieleck
Wird das Objekt über die Unterklasse angesprochen, kann der Index niedriger sein. polygon 1 kann drawing object 5 sein. Es ist das am weitesten vorn liegende Polygon.
tell application "RagTime 6.5"
     tell document 1
          delete rectangle 1 of page 1 of layout 1
     end tell
end tell
löscht das am weitesten vorn liegende Rechteck der Seite 1 von Layout 1, selbst, wenn davor noch ein Oval liegt. “delete drawing object 1� dagegen löscht das am weitesten vorn liegende Objekt, gleich, ob ein Rechteck, ein grafischer Text etc. (Um das am weitesten hinten liegende Objekt zu löschen, benutzen Sie den Index -1: delete rectangle -1 of page 1 of layout 1
Erzeugt werden Zeichnungsobjekte mit make. Dabei muss die hinten/vorn-Position mit z.B. “at end� oder “at beginning� angegeben werden.
tell application "RagTime 6.5"
     tell document 1
          make new rectangle at beginning of page 1 of layout 1
     end tell
end tell
legt ein Rechteck auf Seite 1 des Layouts 1 an, das VOR allen anderen Objekten liegt. Soll es hinten liegen, benutzt man “at end�.
Wie bei Seiten kann auch “at before� und “at after� benutzt werden:
tell application "RagTime 6.5"
     tell page 1 of layout 1 of document 1
          make new rectangle at after drawing object 1 with data {100, 100, 200, 300}
     end tell
end tell
erzeugt ein Rechteck in der zweiten Ebene von vorn und legt die Position auf der Seite gemessen in Punkt fest.
Zuerst wird mitten auf einer Seite ein Kreis gezeichnet und mit »Zeichnung – Objektart – Bézier-Kurve« umgewandelt. Dann werden die Punkte mit dem Testscript abgefragt. In meinem Fall ist das Ergebnis die Liste
{{158.7401, 409.6062}, {158.7401, 336.809}, {217.7539, 277.7952}, {290.5511, 277.7952}, {363.3483, 277.7952}, {422.3621, 336.809}, {422.3621, 409.6062}, {422.3621, 482.4034}, {363.3483, 541.4172}, {290.5511, 541.4172}, {217.7539, 541.4172}, {158.7401, 482.4034}, {158.7401, 409.6062}}
RagTime legt die Punkte bei dem Kreis beginnend bei 9 Uhr im Uhrzeigersinn an. Hervorgehoben hab ich die Punkte 3 bis 5. Sie werden etwas umgestaltet für die Tropfenform.
Folgendes Script wird nun für die Zeichnung benutzt:
set punkteListe to {{158.7401, 409.6062}, {158.7401, 336.809}, {217.7539 + 50, 277.7952}, {290.5511, 277.7952 - 150}, {363.3483 - 50, 277.7952}, {422.3621, 336.809}, {422.3621, 409.6062}, {422.3621, 482.4034}, {363.3483, 541.4172}, {290.5511, 541.4172}, {217.7539, 541.4172}, {158.7401, 482.4034}, {158.7401, 409.6062}}
tell application "RagTime 6.5"
     set neuesDokument to (make new document with properties {component types:drawing} at end)
     tell drawing 1 of neuesDokument
          set dasPolygon to (make new Bezier curve at beginning with data punkteListe with properties {color:{red:10, green:60, blue:60}})
         Â
     end tell
end tell
Hervorgehoben sind wieder die Punkte mit den Änderungen. Das Resultat ist ein garantiert symmetrischer Tropfen.
Gruppen von Zeichnungsobjekten sind in RagTime ein weiteres Objekt der Seite / der Zeichnung. Um Objekte zu gruppieren legt man das neue Gruppenobjekt an und übergibt die Bestandteile als Daten:
tell application "RagTime 6.5"
     tell page 1 of layout 1 of document 1
          make new drawing group at end with data {rectangle 1, rectangle 2, rectangle 3}
     end tell
end tell
Der Code legt auf der Seite eine neue Gruppe an und die ersten drei Rechtecke sind die gruppierten Objekte.
Für die Umkehrung gibt es ein eigenes Verb:
tell application "RagTime 6.5"
     tell page 1 of layout 1 of document 1
          ungroup drawing group 1
     end tell
end tell
Alle Koordinatenangaben sind in Punkt (1/72 Zoll) gemessen von der oberen linken Ecke. Vertikale Koordinaten werden nach unten größer, horizontale nach rechts.
Beim Anlegen eines Rechtecks ist es naheliegend, die Koordinaten gleich als dessen Daten zu übergeben:
tell application "RagTime 6.5"
     tell layout 1 of document 1
          make new rectangle at beginning of page 1 with data {100, 100, 300, 200}
     end tell
end tell
Die Reihenfolge der Koordinaten ist: {X links, Y oben, X rechts, Y unten}
Bei den Koordinaten ist im AppleScript-Verzeichnis der Unterschied zwischen definition rect und bounds wichtig (sowie auf den ersten Blick vielleicht etwas unklar):
In RagTime können Zeichnungsobjekte transformiert werden: gedreht, skaliert, geschert.
Das definition rect gibt die Koordinaten an, die vor dieser Transformation galten. (Wenn Sie in der Palette Objektkoordinaten auf “Standard� klicken, bekommt das Objekt wieder die Grenzen des definition rect.) bounds hingegen gibt die Koordinaten an, mit denen das transformierte Objekt auf der Seite / der Zeichnung sichtbar ist. (Dies entspricht im User Interface von RagTime in der Palette "Objektkoordinaten" der Teilung in die Koordinaten, die oben in der Gruppe unter "Name" stehen, und die Koordinaten, die in der nächsten Gruppe für die Ränder stehen. Drehen Sie in RagTime ein Rechteck auf z.B. 45°, um den Unterschied zu sehen.)
Analog: left und left position. die zweite Form gibt den Wert des transformierten Objekts.
Beispiel (die Antworten von RagTime sind mit “-->� eingetragen. Sie wurden aus dem AppleEvent Log des Script Editors kopiert.):
tell application "RagTime 6.5"
     tell page 1 of layout 1 of document 1
          make new rectangle at beginning with data {200, 250, 300, 400}
               tell rectangle 1
               set vertical scaling factor to 2.5
               set horizontal scaling factor to 2.5
               get definition rect
               --> {200.0, 250.0, 300.0, 400.0}
               get bounds
               --> {125.0, 137.5, 375.0, 512.5}
               get left
               --> 200.0
               get left position
               --> 125.0
          end tell
     end tell
end tell
Die Koordinaten von bounds umfassen einen größeren Bereich und left position liegt weiter links, weil die Skalierung von 250% berücksichtigt wird.
Polygone und Bézierkurven werden in RagTime als Listen von Punkten angelegt. Jeder Punkt ist dabei wieder eine Liste. Beispiel:
-- Script 1
set punkteListe to {{50, 50}, {100, 200}, {150, 50}, {50, 50}}
tell application "RagTime 6.5"
     set neuesDokument to (make new document with properties {component types:drawing} at end)
     tell drawing 1 of neuesDokument
          make new polygon at beginning with data punkteListe with properties {color:{red:10, green:60, blue:60}}
     end tell
end tell
Das Script legt ein neues Dokument – bestehend aus einer Zeichnung – an und zeichnet ein Dreieck. Die Liste {{50, 50}, {100, 200}, {150, 50}, {50, 50}} ist die Liste der Eckpunkte des Polygons. Jeder Punkt ist wieder eine Liste von zwei Koordinaten, X und Y. Y wird dabei von oben nach unten gemessen. Die Maßeineit sind Punkt (also 1/72 Zoll). Wie bei der Eigenschaft definition rect handelt es sich um die Koordinaten ohne irgendwelche Transformationen wie Drehung. Dies wird Deutlich im folgenden Script:
-- Script 2
set punkteListe to {{50, 50}, {100, 200}, {150, 50}, {50, 50}}
tell application "RagTime 6.5"
     set neuesDokument to (make new document with properties {component types:drawing} at end)
     tell drawing 1 of neuesDokument
          set dasPolygon to (make new polygon at beginning with data {{0, 0}, {1, 1}} with properties {color:{red:10, green:60, blue:60}})
          set rotation of dasPolygon to 0.25
          change point list of dasPolygon to punkteListe
     end tell
end tell
Hier wird zunächst ein Polygon mit nur zwei Punkten angelegt und anschließend rotiert. Dann wird die Punktliste auf denselben Wert gesetzt, wie im Script 1. Das Resultat ist ein Dreieck, dessen Spitze nach links zeigt: Die Dreihung wird weiterhin auf die Koordinaten angewandt.
Sehen wir uns eine Bézierkurve an. Zuerst wird von Hand eine in RagTime gezeichnet, wie abgebildet. Während sie ausgewält ist, wird die Punktliste mit einem Script abgefragt:
tell application "RagTime 6.5"
     try
          get point list of selection of window 1
     end try
end tell
(In der Praxis ist dieses simple Testscript sehr hilfreich. In vielen Fällen ist es am einfachsten, zunächst eine ungefähre Kurve von Hand anzulegen und deren Werte abzufragen, um die Größenordnung der realistischen Werte zu bekommen.)
Das Script liefert in meinem Fall folgende Liste als Resultat:
{{34.7244, 141.0236}, {64.4882, 87.1653}, {138.8976, 95.6693}, {182.1259, 136.063}, {225.3543, 176.4566}, {287.7165, 177.1653}, {318.1889, 155.1968}}
Das sind sieben Koordinatenpaare für Punkte. Sehen wir uns die Kurve noch einmal mit ausgewählten Punkten an (Abbildung unten):
Es gibt drei Punkte auf der Kurve und vier Endpunkte von den »Anfassern«. Jede Bézierkurve in RagTime (und in anderen Programmen) ist zusammengesetzt aus einer Reihe von Segmenten, die je von vier Punkten definiert sind. Der letzte Punkt eines Segments ist immer der erste des folgenden. So eine Bézierkurve als ganzes ist also immer durch Anzahl_Segmente * 3 + 1 Punkte definiert.
Alle Transformationen in RagTime wirken auf das Zeichnungsobjekt einschließlich seiner Linienstärken und ggf. auch auf die Darstellung seines Inhalts. Schreibt man in einem gespiegelten Rahmen, erscheint auch der Text spiegelverkehrt. Ebenso erscheint Text in einem gescherten Rahmen selbst geschert.
Skalieren eines Objekts:
tell application "RagTime 6.5"
     tell page 1 of layout 1 of document 1
          set Rechteck to (make new rectangle at beginning with data {200, 250, 300, 400})
          set vertical scaling of Rechteck to 3
          set horizontal scaling of Rechteck to 3
     end tell
end tell
Vertikale und horizontale Skalierung werden einzeln gesetzt. Die Zahl ist einfach der Faktor der Skalierung. Ein Skalierungsfaktor -1 spiegelt das Objekt.
Rotieren eines Objekts:
tell application "RagTime 6.5"
     tell page 1 of layout 1 of document 1
          set Rechteck to (make new rectangle at beginning with data {200, 250, 300, 400})
          set rotation of Rechteck to 45 / 360
     end tell
end tell
Das Script legt ein Rechteck an und dreht es um 45° im Uhrzeigersinn. Beachten Sie den Ausdruck »45 / 360«. RagTime behandelt 1 als vollständige 360°-Drehung. 0.5 dreht also um 180°, 0.25 um 90° usw.
Scheren eines Objekts
tell application "RagTime 6.5"
     tell page 1 of layout 1 of document 1
          set X to 15 / 360
          set Rechteck to (make new rectangle at beginning with data {200, 250, 300, 400})
          set horizontal skewing of Rechteck to X
     end tell
end tell
Das Script legt ein Rechteck an und schert es um 15°. Die maximale Scherung, die RagTime akzeptiert ist ± 63,4° (± 0,1762). Wieder sind 360° auf 1 normiert, deshalb der Ausdruck »15 / 360«.
Lassen Sie sich nicht davon verwirren, dass nach den Setzen einer Transformation die anschließende Abfrage bisweilen etwas anderes liefert. Die Transformation eines Objekts ist letztlich eine 2*2 Matrix. Und mehrere Einzeloperationen führen zur selben Matrix. Wenn RagTime dann wieder rückwärts rechnet, können die Einzeltransformationen anders aussehen:
tell application "RagTime 6.5"
     tell page 1 of layout 1 of document 1
          set X to 30 / 360
          set Rechteck to (make new rectangle at beginning with data {200, 250, 300, 400})
          set vertical skewing of Rechteck to X
         Â
          vertical skewing of Rechteck
          --> 0.0
          horizontal skewing of Rechteck
          --> 0.0833
          vertical scaling of Rechteck
          --> 0.866
          horizontal scaling of Rechteck
          --> 1.1547
          rotation of Rechteck
          --> 0.0833
          transformation matrix of Rechteck
          --> {1.0, 0.5773, 0.0, 1.0}
     end tell
end tell
Das Rechteck wird ursprünglich um 30° vertikal geschert. Fragt man anschließend die Eigenschaften ab, ist die vertikale Skalierung zu 0 geworden, alle anderen Eigenschaften sind allerdings anders. Die Kombination von Scherung, Skalierung und Drehung, die das Script zurück meldet, ist tatsächlich äquivalent zu einer 30° vertikalen Scherung. Die Matrix wird im Script im letzten Schritt abgefragt. Sollen mehrere Objekte mit gleichen Transformationen erzeugt werden, ist es oft am einfachsten, ein Objekt mit den vertrauten Techniken (drehen, skalieren) anzulegen, dann dessen Matrix abzufragen und anschließend die weiteren Objekte mit dieser Matrix zu erzeugen.
Sollen Objekte gleich mit einer Transformation erzeugt werden (schneller, weniger Bildschirm-Updates), sieht die Syntax wie folgt aus:
tell application "RagTime 6.5"
     tell page 1 of layout 1 of document 1
          set X to {1.0, 0.5773, 0.0, 1.0}
          set Rechteck to (make new rectangle at beginning with data {200, 250, 300, 400} with properties {transformation matrix:X})
     end tell
end tell
Meistens sollen Rechtecke und andere Zeichnungsobjekte auf einer Seite RagTime-Komponenten enthalten: Texte, Bilder, Rechenblätter etc. Hier ein paar Strategien:
tell application "RagTime 6.5"
     tell page 1 of layout 1 of document 1
          make new rectangle at beginning with data {200, 250, 300, 400} ¬
               with properties {contents type:table}
     end tell
end tell
ist die kürzeste Form, ein Rechteck mit einem Rechenblatt anzulegen. (Nebenbei: Die property-Liste kann auch noch Eigenschaften wie Linienformat, Farbe etc. für das Rechteck enthalten.)
Nachteilig bei dem Verfahren ist, dass man keine Referenz auf das erzeugte Rechenblatt bekommt. Die braucht man aber evtl. später im Code. Alternative:
tell application "RagTime 6.5"
     tell document 1
          set neueTabelle to (make new table at end)
          tell page 1 of layout 1
               make new rectangle at beginning with data {200, 250, 300, 400}
               set contents of rectangle 1 to neueTabelle
          end tell
     end tell
end tell
“neueTabelle� enthält jetzt die Referenz auf das Rechenblatt, das in dem Rechteck angelegt wurde, z.B.
--> table "Rechenblatt 1" of document id 1
Komponenten können mit der “save�-Anweisung exportiert werden. Das Vorgenen ist damit so ähnlich wie beim Sichern eines Dokuments im RagTime-eigenen Format.
Der save-Anweisung (Sie finden Sie in der Standard Suite im AppleScript-Verzeichnis) kennt eine Reihe von Optionen für den Export. Folgendes Script exportiert die Textkomponente namens “Text 1� im Word-Format:
set zielDatei to choose file name with prompt ¬
     "Wohin soll der Text exportiert werden?"
tell application "RagTime 6.5"
     save text flow "Text 1" of document 1 in zielDatei ¬
          converting to "MS-Word 6/95"
end tell
Die Export-Optionen lassen sich durch recording ermitteln. Deshalb verzichten wir hier auf eine detailiertere Darstellung.
Die Import-Optionen, z.B. welche Textkodierung benutzt werden soll, kann man steuern, wenn man zuerst die Komponente anlegt und dann mit change auf den Inhalt der Importdatei setzt:
set textDatei to choose file with prompt "Text-Datei auswählen"
tell application "RagTime 6.5"
     tell document 1
          set Textkomponente to (make new text flow at end)
          change Textkomponente to textDatei using encoding 256 without link to file
-- Encoding 256 ist Mac Roman
          set Rechenblattkomponente to (make new table at end)
          change cell "A1" of Rechenblattkomponente to textDatei using encoding 256 without link to file, value format detection and import formats
     end tell
end tell
Das Script erzeugt eine neue Textkomponente und setzt dann den Inhalt auf textDatei, gibt aber dabei bereits das Encoding vor. Die für die meisten Anwender wohl wichtigsten Encodings sind:
256: Macintosh Standard für westeuropäische Sprachen
512: Windows Standard für westeuropäische Sprachen
Encoding-Nummern finden Sie in der RagTime-Hilfe "RagTime-Formeln und -Funktionen" im Abschnitt "Hintergrundinformationen".
Es wird ein Rechenblatt angelegt und die Zelle A1 auf die Datei geändert. Da value format detection und import formats beide festgelegt sind (hier: ausgeschaltet), folgt auch dieser Dialog nicht.
Die so importierten Komponenten können mit set (“set rectangle 1 of page 1 to...�) platziert werden.
Für den Import können auch Filter festgelegt werden, besonders bei Bildern bisweilen wichtig:
...convert with "JPEG" ...
Ein Beispielscript:
set bildDatei to choose file with prompt "Bild-Datei auswählen" of type list {"JPEG"}
tell application "RagTime 6.5"
     tell document 1
          set Bildkomponente to (make new picture at end)
          change Bildkomponente to bildDatei ¬
               convert with "JPEG" without link to file
     end tell
end tell
Importe werden aufgerufen, indem man den Wert eines Objekt, das die Importdatei aufnehmen kann, auf einen alias / ein file setzt oder eine bestehende Komponente dahin umwandelt. Folgendes Script weist zunächst über einen Auswahldialog einer Variable einen alias-Wert zu und importiert dann diese Datei an verschiedenen Stellen in das aktive Dokument:
set textDatei to choose file with prompt "Text-Datei auswählen"
tell application "RagTime 6.5"
     activate
     tell document 1
          make new text flow with data textDatei at end
          -- Importiert die Datei und fügt sie als neue Textkomponente hinzu, ohne diese zu platzieren
          set Rechteck to make new rectangle with data {100, 50, 300, 500} at beginning of page 1 of layout 1
          set contents of Rechteck to textDatei
          -- Setzt die Inhaltsart des Rechtecks auf Text und importiert die Datei
          set text flow 1 to textDatei
          -- Importiert die Datei und ersetzt die erste Textkomponente durch deren Inhalt
          set insertion point after last character of text flow 1 to textDatei
          -- Importiert die Datei und hängt sie am Ende von Textkomponente 1 an
          set Rechteck to make new rectangle with data {350, 50, 550, 500} with properties {contents type:table} at beginning of page 1 of layout 1
          set cell "A1" of table 1 to textDatei
          -- Importiert die Textdatei in das Rechenblatt beginnend mit Zelle A1
     end tell
end tell
Bei dieser Technik erfolgt der Import so, wie manuell aufgerufen. Es werden also jedesmal die Dialoge gezeigt, die RagTime auch sonst zeigt: Welche Codierung der Text hat, ob beim Import in das Rechenblatt eine Werteformaterkennung erfolgen soll etc.
Beim Entwurf eines Scripts schafft es etwas unterschiedliche Situationen, ob ein Script ein Dokument (oder Teile davon) vollständig aufbaut, oder ob man das Objekt beeinflussen will, an dem der Benutzer gerade arbeitet.
Ein typisches Beispiel für die erste Situation ist eine Datenbankanbindung, bei der z.B. auf Basis ausgewählter Datensätze in FileMaker bestimmte Layout-Seiten aufgebaut werden. Ein einfaches Beispiel für die zweite Situation: Man braucht eine Anweisung, die ein ausgewähltes Rechteck mit einem Schatten versieht.
Zwei Techniken gehen auf die aktuelle Tätigkeit des Benutzers ein:
a) Bei einer Reihe von Aktionen, die eigentlich ein klares Ziel brauchen, darf dieses Ziel im Script fehlen. RagTime wählt das Ziel dann bezogen auf das Objekt, an dem der Benutzer gerade arbeitet.
b) Das selection Objekt kann ausgewertet werden.
In folgendem Script-Fragment
tell application "RagTime 6.5"
     set Auswahl to selection of window 1
     -- weiterer Script-Code
end tell
ist es im “weiteren Script-Code� nicht immer dasselbe, ob “selection� benutzt wird oder die Variable “Auswahl�. “selection� greift direkt auf ein RagTime-Objekt zu. Beim Zuweisen der Variablen wird das Objekt in eine Referenz aufgelöst und diese im Script abgelegt. Der Zugriff über “Auswahl� ist indirekter. In den meisten Fällen ist das Resultat bei beiden Zugriffen identisch. Im Abschnitt über die Ausrichtung von Bildern gab es einen Fall, der zu verschiedenen Resultaten führt.
Betrachten wir den Fall etwas detailierter: Angenommen war ein Dokument mit einem Bild. Das Bild ist in zwei Containern installiert. Der Anwender hat das Bild in einem der Container ausgewählt.
Script-Variante 1:
tell application "RagTime 6"
     align picture selection of window 1 horizontally at left side
end tell
Script-Variante 2:
tell application "RagTime 6.5"
     set Auswahl to selection of window 1
     align picture Auswahl horizontally at left side
end tell
In der ersten Variante wird das Bild nur in dem Container nach links ausgerichtet, in dem es ausgewählt ist. In der zweiten Variante wird es in allen Containern ausgerichtet. In der “set Auswahl...�-Zeile wird selection in einen Bezug der Form “picture "Bild 1" of document id 1� aufgelöst (das Bild heißt bei Ihnen ggf. anders). Die “align picture�-Anweisung wird dann an diese Bildkomponente geschickt. Diese Anweisung richtet das Bild an allen Stellen aus, an denen es installiert ist.
Dieser Text würde sehr lang werden, wenn wir alle Fälle behandelten, in denen sich die beiden Formen in der Wirkung gleichen und in welchen nicht. Für die eigene Arbeit mit dem selection-Objekt sollte nur klar sein: Technisch sind die beiden Zugriffsformen immer verschieden. Wenn also im konkreten Fall die eine das falsche tut, probiert man die andere.
Im Regelfall ist der direkte Zugriff auf selection in der Wirkung dichter am Aufruf einer Anweisung in der RagTime-Benutzungsoberfläche.
Änderungen in AppleScript haben leider dazu geführt, dass sich das sogenannte "Default Targeting" unterschiedlich verhält, abhängig davon, ob das Script im Programm selbst läuft oder aber es von außen (Script Editor) steuert. Mit "Default Targeting" ist gemeint, welches Ziel in einem Programm benutzt wird, wenn eine klare Zielangabe fehlt. In vielen Fällen wird dann die bestehende Auswahl ausgewertet. Die für das Programm gültige Auswahl steht aber nicht mehr zur Verfügung, wenn RagTime im Hintergrund ist.
Gehen wir von folgender Situationsannahme aus:
In RagTime ist ein Dokument mit mehreren Seiten geöffnet. Auf einer der Seiten ist ein Grafik-Objekt angeklickt, oder aber, es wurde zuletzt in den leeren Seitenbereich geklickt.
In RagTime 6.5 funktioniert dann folgendes Script:
make new rectangle with data {100, 100, 200, 300}
(Das »tell application "RagTime 6.5"« kann innerhalb von dem RagTime-Script-Editor natürlich fehlen. Das Script ist so vollständig.)
Ohne irgend eine Angabe, wo in einem Dokument dieses Rechteck angelegt werden soll, bestimmt die aktuelle Auswahl das Ziel. Das Rechteck wird auf der Zeichenfläche angelegt, die (oder in der) gerade die aktuelle Auswahl steht. Das ist zum Beispiel die Seite oder Zeichnung, in deren leeren Bereich zuletzt geklickt wurde. Oder aber die Seite / Zeichnung, in der gerade ein beliebiges Grafikobjekt ausgewählt ist.
Vom AppleScript Editor aus funktioniert diese Technik nur, wenn RagTime zuerst in den Vordergrund geholt wird:
tell application "RagTime 6.5"
     activate
     make new rectangle with data {100, 100, 200, 300}
end tell
Lässt man das »activate« weg, führt das Script in eine Fehlermeldung.
Um diese Technik noch etwas weiter zu illustrieren: Folgendes Script zieht Hilfslinien genau durch den Mittelpunkt des ausgewählten Objekts:
tell application "RagTime 6.5"
     activate
     set {X, Y} to position of selection
     make new vertical guide with data X
     make new horizontal guide with data Y
end tell
(Wiederum würde innerhalb von RagTime folgendes Script dasselbe tun:
set {X, Y} to position of selection
make new vertical guide with data X
make new horizontal guide with data Y
)
Im ersten Schritt wird die Position des Auswahl-Objekts ausgelesen. Da die Anweisung an RagTime geht (und nicht etwa an window 2 u.ä.) ist dies immer die Auswahl im aktuellen Dokument.
Die beiden folgenden Anweisungen legen Hilfslinien in der gerade benutzten Zeichnungsumgebung an. Das ist immer die Umgebung, in der das Objekt gerade ausgewählt ist.
Kriterium dafür, dass die Zielangabe fehlt, ist die fehlende “at�-Klausel. Selbst, wenn der “make new...�-Ausdruck in einem tell-Block steht, wird er als “Ohne Zielangabe� behandelt, wenn das “at� fehlt. Folgende Beispiele
tell application "RagTime 6.5" -- Fehlerbeispiel
     activate
     make new rectangle with data {100, 100, 200, 300} at beginning
end tell
Das Script führt bei Ausführung in eine Fehlermeldung. Wenn die “at�-Klausel vorhanden ist, muss das Ziel vollständig gegeben sein.
Für das nächste Beispiel wieder eine Situationsannahme: Sie haben ein Layout mit drei Seiten vor sich und ein Objekt auf Seite 3 angeglickt:
tell application "RagTime 6.5"
     tell page 1 of layout 1 of document 1
          activate
          make new rectangle with data {100, 100, 200, 200}
          make new rectangle with data {100, 100, 350, 350} at beginning
     end tell
end tell
Bei dem ersten (kleineren) Rechteck fehlt die “at�-Klausel. Die Anweisung geht an die aktuelle Zeichnungsumgebung und das Rechteck erscheint auf der angeklickten Seite 3 trotz des umgebenden “tell�.
Das zweite Rechteck hat eine “at�-Klausel und der umgebende tell-Block gibt das Ziel vollständig an. Das Rechteck wird auf Seite 1 erzeugt.
Selbst, wenn in dem “tell� ein “of document 2� stünde, würde das erste Rechteck in Dokument 1 angelegt werden, das zweite aber in Dokument 2. Deutlich sieht man den Unterschied, wenn man sich im AppleEvent Log ansieht, wie die Kommunikation mit RagTime abläuft:
tell application "RagTime 6.5" -- Ausschnitt aus AppleEvent Log
     activate page 1 of layout 1 of document 1
     make new rectangle with data {100, 100, 200, 200}
     --> rectangle 1 of page 3 of layout "Layout 1" of document id 1
     make new rectangle with data {100, 100, 350, 350} at beginning of page 1 of layout 1 of document 1
     --> rectangle 1 of page 1 of layout "Layout 1" of document id 1
end tell
Arbeitet man mit dem selection-Objekt, kann es leicht zu allen möglichen Fehlern im Ablauf des Scripts kommen: Die aktuelle Auswahl des Benutzers ist evtl. gar nicht geeignet für die Aktionen des Scripts. Zwei Techniken bieten sich an: Wenn das Script nur für eine ganz bestimmte Art von Objekten geeignet ist, fragt man zunächst die Klasse der Auswahl ab und arbeitet nur im geeigneten Fall weiter. Wird mit einer Eigenschaft gearbeitet, die viele unterschiedliche Objekte haben können (position ist ein Beispiel), und ist das Script für (fast) alle dieser Objekte geeignet, ist ein try nützlicher.
Ein Beispieldokument enthalte ein Rechenblatt namens “Rechenblatt 1�. Wenn der Benutzer Text ausgewählt hat, soll dieses Rechenblatt am Anfang der Auswahl eigefügt werden.
tell application "RagTime 6.5"
     set textAuswahl to selection of window 1
     set Tabelle to a reference to table "Rechenblatt 1" of document 1
     if (class of selection of window 1) is text then
          set insertion point before textAuswahl to Tabelle
     end if
end tell
Ist irgend etwas anderes als Text ausgewählt, wird der if-Teil nicht ausgeführt. Dennoch sollte man auch in diesem Fall ein try erwägen. Es gibt immer Fälle, in denen das Script Fehlermeldungen auslöst und die man vergisst. Hier wären folgende Fälle betroffen: Die Einfügemarke steht in einem leeren Text, im Rechenblatt in einem Mehrzeilertext oder in einem grafischen Text.
Ein vorangehendes Beispiel hat Hilfslinien durch ein ausgewähltes Objekt gezeichnet. Dies ist ein typisches Beispiel für den Einsatz von try: Die Eigenschaft position haben Rechtecke, Beziérkurven, Punkte von Beziérkurven... In allen Fällen ist die folgende Anweisung, Hilfslinien durch die Position der Auswahl zu zeichnen, sinnvoll. Ist aber Text oder eine Rechenblattzelle ausgewählt, ist das Script nicht sinnvoll und führt in einen Fehler. Hier ist try die beste Technik:
tell application "RagTime 6.5"
     try
          set {X, Y} to position of selection of window 1
          activate
          make new vertical guide with data X
          make new horizontal guide with data Y
     end try
end tell
Wenn das ausgewählte Objekt die property position gar nicht hat oder aber in der benutzten Umgebung keine Hilfslinien möglich sind (z.B. ein Objekt einer Infografik ist ausgewählt), bricht die Ausführung einfach ab ohne durch eine unverständliche Fehlermeldung zu irritieren. In allen Fällen, in denen aber sinnvoll die Hilfslinien gezeichnet werden können, wird die Anweisung ausgeführt. Hält man eine Warnung für sinnvoll, kann man natürlich eine eigene Meldung erzeugen: Folgende Variante erzeugt eine eigene Meldung, gefolgt von der Originalmeldung:
property Fehlertext1 : "Es konnten keine Hilfslinien angelegt werden. Vermutlich ist kein geeignetes Objekt ausgewählt."
property Fehlertext2 : "AppleScript-Fehler: Nummer "
tell application "RagTime 6.5"
     try
          set {X, Y} to position of selection of window 1
          activate
          make new vertical guide with data X
          make new horizontal guide with data Y
     on error Meldung number Fehlernummer
          display dialog Fehlertext1 & return & return & Fehlertext2 & ¬
               Fehlernummer & ", " & Meldung buttons {"OK"} default button 1
     end try
end tell
Zum Abschluss noch eine Variante, die eher traditionellem “exception handling� entspricht: Statt einer eigenen Meldung wird die normale AppleScript-Meldung hochgereicht, aber ergänzt um die eigene Information:
property Fehlertext : "Vermutlich können durch das ausgewählte Objekt keine Hilfslinien gezogen werden."
tell application "RagTime 6.5"
     try
          set {X, Y} to position of selection of window 1
          activate
          make new vertical guide with data X
          make new horizontal guide with data Y
     on error Meldung number Fehlernummer
          error Meldung & return & Fehlertext number Fehlernummer
     end try
end tell
Beim Arbeiten mit Variablen, denen das selection-Objekt zugewiesen wurde, kann auch die Änderung der Auswahl durch eine Script-Aktion oder aber die Änderung ihres Bezugs eine Falle stellen.
Folgende Script-Varianten gehen davon aus, dass ein Rechteck ausgewählt ist.
Variante 1
tell application "RagTime 6.5"
     set Auswahl to selection of window 1
     make new rectangle at before Auswahl with data {50, 100, 150, 300}
     set color of Auswahl to {cyan:10, magenta:50, yellow:80, black:5}
end tell
Variante 2
tell application "RagTime 6.5"
     set Auswahl to selection of window 1
     make new rectangle at before Auswahl with data {50, 100, 150, 300}
     set color of selection of window 1 to {cyan:10, magenta:50, yellow:80, black:5}
end tell
In Variante 1 wird das neu angelegte Rechteck orange gefärbt, in Variante 2 das ausgewählte. Grund: Die Variable Auswahl enthält eine Referenz auf das Rechteck nach Index. Dadurch, das vor dem ausgewählten Rechteck ein neues angelegt wurde, hat dieses neue Rechteck den Index, den vorher das ausgewählte hatte. “Auswahl� zeigt deshalb jetzt auf das neue Rechteck.
Besonders bei Texten kann sich die Auswahl von Buchstaben durch Hinzufügen oder Löschen ändern. Ein Beispielscript soll vor und nach der Auswahl einen Bindestrich einfügen.
tell application "RagTime 6.5"-- Unerwartetes Resultat
     set Auswahl to selection of window 1
     set insertion point before Auswahl to "-"
     set insertion point after Auswahl to "-"
end tell
Durch das Einfügen des ersten Bindestrichs hat sich die Anzahl der Buchstaben verändert. Der zweite wird deshalb einen Buchstaben zu früh eingefügt.
In einen Fehler läuft auch die naheliegende Idee, direkt auf selection zu arbeiten:
tell application "RagTime 6.5"-- Fehlerhaftes Beispiel
     set insertion point before selection of window 1 to "-"
     set insertion point after selection of window 1 to "-"
end tell
Einer der Fälle, in denen sich der direkte und der indirekte Zugriff auf die Auswahl unterscheiden.
Eine Lösungsmöglichkeit ist, in der ersten Variante die Auswahl erneut abzufragen:
tell application "RagTime 6.5"
     set Auswahl to selection of window 1
     set insertion point before Auswahl to "-"
     set Auswahl to selection of window 1
     set insertion point after Auswahl to "-"
end tell
In Fällen wie diesem, in dem die Aktion die Anzahl der Buchstaben auf jeden Fall vergrößert, kann man natürlich auch einfach die Reihenfolge beim Einsetzen ändern und von hinten nach vorn arbeiten:
tell application "RagTime 6.5"
     set Auswahl to selection of window 1
     set insertion point after Auswahl to "-"
     set insertion point before Auswahl to "-"
end tell
Wie in dem einführenden Teil zu Programmobjekten beschrieben, kann man in RagTime und unterhalb von RagTime über Fenster das Objekt selection ansprechen. In Dokumenten kann man das Objekt selection nicht ansprechen.
Seit einiger Zeit ist allerdings die für das Programm gültige Auswahl nur im Script-Zugriff, wenn RagTime im Vordergrund ist. Lässt man ein Script in RagTime laufen, ist das immer der Fall. Nicht aber, wenn man den Apple Script Editor im Vordergrund hat und das Script von dort aus laufen lässt.
tell application "RagTime 6.5" -- Problembeispiel
     set A to selection
end tell
führt zu einer Fehlermeldung. Hingegen funktioniert folgende Variante korrekt:
tell application "RagTime 6.5"
     activate
     set A to selection
end tell
Wird explizit ein Fenster angesprochen, kann das activate fehlen:
tell application "RagTime 6.5"
     set A to selection of window 1
end tell
führt zu keinem Fehler. Folgendes Script eignet sich zum Experimentieren, wenn man sich im Script Editor anschließend das Resultat ansieht:
tell application "RagTime 6.5"
     activate
     set A to selection
     set B to selection of window 1
     set C to selection of window 2
     {A, B, C}
end tell
Nehmen wir folgende Situation an: Zwei Dokumente sind geöffnet, im hinteren ist etwas Text ausgewählt, im forderen ein Rechteck auf einer Seite. Dann wird das Resultat dieses Scripts etwa wie folgt aussehen:
{
rectangle 1 of page 1 of layout "Layout 1" of document id 2 of application "RagTime 6.5",
rectangle 1 of page 1 of layout "Layout 1" of document id 2 of application "RagTime 6.5",
text from character 1 to character 10 of contents of text flow "Text 1" of document id 1 of application "RagTime 6.5"
}
Die ersten beiden Abfragen, selection und selection of window 1, liefern dasselbe Resultat, die Auswahl im ersten Dokument. Die Variable C enthält die Auswahl im zweiten Dokument.
Wird nun im forderen Dokument das Fenster Schriftvorlagen geöffnet und “Standardschrift� in der Liste ausgewählt, liefert das Script folgendes Resultat:
{
character style sheet "Standardschrift" of document id 2 of application "RagTime 6.5",
character style sheet "Standardschrift" of document id 2 of application "RagTime 6.5",
rectangle 1 of page 1 of layout "Layout 1" of document id 2 of application "RagTime 6.5"
}
In dieser Variante gehören die beiden ersten Fenster zu Dokument 1: Das Schriftvorlagen-Fenster und das Layout-Fenster. Variable A und B enthalten wieder dasselbe. Die selection von RagTime ist immer gleich der selection des ersten Fensters von RagTime. C enthält jetzt die Auswahl in dem Layout-Fenster von Dokument 1.
Wenn ein Gruppierungs-Objekt angelegt werden soll, muss ein Ziel angegeben werden, die Anweisung direkt an RagTime zu schicken, funktioniert nicht.
Es bietet sich folgende Technik an: Als Ziel kann “at after� bezogen auf das direkte selection-Objekt benutzt werden. Als Datenangabe kann das einer Variable zugewiesene selection-Objekt genutzt werden:
tell application "RagTime 6.5"
     set Auswahl to selection of window 1
     tell window 1
          make new drawing group at after selection with data Auswahl
     end tell
end tell
Dieser Code gruppiert die ausgewählten Zeichnungsobjekte. Die Gruppe ist danach nicht ausgewählt. Will man das normale Programm-Verhalten haben, bei dem nach dem Gruppieren die Gruppe ausgewählt ist, nimmt man folgenden Code:
tell application "RagTime 6.5"
     set Auswahl to selection of window 1
     tell window 1
          set Gruppe to (make new drawing group at after selection with data Auswahl)
          select Gruppe
     end tell
end tell
Eine Gruppe wird einfach mit ungroup wieder aufgelöst:
tell application "RagTime 6.5"
     ungroup selection of window 1
end tell
A travers cette lettre d'information, nous lançons une série d'articles courts, sur la manière de concevoir un magazine ou une publication en utilisant RagTime 6.5. Nous souhaitons montrer par la pratique quelques techniques pouvant aider tout utilisateur souhaitant réaliser un tel travail, dans une entreprise ou dans le cadre d'une association. La première partie donne un aperçu des principaux sujets.
Lorsqu'il s'agit de concevoir une brochure ou un magazine, les pages maquettes disposent des outils les plus efficaces. Dans RagTime 6.5, vous les trouverez dans un composant spécial appelé 'Maquette de Feuillet'. Celle-ci comporte autant de pages-types que vous le souhaitez. Chacune d'entre elles contrôle un ensemble de pages dans un feuillet, lorsque le contenant est ajouté. Tout changement dans la page-maquette est automatiquement répercuté à toutes les pages qui en dépendent. Par exemple : un magazine communautaire doit avoir le type de pages suivant : pages standard droite et gauche, page de début et de fin, et un autre type de page pour les informations de contact. Habituellement, il est préférable de commencer par une page visible définie comme standard à l'intérieur de la publication. Lorsqu'elle est bien conçue, elle est simplement dupliquée, et les variations pour les cas spéciaux sont édités au cas par cas.
Les repères magnétiques sur les pages maquettes rendent cela simple, pour ajouter des contenants rapidement, en utilisant simplement la souris, lorque vous éditez le contenu. Le 'texte graphique' est utilisé pour fixer des éléments comme le numéro de page. Des éléments de décoration comme des filets font partie des pages maquettes également. Des contenants vides réservent des espaces pour le texte saisi ou importé ultérieurement. En les reliant avec l'outil de chaînage, vous défnissez le déroulement du texte à l'intéreur de la publication.
Une autre caractéristique particulièrement utile pour concevoir des magazines est la 'ligne de base'. Cela permet d'être certain que toutes les lignes d'un texte sur la page soient correctement positionées. Lorsque vous utilisez la grille de base, les lignes de base d'un texte dans différentes colonnes sont toujours alignées verticalement, où que vous placiez les contenants sur la page.
La grille de base peut être activée dans le panneau 'Informations de feuillet'. Double-cliquez sur l'onglet de n'importe quelle page pour l'ouvrir. Dans le panneau 'Général', les paramètres de la ligne de base peuvent être réglées et peuvent être rendues visibles. L'étiquette de paragraphe 'Paragraphe Standard' est remplacéé dans le panneau d'informations 'Marges'. Cochez ''Aligner les lignes de base sur la grille'. Cette option force tous les textes sélectionnés à s'aligner sur la grille.
Lorsque toutes les pages maquettes sont définies, les options de dépendance sont réglées. Elles définissent quelles pages dans le composant feuillet sont contrôlées par ces pages maquettes. Ouvrez le panneau d'informations de la maquette de feuillet (double cliquez sur son onglet de page, puis sélectionnez le panneau 'page maquette'). Les pages standard pour l'intérieur du magazine gardent le réglage par défaut : 'sans règle particulière'. Pour les pages particulières, un numéro de page spécifique est assigné, soit comptabilisé depuis le début (page de titre), ou depuis la fin (page de fin). Si votre page d'informations - contacts est toujours sur la troisième page, comptez depuis le début. Si vous préférez qu'elle soit à la fin de votre magazine, utilisez le compteur depuis la fin.
L'étape finale consiste à créer les pages pour le contenu. Un nouveau composant est ajouté à votre document, un feuillet (menu Fenêtre - nouveau composant - feuillet). Dans le dialogue qui suit, votre nouveau feuillet est relié à la maquette de feuillet que vous venez de créer.
Les contenants sur la page de feuillet sont assignées comme contenants texte.
Si tout est pret, enregistrez le document comme 'Document modèle' RagTime. Cela crée un document modèle pour une utilisation ultérieure, pour créer vos magazines ou brochres.
Vouci un tour d'horizon de nos petits excercices. La prochaine partie décrira le projet de réalisation d'un magazine en détail, incluant quelques notions comme la diffusion des pages, ou le choix des polices.
Mit aktuellen Versionen von RagTime erhalten Sie je Seriennummer einen Zugang zu dem WebShare-Server RagTime Everywhere (ausgenommen Edu-Versionen).
Mit einem Kennwort-geschützten Zugang können eigene Dokumente auf den Server geladen werden, z.B. um sie auf mehreren Rechnern zur Verfügung zu haben.
Der Server kann per Web-Browser benutzt werden, oder auch über das spezielle Programm WebShare Manager, das sehr nützliche Zusatzfunktionen für Projekte mit vielen Dateien hat (Synchronisation und Backup alter Datei-Versionen zum Beispiel).
Für viele Dateitypen wird von dem Server eine Vorschau erzeugt. Das betrifft gängige Bildformate, aber auch RagTime-Dokumente. (Zur Zeit, als diese Anleitung geschrieben wurde, war die RagTime-Vorschau noch im Teststadium.)
RagTime everywhere ist kostenlos. Daneben gibt es kommerzielle Sevices mit erheblich größerem Speicherplatz und professionellen Druckvorstufen-Merkmalen wie Vorschau-Berechnung von Bildern anhand von ICC-Profilen. Bei entsprechend kalibrierten Monitoren erlaubt das eine zuverlässige Vorschau von Druckergebnissen.
Hier beschreiben wir kurz, wie man sich bei dem Service anmeldet und ihn nutzt.
Für die Anmeldung benötigen Sie die Liefernummer ihres RagTime-Pakets, die Sie auch schon für die Autorisierung brauchten. Sie steht auf einem Aufkleber auf Ihrem RagTime-Paket, beginnt mit »L« und hat zwölf Ziffern.
Öffnen Sie die Web-Seite
http://www.ragtime.de/web/support/everywhere-autorisieren.html
(In der Navigation von www.ragtime.de finden Sie die Seite unter »Support - RagTime autorisieren.)
Klicken Sie auf »Hier gehts zur Registrierung«.
Geben Sie auf der folgenden Seite Ihre RagTime-Liefernummer ein und klicken Sie »Weiter«. Sie müssen noch die AGB bestätigen, können prüfen, ob Ihre E-Mail-Adresse richtig ist, und dann ist die Anmeldung auch schon fertig.
Nach fünf bis zehn Minuten erhalten Sie per E-Mail Ihre Zugangsdaten: Eine Benutzerkennung und ein Kennwort. Wichtig: Ändern Sie Ihr Kennwort bei der ersten Benutzung von RagTime Everywhere!
Das E-Mail enthält auch die Adresse des RagTime Everywhere Servers:
Klicken Sie auf der Seite auf »Weiter«, geben dann Ihre Benutzerkennung und Ihr vorläufiges Kennwort ein und klicken auf »Login«.
Im folgenden Fenster sehen Sie drei Ordner:
RagTime.de Sales GmbH
Ihren eigenen Ordner
WebShare Public
In dem Ordner »RagTime.de Sales GmbH« stellen wir Dinge zur Verfügung.
Klicken Sie auf Ihren eigenen Ordner, werden die Anweisungen zum Anlegen von Unterordnern, zum Hochladen von Dateien etc. aktiv.
Aber: Zuerst die Änderung des Kennworts!
Klicken Sie oben im Fenster auf das Symbol »Administration« und im folgenden Fenster auf »Meine Benutzereinstellungen«.
In dem Bereich »WebShare-Einstellungen« geben Sie zuerst Ihr bisheriges Kennwort ein und dann ein neues. Merken Sie sich Ihr Kennwort bitte gut!
Hier noch ein genereller Hinweis zur Bedienung: Der RagTime Everywhere Server arbeitet sehr viel mit Scripts. Bitte benutzen Sie zur Navigation immer die Links auf der Seite und nicht die Browser-Knöpfe »vor« und »zurück«.
Wenn Sie sich in Ihrem eigenen Ordner befinden, können Sie unter »Datei« neue Ordner anlegen. Um eine Datei auf den RagTime Everywhere Server zu laden, benutzen Sie das Menü »Transfer«.
Um eine einzelne Datei oder einen Ordner herunterzuladen, können Sie auf das kleine Zahnradsymbol hinter dem Dateinamen klicken und »Download« aufrufen:
Sie können auch mit den Ankreuzfeldern links wählen, welche Ordner und Dateien Sie herunter laden wollen und dann die Anweisung »Transfer - Download« benutzen. Der RagTime Everywhere Server verpackt die gewählten Dateien oder Ordner automatisch in einem .zip-Archiv. Das macht den Download schneller und ist meist auch bequemer:
In dem Ordner »RagTime Sales GmbH« finden Sie eine Reihe von Dingen, die wir für den Download zur Verfügung stellen. Dazu gehören immer die jeweils aktuellen AGB und die aktuellste RagTime-Version.
Dort finden Sie auch den WebShare Manager, auf den wir auf späteren Seiten noch ausführlicher eingehen werden.
Seit Mitte Mai 2011 können Bilder und PDF-Vorschauen in RagTime everywhere mit Anmerkungen versehen werden.
Damit kann man unterwegs Notizen zu einem Dokument per Smart Phone oder iPad machen, oder auch - wenn mehrere Leute Zugang zu dm Account haben, Arbeiten abstimmen.
Für diese Einführung in Anmerkungen in RagTime everywhere habe ich eine kleine Beispiel-Situation konstruiert. Klicken Sie je auf ein Bild, um es in Originalgröße zu sehen.
Im RagTime everywhere-Account wurde ein Projektordner mit ein paar Bildern und einem RagTime-Dokument angelegt:
Der Server hat von dem Layout des RagTime-Dokuments eine PDF-Vorschau erzeugt, die man sich von jedem Gerät, das im Web browsen kann, in unterschiedlichen Skalierungen ansehen kann (auch blättern).
Die Neuerung sieht man, wenn man das Menü »Ansicht« öffnet:
Hier kann man das Werkzeug für die Anmerkungen aufrufen. Es erscheint eine Palette mit den Bestehenden Anmerkungen. Ein Mausklick auf das Pluszeichen, und man kann eine neue Anmerkung eingeben. Mit einem Rechteck lässt sich markieren, worauf die Anmerkung sich genau bezieht:
Beachten Sie dabei auch das Menü »Status« in der Palette für die Anmerkung. Jede neue Anmerkung, aber auch jede Antwort darauf, kann den Status auf »OK« oder »abgelehnt« setzen. Das ist optimal für die Verfolgung eines Arbeitsablaufs – zumal die Anmerkungen erhalten bleiben, wenn man das Dokument aktualisiert.
Im nächsten Bild haben wir eine kleine Diskussion nachgespielt: Ein Kollege hat sich am selben Account angemeldet und eine Antwort geschrieben. Zu dieser habe ich wiederum geantwortet. Und so sieht das dann aus:
In dem Ansicht-Menü gibt es auch den Eintrag »Farbinformationen«. Für alle Bitmap-Bilder, hier also die PNG-Dateien mit den Bildern von Lokomotiven, kann man sich für beliebige Punkte die Farbinformation anzeigen lassen. Es hat zwar nichts direkt mit Anmerkungen zu tun, aber zeigen will ich es hier trotzdem. Im folgenden Bild wurde die Datei »Train_5.png« geöffnet und es wurden zwei Pipetten gesetzt, für die die Farbinformationen gezeigt werden:
Den Planer für 2010 gibt es hier.
-> Planer für die Fußball-WM 2006 als RagTime-Dokument.
Erfassen Sie die Ergebnisse und das Dokument berechnet Gruppenpositionen in der Vorrunde und die Paarungen in der Endrunde.
-> Nederlandstalige planner voor de wereldkampioenschappen voetbal 2006 als RagTime document.
Vul de uitslagen in en het document zal de standen van de voorronde en het speelschema van de eindronde automatisch berekenen.
Hinweis: In während der grafischen Gestaltung ist uns ein dummer Formelfehler passiert, den keiner mehr bemerkt hat. Der Fehler bringt die Sortierung der Gruppen durcheinander. In dieser Fassung ist die Formel wieder korrigiert. J.S.
-> Ausgehend von einem Dokument, dass 2002 von Detlef Schulz erstellt wurde, gibt es hiermit auch für die WM 2006 einen WM-Planer.
Die Techniken wurden dem Reglement dieses Turniers angepasst wie in den FIFA Wettbewerbsregeln beschrieben. (Vorausgesetzt, uns sind da keine Fehler unterlaufen ;-)
Die Dateien finden Sie unter den Bildern.
-> Uitgaande van een document dat in 2002 al door Detlef Schulz gemaakt werd, is nu ook een WK planner voor 2006 beschikbaar, en... ...ook in het Nederlands!
De technieken werden toegepast volgens het regelement zoals beschreven door de FIFA spelregels ( voor zo ver wij geen fouten gemaakt hebben ;-) ).
Het document vindt u onder de afbeeldingen.
Der WM-Planer für die Fußball-Weltmeisterschaft 2006 macht grob gegliedert drei Dinge: Die Spielergebnisse der einzelnen Gruppen werden ausgewertet und die Rangfolge innerhalb der Gruppen bestimmt.
Sind alle Spiele einer Gruppe erfasst, werden Gruppenerster und -zweiter an die entsprechende Stelle im Endrunden-Spielplan weiter gereicht. Dort werden je die Gewinner an die nächste Runde übergeben.
Die vollständige Endrunde wird noch einmal zusätzlich in eine Baumdarstellung eingebracht (im Layout "-Baum", zu öffnen über das Inventar).
Das Dokument ist zum großen Teil bloße Fleißarbeit: Erfassen der Daten, die Bezüge anzulegen, die die Endrunde ab Achtelfinale bearbeiten usw.
Der nach Idee aufwendigste Teil steckt in den Rechenblättern, die die einzelnen Gruppen der Vorrunde bearbeiten. Für RagTime-Anwender, die die Technik dahinter interessiert, gibt es auf diesen Seiten ein Beispiel-Dokument mit ausführlicher Beschreibung.
Die folgenden Seiten skizzieren noch einmal das Regelsystem und haben einen Dokumentanhang, der diesen Mechanismus in einer etwas aufgeräumteren Fassung präsentiert.
Artikel 31 der Turnierreglen für die WM 2006 beschreibt die Reihenfolge innerhalb einer Vorrundengruppe wie folgt:
4 Es wird nach dem Meisterschaftssystem gespielt.
Jede Mannschaft spielt einmal gegen jede andere Mannschaft ihrer Gruppe. Ein Sieg ergibt drei, ein Unentschieden einen und eine Niederlage null Punkte.
5 Die Rangliste jeder Gruppe wird wie folgt bestimmt:
(a) die Anzahl Punkte aus allen Gruppenspielen; Wenn zwei oder mehr Mannschaften aufgrund des oben erwähnten Kriteriums gleich abschneiden, wird ihre Platzierung aufgrund der folgenden Kriterien bestimmt:
(b) die Anzahl Punkte aus den Direktbegegnungen der punktgleichen Mannschaften in den Gruppenspielen;
(c) die Tordifferenz aus den Direktbegegnungen der punktgleichen Mannschaften in den Gruppenspielen;
(d) die grössere Anzahl der in den Direktbegegnungen der punktgleichen Mannschaften in den Gruppenspielen erzielten Tore;
(e) die Tordifferenz aus allen Gruppenspielen; (f) die Anzahl der in allen Gruppenspielen erzielten Tore;
(g) Losentscheid durch die Organisationskommission für die FIFA Fussball-Weltmeisterschaft™.
Wer schon einmal ein Dokument dieser Art versucht hat, kennt die spannende Stelle: Wie wird der direkte Vergleich durchgeführt. In dieser Regel kommt er gleich an zweiter Stelle, kann also nicht ignoriert werden (Motto: "kommt eh nie vor").
Wenn ich die Regel richtig lese, ist der Trick: Aus der Gruppe wird eine Teilgruppe gebildet, die der Mannschaften mit gleichen Punkten. Man betrachtet dann nur noch Spiele zwischen Teilnehmern dieser Teilgruppe. Zumindest dieses Verständnis versucht das Planer-Dokument zu realisieren.
In dem WM-Planer gibt es für die Vorrunde für jede Gruppe ein Rechenblatt. Im Inventar erscheinen sie als "-Gruppe A", "-Gruppe B" und so weiter.
Die Rechenblätter unterscheiden sich nur an einer Stelle: Zeigt man sie in einem eigenen Fenster, steht in Zelle E21 grau hinterlegt der Gruppenbuchstabe. Ändert man den, rechnet die Tabelle eine andere Gruppe durch.
Das Rechenblatt besteht aus zwei Lagen. In der ersten Lage steht alles, was am Schluss für die Darstellung auf den Seiten gebraucht wird. Außerdem werden hier die Daten für die Gruppen eingesammelt: Welche Länder dazu gehören, die Flaggen etc.
Die Berechnung der Gruppenreihenfolge steckt vollständig in Lage 2. Ein Bereich übernimmt mit Referencen die Eingaben aus der ersten Lage. Die Resultate der Berechnung werden umgekehrt von der ersten Lage wieder abgeholt.
Zugunsten der Ãœbersicht stehen dabei die Ergebnisse eines Zusammentreffens nebeneinander. Das macht allerdings die Suchformeln alle etwas komplizierter.
In dem Angehängten Beispieldokument ist die Anordnung so gewählt, dass die Formeln einfacher werden: Die Ergebnisse für alle Mannschaften stehen untereinander. Damit ist in dem angehängten Dokument das Verfahren einfacher zu erkennen als in dem ursprünglichen Meisterschaftsplaner (Beim Beschreiben merkt man odt, wo eine Umgruppierung die Sache einfacher macht, das ist auch mir so gegangen. Auch einen vollkommen überflüssigen Umweg in dem Original hab ich noch gefunden.)
Die Beschreibung befindet sich in dem Beispiel-Dokument selbst.
Für eine Artikelserie haben wir eine Einführung zum Thema "Zeitschriften mit Stammseiten" geschrieben. Dies ist die Web-Fassung des Artikels.
Für die Zeitschrift Die L.A.Multimedia haben wir eine Serie mit Artikeln zum Thema "Wie gestaltet man eine Vorlage für Zeitschriften unter Verwendung von Stammlayouts" geschrieben. Diese Web-Fassung wächst mit der Erscheinung der jeweiligen Einzelartikel zu einem kleinen Online-"Buch".
Bitte benutzen Sie die Einträge in der Navigationsleiste.
Eines der mächtigsten Hilfsmittel bei der Gestaltung aller Art von Zeitschriften sind so genannte Stammseiten. RagTime 6.5 bietet sie in einer Komponente namens »Stammlayout«. Ein Stammlayout kann beliebig viele Stammseiten enthalten. Jede von ihnen ist die Vorlage für einen bestimmten Seitentyp in dem Layout, in dem die eigentliche Gestaltung stattfindet. Ändert man etwas auf einer Stammseite, wird die Änderung automatisch auf allen von ihr abhängigen Layoutseiten übernommen. Eine Schülerzeitschrift zum Beispiel könnte folgende Seitentypen enthalten: Normale Innenseite links und rechts, Titelseite, Rückseite und vielleicht ein konstantes Impressum auf der vorletzten Seite.
Für jeden dieser Seitentypen wird eine Stammseite angelegt. Man beginnt meist am besten mit der normalen, rechten Innenseite. Ist sie fertig gestaltet, dupliziert man die Seite für alle Spezialfälle und nimmt die nötigen Änderungen vor. Magnetische Hilfslinen sorgen dafür, dass man später schnell und freihändig mit der Maus alle Rahmen exakt und einheitlich platzieren kann. Mit dem Werkzeug für »Grafischen Text« werden feste Elemente wie die Seitenzahl angelegt. Einheitliche dekorative Elemente wie Linien kommen ebenfalls auf die Stammseiten. Leere Rahmen werden für die späteren Textspalten angelegt und mit dem »Pipeline-Werkzeug« verkettet. Diese Verkettung legt fest, wie der Text später von einem Rahmen in den nächsten fließen soll.
Die Abbildung zeigt ein sehr einfaches Stammlayout für eine Broschüre mit Abweichendem Titelblatt. Die Pfeile zeigen die Verkettung der Rahmen mit einer Pipeline. Hilfslinien legen den Satzspiegel fest. Gleichmäßig verteilte horizontale Hilfslinen erleichtern die einheitliche Platzierung von Bildern oder Tabellen.
Ein besonders spannendes Feature für Zeitschriften ist das »Grundlinienraster«. Damit stellt man ganz einfach sicher, dass der Text in allen Spalten auf einheitlicher Höhe steht. In den Layoutinformationen (den Dialog mit Doppelklick auf den Seitenreiter oberhalb der Seite öffnen, Tafel »Allgemein« wählen) stellt man den Abstand der Textgrundlinien ein. Für das Absatzformat »Standardabsatz« legt man in der Tafel »Ränder« fest, dass die Absätze das Grundlinienraster benutzen sollen. Schon ist die einheitliche Zeilenposition garantiert.
Die Abbildung zeigt drei gegeneinander versetzte Rahmen zeigen die Wirkung des Grundlinienrasters: Alle Textzeilen stehen auf einheitlicher Höhe, unabhängig von der Oberkante des Rahmens.
Sind die Stammseiten fertig gestaltet, legt man fest, für welche Seiten im späteren Layout sie zuständig sein sollen. In der Layoutinformation für das Stammlayout kann man für jede Stammseite Regeln festlegen. Ein Doppelklick auf den Reiter über der Stammseite öffnet den Dialog für die entsprechenden Einstellungen.
Die normalen Innenseiten behalten die Voreinstellung »Die Stammseite wird benutzt für Seiten, auf die keine besondere Regel zutrifft«. Für die Sonderseiten legt man konkrete Seitenzahlen fest, entweder gezählt von vorn (Titelblatt) oder von hinten (Rückseite, Impressum).
Nun kommt der letzte Schritt: Im Menü »Fenster – Neue Komponente« wird ein Layout angelegt. Im folgenden Dialog wählt man das gerade angelegte Stammlayout aus. In dem Layout, das jetzt im Fenster erscheint, klickt man einen der Spaltenrahmen an und wählt als Inhaltsart »Text« (Menü »Zeichnung – Inhaltsart«). Dieses so vorbereitete Dokument sichert man als Formularblock und kann mit ihm in Zukunft schnell und garantiert einheitlich die Zeitschriften gestalten.
Im ersten Teil dieser kleinen Serie haben wir einen ganz knappen Umriss gezeichnet, für welchen Zweck Stammseiten geeignet sind. Mit diesem zweiten Teil beginnen wir den konkreten Aufbau von Stammseiten für eine einfache Zeitschrift, sei es für eine Firmenpublikation, eine Vereinszeitschrift oder eine Schülerzeitschrift. Für dieses Beispiel gehen wir aus von einer Broschüre im Format DIN A 4. Wir beginnen mit ein paar Grundüberlegungen zur Gestaltung.
Legen Sie sich ein paar Zeitschriften und ein Lineal bereit, um Vergleiche anzustellen. Bereiten Sie zum Experimentieren eine unformatierte Textdatei (ca. eine Seite) mit einem Programm wie Wordpad oder TextEdit vor. Achten Sie bei dieser Datei darauf, dass die Datei Absätze nur mit einem Return trennt, nicht mit zwei.
Die meisten Seiten einer Zeitschrift haben ein ähnliches Aussehen. Es gibt aber einige Sonderfälle: Das Titelblatt hat nahezu immer eine andere Gestaltung als der Rest, ebenso die Rückseite. Oft soll auf der vorletzten Seite (oder der dritten von hinten) immer das Impressum stehen. Für eine Zeitschriftenvorlage beginnt man am besten mit einer Skizze auf Papier, welche Seiten solche festen Besonderheiten haben.
Dann macht man sich Gedanken zur Gestaltung der normalen Seiten. Das passiert am besten gleich am Rechner. In RagTime wird im Foyer, Tafel »Neu beginnend mit« auf »Stammlayout« geklickt. RagTime erzeugt ein neues Dokument mit einer Seite, die fast aussieht, wie eine normale Layoutseite. Der Karteikartenreiter oben über der Seite steht allerdings in der Mitte. Dies deutet an, dass es sich um eine Stammseite handelt.
Als erstes legt man den »Satzspiegel« fest, und zwar mit Hilfslinien. Hilfslinien werden mit der Maus aus den Linealen am Fensterrand herausgezogen und auf der leeren Seite losgelassen. Mit einem Doppelklick auf eine Hilfslinie öffnet man einen Dialog, in dem die Position exakt als Koordinate eingegeben werden kann, auf Wunsch lässt sich hier auch die Farbe ändern.
Wir beginnen mit einer typischen rechten Seite. Die ersten Fragen sind: Wie groß sollen die Ränder zu den Seitengrenzen sein und wie viele Spalten soll der Text haben. Auf A4 gut lesbar ist ein dreispaltiger Text. Zwei Spalten sind möglich, aber die Zeilen sind so lang, dass sie deutlich schwerer zu lesen sind.
Eine A4-Seite ist 21 cm breit. Wenn er Außenrand 2 cm betragen soll (rechter Rand auf einer rechten Seite), muss die Hilfslinie bei 19 cm liegen. Der Innenrand (links auf einer rechten Seite) kann schmaler sein, hier stoßen im fertigen Heft zwei Ränder gegeneinander. Wählen wir 1,5 cm.
Der untere Rand einer Seite ist üblicherweise am breitesten (beim Lesen von Büchern muss da der Damen Platz haben), nehmen wir 2,5 cm. Von oben gemessen ist das die Position 27,2 cm für die Hilfslinie.
Die drei Spalten: Unsere Ränder lassen einen Raum von 17,5 cm. Die Spalten müssen einen Abstand haben, wählen wir 5 mm. Verbleiben 16,5 cm für den Text, geteilt in drei Spalten. Die Spalten sind damit 5,5 cm breit. Von links beginnend ergeben sich folgende Positionen für weitere senkrechte Hilfslinien:
7,0 cm 7,5 cm13,0 cm13,5 cm
Der obere Rand der Seite hängt sehr davon ab, wie jeweils der Seitenkopf gestaltet wird. Soll der Bereich nur eine Überschrift für die Seite enthalten, wählen sie ihn etwas kleiner als den unteren Rand, z.B. 2 cm. Soll dort je ein Logo o.A. platziert werden, richtet sich der Rand danach.
Wenn Sie die Seite bis zu diesem Punkt gestaltet haben, machen Sie ein kleines Experiment: Klicken Sie den Karteikartenreiter oben über der Stammseite an und rufen »Layout - Doppelseitige Stammseite« auf. RagTime erzeugt jetzt eine linke Seite, auf der alle senkrechten Hilfslinien gespiegelt erscheinen. Dies ist der Grund, weshalb ich vorgeschlagen habe, mit einer rechten Standardseite zu beginnen. Da wir noch nicht ganz fertig sind, entfernen Sie die linke Stammseite bitte wieder: Seitenreiter anklicken und »Layout - Linke Stammseite löschen«.
Die Wahl einer Schrift für Ihre Zeitschrift ist erheblich geschmackgebunden, evtl. in Ihrem Fall sogar schon vorgegeben. Ein paar Überlegungen sind jedoch gut zu verallgemeinern.
Druckschriften werden in zwei Hauptgruppen geteilt: Mit Serifen und ohne. (Serifen sind die kleinen Abschlüsse an Enden von Strichen, z.B. oben und unten beim I.) Eine typische Serifenschrift ist die Times, Sansserif sind Helvetica und Arial. Sansserif-Schriften wirken meist moderner, sind aber für den Fließtext erheblich schlechter zu lesen. Wenn dieser »moderne« Effekt nicht zwingend nötig ist, benutzten Sie die Sansserif-Schriften nur für die Überschriften, nicht für den Fließtext.
Für die Lesbarkeit ganz wichtig sind auch die Schriftgröße und der Zeilenabstand. Anfänger haben einen starken Hang, die Schrift zu groß und den Zeilenabstand zu klein zu wählen. Probieren Sie einmal einen Wert wie 9 Punkt Schriftgröße und 12 Punkt Zeilenabstand.
Experimentieren mit der Schrift
Benutzen Sie zum Testen eine Kopie des Dokuments, an dem Sie gerade arbeiten. Öffnen Sie den Dialog »Fenster - Hilfsmittel - Schriftvorlagen«.
a) Wählen Sie links in der Liste unter dem Dokumenttitel »Standardschrift« aus. Wählen Sie rechts die Tafel »Zeichensatz«. Wählen Sie als Zeichensatz eine Serifenschrift, z.B. Times. Wählen Sie unter Größe 9 pt und schließen Sie den Dialog.
b) Öffnen Sie »Fenster - Hilfsmittel - Absatzvorlagen«. Wählen Sie links »Standardabsatz« und rechts die Tafel »Ränder«. Im Bereich »Zeilenposition« geben Sie bei »Zeilenabstand« hinter dem »plus/minus« eine 3 ein. Damit bekommen die Zeilen zusätzlich drei Punkt Abstand gegenüber der normalen Zeilenhöhe. Schließen Sie den Dialog.
c) Legen Sie auf der Stammseite drei Rahmen für die Textspalten an. Dank der Hilfslinien geht das nun sehr schnell.
d) Verbinden Sie die drei Rahmen mit dem Pipeline-Werkzeug.
e) Rufen Sie »Fenster - Neue Komponente - Layout« auf. Wählen Sie das Stammlayout im folgenden Dialog.
Eine normale RagTime-Seite mit drei Rahmen geht auf.
f) Wählen Sie einen Rahmen an und rufen »Zeichnung - Inhaltsart - Text« auf.
(Hinweis für Anwender mit Erfahrungen in XPress oder InDesign: Es ist wichtig, den Rahmen erst im Layout zum Textrahmen zu machen, nicht aber im Stammlayout. Dort müssen die Rahmen leer bleiben!)
g) Importieren Sie nun einfachen, unformatierten Text in den ersten Spaltenrahmen (oder klicken Sie in den Rahmen und tippen herzhaft darauf los).
Zur Abschätzung, wie das alles aussieht, sollte die Seite fast vollständig mit Text gefüllt sein. Drucken Sie die Seite aus und vergleichen Sie den Ausdruck mit einer Zeitschrift.
Zur Abschätzung, wie das alles aussieht, sollte die Seite fast vollständig mit Text gefüllt sein. Drucken Sie die Seite aus und vergleichen Sie den Ausdruck mit einer Zeitschrift.
Nun kommen die eigentlichen Experimente: Öffnen Sie wieder »Fenster - Hilfsmittel - Schriftvorlagen« und ändern die Schriftgröße auf 10 Punkt. (Die Zeilen haben jetzt einen Abstand von 13 Punkt.) Drucken Sie die Seite aus und vergleichen Sie.
Wählen Sie im selben Dialog auch eine andere Schriftart. »Times« ist eine sehr enge Schrift, viele andere Schriften sind leichter lesbar.
Öffnen Sie den Dialog für die Absatzvorlagen und wählen »Standardabsatz« und die Tafel »Anordnung«. Schalten Sie die Ausrichtung von »Linksbündig« auf »Blocksatz«. Drucken Sie die Seite und vergleichen. Der Blocksatz wirkt sehr aufgeräumt, der Flattersatz dagegen lebendiger.
Ändern Sie die Absatzabstände. Geben Sie in der Tafel »Ränder« für den »Abstand oben« einmal +12 ein (oder +13 wenn das Ihre Zeilenhöhe ist). Drucken Sie wieder die Seite. Probieren Sie auch einmal einen Wert wie 6 Punkt. Wenn Sie als Absatzabstand eine halbe Zeilenhöhe wählen, stehen die Zeilen in den Spalten mal auf derselben Höhe, mal eine halbe Zeile versetzt. Meist ist das keine gute Wahl.
Übertragen Sie die Einstellungen, die Ihnen im Test am besten gefallen, in Ihr eigentliches Arbeitsdokument - mit Ausnahme der Zeilenhöhe. Dafür gibt es eine Alternative, die meist besser ist: Ein Grundlinienraster. Dazu mehr in der nächsten Folge.
Zum experimentieren haben wir den kleinen Ausschnitt aus dem "Picture of Dorian Gray" und die zwei Bilder angehängt. Der Text ist ein Auszug aus der Fassung in Project Gutenberg, die Bilder entstammen der Wikipedia und unterliegen der Creative Common Lizenz
In diesem Abschnitt wenden wir uns einigen wichtigen Techniken zu, die mit Absatzvorlagen zu tun haben.
Im zweiten Teil hatten wir ein Dokument mit einem Stammlayout aufgebaut, Text in das Layout importiert und als Beispiel ein paar Bilder eingefügt. Das Beispiel, das ich für die Abbildungen benutzt hab, finden Sie zum Experimentieren im Anhang.
So, wie wir bisher gearbeitet haben, führen Bilder zu einem kleinen Gestaltungsproblem: Textzeilen unterhalb des Bildes stehen nicht mehr in derselben Höhe, wie Zeilen in den anderen Spalten.
Die Abbildung zeigt einen Ausschnitt aus dem Dokument, das am Ende des letzten Abschnitts abgebildet ist. Eine rote Hilfslinie unter einer Textzeile zeigt das Problem: Die Zeile hat nicht dieselbe Höhe, wie die Nachbarzeile in Spalte 3!
Genau um dies zu vermeiden gibt es das Grundlinienraster. Klicken Sie doppelt auf den Seitenreiter einer Stammseite oder einer Layoutseite. In den »Layoutinformationen«, Tafel »Allgemein« können Sie die Details zum Grundlinienraster einstellen und festlegen, dass es angezeigt wird. Bei der späteren Arbeit ist die Anzeige meistens unpraktisch, aber in der Entwurfsphase des Dokuments hilft sie. Stellen Sie als »Abstand der Grundlinien« Ihren gewünschten Zeilenabstand ein und schalten Sie die Option »Grundlinienraster zeigen« ein. Bestätigen Sie den Dialog mit »OK«.
Auf den Seiten des RagTime-Dokuments werden in gleichmäßigem Abstand Rasterlinien in grau gezeigt. Auf den Text haben die Linien zunächst keine Wirkung.
Öffnen Sie »Fenster - Hilfsmittel - Absatzvorlagen« und klicken Sie in der Liste links auf »Standardabsatz«. In der Tafel »Ränder« entfernen Sie zunächst die Zugabe bei dem Zeilenabstand (also +/– 0). Wählen Sie dann im Einblendmenü »Auf Grundlinienraster« die Option »Ein«.
Wenn Sie den Dialog mit OK bestätigen, richten sich alle Textzeilen an dem Grundlinienraster aus. In allen Textspalten stehen die Zeilen auf einheitlichen Höhen, egal, ob Bilder, Tabellen oder andere Objekte auf den Seiten platziert wurden.
Zur Verdeutlichung zeigen wir hier noch einmal den Ausschnitt am unteren Bildrand: Die Texte stehen genau auf den grauen Linien.
Es kann sein, dass Ihnen die jeweils ersten Zeilen oben in den Rahmen zu weit von der Rahmengrenze entfernt sind. In dem Fall öffnen Sie bitte noch einmal Mit Doppelklick auf einen Seitenreiter die Layoutinformationen und experimentieren mit der Einstellung »Abstand von oberer Papierkante«. Damit lässt sich das Raster auf der Seite verschieben.
An dieser Stelle sind wohl einige Erklärungen an der Reihe. Jedes RagTime-Dokument hat ein Grundlinienraster, gleich, ob sichtbar oder nicht. Voreingestellt beträgt der Abstand der Rasterlinien 12 Punkt.
Absatzvorlagen haben die Einstellung, ob dieses Grundlinienraster von ihnen berücksichtigt werden soll oder nicht. Als Sie im ersten Schritt das Grundlinienraster geändert und sichtbar geschaltet haben, hatte das deshalb auf den Text keine Wirkung. Erst, als Sie im zweiten Schritt die Absatzvorlage »Standardabsatz« geändert haben, wurde das Raster für diese Vorlage gültig und der Text hat sich angepasst.
Weshalb diese zwei Stufen? Würde jeder Text an dem Raster ausgerichtet werden, wäre das viel zu unflexibel bei der Gestaltung. Es muss möglich sein, z.B. Überschriften unabhängig vom Raster zu halten. Auch bei Bildzuschriften wäre es inakzeptabel: Die Zeilen müssen einen einheitlichen Abstand vom Bild haben. Deshalb können Sie für jede Absatzvorlage unabhängig einstellen, ob sie das Grundlinienraster berücksichtigt oder nicht.
Weshalb sollte die Zugabe bei den Zeilenabständen zurück auf 0 gesetzt werden? Grundlinienraster haben auch eine Falle. Wenn die Zeilenhöhe auch nur minimal größer ist, als der Rasterlinienabstand, dann rasten die Textzeilen auf jeder zweiten Rasterlinie ein! Wird das Grundlinienraster benutzt, sollte der Zeilenabstand in der Absatzvorlage für normalen Text immer kleiner eingestellt werden, als der Abstand der Rasterlinien.
Noch ein Tipp zu den Abstandseinstellungen: Wenn im Text auch hochgestellte oder tiefgestellte Buchstaben vorkommen, dann ändert sich dadurch eine automatische Zeilenhöhe. Wahrscheinlich geschieht das an dieser Stelle auch in Ihrem Web-Browser. Dadurch kann es passieren, dass dann ein doppelter Zeilenabstand entsteht. In der Praxis ist es für die Einstellungen von Standardabsatz meist günstiger, eine feste Zeilenhöhe zu benutzten - wiederum kleiner als der Abstand der Rasterlinien.
Experimentieren Sie noch ein wenig mit dem Dokument. Wenn Sie einen neuen Textrahmen auf der Seite aufziehen und darin schreiben, richtet sich auch in diesem Rahmen der Text an den Grundlinien aus. Soll das für frei platzierte Rahmen anders sein, müssen Sie sich eine weitere Absatzvorlage anlegen und im Text benutzen.
Das Grundlinienraster wirkt grundsätzlich nicht auf grafischen Text und auch nicht auf Textelemente anderer Komponenten wie Tabellen oder Diagrammen.
Die Einstellungen für das Grundlinienraster gelten immer für das ganze Dokument. Es ist gleichgültig, ob Sie die Einstellungen in den Layoutinformationen für eine Stammseite oder eine Layoutseite vornehmen.
In den vorangehenden Abschnitten haben wir beschrieben, wie man ein einfaches Stammlayout anlegt und wie man mit dem Grundlinienraster ausgerichtete Zeilen erreicht.
Zurück zum Stammlayout. Zuerst ergänzen wir Kleinigkeiten wie Seitenzahlen. Für eine Broschüre der wirklichen Welt brauchen wir mehr als eine Stammseite. Nehmen wir an, wir wollen ein immer gleich platziertes Inhaltsverzeichnis auf Seite 3 haben (der ersten rechten Seite innen). Vielleicht soll dort auch immer ein allgemeiner Kommentar stehen - Sie entscheiden, wie Sie die dritte Seite gestalten. Wir illustrieren es hier nur am Inhaltsverzeichnis. Ein Impressum steht immer auf der letzten rechten Seite.
Alle kleineren Textelemente einer Stammseite sollten als »Grafischer Text« angelegt werden. Solche Textelemente können fast dasselbe wie normaler Text. Die Hauptausnahme: Es gibt keine Pipelines. Kein Problem für eine Seitenzahl. Es gibt Möglichkeiten, die nur Grafischer Text hat. Am wichtigsten: Soll Ihr Text einer Kurve folgen, muss er als Grafischer Text angelegt werden.
Sie sehen die bestehende Stammseite vor sich am Bildschirm. Mit dem Werkzeug »A« in der Werkzeugleiste schreiben Sie Grafischen Text. Wählen Sie es durch anklicken.
Unterhalb der Spalten klicken Sie auf die rechte Hilfslinie und halten den Mausknopf gedrückt. Ziehen Sie einige Zentimeter nach links und lassen den Knopf los.
Eine Texteinfügemarke blinkt auf der Seite, ohne Rahmen herum. Tippen Sie »Seite « mit dem Leerzeichen. Wählen Sie »Bearbeiten - Sondertext einfügen - Seitennummer« im Menü; dann »Format - Ausrichtung - Rechtsbündig«. »Seite 1« steht jetzt auf Ihrer Stammseite, rechtsbündig an der Hilfslinie. Klicken Sie irgendwo, um das Textobjekt zu verlassen.
Legen wir einen Rahmen für (mögliche) Seitentitel an: Über den Spalten zeichnen Sie ein Rechteck. Wegen der Hilfslinien geht das einfach per Maus, das Rechteck rastet an den Linien ein.
Klicken Sie den Seitenreiter an. Wählen Sie »Layout - Doppelseitige Stammseite«. RagTime spiegelt die Seite. Nur die Seitenzahl muss links ausgerichtet werden. Wählen Sie die linke Seitennummer aus und wählen »Format - Ausrichtung - Linksbündig.
Beachten Sie, dass die linke Stammseite erst angelegt werden sollte, wenn alles auf der rechten OK ist.
Die Inhaltsverzeichnis-Seite wird eine rechte Seite, Nummer 3. Klicken Sie den Seitenreiter der rechten Stammseite an und kopieren. Klicken Sie in den grauen Bereich direkt über der Stammseite. Er wird hervorgehoben. Setzen sie ein.
Auch das Impressum kommt auf eine rechte Seite: Den Bereich unter der Doppelseite auswählen und wieder einsetzen.
Ein Rahmen wird auf der ersten Stammseite (Inhalt) gezeichnet, über zwei Spalten hinweg. Dieser Rahmen wird das Inhaltsverzeichnis. Natürlich können Sie ihn überall zeichnen, wo er ihnen gefällt.
Für das Impressum ergänzen wir ein Rechteck auf der vierten Stammseite, auch über zwei Spalten hinweg.
Eine Besonderheit beim Impressum; Es ändert sich nicht für jede Ausgabe. Nicht nur die Position auf der Seite ist fest, sondern auch der Inhalt. In diesem Fall schreiben wir den Inhalt auf der Stammseite in den Container.
Wählen Sie das Rechteck für das Impressum aus. Im Menü »Zeichnung« wählen Sie »Inhaltsart - Text«. Das legt eine Textkomponente als Stammseitenelement an. Sie ist nicht im Layout editierbar. Zum Ändern muss das Stammlayout benutzen werden. Ganz, wie es für konstante Elemente sein soll.
Tippen Sie die nötigen Informationen: Herausgeber, Adresse, wie erreicht man Sie und so weiter.
Stammseiten-Einstellungen
Offensichtlich fehlt etwas: Das Dokument muss wissen, dass Inhaltsverzeichnisse auf Seite 3 gehören und Impressa auf die vorletzte Seite.
Öffnen Sie die Layout-Information: Doppelklick auf den Reiter der ersten Stammseite. Tafel »Stammseiten« wählen.
Zuerst vergeben Sie einen besseren Namen, etwas wie »Inhalt«. Dann weisen Sie Stammseite einer bestimmten Layoutseite zu: Die Option »mit gegebenem, von vorn gezähltem Index« setzen und eine »3« im Eingabefeld angeben.
Fast dasselbe geschieht mit der vierten Stammseite. Aber dort wird die Option »mit gegebenem, von hinten gezählten Index« benutzt und eine »2« eingegeben.
Ich hatte vorgeschlagen, das Impressum-Rechteck mit Text zu füllen. Das diente der Einfachheit der Beschreibung und ich will hier eine interessantere Alternative erwähnen.
Eine der merkwürdigsten Komponentenarten in RagTime ist die »Zeichnung«. In einer Zeichnung nutzen Sie dieselben Werkzeuge, wie auf Seiten: Container für Bilder, Tabellen, Texte, Linien und so weiter. Aber eine Zeichnung steckt in einem Container. Der kann auf der Seite bewegt werden, wie jeder andere. Für wirklich flexibles Design legen Sie das Impressum als Zeichnung an. Gestalten Sie nach Geschmack mit Logos und Text. Die Zeichnung wird ein Stammseitenelement, wie oben für Text beschrieben.
An dieser Stelle beenden wir die Details zum Stammlayout. Natürlich können Sie beim Testen noch beliebig variieren, aber die Techniken bleiben dieselben.
Dieser Abschnitt unserer Einführung behandelt das Inhaltsverzeichnis. Es zu erzeugen ist nicht sehr kompliziert, aber Sie müssen ein paar Grundlagen verstehen.
RagTime erzeugt das Inhaltsverzeichnis durch einsammeln aller Absätze eines oder mehrerer Layouts, die ein Überschrift-Absatzformat haben.
Das heißt: Beim Bearbeiten des Broschürentextes müssen sie die vordefinierten Absatzstile für Überschriften benutzen.
Hinweis: Die Werkzeugleiste hat zwei Menüs für Formatvorlagen. Eins ist für Textstile (Eigenschaften, die Buchstaben haben), das andere für Absatzstile. Das Menü, in dem »Überschrift«, »Überschrift 2«, »Überschrift 3«… stehen, ist das richtige. Alle Überschrift-Absatzstile benutzen einen Schriftstil namens »Überschrift« (im anderen Menü zu sehen).
Passen Sie die Stile ihren Anforderungen an, z.B. schalten Sie sie auf »Linksbündig«.
Als Übung öffnen Sie ihr Dokument mit dem Text, oder legen Sie ein neues mit Text über mehrere Seiten an.
Ergänzen Sie einige Zeilen für Überschriften. Was Sie tippen ist für die Übung gleichgültig. »Erste Überschrift«, »Zweite Überschrift« etc. reicht vollkommen.
Wählen Sie ein Überschriften-Absatzformat für diese Zeilen Das Bild zeigt, wie der Dialog in dem Dokument aussieht.
Stecken Sie nicht viel Zeit in die Details für die Übung, aber legen Sie Überschriften auf mehreren Seiten an.
Rufen Sie jetzt »Extras - Inhaltsverzeichnis erzeugen« auf. Ein Dialog fragt Sie, für welches Layout das Inhaltsverzeichnis gebraucht wird. Wählen Sie es und klicken »OK«
Scheinbar tut RagTime nichts. Aber öffnen Sie das Inventar Ihres Dokuments. Eine neue Textkomponente namens »Inhaltsverzeichnis« ist entstanden.
In unserem Broschüren-Dokument gab es ein Rechteck auf Seite 1 für das Inhaltsverzeichnis. Ziehen Sie die Inhaltsverzeichnis-Komponente aus dem Inventar in dieses Rechteck. (Hatten Sie diese Tests mit einem improvisierten Dokument gemacht, zeichnen Sie zuerst ein leeres Rechteck.)
Der Text in dem Rechteck listet alle Ãœberschriften mit ihren Seitenzahlen.
Das Inhaltsverzeichnis kann wie jeder andere Text bearbeitet werden. Wenn es aber neu angelegt werden muss (Aufruf von »Extras - Inhaltsverzeichnis erzeugen«), werden alle Änderungen überschrieben. Brauchen Sie andere Stile (Ränder, Abstände...), ändern Sie die Vorlagen, die das Inhaltsverzeichnis nutzt. Im Absatzvorlagen-Editor stehen jetzt neue Stile »Inhaltsverzeichnis« (einer für jede benutzte Überschriftebene).
Änderungen hier werden nicht überschrieben, wenn Sie das Inhaltsverzeichnis neu anlegen.
Das Inhaltsverzeichnis wird nur geändert, wenn »Inhaltsverzeichnis erzeugen« aufgerufen wird. D.h.: Nach Textänderungen, bei denen Überschriften auf andere Seiten fließen, müssen Sie die Anweisung vor dem Druck neu aufrufen.
Die folgenden Punkte sollte man sich einprägen:
Textzeilen müssen vordefinierte Überschriften-Absatzformate nutzen, um im Inhaltsverzeichnis zu erscheinen.
Erzeugen eines Inhaltsverzeichnisses liefert eine neue Textkomponente, die im Inventar erscheint. Von dort kann sie irgendwo platziert werden.
Das Inhaltsverzeichnis wird nur aktualisiert, wenn Sie »Inhaltsverzeichnis erzeugen« neu aufrufen.
Alle Änderungen am Aussehen sollten über die Formatvorlagen erfolgen, die das Inhaltsverzeichnis nutzt, weil sie den neuen Aufruf von »Inhaltsverzeichnis...« überleben.
Teil 6 der Serie über Zeitschriftengestaltung mit Stammseiten, entsprechend InfoMail 165
In den meisten Veröffentlichungen brauchen Sie Spezialseiten. Mal wurde eine Seite für Werbung verkauft um das Projekt zu finanzieren. Mal braucht man eine spezielle Bilderseite ohne jeden Text. RagTime verbindet Seiten automatisch mit Stammseiten, basierend auf den gegebenen Regeln. Sie können diese Verbindungen aber jederzeit manuell überschreiben.
Zuerst wird eine Stammseite für Spezialfälle angelegt: Öffnen Sie das Stammlayout (Doppelklick im Inventar) und wählen die rechte Standardseite aus durch Doppelklick auf den Seitenreiter. Kopieren Sie die Seite, klicken Sie in den Seitenzwischenraum darunter und setzen Sie die Seite ein.
Öffnen Sie die Layoutinformation der kopierten Seite. In der Tafel »Stammseiten« wählen Sie die letzte Option für »Benutzung«: »Wenn die gegebene Formel den Wert WAHR liefert«. Geben Sie 0 als Wert ein (d.h.: immer falsch!") Diese Stammseite wird nie automatisch benutzt. Oben in der Tafel können Sie die Seite benennen. Geben Sie »Leer« o.ä. ein.
Löschen Sie alle Objekte der Seitenkopie: Wählen Sie eines aus und drücken (Win:) strg-A / (Mac:) cmd-A. Alles wird ausgewählt. Drücken Sie die Rückschritttaste zum Löschen.
Klicken Sie wieder den Seitenreiter an und rufen »Layout - Doppelseitige Stammseite« auf. Schließen Sie das Stammlayout-Fenster.
Im Layout klicken Sie doppelt auf den Reiter der Seite, die als Spezialseite genutzt werden soll. In der Tafel »Seiten« gibt es ein Dropdown-Menü, in dem manuell eine Stammseite wählbar ist. Wählen sie hier »Leer«.
Text im Layout wird neu umbrochen und Ihre Spezialseite ist nun leer. (Hatten Sie dort ein Bild platziert, bleibt es dort. Bewegen Sie es von Hand auf eine andere Seite.)
Die Hilfslinien auf der leeren Seite machen es einfach, Container konsistent zu den übrigen Seiten zu platzieren. Da die leere Stammseite als doppelseitig angelegt wurde, erscheinen die Hilfslinien auf rechten und linken Seiten an der richtigen Position.
Das Bild unten zeigt mein Testdokument für diesen Artikel, zwei Seiten wurden auf die leere Stammseite umgeschaltet.
Lassen Sie mich zusammenfassen, was hier diskutiert wurde:
- Beginnen Sie mit der Gestaltung einer Seite, möglicherweise mit Bleistift und Papier.
- Legen Sie eine Stammseite für typische rechte Seiten an.
- Wählen Sie eine Schriftart und -größe sowie den Zeilenabstand.
- Benutzen Sie das Grundlinienraster für einheitliche Zeilenpositionen in mehrspaltigem Layout.
- Legen Sie Stammseiten (modifizierte Kopien der ersten) für jeden speziellen Seitentyp der Publikation an, einschließlich leerer Seiten. Schalten Sie Stammseiten auf »doppelseitig«, wenn sie links und rechts erscheinen können.
- Benutzen Sie die vordefinierten Ãœberschrift-Absatzvorlagen wenn Sie (evtl.) ein Inhaltsverzeichnis brauchen.
Das war es grundsätzlich. Mit Kenntnis dieser Techniken sollten Sie in der Lage sein, eine handliche Vorlage für Ihre zukünftigen Publikationen zu schaffen.
Eigentlich hatten nur einige Teile dieser Serie mit Stammseiten zu tun. Andere waren allgemein zur Seitengestaltung oder über RagTime. Sie wissen vielleicht, dass Stammseiten eine von zwei Methoden in RagTime sind, Seiten automatisch anzufügen. Für einige Aufgaben (und einige Leute) haben Stammseiten zu viel Automatik. Die andere Methode sind Ringpipelines und könnten ein gutes Thema für einen zukünftiges Artikel abgeben.