Recursive: Die Schriftstilverknüpfung ist unter macOS unterbrochen, weil die "kursive" Teilzeichenfolge im Familiennamen enthalten ist - FIXED by macOS 11

Erstellt am 16. Aug. 2019  ·  19Kommentare  ·  Quelle: arrowtype/recursive

UPDATE: Ich habe verschiedene Problemumgehungen getestet, um die Ursache dieses Problems zu ermitteln. Testdateien und Anweisungen zur Reproduktion sind unter https://github.com/arrowtype/recursive/tree/master/docs/ribbi-style-linking-macOS ( permalink ) verfügbar.

Problem

Regulär-kursiv funktioniert derzeit nicht in Rekursiv, ab v1.037 Statik (sowie in früheren Versionen).

Beispiele

  • In VS Code wird beim Aufrufen der Schriftfamilie "Recursive Mono Casual Static" die Instanz _Italic_ aufgerufen.
  • In TextEdit/Keynote/Sketch wird der Wechsel von einer regulären Version einer Schriftart (zB Helvetica) zu rekursiv zur Instanz Italic . Wenn ich wieder zu einer anderen Schriftart wechsele, bleibt der Kursivstil erhalten.

Kapture 2020-02-09 at 14 22 11

Fragen zu beantworten

  • Warum wird Recursive Mono Casual Static Italic möglicherweise als "Reguläre" oder Standardinstanz behandelt?
  • Welche Heuristiken werden von macOS verwendet, um die „reguläre“ Instanz einer Typfamilie zu bestimmen?

    • Seltsamer Gedanke: Könnte die Teilzeichenfolge cursive macOS auslösen, um zu bestimmen, dass es sich bei Rekursiv um eine Kursiv- / Kursivschriftfamilie handelt? UPDATE: Heilige Hölle, ich glaube das war genau das Problem 😳

  • Könnte die Namenslänge diese Stilverknüpfung beeinflussen? Hat der Familienname beispielsweise zu viele Zeichen, um macOS richtig verarbeiten zu können?

Zusätzlicher Kontext

In einigen Code-Themen ist Kursivschrift sehr wichtig.

Es ist jedoch überraschend schwierig sicherzustellen, dass eine Schriftart wie erwartet kursiv angezeigt wird.

image

Prüfen

Diese statischen Schriftarten funktionieren

image

image

Diese funktionieren nicht

image

image

image

Unterschiede

  • Letztere Schriften haben am Anfang von Name ID 3 "Beta".
  • Die letzteren Schriftarten haben den Namen "Rekursiv", der möglicherweise mit anderen Schriftarten auf dem System / im Cache kollidiert.
bug--OS

Hilfreichster Kommentar

Ohhhh mein Gott. Ich bin mir ziemlich sicher, dass das Problem darin bestand, dass "Recursive" die Teilzeichenfolge cursive . Ich habe gehört, dass in der Vergangenheit eine Schriftart mit der Teilzeichenfolge ita ein ähnliches Problem auslösen würde.

Wenn ich jedoch den Schriftartnamen einfach in "Pfeiltyp" ändere, funktioniert alles einwandfrei:

image

Ein weiterer Beweis für diese Theorie: Die Familiennamen "xcursivex" und "Discursive" leiden _auch_ an demselben Problem:

Kapture 2020-02-09 at 15 15 18

Kapture 2020-02-09 at 15 16 29

Alle 19 Kommentare

Dieses Problem ist immer noch ein Problem. :/

Als Beispiel: Wenn ich in VS Code die bevorzugte Schriftart auf nameID 1 oder 16 ("Recursive Mono Casual Static") setze, ist das Ergebnis komplett kursiv (während ich Regular mit kursiven Kommentaren usw. erwarte, wie es bei anderen Schriftarten funktioniert) ). Wenn ich das Postscript nameID 6 ("RecursiveMonoCslSt-Regular") verwende, bekomme ich die regulären, aber keine kursiven Kommentare.

Die folgenden Bilder verwenden das Thema Nachteule und sollten eine Mischung aus römischer und kursiver Schrift haben:

