IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

L'enfer des fontes et de leur management


Sujet :

Lazarus Pascal

  1. #1
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 876
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 876
    Points : 15 305
    Points
    15 305
    Par défaut L'enfer des fontes et de leur management
    Bonjour,

    À que en voilà une jolie image, mais sortez les kleenex, y a de quoi pleurer toutes les larmes de son corps...
    Nom : 4listFonts-v3.png
Affichages : 157
Taille : 227,7 Ko

    de gauche à droite la liste des fontes calculée avec Screen.Fonts, avec FpTTF.gFontCache, puis la liste de LOWriter et enfin le bazar dans the Gimp.

    On remarque que pour les deux premières listes, qui ont l'air similaires au départ, dès la 5e ligne ça part en vrille, DejaVu Sans Mono <> DejaVu Sans Condensed...

    Ensuite, tout en bas de la 1re liste on trouve 4 fontes (System-ui, Serif, Sans, et un poil plus haut Monospace) inexistantes dans la 2e liste.

    Les gags continuent avec LOWriter qui présente 2 fois Caladea, allez savoir pourquoi, alors que le reste ressemble à la 2e liste, et j'ai bien dit "ressemble" car il y manque Unifont Sample...

    Quant au Gimp, on dirait que la liste inclut les noms de fichier sans les extensions, résultat une grosse liste (environ 80 fontes -- oui, je prévois une réorganisation sérieuse : j'en ai environ 1000, cachées dans un dossier invisible), qui affiche tout à la fin une Unifont Medium que je ne connais pas et dont je ne sais pas d'où elle sort.
    EDIT
    Ah, en farfouillant dans mes dossiers, j'ai trouvé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Unifont ...UnifontMedium ...Unifont .../usr/share/fonts/truetype/unifont/unifont.ttf
    Unifont Sample Medium ...UnifontSampleMedium ...Unifont Sample .../usr/share/fonts/truetype/unifont/unifont_sample.ttf
    Conclusion : pour la seconde ligne c'est un peu au petit bonheur la chance, un coup elle est absente un coup elle est présente et là, c'est au choix Sample ou Medium !
    Demerdenzizich... /EDIT

    À part ça, comment s'y retrouver ? Oui, je sais bien qu'il existe des Fonts' Managers mais selon ce sur quoi ils vont s'appuyer, au final j'aurais des fontes dispo ou pas.
    L'enfer...
    À quoi ça sert de passer des jours sur du code si in fine ce n'est pas parfait et pas de mon fait, mmmh ?
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  2. #2
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 876
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 876
    Points : 15 305
    Points
    15 305
    Par défaut
    Une curiosité de LOWriter : je fais tourner la macro qui liste les fontes, ça me dit (par MsgBox) 76 alors que les outils créés avec Lazarus en comptent 78, mais quand je compte les lignes de la sortie LOWriter à la mano j'en ai 77 ! Il lui manque Unifont Sample ou Medium !

    Et le truc vraiment curieux, c'est que si la première sortie m'a présenté une liste triée, les sortie suivantes ne le sont plus alors que je n'ai rien changé à la macro !
    C'est lassant...
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  3. #3
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 876
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 876
    Points : 15 305
    Points
    15 305
    Par défaut
    Bonjour (je poursuis mon monologue, ),

    ce matin j'ai pris le taureau par les cornes et j'ai considérablement élagué mes dossiers de fontes, c'est bien simple, il ne reste plus qu'une famille : DejaVu. Sous Linux.
    Sous Windows ça serait comme si je n'avais conservé que Arial, Times New Roman et Courier New, vous voyez le truc ? (enfin, ça c'est les noms utilisés à l'époque de Windows 3.1 et jusqu'à XP, après, je ne sais pas.)

    Ensuite j'ai fait tourner mon outil qui me liste tout ce qui est disponible pour les logiciels, étant entendu que je peux choisir entre l'API gTTFontCache qu'on trouve dans FpTTF.pp et l'API Screen.Fonts (présente par défaut) et là je pleure :
    Nom : compar_screenfonts-gTTFontCache.png
Affichages : 110
Taille : 19,3 Ko

    à gauche gTTFontCache remonte 7 fontes, les mêmes que je retrouve dans la liste de LOWriter et ça c'est un bon point, à droite Screen.Fonts en remonte 8.
    Et cette présence des DejaVuCondensed et Light à gauche, absentes à droite, donne un autre bon point à l'API gTTFontCache.

    Avec juste cette famille, je dois pouvoir assurer 95 % du boulot, c'est très bien, ça va m'économiser les ressources machine et en cas de besoin, je peux activer (et désactiver) les familles qui m'intéressent à la volée.

    Avant, sous Windows, j'utilisais AddFontResource / RemoveFontResource, ça a toujours fait mon bonheur, regardez la liste des fontes dans un logiciel de TT :
    Nom : LOWriter_listfonts.png
