Forenindex » Programmierung/Entwicklung » AppleScript » QuarkXPress, Applescript und die Kapitel

QuarkXPress, Applescript und die Kapitel

Minimac
Beiträge gesamt: 55

25. Sep 2015, 11:02
Bewertung:

gelesen: 792

Beitrag als Lesezeichen
Hallo zusammen,
ich finde mal wieder nix. Ich versuche in Quark per Applescript den Wert heraus zu bekommenden man bei einem Kapitelanfang eingeben kann. Frage ich nach "name of page" dann steht der Wert davor. Ich möchte aber
a) gerne einfach alle Kapitelanfänge auslesen,
b) die Seiten pro Kapitel zählen

Einfach das erste Zeichen des Seitennamens zu prüfen und bei einer Änderung von einem neuen Kapitel ausgehen klappt nur wenn ein Präfix für das Kapitel mit eingegeben wurde. Und das Präfix selber ist damit immer noch nicht bekannt. Zumindest fällt mir nix ein wie das zuverlässig extrahiert werden kann. Im dictionary von Quark 10 finde ich werde chapter noch prefix. Aber vielleicht ist das doch nur irgendwo versteckt :-)

QuarkXPress, Applescript und die Kapitel

Minimac
Beiträge gesamt: 55

25. Sep 2015, 13:36
Bewertung:

gelesen: 762

Beitrag als Lesezeichen
So, es scheint so als ob ich eine "göttliche Eingebung" hatte.
Sofern man beim Abschnitt ein "Trennzeichen" mit eingibt so schient der Code unten zu funktionieren Eleganter wär es natürlich wenn Quark das einzeln preisgeben würde aber da finde ich eben nix. Muße es also so gehen :-)
Zusätzlich ist kommt es drauff an ob die Applescript eigene "Worttrennung" klappt. In der Doku steht, man soll sich nicht drauf verlassen weil es von den Einzellungen des Benutzers abhängig ist. Ich war aber nun zu faul da selber die letzen "Zahlzeichen" zu extrahieren.

Code
-- Quark liefert einem immer den Abschnittswert mit der Seitenzahl ohne Trennzeiche dazwischen als Seitenname 
-- wenn also als Abschnitt eine Zahl ohne Trenzeichen dahinter eingegeben wurde dann wird leider nix mit der Trennung. Macht zwar keinen Sinn, aber eingeben könnte man es so um das Script zu ärgern :-(

--set {hAbschnitt, hSeitenzahl} to {"Kap. ", "3"}
--set {hAbschnitt, hSeitenzahl} to {"Kap. 1,", "3"}
set {hAbschnitt, hSeitenzahl} to {"Kap. 1.", "3"}
set pName to hAbschnitt & hSeitenzahl
log pName

set lW to last word of pName -- klappt nicht wenn vor der Seitenzahl ein Punkt oder Komma steht. Wo klappt es sonst nicht?
log lW

if lW contains "." or lW contains "," then
set x to (offset of "." in lW) + (offset of "," in lW) -- ggf weitere "böse" Zeichen hier anhängen

set secName to text 1 thru (-x - 0) of pName
set pName to text (-x + 1) thru -1 of pName
else
if pName = lW then
set secName to "" -- falsch wenn, als Abschnitt eine Zahl ohne Trennzeichen dahinter eingegeben wurde. Wenn es dann auch noch eine echte Seite mit dem Namen gibt hat man keine Chance das zu trennen
else
set secName to text 1 thru (-(length of lW) - 1) of pName
end if
set pName to lW
end if
log ("secName = >" & secName & "<")
log ("pName = >" & pName & "<")



-- So, es scheint so als ob ich eine "göttliche Eingebung" hatte.