Jump to content
Jetzt die »Hot New Fonts« bei MyFonts durchstöbern.

Variable Font: Fließende Anpassungen in einem Absatz; InDesign

Empfohlene Beiträge

Jo Nas

Hallo zusammen,

ich experimentiere zur Zeit mit variable Fonts in InDesign. Stellt euch dabei folgende Situation vor: Der Absatz des Textes beginnt mit einem schmalen Schriftschnitt. Im Verlauf des Textes fängt die Schrift langsam an immer stärker zu werden, bis sie am Ende der Seite extra-fett wird. Ist es möglich diesen Effekt im InDesign mit variablen Fonts zu erzeugen? Gibt es evtl. ein PlugIn, mit dem man die verschiedenen Zustände des Schriftart fließend im Text ansteuern kann?

Vielen Dank für Eure Hilfe!

 

LG Jonas
 

Link zu diesem Kommentar
Carlito Palm

hier gibt’s jede menge begabtere grep-spezialisten als mich, aber ich vermute, in dem speziellen fall wird man um viel handarbeit nicht herumkommen.

Link zu diesem Kommentar
Sebastian Nagel

Ganz allgemein gesprochen: Das ist eher ein Fall für Scripting, nicht für GREP.

 

GREP: Da praktisch jeder Buchstabe eine Nuance verändert werden soll, müssten erst mal entsprechend viele Zeichenformate angelegt werden, die dann Buchstabe für Buchstabe (automatisch) zugewiesen würden. Das ist immer noch Arbeit, und jede Änderung 1x die selbe Arbeit erneut.

 

Script in der Theorie

  1. Buchstabenzahl in der Markierung / im Absatz ermitteln  (z.B. 500 Zeichen)
  2. Minimal- und Maximalwert der variablen Achse des Fonts ermitteln (z.B. von 0 bis 100)
  3. Die Anzahl der Buchstaben auf von Minimal- bis Maximalwert verteilen, also die nötige "Schrittweite" ermitteln (z.B: +0,2)
  4. Buchstabe für Buchstabe durchgehen lassen, und dabei den Formatierungs-Achsenwert jeweils um eine Schrittweite erhöhen (0,2 0,4 0,6 0,8 1,0 ... 99,6  99,8  100)

 

In der Praxis ist das keine leichte Nuss zu knacken ...

  • zum einen müssen die passenden Befehle für Zeichenzählen und vor allem die Achsenwerte der Fonts gefunden werden, da die recht neu sind ist wahrscheinlich noch wenig vorhanden (im Zweifel: vertiefe dich in der Javascript-Variante der Indesign-Scripts, nicht Applescript oder VBscript – das ist allgemeingültig und soweit ich das sehe besser dokumentiert).
  • zum anderen: das Ergebnis könnte gerade bei kurzen Texten ungleichmäßig ansehen, da die Abstufung natürlich nicht völlig fließend ist, sondern eben in Schritten. Wenn dann die Buchstaben verschieden breit sind (ein m ist dann ja doch 4-5x breiter als ein i) bringt das Unregelmäßigkeit rein.

 

 

Eine Lösung dafür wäre, die Buchstabenbreite und die "Gesamttextbreite" zu ermitteln und bei der Schrittweite zu berücksichtigen, aber da wirds mathematisch recht komplex  (einfach nur den erst ermittelten Standard-Schritt erhöhen wenn ein m kommt, geht rechnerisch nicht auf, da die Zahl der ms und is (und aller anderen) ja nicht gleichmäßig verteilt ist).

 

Das verbesserte Script sähe theoretisch so aus:

  1. Gesamtextlänge des Absatzes ermitteln (z.B. 10000 pt)
  2. Minimal- und Maximalwert der variablen Achse des Fonts ermitteln (z.B. von 0 bis 100)
  3. die "Sub"-Schrittweite pro pt Textlänge ermitteln um von Anfang bis Ende von "0" bis "100" zu kommen (statt wie zuvor pro Buchstabe)
  4. Buchstabe für Buchstabe durchgehen lassen, und dabei die Breite dieses einen Buchstabens ermitteln, dem entsprechend viele Sub-Schrittweiten für die Anpassung des Buchstabens anwenden und den Formatierungs-Achsenwert jeweils darum erhöhen (m bekommt z.B: 50 Sub-Schritte, ein i bekommt nur 15, ...). 

 

Das sollte ein gleichmäßigeres Ergebnis erzeugen, mit zwei "Kleinigkeiten":

  • "Innerhalb" der Buchstaben ist natürlich kein Werte-Verlauf möglich, das gibt die Technik nicht her. D.h. ein "m" ist am Anfang zu dick, und am Ende zu dünn.
  • Auch ist die "Gesamttextlänge" nicht ganz einfach ... wenn das ein guter Font ist, kommt Kerning ins Spiel, das verringert in der Regel die Gesamttextlänge, ist dann aber bei der Messung jeder einzelnen Buchstabenbreite nicht mehr so einfach zu berücksichtigen (es geht mit "Vorschau" auf das nächste Zeichen und Ermittlung des Kernings dazwischen, aber da wirds dann endgültig ... schwierig).     
  • Gefällt 4
Link zu diesem Kommentar
R::bert
vor 54 Minuten schrieb Sebastian Nagel:

Da praktisch jeder Buchstabe eine Nuance verändert werden soll,

Vielleicht würde es @Jo Nas ja fürs Erste auch schon genügen, in Zeilen »zu denken«? Würde das die Sache nicht erheblich vereinfachen und eventuell möglich machen?

  • Gefällt 1
Link zu diesem Kommentar
Gast Schnitzel
vor 9 Minuten schrieb R::bert:

in Zeilen »zu denken«?

Wäre jetzt auch mein Vorschlag gewesen :nicken:

Das könnte ich mir auch in der Erscheinung besser vorstellen, weil der »Verlauf« nur in eine Richtung ginge. Ansonsten hätte man am Zeilenanfang immer einen Bruch, weil dort der Sprung größer ist als in der Zeile – je nachdem wie groß die einzelnen Sprünge und wie lang die Zeilen sind :-?

Link zu diesem Kommentar
Thomas Kunz

Gerade in einer Werbung von Sharp:

 

9d3f62b4-042d-4d13-8a3b-d85fe3f40afd.gif

Da alterniert jedes Zeichen. Aber muss halt nichts berechnet werden (siehe Beitrag von Sebastian), da einfach nacheinander alle fetten durchlaufen.

  • Gefällt 1
Link zu diesem Kommentar
Jo Nas

Guten Abend,

@Sebastian Nagel Vielen Dank für die ausführliche Antwort. An die Problemstellung des Kernings habe ich noch garnicht gedacht. In Anbetracht der doch sehr komplexen Umsetzung würde ich eher zur "1-Zeilen-Lösung" von @R::bert tendieren.

@Thomas Kunz super Beispiel! Soähnlich habe ich es mir auch vorgestellt. Kennt ihr evtl. ein Code-Beispiel für ein ähnliches Projekt? Gern auch lösgelöst von InDesign, wenn das einfacher ist.

 

Vielen Dank für die tolle Hilfe!

Link zu diesem Kommentar
Jo Nas

@R::bert Gute Idee! Ich habe mich mit dem Designer in Verbindung gesetzt. Wenn er die Lösung für das Problem verrät, poste ich es hier in den Feed.

@TobiW die Software war mir völlig neu. Ziemlich spannende Sache. Das könnte funktionieren. Auf youtube habe ich bereits Beispiele gefunden, die in die richtige Richtung gehen.
Vielen Dank!

  • Gefällt 1
Link zu diesem Kommentar
Sebastian Nagel

ein paar Einwürfe (vom Smartphone aus – edit: nachformatiert )

 

Zeilenweise (also nur von links nach rechts)

das Prinzip bleibt das gleiche (Stufen auf Zahl der Zeichen / Zeilenlänge verteilen). Der visuelle Effekte ist ein anderer. 

Aber: wenn das ein durchgängiger Text ist, also das Ende der Zeile nicht manuell umbricht (Prosa statt Vers), dann verändert sich durch die Formatierung die Zeilenlänge, der Text bricht früher um als in normaler Formatierung, und was ganz rechts fett sein sollte steht jetzt links und sollte dünn sein - spannend ;-) das geht mit Rekursionsschleifen bis eine Balance gefunden ist, aber da möchte ich nicht mal anfangen drüber nachzudenken ... 
Bei Durchwanderen des ganzen Absatzes wird zwar der Absatz länger, aber die Zeilen beeinflussen sich nicht gegenseitig. Vielleicht ist das also sogar die einfachere Übung.

 

Sharp-Beispiel

da haben wir die Vereinfachung, dass die Zahl der Zeichen fixiert ist, die Zahl der Fettgrade fix ist, und dann nur Zeichen für Zeichen das Gewicht erhöht und wieder vermindert wird. In zeitlicher Rotation ergibt das dann den Welleneffekt.

Die Ermittlung der Zeichenzahl / Textlänge fällt weg, und wir müssen keine Variable-Font-Parameter verändern. Wenn das Variieren in feinen Abstufungen  der Sinn der Übung war, geht das so natürlich etwas am Ziel vorbei.

 