Affichages : 107
Taille : 23,7 Ko
    Vous voyez un ascenseur, vous, à droite de la liste ? Que du bonheur, je vous dis !


    Un dernier mot pour aujourd'hui : grâce à gTTFontCache je peux facilement retrouver le fichier qui propose une fonte au nom exotique, SAUF pour les 4 oiseaux rares de Screen.Fonts (à droite), j'ai nommé Monospace, Sans, Serif et System-ui.
    Prenez ça en compte lors de vos développements, moi je m'y suis arraché les cheveux !
    Car si vous voyez 7 ou 8 familles selon l'API utilisée, ça concerne quand même 22 fichiers dont 9 ne sont pas chargés par Screen.Fonts, comment, pourquoi, pour moi c'est un mystère complet !

    À pluche,
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  4. #4
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 876
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 876
    Points : 15 305
    Points
    15 305
    Par défaut L'image du jour, qui récapitule mes misères
    Bonjour,

    en haut la liste des fontes disponibles dans LOWriter, avec une petite explication : on y voit deux fois DejaVu Serif, c'est normal : en haut de la liste c'est l'affichage de l'historique, dessous c'est la liste pure et dure où l'on peut compter 7 fontes, à comparer avec l'image du post d'hier où, sans historique, on voit bien les mêmes 7 fontes.

    Nom : listes_fontes_LOWriter-Leafpad.png
Affichages : 90
Taille : 48,6 Ko

    En bas la liste des fontes disponibles dans le bloc-notes de Linux, Leafpad : j'y perds 3 DejaVu, j'y gagne 4 inconnues -- et je remarque à l'instant que l'éditeur sophistiqué Geany présente la même liste que Leafpad, ainsi que la Table de caractères et Lazarus.
    C'est un complot ?
    et bon week-end
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  5. #5
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 442
    Points : 4 602
    Points
    4 602
    Par défaut
    Bonjour,

    Je ne sais pas si c'est le cas ici, mais il y a des logiciels qui viennent avec leurs propres fontes qui ne s'ajoutent que le temps d'une session (sauf lors d'un plantage qui empêche le nettoyage de sortie ). Les listes peuvent donc ne pas être des modèles de stabilité.

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  6. #6
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 876
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 876
    Points : 15 305
    Points
    15 305
    Par défaut
    Citation Envoyé par Guesset Voir le message
    Je ne sais pas si c'est le cas ici, mais il y a des logiciels qui viennent avec leurs propres fontes qui ne s'ajoutent que le temps d'une session (sauf lors d'un plantage qui empêche le nettoyage de sortie ). Les listes peuvent donc ne pas être des modèles de stabilité.
    Oui, mais ce n'est pas le cas ici, la présence de Monospace, Sans, Serif et System-ui est liée à l'utilisation de Screen.Fonts, dont je m’affranchis très bien en utilisant gTTFontCache.
    Le seul problème est que je trouve ça perturbant : 2 APIs, 2 résultats différents...
    Est-ce que c'est pareil sous Windows ?

    Bon dimanche,
    PS : merci pour la participation aux deux autres posts, et désolé de ne pouvoir t'aider dans ton histoire de remontée d'infos par le compilateur.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  7. #7
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 875
    Points : 11 363
    Points
    11 363
    Billets dans le blog
    6
    Par défaut
    Bonjour,
    Je lis ici, exprimé avec réserves, que Screen.Fonts et gTTFontCache n'ont rien à voir, le dernier étant destiné uniquement aux polices utilisables en pdf (avec la librairie ad hoc de FPC ?).
    Il ne faudrait donc peut-être pas les croire interchangeables.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  8. #8
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 876
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 876
    Points : 15 305
    Points
    15 305
    Par défaut
    Bonsoir, Yves,
    Citation Envoyé par tourlourou Voir le message
    Il ne faudrait donc peut-être pas les croire interchangeables.
    Interchangeables non, mais similaires oui !

    Je l'ai déjà vu ton lien (comme plein d'autres concernant gTTFontCache) et pourtant, je suspecte que l'auteur de la phrase n'est pas allé au bout des possibilités de fpTTF.pp, yakà regarder dans le fichier, on y trouve par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
      public
        constructor Create;
        destructor  Destroy; override;
        procedure   BuildFontCache;
        function    Add(const AObject: TFPFontCacheItem): integer;
        procedure   AssignFontList(const AStrings: TStrings);
        procedure   Clear;
        procedure   LoadFromFile(const AFilename: string);
        procedure   ReadStandardFonts;
        property    Count: integer read GetCount;
        function    IndexOf(const AObject: TFPFontCacheItem): integer;
        // Find postscript font name based on fontname and attributes
        function    FindPostScriptFontName(const AFontName: string; ABold: boolean; AItalic: boolean): String;
        // Same as Find, but raise exception when not found.
        function    GetPostScriptFontName(const AFontName: string; ABold: boolean; AItalic: boolean): String;
        function    Find(const AFontCacheItem: TFPFontCacheItem): integer; overload;
        function    Find(const AFamilyName: string; ABold: boolean; AItalic: boolean): TFPFontCacheItem; overload;
        function    Find(const APostScriptName: string): TFPFontCacheItem; overload;
        function    FindHumanFriendly(const AName: string ): TFPFontCacheItem; overload;
        function    FindFamily(const AFamilyName: string ): TFPFontCacheItemArray; overload;
        function    FindFont(const AName: string): TFPFontCacheItem; overload;
        { not used: utility function doing a conversion for us. }
        function    PointSizeInPixels(const APointSize: single): single;
        property    Items[AIndex: Integer]: TFPFontCacheItem read GetItem write SetItem; default;
        property    SearchPath: TStringList read FSearchPath;
        property    DPI: integer read FDPI write SetDPI;
        Property    BuildFontCacheIgnoresErrors : Boolean Read FBuildFontCacheIgnoresErrors Write FBuildFontCacheIgnoresErrors;
      end;
    et ma foi, si cette unité a été écrite pour gérer facilement les pdf's, rien n'interdit de l'utiliser pour autre chose, non ?

    Tiens, regarde (pondu à la va-vite, un bouton, une listbox et deux lignes de code)
    Nom : assignfontlist.png
