Manchmal hat man anscheinend Glück und man darf sich ein Skript wünschen...
Schaut euch bitte mal meinen beiliegenden Screen an.
Ich möchte ein Bild im Grundlinienraster platzieren und es soll an der Oberkante mit der Oberlänge der Schrift abschließen.
Bisher behelfe ich mir so, das ich das Bild im Grundlinienraster oben und unten platziere, dann den Ursprung des Bildes auf unten setze und dann einen zuvor händisch ermittelten Wert in der Rahmenhöhe abziehe.
Das Script sollte folgendes machen: Nach Auswahl mit dem Auswahlwerkzeug Start des Scriptes 1. Setzen des Ursprungs von egal wo auf unten 2. Abziehen eines festgelegten Wertes von der Höhe des Rahmens
Anmerkung: Da der Abstand pro Dokument immer gleich ist, ist es auf keinen Fall notwendig die Oberlänge irgendwie aus der Schrift vorher auszulesen. Man könnte diesen festen Wert einfach ins Skript eintragen und hätte für verschiedene Jobs einfach verschiedenen Scripte.
Punkt 1 würde ich so lösen: if (app.layoutWindows[0].transformReferencePoint == AnchorPoint.CENTER_ANCHOR) { app.layoutWindows[0].transformReferencePoint = AnchorPoint.BOTTOM_LEFT_ANCHOR; } else { app.layoutWindows[0].transformReferencePoint = AnchorPoint.BOTTOM_LEFT_ANCHOR; }
Aber wie geht´s weiter ... ? Freu mich auf eine Antwort.
Soll ich ernsthaft soviele Hilfslinien wie es es Linien im Grundlinienraster hat auf der Musterseite mit Versatz platzieren? > Die Bilder stehen doch immer woanders ;-)
Das ist schade, denn ich brauche das in fast allen meinen Produktionen.
Gruß Kai Rübsamen
(Dieser Beitrag wurde von ruebi am 5. Feb 2009, 13:21 geändert)
Bilder auf Höhe der Oberlängen per Skript anpassen
Hallo ruebi, hier ein Vorschlag von mir, der das Problem vielleicht zukünftig aus der Welt schaffen könnte: wir nutzen seit Jahren das Grundlinienraster als Positionshilfe für Text- und Bildrahmen. Es verläuft also nicht an der Position der Schriftlinie, sondern an der Versalhöhe der Schrift. Das hat den Vorteil, daß alle Rahmen (Text und Bilder) dort eingehängt werden können und somit stimmen die horizontalen Achsen. Der Nachteil ist, daß Texte, die eine andere Schriftgröße und damit auch einen aneren ZAB haben als die copy im Absatzformat eindeutige Vorher- und Nachherabstände definiert haben müssen, was aber bei sorgfältigem Satz nicht das Problem sein sollte. Wir kommen damit wunderbar klar.
Bilder auf Höhe der Oberlängen per Skript anpassen
ich habe für eine unserer Wochenzeitschriften solch ein Script geschrieben. Ich müsste es "nur" nach CS4 portieren, übersetzen (von "français" nach "deutsch") und die Werte anpassen.
Ich werde mich wieder melden.
Gruss, Hans
Bilder auf Höhe der Oberlängen per Skript anpassen
Hi, wir behelfen uns damit, das wir eine Ebene mit Hilfslinien für die Versalhöhe einrichten. Die besteht dann nur aus vielen vielen HL, die um die Versalhöhe verschoben oberhalb der GL stehen.
Die ist mit einfachen Mitteln extrem schnell erstellt, und kann entweder bei Bedarf eingeblendet werden oder mit Skalierungsfaktor versehen werden.
Grüßle Christoph Steffens
www.idug-stuttgart.de www.satzkiste.de
Bilder auf Höhe der Oberlängen per Skript anpassen
@ löckchen: D.h. eure Texte sind nicht am Grundlinienraster ausgerichtet, wohl aber der Rahmen daran angedockt? @ Christoph: Das wäre ja Geralds Variante. Gefühlt erscheint mir das sehr unübersichtlich, würde aber die Aufgabe lösen.
Wenigstens bin ich froh das ich nicht der Einzigste bin der nach einer Lösung sucht ;-)
Gruß Kai Rübsamen
(Dieser Beitrag wurde von ruebi am 5. Feb 2009, 14:17 geändert)
Bilder auf Höhe der Oberlängen per Skript anpassen
Ich meinte mit meiner Antwort eher das es mich überrascht hat das mir schon zwei sowas empfehlen ... jedenfalls richte ich es mir gerade ein!
Wenn man sich das Grundlinienraster ausschaltet nimmt man sich auch die Möglichkeit zum Ausrichten von Flächen an demselben ohne das man das Raster sieht. Denn das GLR muss nicht sichtbar sein um zu wirken.
Gruß Kai Rübsamen
Bilder auf Höhe der Oberlängen per Skript anpassen
Ich mach so was bislang auch mit einem Hilfslinienset. Aber das muss ja nicht immer so bleiben.
Hier ein proof of concept eines anderen Ansatzes. Dieser Ansatz geht davon aus, dass die Höhe des Bildrahmens einem ganzzahligen Vielfachen eines bestimmten Zeilenabstands entsprechen soll, abzüglich dem Raum zwischen Versalhöhe und der nächsten Grundlinie.
Zwei Dinge müssen zunächst eingestellt werden:
var mySpaceBetweenBaselineAboveAndCapsheight = 1.6; // Abstand nächste Grundlinie bis Oberlänge in mm var myLeading = pt2mm(11.5); // Zeilenhöhe in pt (hier 1,6 mm Abstand von Versalhöhe zur darüberliegenden Grundlinie und 11,5 pt Zeilelnabstand)
Die Unterkante des Bildrahmens steht auf einer Grundlinie. Das Skript sollte nun die Oberkante des Bildrahmens an die nächstgelegene Versalhöhe justieren (auf- oder abrunden).
Es ist durchaus möglich, daß dieser Ansatz nichts taugt. Zumindest hat er seine Schwächen. Aber ich wittere, dass dahinter eine Lösung jenseits dem Hilfsliniengefängnis liegen könnte. Freilich sollte man den zu definierenden Zeilenabstand aus einem Absatzformat auslesen. Und die Versalhöhe bzw. die Differenz zwischen Versalhöhe und Zeilenabstand könnte man über Geralds Ansatz zur Berechnung der Versalhöhe in mm bestimmen.
Im Moment braucht's da aber noch feste Werte.
--- edit: Ah, gerade sehe ich, dass Hans seine Lösung veröffentlicht hat. Wie mir auf den ersten Blick scheint, verfolgt sie einen ähnlichen Ansatz. Ist darüberhinaus aber präziser und fängt unterschiedliche Gegebenheiten ab. Also besser mit dem Premium-Skript von Hans arbeiten, als mit dem obigen proof of concept.
Viele Grüße Martin
(Dieser Beitrag wurde von Martin Fischer am 5. Feb 2009, 15:31 geändert)
Bilder auf Höhe der Oberlängen per Skript anpassen
Freu mich über die zahlreichen Antworten und Lösungen :)
Bei mir hat´s gerade nur noch Linien. Da ich als Unterkante ja das Grundlinienraster und als Oberkante die neuen Hilfslinien nehme verwirrt mich das total. Das an- und ausschalten der jeweiligen Ebene oder das hantieren mit verschiedenen Zoomstufen von Hilfslinien und Raster machen das Chaos gerade perfekt.
Denke aber das man sich daran gewöhnen könnte.
@ Martin: Hilfsliniengefägnis trifft es in der Tat (siehe Screen). Ich werde heute Abend eure Skriptlösungen testen und mich dann wohl auch dafür entscheiden.
rübi wünscht, die Werte des Grundlinienrasterabstandes und der Höhe der Oberlängen je nach Auftrag ändern zu können. Damit er dies nicht in den Tiefen des Codes machen muss, habe ich jetzt Variablen eingesetzt. Die beiden Werte können zu Beginn des Scripts geändert werden.
Das habe ich mir mittlerweile bei allen Scripten so eingerichtet. Zusätzlich habe ich mir den Link des jeweiligen hds-Beitrages als Kommentar in die erste Zeile des Scriptes gesetzt. Wenn ich nicht mehr weis was das Skript genau macht oder was ich beachten muss kann ich so immer schnell nachlesen.
Gruß Kai Rübsamen
Bilder auf Höhe der Oberlängen per Skript anpassen
Ich habe da noch bisschen Mühe! @ Quarz: Hab’s nicht nachgestellt (nur nachgedacht ;-) : Wie lange muss der Nullpunkt verschoben bleiben? Was passiert in der Zeit, während er verschoben ist, beim Positionieren anderer Elemente? Ist das nicht ein wenn auch kreativer, so doch gefährlicher Weg? @ Rübi: Ich liebte das Dokumentraster bis CS4 wegen seiner einfachen Möglichkeit, sich automatisch zwei Hilfslinien anzeigen zu lassen, die die Seitenmitte kennzeichnen ;-) Grüße, Jochen
(Dieser Beitrag wurde von Jochen Uebel am 5. Feb 2009, 23:11 geändert)
Bilder auf Höhe der Oberlängen per Skript anpassen
Ich bringe nun noch das Grundlinienraster des Textrahmens ins Spiel: ein Ansatz, der wenigstens dann ein Ansatz sein kann, wenn nur die Bildoberkante an der Grossbuchstabenhöhe aufgehängt werden soll. Habe bei der Gelegenheit bisschen Werbung für HDS gemacht ;-) Hier geht’s zum Beitrag: http://blog.smi.ch/...rossbuchstabenraster Grüße, Jochen
Bilder auf Höhe der Oberlängen per Skript anpassen
Im Premiumbereich habe ich ein letztes Mal die Version 403 des Scripts geändert,. Nun kommt es auch mit der Grundlinienraster-Option "Relativ zu: Oberem Rand" klar.
Weiter unten im selben Thema, findet sich die Version 410. Die Neuheit: Der Code muss nicht editiert werden, wenn mal eine andere Grossbuchstabenhöhe angewendet werden soll. Erläuterungen und Script hier: http://www.hilfdirselbst.ch/...i?post=384526#384526
Gruss, Hans
Bilder auf Höhe der Oberlängen per Skript anpassen
Ja, so mancher InDesign-Anwender weiss gar nicht, was es mit "Skriptbezeichnung" auf sich hat.
Ich habe nun im Script eine kleine Änderung vorgenommen. In der Version 411 wird für den Namen (= "Label") des Musterrahmens eine Variable benutzt. Diese wird in Zeile 10 des Codes definiert. Dort steht nur noch m (ist schneller getippt, als muster). Diese "Textkette" kann im Code geändert werden. Aber sie muss bei der Ausführung mit den Namen des Rahmens übereinstimmen.
Gruss, Hans
Bilder auf Höhe der Oberlängen per Skript anpassen
und nochmals eine Änderung: Bisher wurde vorausgesetzt, dass die vertikale Masseinheit in Millimetern definiert ist. Wenn eine andere Einheit eingestellt wäre, dann würde das Ergebnis nicht wie erwartet ausfallen.
nun ist endlich die Version 420 gepostet. Im Premiumbereich: http://www.hilfdirselbst.ch/...i?post=384824#384824 Darin ist das von Anfang an vorgesehene Auslesen der Höhe eines ausgewählten Buchstabens integriert.
In dieser ultimativen Version hatte ich zuerst das Gehampel mit der benannten Musterbox entfernt. Weil nicht unbedingt notwendig (eine private Rückmeldung sagte es deutlicher :-):
Das mit "m" oder "muster" ist doch <entschuldigung>mumpitz </entschuldigung> weil egal
Aber dieser Musterrahmen kann durchaus seine Berechtigung haben. Wie schon früher überlegt: Wenn eine Schrift nicht eine schön waagerechte Oberkante aufweist, dann ist der Musterrahmen eine ideale Lösung. (IMHO).
Also denn: Frohes Alinieren!
Gruss, Hans
Bilder auf Höhe der Oberlängen per Skript anpassen
ich ahnte ja, dass Du nicht locker lassen würdest. Ganz toll :-)))
(Nur Rahmen mit Textinhalt kann nicht verarbeitet werden.)
Als pingeliger Grafiker und Setzer hätte ich da noch eine Anmerkung, die ja jetzt mit Deinem tollen Script ohne große Mühe ausgeführt werden kann.
Also die Regel lautet: Grafiken, die am oberen Satzspiegel beginnen haben die Höhe der Versalien. Aber - Grafiken, die im Satzspiegel eingebunden sind haben die Höhe der Gemeinen.
Auch von meiner Seite ein grosses Kompliment, da nun mit der Auswahl irgendeines Buchstabens das Skript supereinfach angepasst werden kann. Toll, wie dein Skript die Ausrichtung eines Grafikrahmens an die Versal- bzw. Kleinbuchstabenhöhe elegant löst.
Herzlichen Dank Marco
Bilder auf Höhe der Oberlängen per Skript anpassen
Also die Regel lautet: Grafiken, die am oberen Satzspiegel beginnen haben die Höhe der Versalien. Aber - Grafiken, die im Satzspiegel eingebunden sind haben die Höhe der Gemeinen.
interesant! Was ist deine Begründung dafür?
In meinem Screen beträgt die Diff. 0,583 mm bei einer Schriftgröße von 10 pt. Wenn ein Text wenig Oberlängen hat spricht sicherlich eines für deine These um vom optischen Abstand auszugehen. Ansonsten würde ich generell mit den Oberlängen arbeiten (wer mich kennt weis, das ich auch sehr penibel bin ;-) ) um mir ein Anpassen des Skripts jedesmal zu sparen.
Das Praxishandbuch für Gestaltungsraster geht übrigens generell von den Oberlängen bzw. vom halben ZAB aus.
Gruß Kai Rübsamen
(Dieser Beitrag wurde von ruebi am 10. Feb 2009, 13:23 geändert) Anhang:
Bild 3.png
(238 KB)
Bilder auf Höhe der Oberlängen per Skript anpassen
Hallo, Rübi! Die "mikrotypografische" Regel, die ich jetzt aus deinem Screenshot ableite, wäre ja diese: Das erste Zeichen in der Zeile neben dem Bildrahmen bestimmt dessen Höhe. Bei einer Versalie ist es die Versalhöhe, bei einer Gemeinen ist es eben die.
Im Prinzip müßte dann das Script nach jedem Textreflow für jeden Bildrahmen neu gestartet werden. Womöglich wäre das Script dann noch mit 'ner Reflow-Detection auszustatten.
Jetzt stell Dir aber vor, da kommen ja noch mehrere Faktoren dazu, um halbautomatisiert ein Superergebnis hinzubekommen. Als da wären z.B.: Grauwert der Schrift Optische Gewichtung des Bildes (also sogar der Bildinhalt!) Abstand der Bildrahmenkante zur Zeile auf gleicher Höhe
Bestimmt fallen uns noch zich Faktoren ein, die der liebe Hans da einbauen könnte!
BITTE. Laß es gutsein. Wir können es auch übertreiben mit der ganzen Einstellerei, und die Wenn/Dann-Szenarien in ein Script zu integrieren.
Ich glaube, daß das Script in seiner jetzigen Ausbaustufe bereits genug kann. Ob das Ergebnis seiner Anwendung dann im konkreten Fall gelungen ist, muß jeder Anwender dann eh selbst im Einzelfall entscheiden.
Wenn ich 'mal so weiterspinne, ist das ja ein unendliches Thema (jetzt mal völlig weg vom Thema Script, Offtopic): z.B. Markup für Bilder und Typografie, das bestimmte ästhetische Vorgaben des Layouters widerspiegelt.
@Hans: Die Version 403 hat mir bereits sehr zugesagt. Danke für die hervorragende Arbeit. ***** Mit herzlichem Gruß, Uwe Laubender
Bilder auf Höhe der Oberlängen per Skript anpassen
@ Uwe: Du hast natürlich völlig recht. Ich wollte mit meinem Beitrag auch keine weitere Änderung des Skriptes herbeiführen. Ich kann an Quarz Aussage nichts falsches erkennen, an meiner aber auch nicht ;-) Soll jeder selber sehen was er für richtig erachtet.
Gruß Kai Rübsamen
Bilder auf Höhe der Oberlängen per Skript anpassen
Was ist neu? – Wie angekündigt, werden nun Grundlinienversatz und Zeichenkonturstärke berücksichtigt (wird selten vorkommen, aber es könnte sein, dass mal eine Titelzeile mit entsprechender Formatierung benutzt wird). – Wenn das ausgewählte Zeichen nicht in Pfade verwandelt werden kann, wird eine Meldung gezeigt. – Abbestellen des Dialoges, welcher das Eintragen der neuen Höhe bestätigt: In der Zeile 12 des Scripts das 'true' durch 'false' ersetzen. – Weil nur mit CS4 die Ausrichtung der Zeichenkontur auf "mittig" geändert werden kann, sorgt ein Test dafür, dass dasselbe Script auch mit CS3 läuft.
Ach ja: Auf speziellen Wunsch von Quarz können nun auch Textrahmen verarbeitet werden.
Gruss, Hans
Bilder auf Höhe der Oberlängen per Skript anpassen
ja, solche Rahmen waren schon mit der ersten Version (401) zugelassen. Das Script prüft den Namen des 'constructorType'. Wenn dieser "Rectangle" ist, dann kann das sowohl ein Rahmen mit Inhalt "Grafik" als auch "Nicht zugewiesen" sein. Obwohl Textrahmen meistens ebenfalls rechteckig sind, muss dafür "TextFrame" benutzt werden.
Ich habe soeben die Beschreibung entsprechend ergänzt. Einzig in den Dialogen, welche bei einer fehlenden oder nicht korrekten Auswahl gezeigt werden (d.h. nie ;-), wird nur nach einem Bildrahmen gefragt.
Gruss, Hans
Bilder auf Höhe der Oberlängen per Skript anpassen
> Obwohl Textrahmen meistens ebenfalls rechteckig sind, muss dafür "TextFrame" benutzt werden.
Du könntest auch abfragen, ob das ausgewählte Objekt eine Eigenschaft (hasOwnProperty) 'geometricBounds' hat. So bekommst Du alle Seitenobjekte (Textrahmen, Bildrahmen, Ovale, Linien, gruppierte Objekte) zu fassen.