in Quark 4.11 ändere ich in einem importiertem Text folgendermaßen:
tell every story
tell (every text style range where style of it = bold) set style of every text to plain end tell tell (every text style range where font of it = "Cinema") set style of every text to plain end tell
end tell
Bold gestellter Text ist danach nicht mehr bold, alles im Font "Cinema" gesetzte verliert damit auch Kaps etc.
In Quark 5 funktioniert es nicht mehr. Offensichtlich überschreibt "plain" nicht mehr die anderen Formatierungen, denn der prinzipielle Ablauf funktioniert, wenn ich z.B. allen diesen Texten "itailic" zuweise (statt plain), sind sie dann tatsächlich nach Ablauf des Scripts alle bold und Italic.
dasselbe Problem gibt es auch in XPress 6. Bisher habe ich es gelöst, indem ich statt 'plain' den aktuellen Stil zugewiesen habe: Dasselbe funktioniert ja auch manuell: wähle ein Wort aus und wiederhole Befehl-Umschalt-B. Wie ein Schalter, welchen man an- und ausknipst. Per Script klappt dies gut, solange man den angewendeten Stil kennt und es keine Kombinationen (wie Bold-Italic) sind.
Jetzt, beim Herumprobieren, habe ich nun einen neuen Workaround gefunden, welcher keine Einschränkungen mehr hat :-): die Konstante 'plain' mit Akkoladen versehen. Dies ist ja auch das Resultat von 'on styles of (get style)'. --- tell document 1 of application "QuarkXPress 5.01" activate tell every story try tell (every text style range where style of it = bold) set style to {plain} end tell end try try tell (every text style range where font of it = "Cinema") set style to {plain} end tell end try end tell end tell --- In der Zeile, welche mit 'set' beginnt, ist der Zusatz 'of every text' überflüssig. Und ich rate Dir, beide Befehle mit 'try' / 'end try' einzupacken. Damit verhindert man eine Fehlermeldung (und den Abbruch der Ausführung), wenn z.B. mal kein fetter Text vorhanden ist.
vielen Dank für die Unterstützung. Die Überlegungen mit dem Schalter, den man an und ausschalten kann, hatte ich auch schon, aber bis jetzt noch keine Lösung, wie man ihn auch wie einen Schalter per Script bedient, also gewissermaßen "turn bold on/off" oder so. Aber da fehlt mir einfach die Script-Erfahrung, und in den Beispielen, die ich habe, geht es seltem um typografische Probleme, während ich Scripte bisher (nur) einsetze, um importierte Texte möglichst einfach und sicher umzuwandeln - wobei ich aber die vorhanden Formatierungen nicht verlieren möchte, sondern typografisch korrekt umzusetzen.
für das zuweisen von komplexen Stilen (z.B. bold, italic und auch noch outline) funktioniert folgende Lösung:
set style to {on styles:{bold, outline, italic}, off styles:{plain, underline, shadow, superscript, subscript, superior, strikethrough, all caps, small caps, word underline}}
Je nach Bedarf kann man die Begriffe zwischen on styles und off styles verschieben. Vorsicht: wenn man eine ungülitge Version wählt, gibt es eine Fehlermeldung.
ja, Deine Lösung funktioniert. Doch: die 'off styles' kannst Du Dir sparen. Und wofür sie gedacht sind, weiss ich auch nicht.
Es genügt, die 'on styles' aufzuführen … … auch wenn dem Text eine andere Kombination zugewiesen ist.
Die Liste der Style kann auch vorher zusammengesetzt und dann mit einer Variablen zugewiesen werden: --- tell document 1 of application "QuarkXPress 5.01" set newStyle to {bold, italic, outline} tell current box tell story 1 tell paragraph 1 set style to {on styles:newStyle} end tell end tell end tell end tell ---
Man sollte auch vorsichtig sein mit Stilen, die sich gegenseitig ausschliessen: underline – word underline / all caps – small caps / superscript – subscript
Manuell können diese Paare nicht gleichzeitig angewendet werden. Per Script sehr wohl: es gibt keine Fehlermeldung. Aber ich glaube nicht, dass dies zur Stabilität des Dokuments beitragen würde …
was ich noch hätte einfügen sollen: wenn Du einen triftigen Grund für die Auflistung der 'off styles' kennst (ausser sie zur Hand zu haben), dann lasse es mich bitte wissen. Ich lasse mich gerne belehren. :-)