Drawbot, Browser oder InDesign?

im Grunde bleibt die Logik dahinter die selbe. Was sich verändert ist die Programmiersprache (Javascript, Javascript, Python) und die Objekte die angesprochenen werden können/müssen (Indesigns spezifische Objektdefinition/Funktionen in JS, normales Browser-DOM/Javascript, oder - vermutlich - eine Objektauswahl/Funktionen die Drawbot spezifisch anbietet). Das kann dann im einen oder anderen Tool mehr oder weniger komfortabel oder intuitiv sein (Browser vermutlich am wenigsten, Drawbot möglicherweise am einfachsten), aber vermutlich wäre es in allen Umgebungen lösbar und von hier zu da übersetzbar, wenn erst mal die unabhängige Grundlogik funktioniert.

Bleibt auch die Frage, für was man das ganze am Ende braucht - ein Ausdruck, eine Webseite (Animation?), ...

  • Gefällt 1
Link zu diesem Kommentar
R::bert
vor 30 Minuten schrieb Sebastian Nagel:

Zeilenweise (als nur von links nach rechts):

Gut, ich bin von oben nach unten ausgegangen …

Link zu diesem Kommentar
Þorsten
vor 2 Minuten schrieb R::bert:

von oben nach unten

Aber da hast du prinzipiell ein ähnliches Problem, oder? Wenn der Text einfach so (ohne manuelle Zeilen- oder Absatzumbrüche) durch den Textrahmen fließt, musst du irgendwie heraus bekommen, an welchem Zeichen der Text automatisch umgebrochen wird, weil sich dort dann ja die Formatierung ändert. Aber durch diese Änderung ändern sich dann auch wieder die Umbrüche. Sicher irgendwie machbar, aber nicht trivial. Da fände ich es sehr viel geradliniger, einfach den ganzen Text Zeichen für Zeichen durchzugehen und eben bei jedem Zeichen ein bisschen am Achsenwert zu drehen.

 

(Weil ich ID jetzt nicht wirklich kenne, denke ich jetzt nur in Javascript im Browser.)

Link zu diesem Kommentar
Sebastian Nagel
vor einer Stunde schrieb R::bert:

Gut, ich bin von oben nach unten ausgegangen …

Bei "von oben nach unten" haben wir – denke ich – das selbe Problem ... die Zeilen werden durch die Formatierung immer länger, müssen (wenn fixe Satzbreite) umbrechen und sollten dann eigentlich schon wieder anders formatiert sein als sie in der ersten Iteration formatiert wurden – letztlich arbeiten wir in diesen beiden Fällen in zwei Dimensionen, während wir uns beim Durcharbeiten des gesamten Absatzes  eigentlich linear bewegen. Es ist alles "eine Textwurst", die erst danach vom Satzprogramm automatisch ungebrochen wird, aber das kann dem Script egal sein.

  • Gefällt 1
Link zu diesem Kommentar
Sebastian Nagel
vor einer Stunde schrieb Þorsten:

(Weil ich ID jetzt nicht wirklich kenne, denke ich jetzt nur in Javascript im Browser.)

Im Grunde ist das exakt gleich.
Man hat nur in Indesign zusätzliche Objekte und Funktionen zur Verfügung, die spezifisch für Indesign-Inhalte sind. D.h. alles was in Indesign ein Objekt ist (Font, Glyphe, Absatz, Zeile (hoffentlich!), Zeichen, ...) und alle Indesign-Eigenschaften von Objekten (Formatierung, Dimension (hoffentlich!), Position, ...), und alle Funktionen die Insign anbietet (Format verändern, ...) kann angesprochen und verwendet werden.  
Und natürlich stehen alle Standard-Funktionen von Javascript zur Verfügung (Variablen, Schleifen, Logik, Stringfunktionen, ... ...). Was möglicherweise nicht implementiert ist oder fehlt sind Sachen mit Server-Kommunikation, etc. die halt netzwerk- und nicht dokument-spezifisch sind.

  • Gefällt 1
Link zu diesem Kommentar

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Einloggen

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden

Unsere Partner

Entdecke hunderte Font-Sonderangebote.
Hier beginnt deine kreative Reise.
FDI Type Foundry besuchen
Mit über 130.000 Fonts der größte Schriften-Shop im Internet.
Graublau Sans Pro: eine vielseitige Schriftfamilie in 18 Schnitten
×
×
  • Neu erstellen...

🍪 Hinweis:

Wir benutzen funktionale Cookies.