Dépannage d’une police qui n’exporte pas

Tutoriel
by Rainer Erich Scheichelbauer
en fr zh

30 décembre 2016 Publié le 12 juin 2013

Il arrive parfois que votre exportation de police échoue et que vous obteniez plutôt de bizarres message d’erreurs. Voici comment régler la situation.

Vous avez tenter d’exporter une police via Fichier > Exporter mais tout ce que vous avez obtenu est un message d’erreur qui dit makeotfGlyphs. Hein?

Cela veut dire que la commande intégrée makeotf (qui, vous l’avez probablement deviné, fait des OTF ou polices OpenType), s’est étouffée sur les données de police qui lui ont été fournies. La cause la plus probable de ce problème est un mauvais nom de glyphe. Mais pour trouver le problème précis, il nous faut exécuter la commande makeotf nous-mêmes pour voir ce qui se passe.

Pour faire cela, vous pouvez tout simplement cliquer sur le bouton Détails du message d’erreur. Cela vous amènera directement au dossier Temp du projet de police actuel. Vous pouvez sauter les deux paragraphes suivants.

Ou, si vous n’avez pas de bouton Détails dans votre dialogue d’erreur, il vous faut aller à ~/Application Support/Glyphs/Temp/. La façon la plus rapide est d’utiliser la commande accessible dans la barre de menu Script > Ouvrir le dossier des scripts. Glyphs ouvrira le dossier dans le Finder. Ou plus exactement, il ouvrira le dossier contenu à l’intérieur de l’Application Support. Vous trouverez là une variété de choses: en plus du dossier Scripts, les dossiers Plugins et Info pourraient y être. Ce qui nous intéresse pour le moment est le dossier Temp.

Maintenant, à l’intérieur du dossier Temp, vous trouverez OTF ainsi qu’un tas de sous-dossiers contenant tous vos projets de polices récents, bien organisés en sous-dossiers. Chaque dossier contient un nombre de fichiers nécessaires pour produire votre OTF. L’un d’entre eux est la police que vous venez tout juste de tenter d’exporter. Truc: cela vous aidera d’organiser les fichiers par Date de modification.

L’un des fichiers à l’intérieur du dossier Temp de la police est appelé generateFont.command:

Double-cliquez-le et votre Terminal s’ouvrira. La commande makeotf y produira alors toutes sortes de notifications, documentant le processus de production de votre OTF. Vous pouvez passer les notes et les mises en garde, mais portez intérêt aux lignes qui commencent par [FATAL]. Il s’agit des erreurs ‘fatales’ qui empêchent la génération du fichier de police. Habituellement, vers la fin du contenu, juste en haut de [Opération terminée], vous verrez quelque chose comme ceci:

Dans cet exemple, la ligne [FATAL] dit, ‘multiple glyphs euro Euro mapped to code 20ac’. Cela signifie que deux signes Euro se trouvent dans la police, l’un nommé euro, et l’autre Euro, et les deux ont le même Unicode 20AC. Maintenant vous savez quoi faire: retournez dans Glyphs et supprimez l’un des euros, puis exportez la police à nouveau.

Bien entendu, le succès obtenu peut varier énormément. Nous avons travaillé très fort afin que Glyphs vous donne des messages d’erreur descriptifs lorsque quelque chose ne fonctionne pas. Vous trouverez également le chapitre Error Handling dans le manuel Glyphs décrivant les divers messages qui peuvent apparaître.

Sous-table qui déborde

Parfois vous recevrez un message d’erreur qui indique ‘GPOS Subtable Overview’. GPOS est la table OpenType qui stocke l’information de positionnement de glyphe, d’où son nom. Cela inclut le positionnement de marque. La cause la plus probable d’erreur est que vous avez trop de paires de crénages, ou encore que le crénage a de grands groupes de crénage avec plusieurs groupes d’exception et exceptions de groupes de paires de crénages.

