Inzwischen wurde herausgefunden, dass die Versalhöhe zumindest ausgelesen werden kann: gerundet auf den Zehntelmillimeter via Bearbeiten > Im Textmodus bearbeiten (die zu analysierenden Zeichen müssen die ersten sein in einer Textkette, und die Position der ersten Grundlinie ihres Rahmen muss auf Grossbuchstabenhöhe gestellt sein) – oder, auf drei Stellen hinter dem Millimeterkomma genau, durch Schrift > In Pfade umwandeln. Siehe auch hier. Grüße, Jochen
ich habe vor etwa einem Jahr mal damit rumgespielt. Hier ein Skript, das die Höhe des ausgewählten (ersten) Zeichens ermittelt (bei Großguchstaben die Versalhöh, bei Kleinbuchstaben die x-Höhe ) und den Faktor zur Berechnung dieser Höhe aus dem Schriftgrad mit 10 pt bei diesem Zeichen in dieser Schrift gleich mitliefert.
Im Prinzip könnte man auf der Basis dieser Berechnung einen Eingabedialog für die Versalhöhe in mm generieren. Falls dafür noch Bedarf besteht, würde ich dies im Premium-Forum gelegentlich nachholen.
Viele Grüße Martin
(Dieser Beitrag wurde von Martin Fischer am 24. Jan 2009, 11:48 geändert)
das klingt sehr interessant. Und ich bin auch sicher, dass es da draußen noch etliche Setzer vom alten Schlag gibt, die froh wären, wenn sie ab und an in Versalhöhe denken & arbeiten könnten. Aber lass mal sehen, was an Rückmeldungen kommt. Jedenfalls nutzt, wie ich sehe, Dein Skript genau den Ansatz, den Gerald hier aufgezeigt hat: Ausmessung des Begrenzungsrahmens eines vorübergehenden Pfades. Clever! Grüße, Jochen
und wenn ich mich richtig erinnere, dann hatte Peter Kahrel seinerzeit in einer öffentlichen oder einer privaten Diskussion Deinen Ansatz ins Spiel gebracht. ;-)
Um die Schriftgröße in Versalien anzugeben müsste man sich noch überlegen, wie das umgesetzt werden soll:
Dialog mit Eingabe der Versalgröße -> Anzeige der dafür umgerechneten Schriftgröße Dialog mit Eingabe der Versalgröße -> Zuweisung der umgerechneten Schriftgröße an den ausgewälten Text.
Ich vermute mal, Du sitzt in den Startlöchern? ;-) Ich vermute, in Richtung zweite Variante gibt es mehr Befürworter. Denken wir an ein Startskript? Mit der Tab-Taste wäre dann der mm- oder pt-Wert einzugeben, man sähe in der Steuerung oder im Zeichenbedienfeld das Schriftgrößenergebnis, und fertig. Oder soll solch ein Bedienfeld eventuell gleich beides anbieten? Einagemöglichkeit für Versalhöhe und Schriftgröße zugleich? Dann würde es beides leisten: umrechnen und anwenden.
Oder denkst Du an einen Dialog? Hätte der eine Vorschau, wären auch hier beide Größen denkbar. Grüße, Jochen
Schlicht und einfach die zweite Variante. Ich gehe davon aus, dass wer die Versalhöhe eingeben will, die Vorstellung hat, dass die sichtbaren Buchstaben (nicht der Kegel) genau so hoch sein sollen wie ein gegebenes Maß. Genau das macht das anhängende Script für den markierten Text.
Getestet nur in CS4, ich sehe aber keinen Grund, warum das nicht auch in CS3 laufen sollte.
Ich habe gerade das "Versalhöhe.jsx" in InDesign CS3 (5.0.4) getestet. Funktioniert dort auch. Aber es gibt einen Fall, da funktioniert es nicht ganz korrekt. Siehe beigefügter Screenshot: "Test_Skript_Versalhoehe.png"
Zudem habe ich die Beobachtung gemacht, daß der Textrahmen, der den zu skalierenden Text beinhaltet, genug Spiel haben muß, damit, während das Skript ausgeführt wird, kein Übersatz entsteht. ***** Mit herzlichem Gruß, Uwe Laubender
ich weiß, als Entwickler sollte man nie "Warum" fragen, aber: warum würde ich einen Stilmix auf eine definierte Versalhöhe bringen wollen? Ist das eine akademische Anforderung oder hat sie einen praktischen Hintergrund? Derzeit geht das Script von der Formatierung des ersten Buchstaben aus und ignoriert die Möglichkeit, dass da mehrere Textstyleranges sein könnten. Beim Beispiel 2. wenn ich mich recht erinnere, läuft das Script nicht, wenn ein Textrahmen markiert ist. Für das Ergebnis wurde es also dreimal gestartet, oder? Dann siehe oben.
Natürlich kann das Script mit einer Schleife erweitert werden, um mit ranges umgehen zu können. Aber da ich es nur geschrieben habe, um zwischen zwei zu packenden Kisten mal über was erfreuliches nachzudenken, werde ich dazu nicht kommen ;))
Eine praktische Anwendung sehe ich schon, deshalb auch mein Beispiel: innerhalb einer Überschriftenzeile gibt es einen Schriftwechsel (durchaus realistisch), die Versalhöhen der beiden Fonts sollen gleich bleiben.
Dein Skript bietet da die Möglichkeit für beide Schriften bequem beide Versalhöhen aneinander anzugleichen. Toll. Man muß sich also nicht mehr rantasten, bis die visuelle Übereinstimmung hergestellt ist. Ich denke auch an die visuelle Angleichung von Auszeichnungen im Fließtext. Jetzt ist diese etwas einfacher zu ermitteln. Visuell wichtig, wenn man verschiedene Schriften benutzt, deren Versalhöhe bei gleicher Schriftgröße extrem abweichen. @Martin: natürlich kann man die Vorarbeit für die Auszeichnung auch über Dein Skript "capHeight.jsx" erledigen, was problemlos mit InDesign CS3 funktioniert.
Zudem probiere ich Skripte auch 'mal gern in unterschiedlichen Zusammenhängen aus, sodaß die Randbedingungen für die Funktionsweise klarer werden.
Also: keine vernichtende Kritik, sondern im Gegenteil ein "Herzliches Dankeschön!" von mir an euch beide! ***** Mit herzlichem Gruß, Uwe Laubender
Vorm Schlafengehen sich noch ein wenig sinnvoll konzentrieren, vor allem nachdem das Kino den eigentlich gewünschten Film einfach ohne Erklärung nur heute abgesetzt hat, ist ganz angenehm...
Anbei also Version 2. Es sollte jetzt sowohl damit klar kommen, dass im markierten Text verschiedene Formatierungen enthalten sind, als auch, dass mehrere Textrahmen markiert sind. Hübsch ist es nicht (falls jemand den Code inspiziert), aber das passiert halt, wenn man was Simples einfach aufbohrt ;)
Es wird weiterhin scheitern, wenn nicht nur Textrahmen markiert sind (zumindest manchmal) oder wenn der Rahmen/Story nicht groß genug ist, den vergrößerten Text aufzunehmen. Schließlich muss das Script zum Rausfinden der Versalhöhe mindestens ein zusätzliches Versal einfügen (und wieder löschen), um sicher zu sein, dass da auch ein Versal zum Messen ist.
Einen Schriftenmix auf die gleiche Größe zu bringen, fand ich recht überzeugend, obwohl ich Schriftenmixe immer noch fahrig finde. Wusste gar nicht, dass ich so konservativ bin. Oder konversativ? Konsekutiv? Konditortief? Kornisteinmief? Irgendsowas.
Joachim Lauterbach (TypoX) meint – und ich möchte ihm im Moment recht geben: Wozu eigentlich die Versalhöhe in Punkt? Da bei der Versalhöhe nur die geometrische Höhe interessiert, sollte sie tatsächlich eher in Millimeter angezeigt werden. Nur die Märkte, in denen Höhen und Breiten in Punkt gemessen werden, freuen sich über pt. Ist solch ein Umrechnungsfaktor schwer einzubauen in das Skript? Grüße, Jochen
Das ist eine MeasurementEditbox. Man kann also ein "mm" anhängen, wenn man will.
mm als Default zu geben, ist für den Programmierer komplizierter und da das ein kurz-mal-eben-Script ist, fand ich es zumutbar, mir die Arbeit mit dem Anwender zu teilen. Don't you agree? Then don't use it.
--- Viele Grüße, Ralf --- iMac i7 (18,3) 4,2 GHz, 32 GB 10.15.7 Catalina | MacBook Pro 15" (8,2) 2,0 GHz, 16 GB, 10.13.6 High Sierra | Mac Mini (6,1) als Server 2,5 GHz, 8 GB, 10.13.6 High Sierra | CC 2021 (ID 16.3.2)
Um die reale Zeichenhöhe zu ermitteln, wird ein eigener Rahmen angelegt. Es muss also nicht mehr genug Puffer im Original sein. Lediglich genug Platz fürs Ergebnis wär natürlich schön.
Der Anwender kann wählen, welches Zeichen maßgebend sein soll. Wenn also Schriften angeglichen werden sollen, die ein verschiedenes Versal-Minuskel-Verhältnis haben, ist es wählbar, ob die Versalhöhe oder die x-Höhe gleich ist. Auch sind bei Schriften wie der Marker Felt Pen die Versalien verschieden hoch; das 'H' als Maßsstab resultiert in einem anderen Ergebnis als das 'A".
Das Script merkt sich, welches der maßgebende Buchstabe ist. Der Höhenwert ist aber immer der des ersten markierten Zeichens.
Da da jetzt schon einiges an privater Zeit und geistigem Eigentum drin steckt, habe ich es für die Nachwelt (und andere interessierte Parteien) in meinen blog getan: http://indesign-faq.de/...re-hohen-angleichen/
Allerdings habe ich festgestellt, dass irgendwo noch ein kleiner Umrechnungsfehler drin steckt. Denn nach Einstellung von 10 mm Versalhöhe kommen im Ergebnis (wenn ich das Bezugszeichen nochmals in Pfade umwandle) 9,862 mm raus (s. Anhang).
Darüberhinaus habe ich das Skript mit unterschiedlichen Punktgrößendefinitionen (Voreinstellungen/Einheiten und Einstellungen/Punkt-/PicaGröße) gearbeitet. Egal, ob ich 72 Pt/Zoll, 72,27 Pt/Zoll oder (für den Didot-Punkt) 67,553 PT/Zoll einstelle, im Ergebnis kommen bei der Eingabe von 10 mm stets 9,862 mm hinten raus.
Für diese Umrechnung scheint also der Bezugs-Punkt egal zu sein.
Bei der Eingabeaufforderung hatte ich bei dem 'Maßgebenden Zeichen' nicht das Zeichen, sondern dessen Position (1) in der Auswahl eingegeben. Berechnet wurde bei mir also nicht nach der Versalhöhe von 'M', sondern von '1'. Und die unterscheidet sich wohl in meinem verwendeten Font.
Beim maßgebenden Zeichen ist immer das Zeichen selbst, nicht dessen Position in der Auswahl gemeint. Das habe ich jetzt auch kapiert.
Hallo Gerald. Ich habe festgestellt: Wenn die angeforderte Versalhöhe zu groß ist, wird das mit der angehängten Fehlermeldung quittert. Anschließend baut das Skript einen Textrahmen auf das Dokumentformat, fügt das ausgewählte Zeichen dort ein und löscht es wieder (Apfel-Z macht das sichtbar). Sonst: klasse. Grüße, Jochen
Auch auf die Gefahr hin, daß ich jetzt ein crossposting mache:
Ich kann Dein Script in InDesign CS3 (5.0.4) hier bei mir unter OSX 10.5.6 leider nicht zum Laufen bringen. Wie ich vorgegangen bin: 1. Mein Download (ctrl-klick auf den Link, speichern unter) speichert das zip-Archiv (2.138 Byte) 2. Ich entpacke das zip-Archiv mit Doppelklick 3. Nach dem Entpacken entsteht folgende Datei: “Versalhöhe3.jsxbin”(4.253 Byte) 4. Ich verschiebe das Script in das Verzeichnis "/Programme/Adobe InDesign CS3/Scripts/Scripts Panel" Versuche ich das Script auszuführen, bekomme ich folgende Fehlermeldung: Fehlernummer: 25 Fehlerzeichenfolge: Erwartet: ; Zeile: 1 Quelle: @JSXBIN@ES@2.0@My … Problematischer Text: .0
Ich nehme an, daß beim Download (oder beim Entpacken) etwas schiefgegangen ist, weiß aber nicht wie ich das abstellen kann. Das habe ich noch zu diesem Problem gefunden:
http://www.adobeforums.com/webx?14@@.59b5ebca/6
@ Martin, @Jochen WIE habt ihr das zip-Archiv heruntergeladen und entpackt? Bei euch scheint ja alles zu funktionieren. ***** Mit herzlichem Gruß, Uwe Laubender
Da hat's einen Umlaut verhauen. Schreibe statt 'Versalhöhe.jsxbin' 'Versalhoehe.jsxbin'.
Aber dass der Name bis in die Interpretation eines Skripts hineinwirkt ... Wenn man wüßte, wie, dann könnte man sich dies wohl sogar zu Nutzen machen. Und wenns nur um die Kontrolle über den Namen wäre ...
Gerald, versendest Du versteckte Botschaften? ;-)
Viele Grüße Martin
(Dieser Beitrag wurde von Martin Fischer am 27. Jan 2009, 11:34 geändert)
Hallo, Martin! Schick' mir doch einfach Dein funtionierendes Script per E-Mail (gepackt als zip- oder, besser vielleicht, als sit-Archiv). Dann kann ich 'mal gegenchecken, ob der Fehler beim Auspacken liegt. Oder, wer weiß, wo sonst noch. Danke. ***** Mit herzlichem Gruß, Uwe Laubender
Du kannst auch in InDesign aus dem Punkt einen Didot-Punkt machen. Ich habe mir für den Didot-Punkt in den /Voreinstellungen/Einheiten und Einstellungen/Punkt-/PicaGröße die Umrechung 67,553 PT/Zoll errechnet und eingestellt.
Mit einem Gruß an Deinen Mann, den Bleisetzer.
Ist kein Dokument offen, wird der gewählte Punkt zur Standardvorgabe (für neue Dokumente).
Johannes wird sich freuen - ich aber nicht so sehr, denn ich habe ja PostScript-Pt im Kopf.
Aber eine Umstellung, auch in der laufenden Datei, läßt sich ja mit einem Doppelklick herstellen - und wieder zurück.
Hierbei ist folgende Frage für mich aufgetaucht: Ich wollte die 2 Scripte vom Desktop aus mit #target InDesign in der 1. Zeile der Scripte starten. Doch dieser Befehl gilt für ID C3. Gibt es eine auch Schreibweise für CS4?
> ich aber nicht so sehr, denn ich habe ja PostScript-Pt im Kopf.
Ein Eventskript könnte dafür sorgen, dass beim Öffnen eines Dokuments stets der PostScript-Punkt aktiv ist.
> #target InDesign in der 1. Zeile der Scripte starten. > Doch dieser Befehl gilt für ID C3. Gibt es eine auch > Schreibweise für CS4?
Die Schreibweise ist dieselbe. Die Reaktion (bzw. welches von beiden Programmen sich angesprochen fühlt) hängt wahrscheinlich davon ab, welches Programm geöffnet ist oder mit welchem Programm die *.jsx-Dateien verknüpft sind.
Herzlichen Dank für die Zusendung des Skripts per E-Mail. Leider produziert das Skript immer noch die gleiche Fehlermeldung. Ich habe jetzt auch mal ein anderes Skript mit der Endung ".jsxbin" getestet. Das "batch_convert_cs3.jsxbin" von Peter Kahrel. Das hat funktioniert.
Ich bin jetzt etwas ratlos. Und Martin: lassen wir den Gerald erst mal in Ruhe seinen Umzug machen bis wir mein Problem weiter verfolgen. So dringend ist's ja auch nicht. ***** Mit herzlichem Gruß, Uwe Laubender
> Also mit dem für InDesign CS3 (ExtendScript Toolkit 2) oder dem für InDesign CS4?
ExtendScript Toolkit 2 für CS3.
ExtendScript Toolkit 3 für CS4 funktioniert bei mir nur mit Administrationrechten. Da ich dafür dann meine ganze Windowsumgebung neu einrichten müßte, bin ich bei ExtendScript Toolkit 2 für CS3 geblieben.
Danke für den Hinweis, dass ein CS4-Script, das binär gespeichert wurde, nicht unter CS3 läuft. Das gilt es in Zukunft zu beachten. Andersherum (CS3-jsxbin in CS4) geht es anscheinend.
Die neu abgespeicherte Version für InDesign CS3 funktioniert sehr gut. Danke! Zu den technischen Hintergründen: gehe ich recht in der Annahme, daß Du die erste Version für CS4 im "Extend Toolkit 3" binär abgespeichert hast, diejenige für CS3 in der Version 2 des Extend Toolkit?
Sodaß wir davon ausgehen können, daß wir Scripts in Binärcode doch lieber in der "alten" Version "Extend Toolkit 2" speichern sollten, wenn wir diese aufwärtskompatibel speichern wollen? ***** Mit herzlichem Gruß, Uwe Laubender