[GastForen Programmierung/Entwicklung AppleScript XPress: Absatzlinie oben auslesen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

XPress: Absatzlinie oben auslesen

Goar
Beiträge gesamt: 372

10. Jun 2003, 15:59
Beitrag # 1 von 2
Bewertung:
(818 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Forum,

bei der automatischen Aufbereitung von Headlines könnte mir ein Skript gute Dienste leisten. Es ist ja eigentlich schon fertig, bloß ist mir da ein Problem aufgefallen.

In meinem Script gibt es folgende Passage:
---
tell paragraph i
  set zab to leading as real
  set abstvor to space before as real
  set linoben1 to position of rule above as real
  set linoben2 to rule above -- als alternative Abfrage
  set param to properties of paragraph i -- sogar das habe ich in verschiedenen Abwandlungen probiert
end tell
---
Um bestimmte Einstellungen in einem (Headline-)Absatz automatisch ändern zu können, frage ich zunächst den Zeilenabstand, den Abstand vor und die Absatzlinie oben ab. Die beiden ersten klapp(t)en immer, die Abfrage zur Absatzlinie gab mal ein richtiges, mal ein falsches Ergebnis, wie ich im Eventprotokoll sah.

Es dauerte eine ganze Weile, bis ich herausbekam, dass die Abfrage zur Absatzlinie immer die Parameter des Absatzes ergab, in dem meine Einfügemarke stand, auch wenn ich die Abfrage außerhalb des tell-Ausdrucks (wie nennt man das eigentlich richtig?) positioniert habe. Auch...
Code
  set linoben2 to rule above of paragraph i 

... half nicht weiter, es brachte überhaupt kein Ergebnis.

Wenn es gelänge, die Einfügemarke in 'paragraph i' zu positionieren, oder in diesem Absatz irgend etwas zu markieren, käme ich vielleicht auf diesem Wege an die gesuchten Parameter; aber das habe ich schon früher vergeblich versucht.
Oder ist es möglich, die Parameter von angelegten Stilvorlagen auszulesen? Denn an den Namen der Stilvorlage des jeweiligen paragraph i komme ich ja.

Wer weiß weiter?
X

XPress: Absatzlinie oben auslesen

Hans Haesler
  
Beiträge gesamt: 5805

10. Jun 2003, 20:16
Beitrag # 2 von 2
Beitrag ID: #418182
Bewertung:
(817 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Goar,

sehr gut beobachtet! Respekt! Ja, dies ist eines der grossen (aber nicht unüberwindbaren) Probleme mit QuarkXPress 4.11:
um korrekte Informationen über die Absatzlinien zu erhalten, muss der Absatz ausgewählt sein. Gut, es genügt, das erste
Zeichen auszuwählen oder die Einfügemarke im Absatz zu positionieren.

Das Abfragen von Stilvorlagen ist mit der QXP 4.11 ein noch grösseres Problem: direkt (wie mit QXP 3.32) ist unmöglich.
Man muss die Stilvorlage einem Absatz zuweisen und dann diesen abfragen.

Das folgende Script wählt das erste Zeichen des Absatzes aus. Dies kann nicht in der Repeatschleife selber geschehen.
Es braucht den Aufruf eines Handlers, damit die Selektion richtig formuliert werden kann:
---
tell document 1 of application "QuarkXPress 4.11"
  activate
  tell current box
    tell story 1
      repeat with i from 1 to count paragraphs
        my selPara(i)
        tell paragraph i
          set linoben1 to position of rule above as real
        end tell
      end repeat
    end tell
  end tell
end tell

on selPara(i)
  tell document 1 of application "QuarkXPress 4.11"
    try
      set selection to character 1 of paragraph i of story 1 of current box
    end try
  end tell
end selPara
---
Das Wörtchen 'my' vor 'selPara(i)' ist zwingend notwendig, weil man sich innerhalb einer 'tell application QXP'-Schleife
befindet. Und das 'i' innerhalb der Klammern übergibt den Wert des Zählers an den Handler. Der 'try' wrapper verhindert
eine Fehlermeldung, wenn ein Return am Textende einen leeren Absatz verursacht hat.
Variante (zum Setzen der Einfügemarke):
Code
       set selection to insertion point before first character of paragraph i of story 1 of current box 

Mit diesem Vorgehen erhält man immer die richtige Position der Linie. Aber: man sollte zugleich feststellen, ob die
Absatzlinie aktiviert ist oder nicht. Dies geschieht mit 'if rule on of rule above is true then' und könnte so
eingebaut werden:
---
        tell paragraph i
          set zab to leading as real
          set abstvor to space before as real
          tell rule above
            if rule on is true then
              set linoben1 to position as real
              my modPara(i)
            end if
          end tell
        end tell
---
Der Aufruf 'my modPara(i)' geht an einen noch zu definierenden Handler. Ich nehme an, dass die Werte 'zab', 'abstvor'
und 'linoben1' auch berücksichtigt werden müssen. Aber weil ich den Überblick nicht habe, lasse ich es bei diesen
Andeutungen bewenden.

Hans Haesler, hsa[email protected]


als Antwort auf: [#418181]

Aktuell

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
05.02.2021 - 05.11.2021

Digicomp Academy AG, Limmatstrasse 50, 8005 Zürich
Freitag, 05. Feb. 2021, 13.00 Uhr - Freitag, 05. Nov. 2021, 17.00 Uhr

Lehrgang

Bilden Sie sich zum zertifizierten Publishing-Multimedia-Profi aus. Neben Fotografie und Video befassen Sie sich mit der Medienproduktion, digitalen Publikationen und dem Webdesign für Desktop- und mobile Endgeräte.

Preis: CHF 10'500.-
Dauer: 30 Tage (ca. 210 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/9PM

Veranstaltungen
12.03.2021 - 16.07.2021

Digicomp Academy AG, Zürich oder virtuell
Freitag, 12. März 2021, 13.00 Uhr - Freitag, 16. Juli 2021, 17.00 Uhr

Lehrgang

Steigen Sie in die Welt des Publishings ein und erlangen Sie die Zertifizierung von publishingNETWORK. Lernen Sie in diesem Lehrgang Druckmedien professionell zu erarbeiten, druckfertige PDFs zu erstellen und CI/CD-Vorgaben umzusetzen.

Preis: CHF 6'300.-
Dauer: 18 Tage (ca. 126 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt.

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/9PBAS