image

image

Wie das Theme aussehen soll (dies verwendet IBM Plex Mono, in dem Style-Linking funktioniert):

image

Ich habe auch versucht, mit fsSelection herumzuspielen (es schien, dass Regular Bit 9 gesetzt hatte, "enthält schräge Glyphen"), aber das scheint sich nicht auf mein Problem auszuwirken.

Der Style-Map-Familienname und der Style-Map-Stilname in einer Weise, dass _sollte_ gut funktionieren, aber immer noch Probleme auftreten.

Eine Sache, die damit zusammenhängen kann, ist, dass es häufig Probleme gibt, bei denen das Reguläre so behandelt wird, als wäre es eine Kursivschrift. Wenn ich beispielsweise Text einstelle und ihn dann in Rekursiv ändere, wird er oft sofort kursiv angezeigt. Und dann, wenn ich es in eine aufrechte oder rekursive Schrift ändere, dann in eine andere Schriftart, wird es kursiv. Es scheint also eindeutig, dass etwas meinem Mac sagt, dass der kursive Stil der "normale" ist, aber es ist schwer zu sagen, was das tun könnte. Der Name "kursiv" ist überall im TTX zu finden, wo ich ihn erwarte.

Ohhhh mein Gott. Ich bin mir ziemlich sicher, dass das Problem darin bestand, dass "Recursive" die Teilzeichenfolge cursive . Ich habe gehört, dass in der Vergangenheit eine Schriftart mit der Teilzeichenfolge ita ein ähnliches Problem auslösen würde.

Wenn ich jedoch den Schriftartnamen einfach in "Pfeiltyp" ändere, funktioniert alles einwandfrei:

image

Ein weiterer Beweis für diese Theorie: Die Familiennamen "xcursivex" und "Discursive" leiden _auch_ an demselben Problem:

Kapture 2020-02-09 at 15 15 18

Kapture 2020-02-09 at 15 16 29

Um sich einzumischen: Dies liegt daran, wie MacOS die Stilverknüpfung als Kombination von Gewichtungswerten, fsSelection-Bits und benutzerdefinierten Heuristiken handhabt. Ich bin auf das Solitaire von MVB gestoßen, das ita (Fehler, der bei Apple eingereicht wurde, 14928748, wurde am 15. Oktober 2014 als Dupe markiert). Dies geschah nach dem 10.4.11 für ita und erschien in den Jahren 10.6-10.8. Es ist zumindest in 10.14 behoben (ich kann mich nicht erinnern, wann genau es behoben wurde).

MacOS scheint das gleiche zu tun und markiert Rekursiv kursiv wegen cursive im Namen. Die einzige Lösung besteht darin, entweder den Namen zu ändern oder zu warten, bis die Heuristik aktualisiert/korrigiert ist.

Könnten Sie bitte sagen, wie man die Schriftarten umbenennt?

@giovanicascaes siehe https://github.com/arrowtype/recursive/tree/master/docs/ribbi-style-linking-macOS für ein Skript und eine Beschreibung meines Prozesses

@giovanicascaes hoffen Sie, diese zum Codieren zu bekommen? Wenn ja, lass es mich wissen und ich kann einige zusammenstellen. :) Ich muss noch eine bessere Strategie für eine öffentliche Veröffentlichung finden, aber ich kann in der Zwischenzeit einige spezifische Workaround-Schriftarten erstellen.

Ja, es ist zum Codieren. Ich habe dieses Repo fast täglich auf eine Lösung überprüft :)

Woah! Vielen Dank für Ihre Geduld und es tut mir leid, dass es so lange gedauert hat, eine Lösung/Behelfslösung zu finden. Wie Sie sich wahrscheinlich vorstellen können, sind undokumentierte Betriebssystem-Heuristiken, die auf dem Schriftnamen selbst basieren, nicht etwas, was wir hier als Blocker erwartet haben. 😅