Affichages : 67
Taille : 44,2 Ko

    et si je remplace ces 2 lignes par showmessage(screen.Fonts.Text);, ça devient tout de suite plus pauvre :
    Nom : screenfonts.png
Affichages : 69
Taille : 34,5 Ko

    Non, le seul problème avec FpTTF, c'est sa sensibilité aux champs vides, ce qui arrive avec les fontes mal "designées" (ça se rencontre, j'ai noté ça, un jour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
          // 3 fonts n'ont ni HumanFriendlyName ni PostScriptName ni FamilyName :
          // ean13.ttf
          // webdings.ttf
          // Linedraw.ttf
    Les deux dernières sont des fontes MS, hé ouais... )

    Et ce genre de blague fait planter une procédure qu'on trouve sur le web, à tel point que je l'ai adaptée et tutti va bene !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    // https://forum.lazarus.freepascal.org/index.php?topic=48975.0 la source + mon post et no reply...
    function GetFontFile(fName:string): string;
    var
      lFC: TFPFontCacheItem;
    begin
      lFC := gTTFontCache.FindFont(fName);
    {  try
        Result := lFC.FileName; // si lFC remonte "nil" c'est que FindFont n'a rien donné, alors plantage
      except
        //
      end;      }
      if lFC <> nil // si lFC remonte "nil" c'est que FindFont n'a rien trouvé
      then Result := lFC.FileName
      else ShowMessage('Problème avec la fonte '+fName);
    end;
    Mais merci de participer, ça m'oblige à me re-pencher sur la chose, pour affiner mon code.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  9. #9
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 876
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 876
    Points : 15 305
    Points
    15 305
    Par défaut
    Bonjour tout le monde,

    je viens un peu donner des nouvelles, et ce n'est pas brillant : je suis à peu près sûr d'un bug dans le couple FpTTF-fpparsettf, lecture là : https://forum.lazarus.freepascal.org...html#msg525204
    Et je ne sais pas comment le régler...

    Alors je cherche des infos, je retourne tout internet et ce faisant, automatiquement, je trouve des pépites que je vous mets en partage : j'ai appelé ça "Cauchemar en typo".

    Ça se trouve là, https://bugs.documentfoundation.org/...g.cgi?id=35538, ça commence en mars 2011, le dernier post date d'il y a deux mois, et ce n'est toujours pas résolu...

    S'il n'y en a qu'un à lire, c'est celui-ci, https://bugs.documentfoundation.org/...i?id=35538#c54, où l'on trouve qu'une solution existerait, tout à la fin du post, mais il faut le lire (très bien présenté et écrit) pour bien comprendre le boxon...
    Mais j'ai pris cette note pendant ma lecture du fil complet, et le tout dernier post aurait tendance à invalider l'idée d'une solution...

    Quelqu'un a demandé une prise en compte du problème il y a 18 mois environ, sans absolument aucun effet/aucune action. Des charlots ?
    https://bugs.documentfoundation.org/....cgi?id=152206
    Désolant...

    Pendant que j'y suis, une lecture rapide et intéressante (et un lien à ne pas perdre) : https://creativepro.com/typetalk-italic-vs-oblique/, suivie de https://tex.stackexchange.com/questi...d-slanted-text


    Et enfin, pour se détendre, un petit truc rigolo et qui fonctionne (j'ai testé) ; https://forums.linuxmint.com/viewtopic.php?t=390454

    À pluche,
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/01/2023, 08h25
  2. Réponses: 4
    Dernier message: 05/10/2022, 23h10
  3. Réponses: 2
    Dernier message: 13/02/2018, 09h37
  4. [Article] Liste des balises et de leurs enfants pour une validation XHTML 1.1
    Par giminik dans le forum Publications (X)HTML et CSS
    Réponses: 12
    Dernier message: 12/02/2018, 15h11
  5. Des template qui n'en font qu'à leur tête
    Par Captain'Flam dans le forum Débuter
    Réponses: 12
    Dernier message: 20/01/2015, 18h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo