Zu Inhalt springen

Spezielle Ligatur in Fontlab

Hervorgehobene Antworten

Hallo an alle,

ich bin gerade dabei eine Versalschrift zu gestalten, bei der es einige Ligaturen gibt. Darunter ist auch eine AR-Ligatur, die aber nur am Anfang eines Wortes gut aussieht. Wie ich normale Ligaturen einfüge weiß ich, aber wie schaffe ich es, dass sie nur am Anfang eines Wortes erscheint, aber an anderer Stelle die Buchstaben getrennt bleiben.

Wäre großartig, wenn jemand darauf eine Antwort hätte.

Viele Grüße!

Ich denke, du brauchst dafür den "ignore sub"-Befehl, um da alle Fälle abdecken zu können (denn zu prüfen, ob vor dem Wort ein Leerzeichen ist oder nicht, reicht nicht aus, und du kannst nicht auf "Textbeginn" oder "Zeilenanfang" prüfen).

Das ganze funktioniert prinzipiell so: Die RA-Ligatur wird grundsätzlich *immer* angewendet, außer(!) der Fall tritt ein, dass sich vor der RA-Kombination noch ein Buchstabe befindet, dann tritt der Ignore in Kraft. Ich habe das in der Praxis noch nie verwendet, kann also keine Details dazu liefern ...

Hier gibt's eine ähnliche Frage:

http://typophile.com/node/19839#comment-123576

Der Link fürt direkt zu der Antwort, die funkionieren müsste (müsste, weil ich es nicht getestet habe, und in deinem speziellen Fall vielleicht Anpassung erfordert, da sich die Frage auf Swash-Anfänge bezieht, nicht auf Ligaturen).

Alternativ kannst du dich auch in das init-feature einlesen und rausfinden, ob du es dafür "missbrauchen" könntest. Das Feature ist eigentlich für arabische Schrift gedacht, wo die Buchstaben 4 Formen (initial, medial, final und isoliert) gibt, es also auch darum geht, am Wortanfang eine andere Ersetzung zu machen als z.B. in der Mitte oder am Ende eines Wortes. Aber: Das funkioniert erst ab Indesign CS3!

  • Ersteller

Vielen Dank für deine Antwort. Ich werd es erst mal versuchen und mich melden, wenn ich was erreicht habe :)

Bearbeitet ( von Susan Födisch)

Das ganze funktioniert prinzipiell so: Die RA-Ligatur wird grundsätzlich *immer* angewendet, außer(!) der Fall tritt ein, dass sich vor der RA-Kombination noch ein Buchstabe befindet, dann tritt der Ignore in Kraft. Ich habe das in der Praxis noch nie verwendet, kann also keine Details dazu liefern ...

Ja, genau. Das sollte das beste sein und lässt sich eben direkt mit dem gewünschten Feature koppeln ohne andere Feature (wie INIT/MEDI/FINA) zu bemühen, von deren Unterstützung man ja nicht immer ausgehen kann.

  • Ersteller

Ich hätte vielleicht erwähnen sollen, dass ich auf diesem Gebiet eine absolute Anfängerin bin. Könntet ihr mir eventuell sagen, wie in dem Fall der Code aussehen muss? Ich hab grade alles mögliche versucht, hab aber immer nur Fehlermeldungen und eigentlich hab grade gar keinen Plan was ich da mache :D

Wenn ich den Code aus dem Link auf mich übertrage, müsste er doch so aussehen, oder?

feature calt {

lookup caltstart{

ignore sub @letter @start' ;

sub @start' by @start_liga ;

}caltstart;

} calt;

In der Gruppe letter befinden sich alle Buchstaben, in der start_liga meine Ligatur. Aber wie muss die start-Gruppe aussehen? Denn wenn ich einfach nur [A R] reinschreibe, dann klappt's nicht. Schreibe ich nur A rein, ersetzt er mir alle As am Anfang eines Wortes mit der Ligatur.

Ist bestimmt sowieso quatsch, was ich da gemacht hab. Was kann ich bloß tun?

Bearbeitet ( von Susan Födisch)

Das war nur ein verwandtes Beispiel …

In deinem Fall muss es so aussehen:

ignore sub @uppercase A' R';
sub A' R' by A_R;[/CODE]

Wichtig: Du brauchst eine Klasse mit Buchstaben, die die Ligatur ausschalten sollen, wenn sie vor der Ligatur stehen. Also alle Großbuchstaben, alle Buchstaben, alle Zeichen des Fonts etc. Diese Klasse musst du vorher im Klassen-Panel anlegen. Im obigen Beispiel habe ich sie beispielsweise uppercase genannt.

In deinem Fall muss es so aussehen:

ignore sub @uppercase A' R';
sub A' R' by A_R;[/CODE]

Nur zum Verständnis für mich: braucht es hier die ganzen ' , damit der ingnore-befehl weiß, was da *nicht* ersetzt werden soll?

Eine normale, immer gültige Many-to-one-Ersetzung würde ja auch ohne diese funktionieren:

[CODE]sub A R by A_R;[/CODE]

  • Ersteller

Ich weiß zwar auch nicht warum, aber ich hatte es ohne ' probiert und es ging nicht. Ich hatte beim Export immer Syntax-Fehler.

okay, ich denke mit diesem Beitrag zusammen hab ich's verstanden:

http://typophile.com/node/60485#comment-359402

(der von Christopher Slye)

Ich hab mich eigentlich nur gefragt, wie das "ignore sub" und das darauffolgende "sub" logisch miteinander verbunden sind.

Sind sie aber gar nicht, das "ignore sub" ist nur ein Ausstiegspunkt der nichts macht, außer zu verhindern dass eine später folgende, für diesen spezielleren Fall nicht erwünschte sub-Regel überhaupt noch greift.

Demnach müsste aber vermutlich auch das hier funktionieren:

ignore sub @uppercase A' R';
    sub A R by A_R;

(das ganze wäre einfacher, wenn ich an meinem Rechner mit Fontlab sitzen würde :)

Erstelle ein Konto, um zu kommentieren

Wichtige Informationen

Wir setzen Cookies, um die Benutzung der Seite zu verbessern. Du kannst die zugehörigen Einstellungen jederzeit anpassen. Ansonsten akzeptiere bitte diese Nutzung.

Konto

Navigation

Browser-Push-Nachrichten konfigurieren

Chrome (Android)
  1. Klicke das Schloss-Symbol neben der Adressleiste.
  2. Klicke Berechtigungen → Benachrichtigungen.
  3. Passe die Einstellungen nach deinen Wünschen an.
Chrome (Desktop)
  1. Klicke das Schloss-Symbol in der Adresszeile.
  2. Klicke Seiteneinstellungen.
  3. Finde Benachrichtigungen und passe sie nach deinen Wünschen an.