Ich habe einige Workaround-Schriftarten erstellt und unter https://github.com/arrowtype/recursive/tree/78c4432a8fa2f600d67131021afa0f6f67dd08a2/fonts_1.037/rec_mono-for-code gepostet

Der Einfachheit halber ist hier ein ZIP-Download mit diesen Schriftarten:
rec_mono-for-code.zip

Damit diese funktionieren, installieren Sie sie wie gewohnt, beenden Sie dann Ihren Code-Editor und starten Sie ihn neu. Möglicherweise müssen Sie Ihren Computer neu starten, damit die Aktualisierungen der Schriftarten wirksam werden, aber normalerweise nicht in einem Fall wie diesem, in dem die Familiennamen geändert werden. Lassen Sie mich wissen, wenn Sie Probleme haben, diese zum Laufen zu bringen!

Ja, es ist ein unerwartetes Problem, vielleicht ein macOS-Vermächtnis. Es muss wirklich schwierig sein, ein solches Problem zu verfolgen.

Vielen Dank für Ihre Schnelligkeit. Sie verwenden bereits die neuen Builds und funktionieren perfekt!

Ich frage mich, wie ich euch ein Feedback geben kann. Vielleicht kann ich Ihnen im Moment nur sagen, dass eine halbkursive kursive Variante, wie die von Operator Mono oder die von Dank Mono, sehr geschätzt würde, da dies sehr beliebte Schriftarten sind, viele davon wegen dieser Funktion. Natürlich wäre es eine Menge Arbeit, hart.

Super, danke für den Hinweis, dass es funktioniert!

eine halbkursive kursive Variante, wie die von Operator Mono oder Dank Mono, wäre sehr willkommen

Vielen Dank! Aus meiner Sicht ist dies bereits der Fall – fast alle Kleinbuchstaben haben spezifisch halbkursive Varianten in den kursiven Stilen. Ein einstöckiges /a, langes /f, vereinfachtes /i, /l und /r, Ausstriche bei /n, /h, /s usw. Natürlich sieht die Kursivschrift nicht im gleichen Maße kursiv aus, weil es enthält keine Dinge wie die Schleifen /l und /f und die Skripte /r und /a. Dies hat zwei Hauptgründe:

  1. Ich möchte nichts machen, was bereits existiert. Operator ist ein großartiges Design, und ich versuche nicht, damit zu konkurrieren oder eine kostenlose Alternative zu schaffen, sondern etwas Originelles und Einzigartiges zu schaffen.
  2. Für mich erscheinen die „kursiven“ Formen nicht so sofort lesbar und sie funktionieren in diesem Design ästhetisch nicht so gut (insbesondere aufgrund der Linear-Casual-Achse). Ich habe versucht, sie zu zeichnen, und ich finde es einfach nicht so gut.

Trotzdem bin ich nicht 100% gegen die Idee, und es könnte möglicherweise etwas sein, das einem stilistischen Set oder sogar einer gegabelten Version hinzugefügt wird. Aber ja, es wird auch ein Faktor der Zeit: Kurzfristig muss ich das Projekt fertigstellen und andere Arbeiten erledigen. Langfristig kann ich meine Meinung ändern und sie hinzufügen.

(Ich werde diese Erklärung wahrscheinlich in eine andere Ausgabe kopieren, um die Dinge sauber zu halten).

Ich habe versucht, sie zu zeichnen, und ich finde es einfach nicht so gut.

Ich bin gespannt, wie diese Skizzen aussehen :) Keine Sorge, wenn sie nicht gut genug wären, um sie mit jemandem außerhalb Ihres Hauses zu teilen XD

Erwägen Sie, die Schriftart in "Rekursiv" umzubenennen :grin:

@madig es ist keine so schlechte Idee ... Ich müsste jedoch testen, dass es nicht den gleichen Fehler ausgelöst hat. 😄 Der Name schön ist, hat es gute Buchstaben, deren Bedeutung noch ziemlich klar ist, ist es anspruchsvoll klingt, und die linearen Stile tun ein wenig DIN Einfluss in ihnen ...

Ich könnte auch in eine andere Sprache übersetzen. Auf Dänisch ist das Wort „rekursiv“.

Meine Hauptidee ist jedoch, den Kurs beizubehalten und den Namen insgesamt beizubehalten, ihn jedoch für Downloads auf „Rec Mono/Sans“ abzukürzen.

"Rekursiv" funktioniert im Web einwandfrei. Bei lokalen Schriftarten gibt es sekundäre Vorteile, den Namen zu kürzen (zum einen passt er besser in MS Word-Menüs). Außerdem vermute ich, dass die meisten Programmierer eine bessere Chance haben, sich an die englische Schreibweise zu erinnern als an die deutsche.

Obwohl, hm. Die meisten Leute werden es wahrscheinlich direkt von Google Fonts herunterladen und können möglicherweise keine benutzerdefinierten Benennungsregeln im Backend verwenden, wenn sie statische Downloads aus variablen Schriftarten generieren. Das bringt mich zurück, vielleicht den Namen zu ändern.

@davelab6 hast du so oder so einen vorschlag?

"Wiederkehrend" könnte funktionieren. Ich würde "Rekursiv" vermeiden, da die Heuristiken wahrscheinlich mehrere Sprachen abdecken und/oder lokalisiert werden, wenn das Betriebssystem übersetzt wird.

Ich würde "Rekursiv" vermeiden, da die Heuristiken wahrscheinlich mehrere Sprachen abdecken

Das ist ein guter Punkt – es scheint ein großes (und schwer vorhersehbares) Risiko zu sein.

Dies ist ab dem 12. Juli 2020 immer noch ein Problem. Gibt es eine Möglichkeit, die Dateien umzubenennen, damit wir sie richtig verwenden können? Ich weiß, dass die Rec-Code-Dateien existieren, aber ich möchte die _proportionale_ Casual-Variante in Mac-Apps ohne diese kursiven Verknüpfungsprobleme verwenden können. Ich habe nicht genug Erfahrung mit Python, um die Schriftarten von Grund auf neu zu erstellen. Die Sammlungsdateien, in denen die Release-Versionen enthalten sind, können nicht in Glyphs geöffnet werden.

Hey @phineasfrogg , es gibt nichts, was wir tun können, um MacOS zu reparieren, obwohl Version 11 dies zu beheben scheint. Ich werde @arrowtype über die Erstellung eines umbenannten Proportionalsatzes wie des Rec-Code-Satzes

Danke @phineasfrogg und @benkiel!

Ja, durch meinen Test der ersten Beta für macOS 11 ist dies zum Glück behoben. Aber ich weiß, dass das heute nicht sehr hilfreich ist.

Ja, dies könnte mit einer kleinen Ergänzung zu den Veröffentlichungsskripten herumgehackt werden, indem FontTools verwendet wird, um Schriftartnamen in einer Variante für macOS 10 mit dem Familiennamen als "Rec" oder "Rekursive" zu bearbeiten (dies müsste jedoch getestet werden). Der schwierige Teil ist, dass die Release-Downloads bereits ziemlich verwirrend sind, und dies würde eine weitere Ebene direkt enthaltener Elemente hinzufügen. Und dies ist schwer vor anderen Problemen zu priorisieren. Ich habe den Schriftartnamen teilweise nicht geändert, um Apple vielleicht einen Schubs zu geben, dieses Problem für andere Schriftarten zu beheben (keine Ahnung, ob dies Auswirkungen auf sie hat oder nicht). Aber jetzt, da es behoben ist, wäre ich in Ordnung, eine gehackte Version zu erstellen, wenn auch nur, um von diesem Problem aus darauf zu verlinken.

Ich werde versuchen, dies in den nächsten Tagen anzupassen und hier zu aktualisieren, wenn ich kann!

@arrowtype Vielen Dank!

Ich freue mich, dass Apple das Problem in Big Sur behoben hat und freue mich darauf, die endgültigen Versionen dort zu verwenden. In der Zwischenzeit würde ich mich über eine gehackte Version freuen, wenn Sie die Zeit dazu haben.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen