Verschiedentlich wurde gemeldet, dass die Ausführung von QuarkXPress-Scripts unter Mac OS X erheblich länger dauert. Es ist zwar allgemein bekannt, dass Scripts unter QXP 3.32 am fixesten laufen. Und es ist auch logisch, dass das Ausführen beim Ansprechen der immer schwerfälliger werdenden Versionen auch darunter leidet.
Einen Teil der Schuld muss man sicher auch dem langsameren Mac OS X zuschieben. Aber was kann man tun, um Scripts zu optimieren?
Hier ein konkretes Beispiel: Es geht darum, in einem Projekt die Textboxen nach Absätzen zu durchforschen, welche mit einer bestimmten Stilvorlage formatiert sind. Sobald eine Übereinstimmung gefunden ist, wird die Position der Grundlinie notiert, sowie die Anzahl Zeilen des Absatzes und der Zeilenabstand. Mit diesen Parametern wird hinter der entsprechenden Textbox eine Hintergrundbox erstellt.
Mit QuarkXPress 4.11 geht dieses Abfragen so rasch, dass sämtliche Boxen nach 1,5 Sekunden erzeugt sind (dank 'do script' und OSA Menu). Mac OS 9.2.1, G3/450MHz.
Mit QuarkXPress 6.1 und unter Mac OS X 10.3.2, G4/800MHz muss man sich viel länger gedulden: 18 Sekunden …
Abhilfe: versuchen, das direkte Ansprechen der Absätze zu vermeiden. Statt so …
---
repeat with p from 1 to count of paragraphs
tell paragraph p
set curName to name of style sheet
if curName = styleSheetName then
set leadVal to leading as millimeter units as real
set base1 to baseline of line 1 as real
set nLines to (count of lines) - 2
my makeBox()
end if
end tell
end repeat
set styleSheetList to name of style sheet of every paragraph
repeat with p from 1 to count of styleSheetList
set curName to item p of my styleSheetList
if curName = styleSheetName then
tell paragraph p
set leadVal to leading as millimeter units as real
set base1 to baseline of line 1 as real
set nLines to (count of lines) - 2
end tell
my makeBox()
end if
end repeat
---
Damit vermeidet man die unzähligen direkten Anfragen an XPress. Die Ausführungszeit wird auf 7 Sekunden reduziert. Auch hier: mit 'do script' und ab dem XPress-eigenen Script-Menü.
Hans Haesler <hsa@ringier.ch>