Il y a plusieurs façons de gérer cela. Essayez ces étapes dans cet ordre jusqu’à ce que l’exportation fonctionne:

  1. Ajoutez un paramètre personnalisé nommé Use Extension Kerning dans Fichier > Informations de police… > Police > Paramètres personnalisés, puis activez-le en cochant la case.
  2. Si cela est possible, débarrassez-vous des fonctions mark et mkmk features, qui stockent l’information à propos des positionnements des marques combinées. Soyez rassuré, cela n’affectera pas vos composés. Sous Fichier > Informations de police… > Instances, à chacune des instances qui ne s’exporte pas, ajoutez un paramètre personnalisé nommé Remove Features. Cliquez sur sa Valeur et ajoutez mark et mkmk sur des lignes séparées.
  3. Allez à Fenêtre > Crénage, et supprimez des paires de crénages, puis considérez compresser le crénage par le menu de la roue dentée. Songez aussi à utiliser les scripts de mekkablue du sous-menu Kerning (qui veut dire crénage en français). Il y a tout un tas de scripts commençant par Remove Kerning qui pourraient vous aider.

Bonne chance.

L’exportation ne s’arrête jamais

Vous obtenez le dialogue d’exportation avec un symbole de roue qui tourne, et elle ne s’arrête jamais? Cela fait déjà plusieurs minutes que vous attendez?

Il y a de bonnes chances pour que vous exportiez une police CFF avec des contours complexes. La cause la plus probable de l’exportation sans fin est les sous-routines des contours, qui ne fonctionnent vraiment bien et de façon efficace seulement avec des contours simples et propres. Avec l’utilisation toute simple du paramètre personnalisé Disable Subroutines, ainsi que sa valeur activée, via Fichier > Informations de police… > Police, votre problème pourrait être résolu.

Cependant, lisez le tutoriel qui porte sur les contours complexes car vous pourriez y découvrir des trucs très utiles.

Erreurs de syntaxe MakeOTF

Les erreurs de syntaxe dans le code de fonction OpenType sont un cas spécial. En particulier si vous avez un vieux manuel de code dans Fichier > Informations de police… > Fonctions, vous pourriez obtenir un dialogue intitulé MakeOTF Error, qui dirige vers un problème dans une certaine ligne du code de fonction:

Si un bouton Afficher se trouve dans la boîte de dialogue, cliquez-le. Glyphs vous amènera à l’endroit problématique dans le code de fonction. Si le code est automatisé (c’est-à-dire que l’option Générer la fonction automatiquement est activée), essayez les boutons Mettre à jour et Compiler dans le bas de la fenêtre Informations de police… > Fonctions. Si le problème n’est pas résolu, ou si vous avez ajouté manuellement du code de fonction, vous aurez à regarder de plus près ce que le message d’erreur dit exactement (encore une fois, la section Error Handling du manuel sera très utile dans ce cas), et l’endroit précis indiqué par le message d’erreur.

Faites attention: les messages d’erreurs MakeOTF peuvent avoir laissé échapper un endroit problématique. S’il est écrit, par exemple, syntax error at "Udieresisgrave" in Class Uppercase, naturellement, vous vérifierez si quelque chose cloche avec le Udieresisgrave. Le glyphe est-il bien là? Son exportation est-elle permise? A-t-il la bonne valeur Unicode? Mais si vous ne pouvez rien trouver qui est incorrect avec le glyphe en question, il y a de bonnes chances pour que le problème se trouve juste avant. Donc, que se passe-t-il avec le glyphe mentionné juste avant Udieresisgrave? Avez-vous mal tapé quelque chose? Y a-t-il une syntaxe superflue comme un point virgule ou un crochet égaré? Un caractère qui n’est pas ASCII? Il pourrait même s’agir d’un caractère invisible, en particulier lorsque la ligne de code débute avec le nom de glyphe mentionné.

Comme vous voyez, cela peut être bien des choses, mais ce qui est bien c’est que maintenant vous savez où regarder.


Mise à jour 2016-12-30: ajout d’une note à propos du bouton Détails ainsi que de la section Erreurs de syntaxe MakeOTF.
Mise à jour 2020-01-24: ajout de Sous-table qui déborde et L’exportation ne s’arrête jamais.
Mise à jour 2020-02-10: correction d’une erreur typographique, suppression des mots very own (version anglaise), changment du mot Overflow pour Overview (version anglaise), correction des liens du manuel.

Traduction française de Nathalie Dumont.