[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Übersicht über die Glyphen eines Fonts erstellen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Übersicht über die Glyphen eines Fonts erstellen

Martin Fischer
  
Beiträge gesamt: 12885

10. Mai 2012, 10:15
Beitrag # 1 von 8
Bewertung:
(7962 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

mit dem Skript FontTableMW.jsx (FontTableMW.jsx), auf das in indesignsecrets.com: Make a Font "Contact Sheet" in InDesign hingewiesen wird, kann man sich eine Übersicht über einen angegebenen Bereich der Glyphen eines ausgewählten Fonts erzeugen lassen.

Das Skript geht dabei so vor, dass eine temporäre Tagged Text-Datei mit 'Spezialglyphen' erzeugt wird, um diese anschließend in InDesign zu platzieren.
Code
<cSpecialGlyph:><cSpecialGlyph:2><0xFFFD> 


In InDesign werden die Glyphen korrekt dargestellt.
Wähle ich ein Zeichen aus, dann kann ich den Unicode-Wert in der Glyphen-Palette über das PopUp-Fenster auslesen.

Werfe ich hingegen einen Blick auf die Informationen-Palette, erscheint dort bei allen Zeichen der Wert 0xFFFD (vermutlich als Kapsel für ein Spezialzeichen).

In einer exportierten RTF- oder TXT-Datei (UTF-16) gehen diese Glyphen verloren.
In einer exportierten Tagged Text-Datei stehen sie wieder mit dem Original-Code drin.

Meine Fragen:
Wie ist es möglich, aus diesen gekapselten Glyphen per Skript den jeweiligen Unicode-Wert zu ermitteln? – Immerhin ist die Glyphenpalette dazu in der Lage.
Gibt es eine Möglichkeit, diese Spezialglyphen in normale Glyphen umzuwandeln?

Oder kennt jemand eine andere Lösung, um eine sortierte Übersicht über alle enthaltenen Glyphen eines Fonts nebst deren Unicodewerte zu ermitteln?

In dem Beitrag Unicode Glypen Übersicht hatte ich mich mal einen Entwurf eines solchen Skripts (unicode_list2b.jsxbin) veröffentlicht (im Anhang die JSX-Datei von damals als offene JSX-Datei).

Bei dieser Lösung muß allerdings ein Unicode-Bereich angegeben werden und um alle Zeichen eines Fonts zu ermitteln kann es sein, dass man einen sehr großen Bereich angeben muss und darin am Ende viele Zeichen erzeugt, für die im Font gar keine Glyphe vorrätig ist.

Deswegen wäre mir der Zugang über die Glyphen sympathischer.
Wenn deren Anzahl per Skript nicht zu ermitteln wäre, dann könnte diese zumindest über die Glyphenpalette (per Augenschein) ausgelesen werden.

Anhang:
unicode_list2.jsx (3.54 KB)
X

Übersicht über die Glyphen eines Fonts erstellen

Hans Haesler
  
Beiträge gesamt: 5826

10. Mai 2012, 15:17
Beitrag # 2 von 8
Beitrag ID: #494768
Bewertung:
(7923 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

neun Antworten wurden auf genannten InDesign-Secrets-Beitrag gepostet.

Die Nummer 7 ist von jongware. Ein Code, welcher die Anzahl Glyphen einer Schrift (jener des ausgewählten Zeichens) zurückgibt.

Das klappt aber nur mit OpenType- und TrueType-Schriften. Zudem scheint das Ergebnis nicht zuverlässig zu sein. Bei der "Minion Pro Regular" wird 864 angezeigt. Das ist aber viel zuwenig.

Das Script FontTableMW.jsx lädt 1677 Zeichen derselben Schrift in den Textrahmen. In der Glyphen-Palette kommt man ungefähr auf dieselbe Anzahl. Allerdings ohne die Varianten, welche erscheinen, wenn man auf den kleinen Pfeil klickt.

Noch etwas: Alle Varianten haben denselben Unicode-Wert ... Deshalb sollten die GID-Nummern benutzt werden können.

Gruss, Hans


als Antwort auf: [#494720]

Übersicht über die Glyphen eines Fonts erstellen

Martin Fischer
  
Beiträge gesamt: 12885

10. Mai 2012, 17:50
Beitrag # 3 von 8
Beitrag ID: #494781
Bewertung:
(7894 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
 
Hallo Hans,

danke für die Rückmeldung.

Antwort auf: Die Nummer 7 ist von jongware. Ein Code, welcher die Anzahl Glyphen einer Schrift (jener des ausgewählten Zeichens) zurückgibt.


Hatte ich vorher nur überflogen.
Jetzt getestet und in Anlehnung an die Informationen aus der Glyphenpalette für in Ordnung befunden. Bei der "Minion Pro Regular" (CS6) werden bei mir 1682 Zeichen angezeigt. Das entspricht (in etwa) der höchsten Glyph-ID, die in der Glyphen-Palette angezeigt wird: 1681.


Antwort auf: Allerdings ohne die Varianten, welche erscheinen, wenn man auf den kleinen Pfeil klickt.


Täusch Dich da nicht! ;-)
Ein paar Stichproben haben mir gezeigt, dass auch die Alternativen unter Ihrer Glyph-ID vorhanden sind. Wenn die Glyphen nach der ID sortiert sind, lässt sich das leichter feststellen.

Antwort auf: Noch etwas: Alle Varianten haben denselben Unicode-Wert ...


Ja, genau das ist mein Problem. ;-)
Deswegen meine Fragen oben:
Zitat Wie ist es möglich, aus diesen gekapselten Glyphen per Skript den jeweiligen Unicode-Wert zu ermitteln? – Immerhin ist die Glyphenpalette dazu in der Lage.
Gibt es eine Möglichkeit, diese Spezialglyphen in normale Glyphen umzuwandeln?


Antwort auf: Deshalb sollten die GID-Nummern benutzt werden können.

Gibt es einen Weg, aus den GID-Nummern auf den Unicode-Wert zu schließen bzw. diesen zu ermitteln?


als Antwort auf: [#494768]

Übersicht über die Glyphen eines Fonts erstellen

Hans Haesler
  
Beiträge gesamt: 5826

10. Mai 2012, 17:59
Beitrag # 4 von 8
Beitrag ID: #494783
Bewertung:
(7887 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

ich muss gleich weg, werde aber im Laufe des Abends versuchen, die Sache gründlicher als beim ersten Kontakt anzuschauen.

Gruss, Hans


als Antwort auf: [#494781]

Übersicht über die Glyphen eines Fonts erstellen

Martin Fischer
  
Beiträge gesamt: 12885

10. Mai 2012, 18:22
Beitrag # 5 von 8
Beitrag ID: #494786
Bewertung:
(7871 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

es besteht kein Zeitdruck.
Schau's Dir an, wenn's Dir passt und wenn's Dich interessiert.

Mein Kunde ist einstweilen mit der Leistung von dem Oldie unicode_list2.jsx zufrieden.

Trotzdem interessiert mich persönlich eine Lösung über den GID-orientierten Ansatz von FontTableWM.jsx: im besten Fall im Ergebnis eine Tabelle mit je einer Spalte für GID, Unicode-Wert und Glyphe.

Ich fürchte allerdings, dass aus dem Ergebnis von FontTableWM.jsx mit den SpezialGlyphen, die alle denselben Unicode-Wert haben, der Unicode-Wert der 'richtigen' Glyphen nicht so ohne Weiteres zu ermitteln ist.


als Antwort auf: [#494783]

Übersicht über die Glyphen eines Fonts erstellen

Hans Haesler
  
Beiträge gesamt: 5826

11. Mai 2012, 00:34
Beitrag # 6 von 8
Beitrag ID: #494803
Bewertung:
(7804 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

mit CS5 unter Mac OS X 10.6.8 sagt mir jongware, dass die Minion Pro Regular 1397 Glyphen aufweist.

In der Glyphen-Palette gezählt sind es 1396. Das vorher gemeldete Viel-daneben-Ergebnis war mit InDesign CS4 unter Tiger.

Ein weiterer Unterschied: Die Varianten sind nicht mehr mit Pfeilen "aufklappbar", sondern steccken in einem eigenständigen Fach.

Nachstehend die Umsetzung der Outline, welche ich mir während der nachmittäglichen Ausfahrt mit dem Rennrad (30 km, mit einem Mittel von 30.7 km/h :-) ausgedacht hatte:

Code
var _d = app.documents.add(); 

with (_d.documentPreferences) {
pageWidth = 210;
pageHeigth = 297;
facingPages = false;
}

with (_d.masterSpreads[0].pages[0].marginPreferences) {
top = 12;
left = 12;
bottom = 12;
right = 12;
}

var _tf = _d.pages[0].textFrames.add();
_tf.geometricBounds = [12, 12, 287, 198];
_tf.textFramePreferences.textColumnCount = 9;
_tf.insertionPoints.firstItem().properties = {appliedFont:"Minion Pro\tRegular", pointSize:12, leading:15};
var tabDef = new Array (2);
tabDef[0] = {alignment:TabStopAlignment.rightAlign, position:8.2};
tabDef[1] = {alignment:TabStopAlignment.leftAlign, position:10};
_tf.parentStory.contents = " ";
_tf.parentStory.paragraphs[0].properties = {tabList:tabDef};

for (var i=0; i<2; i++) {
_d.pages.item(0).duplicate(LocationOptions.AFTER, _d.pages.item(-1));
}

_tf.nextTextFrame = _d.pages.item(1).textFrames[0];
_d.pages.item(1).textFrames[0].nextTextFrame = _d.pages.item(2).textFrames[0];

var targetStory = _tf.parentStory;
targetStory.contents = "";

for (var i=0; i<1397; i++) {
targetStory.insertionPoints.item(-1).contents = "\t" + (i+1) + "\t \r";
}

app.findGlyphPreferences = app.changeGlyphPreferences = null;
app.findGlyphPreferences.appliedFont = "Minion Pro\tRegular"
app.findGlyphPreferences.glyphID = 1;
app.changeGlyphPreferences.appliedFont = "Minion Pro\tRegular"

for (i=1; i<1397; i++) {
app.changeGlyphPreferences.glyphID = i+1;
try {
targetStory.paragraphs.item(i).characters.item(-2).changeGlyph();
}
catch (e) {
}
}

app.findGlyphPreferences = app.changeGlyphPreferences = null;

Keine Ahnung, ob das etwas wert ist. Weil: In der Glyphenpalette wird in der ersten Reihe für das zweite #-Zeichen die GID 898 angegeben. Geht man im soeben erzeugten Dokument an diese Position und wählt das #-Zeichen aus, dann wird in der Glyphenpalette das #-Zeichen mit GID 4 ausgewählt. :-(

Noch etwas: Als das Script endlich lief, fand ich durch eine Suche heraus, dass dieses Thema schon mal ziemlich gründlich diskutiert worden ist:
http://www.hilfdirselbst.ch/..._P343195.html#343195

Ich glaube, ich steige da aus ... :-)

Gruss, Hans


als Antwort auf: [#494786]

Übersicht über die Glyphen eines Fonts erstellen

Martin Fischer
  
Beiträge gesamt: 12885

11. Mai 2012, 08:22
Beitrag # 7 von 8
Beitrag ID: #494811
Bewertung:
(7761 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen Hans,

[OT on]

Antwort auf: 30 km, mit einem Mittel von 30.7 km/h :-)

Alle Achtung! Da bist Du mir weit voraus.
In Wald und Gelände kämpfe ich derzeit um die 20 km/h-Marke.

Allerdings fehlen bei Dir noch die Angaben zu den Höhenmetern.
Den Col du Galibier runter (16 km) könnt' ich diese Durchschnittsgeschwindigkeit vermutlich auch erreichen.
Aber eben nicht Deine km-Zahl. ;-)
[OT off]



Hab Dank für Deine Skriptskizze.
Die funktioniert nach erstem Augenschein wunderbar.
Die Glyph-Ersetzen-Methode kommt mir bekannt vor. ;-)

Immerhin braucht es bei Deinem Ansatz nicht das Wissen des Anwenders um die Glyph-ID eines bestimmten Platzhalterzeichens (in meinem Beispiel das Leerzeichen).

Danke auch für den Link.
Ich wußte gar nicht mehr, dass wir das mal so ausufernd behandelt hatten.

[OT on]

Antwort auf: Ich glaube, ich steige da aus ... :-)

Ja, nutz' Du nur das schöne Wetter und steig auf.
Heute Abend will ich die 31,0 km/h-Grenze geknackt sehen. ;-)
Allez, allez!
[OT off]



als Antwort auf: [#494803]

Übersicht über die Glyphen eines Fonts erstellen

Hans Haesler
  
Beiträge gesamt: 5826

11. Mai 2012, 09:55
Beitrag # 8 von 8
Beitrag ID: #494817
Bewertung:
(7732 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

[OT on]
Die Höhenmeter muss ich mal addieren. Es ist ein Rundkurs über Nebenstrassen, aber immerhin durch sieben Ortschaften. Ein paar Kreisel, zweimal Anhalten weil rote Ampel.
Start ist auf 600 m ü.M., dann geht es hinauf auf 630. Tiefster Punkt ist 582, der höchste 702. Dazwischen immer auf und ab.

Bis zur Hälfte der Strecke mit starkem Rückenwind. Der Zähler zeigte AVS 34 km/h. Aber bei der Rückkehr eher aufwärts und mit starkem Gegenwind. So sank das Mittel zwischenzeitlich auf 29.9. Zuletzt eine Abfahrt von gut 1.5 km (von 702 auf 600 m).
[OT off]

Zur Scriptskizze:

Zitat Immerhin braucht es bei Deinem Ansatz nicht das Wissen des Anwenders um die Glyph-ID eines bestimmten Platzhalterzeichens

Es wird auch ein Leerzeichen als Platzhalter verwendet. Deshalb muss dessen glyphID angepasst werden, falls sie anders als 1 ist.

Je nach gewählter Schrift müssen auch die Tabstop-Positionen und die Anzahl Spalten geändert werden. Gar nicht so einfach.

Aber wie gesagt: Wenn bei den Varianten nicht die richtigen Glyphen eingesetzt werden, dann ist das Ganze nicht zuverlässig.

Gruss, Hans


als Antwort auf: [#494811]
X