Comment convertir la fonte cmr en images PNG ?
-
e-miel
Comment convertir la fonte cmr en images PNG ?
J'aimerais convertir la fonte cmr de LaTeX en images PNG. Comment faire ? (une image par caractère)
-
guiguiche
- Modérateur général

- Messages : 8215
- Inscription : vendredi 06 janvier 2006, 15:32
- Statut actuel : Enseignant
- Localisation : Le Mans
Tu écris chacun des caractères de la police cmr sous la forme d'une formule mathématique.
Tu enregistres dans un fichier .tex
Tu compiles en html avec latex2html.
Tu obtiens un dossier du nom de ton fichier dans lequel figure chacune des formules (donc chacun de tes caractères) dans un fichier png.
Si des spécialistes de latex ont une méthode plus simple, ils te la communiqueront sûrement.
Tu enregistres dans un fichier .tex
Tu compiles en html avec latex2html.
Tu obtiens un dossier du nom de ton fichier dans lequel figure chacune des formules (donc chacun de tes caractères) dans un fichier png.
Si des spécialistes de latex ont une méthode plus simple, ils te la communiqueront sûrement.
-
e-miel
Merci guiguiche.
Après quelques heures de recherche, j'ai appris certaines choses sur les fontes :
Les caractères sont décris dans des fichiers *.mf (MetaFont) dans un langage nommé MetaFont. Je suppose que c'est du vectoriel.
Dans un fichier DVI, il n'y a que des références : aucun dessin de caractère. Cependant, ces références sont déjà bien positionnées (coordonnées x,y) sur la feuille. L'exécutable tex (ou latex) a donc besoin de connaître les espacements à respecter entre les différents caractères pour positionner les caractères dans le DVI. Pour cela, il va lire les fichiers *.tfm (TeX Font Metric) des fontes utilisées. Ces fichiers *.tfm sont générées à partir des codes source *.mf : si une fonte est utilisée pour la première fois, on voit défiler plein de lignes : c'est la génération des *.tfm manquants.
Dans la création du document imprimable (je prends l'exemple d'un document PostScript en 600 dpi), dvips a besoin d'inclure les dessins des caractères en 600 dpi là où le fichier DVI ne contenait que des références. Les images bitmap des caractères sont stockées dans des fichiers *.600pk (Packed) qui sont simplement des fichiers *.600gf (Generic Font) compressés pour économiser de l'espace disque. Cette compression a l'air ridicule de nos jours : gzip est plus efficace et les fichiers *.600gf qui sont en N&B sont déjà très petits. Ces fichiers *.600gf sont générées à partir des codes source *.mf : si une fonte est utilisée pour la première fois par dvips, on voit défiler plein de lignes : c'est la génération des *.600gf manquants, puis compactés en *.600pk pour le stockage dans /var.
En fait, ce que j'aimerais, c'est extraire les images des fichiers *.600gf, ou au moins être capable de comprendre la structure de ces fichiers pour réaliser l'extraction moi-même.
Après quelques heures de recherche, j'ai appris certaines choses sur les fontes :
Les caractères sont décris dans des fichiers *.mf (MetaFont) dans un langage nommé MetaFont. Je suppose que c'est du vectoriel.
Dans un fichier DVI, il n'y a que des références : aucun dessin de caractère. Cependant, ces références sont déjà bien positionnées (coordonnées x,y) sur la feuille. L'exécutable tex (ou latex) a donc besoin de connaître les espacements à respecter entre les différents caractères pour positionner les caractères dans le DVI. Pour cela, il va lire les fichiers *.tfm (TeX Font Metric) des fontes utilisées. Ces fichiers *.tfm sont générées à partir des codes source *.mf : si une fonte est utilisée pour la première fois, on voit défiler plein de lignes : c'est la génération des *.tfm manquants.
Dans la création du document imprimable (je prends l'exemple d'un document PostScript en 600 dpi), dvips a besoin d'inclure les dessins des caractères en 600 dpi là où le fichier DVI ne contenait que des références. Les images bitmap des caractères sont stockées dans des fichiers *.600pk (Packed) qui sont simplement des fichiers *.600gf (Generic Font) compressés pour économiser de l'espace disque. Cette compression a l'air ridicule de nos jours : gzip est plus efficace et les fichiers *.600gf qui sont en N&B sont déjà très petits. Ces fichiers *.600gf sont générées à partir des codes source *.mf : si une fonte est utilisée pour la première fois par dvips, on voit défiler plein de lignes : c'est la génération des *.600gf manquants, puis compactés en *.600pk pour le stockage dans /var.
En fait, ce que j'aimerais, c'est extraire les images des fichiers *.600gf, ou au moins être capable de comprendre la structure de ces fichiers pour réaliser l'extraction moi-même.
-
MB
- Administrateur

- Messages : 8131
- Inscription : samedi 28 mai 2005, 14:23
- Statut actuel : Enseignant
Cette méthode est déjà fort simple je trouve !guiguiche a écrit :Si des spécialistes de latex ont une méthode plus simple, ils te la communiqueront sûrement.
Ah oui, c'est un autre problème ça !e-miel a écrit :En fait, ce que j'aimerais, c'est extraire les images des fichiers *.600gf, ou au moins être capable de comprendre la structure de ces fichiers pour réaliser l'extraction moi-même.
Tu peux déjà regarder la partie 4 de ce document. L'utilitaire GFtype devrait également t'aider à comprendre la structure de ce format.
MB. Rejoignez notre partenaire pCloud et bénéficiez de 10Go de stockage gratuits ou d'une offre premium !
Pas d'aide en message privé. Merci de consulter ce sujet avant de poster votre premier message.
Pas d'aide en message privé. Merci de consulter ce sujet avant de poster votre premier message.
-
guiguiche
- Modérateur général

- Messages : 8215
- Inscription : vendredi 06 janvier 2006, 15:32
- Statut actuel : Enseignant
- Localisation : Le Mans
-
e-miel
Un grand merci à toi, MB ! C'est exactement ce que je cherchais : un moyen de récupérer les images bitmap des fichiers *.600gf. Bon, un peu de travail de ma part : je dois interpréter le fichier GF en question, je vais me servir de ton document, mais là il est tard :fatigue:.
Encore un grand merci ! :worthy:
A+
-
MB
- Administrateur

- Messages : 8131
- Inscription : samedi 28 mai 2005, 14:23
- Statut actuel : Enseignant
De rien. On peut savoir quel est ton objectif exactement ?
MB. Rejoignez notre partenaire pCloud et bénéficiez de 10Go de stockage gratuits ou d'une offre premium !
Pas d'aide en message privé. Merci de consulter ce sujet avant de poster votre premier message.
Pas d'aide en message privé. Merci de consulter ce sujet avant de poster votre premier message.
-
e-miel
-
MB
- Administrateur

- Messages : 8131
- Inscription : samedi 28 mai 2005, 14:23
- Statut actuel : Enseignant
C'est à dire ? (dans quelle application ?)e-miel a écrit :Je souhaiterais utiliser moi-même les caractères de TeX.
MB. Rejoignez notre partenaire pCloud et bénéficiez de 10Go de stockage gratuits ou d'une offre premium !
Pas d'aide en message privé. Merci de consulter ce sujet avant de poster votre premier message.
Pas d'aide en message privé. Merci de consulter ce sujet avant de poster votre premier message.
-
Tryphon
- Modérateur honoraire

- Messages : 1839
- Inscription : mercredi 01 juin 2005, 18:39
- Localisation : Un peu plus à l'Ouest
J'ai écrit un petit programme en C qui lit les fichiers PK. C'est assez court, j'en fais rien pour l'instant, je voulais écrire un petit programme qui automatise l'installation de fontes Postscript et Truetype dans une arborescence TeX, voire un éditeur de polices vectorielles. Je te file ça si tu veux.
Au passage, si c'est juste pour les caractères, il existe des versions Postscript et Truetype des fontes cmr (ne seraient-ce que les fontes lmodern, qui en plus sont occidentalisées).
Au passage, si c'est juste pour les caractères, il existe des versions Postscript et Truetype des fontes cmr (ne seraient-ce que les fontes lmodern, qui en plus sont occidentalisées).
-
e-miel
En fait, je m'en sors très bien avec pktogf suivi de gftype -i : j'ai fait un programme C qui lit (par pipe) ce qui sort de gftype. Ne croyez pas que je veuille m'en servir dans un programme de KDE ou autre truc du genre... le programme en question, c'est moi qui le fait, et c'est juste un moyen de comprendre comment ça marche.
Généralement, quand on comprend quelque chose, on tombe tôt ou tard sur les circonstances qui feront qu'on s'en sert, et c'est avec grand plaisir qu'on se souvient d'avoir cherché. D'après ce principe : ceux qui n'apprennent rien ne savent pas ce qu'ils ratent.
Au fait, Tryphon, ton programme C, il interprète lui-même le contenu des fichiers *.pk ?
Généralement, quand on comprend quelque chose, on tombe tôt ou tard sur les circonstances qui feront qu'on s'en sert, et c'est avec grand plaisir qu'on se souvient d'avoir cherché. D'après ce principe : ceux qui n'apprennent rien ne savent pas ce qu'ils ratent.
Au fait, Tryphon, ton programme C, il interprète lui-même le contenu des fichiers *.pk ?
-
e-miel
-
Tryphon
- Modérateur honoraire

- Messages : 1839
- Inscription : mercredi 01 juin 2005, 18:39
- Localisation : Un peu plus à l'Ouest
Oui, mon programme C interprète lui-même les fichiers .pk. Il est complètement indépendant d'une installation TeX.
Le programme qui génère les pk est Metafont. On obtient un pk en tapant un truc du genre :
ensuite, on utilise gftopk pour générer le pk à partir du gf.
Le programme qui génère les pk est Metafont. On obtient un pk en tapant un truc du genre :
Code : Tout sélectionner
mf "\mode:=localfont;" input machin -
guiguiche
- Modérateur général

- Messages : 8215
- Inscription : vendredi 06 janvier 2006, 15:32
- Statut actuel : Enseignant
- Localisation : Le Mans
-
e-miel
Moi aussi, j'aimerai bien faire un programme comme ça, mais pour ça, il faut savoir comment les fichiers *.pk sont structurés. As-tu une documentation (ou un site) qui explique ça ?Tryphon a écrit :Oui, mon programme C interprète lui-même les fichiers .pk. Il est complètement indépendant d'une installation TeX.
-
Tryphon
- Modérateur honoraire

- Messages : 1839
- Inscription : mercredi 01 juin 2005, 18:39
- Localisation : Un peu plus à l'Ouest
Primo, si je te file le source, tu sauras comment ça fonctionne.
Deuzio, c'est trouvable dans un vieil article de Tom Rockiki, et un peu aussi dans les annexes de l'ouvrage "Fontes et encodages" de Yannis Haralambous.
Voilà l'article en question :
http://www.tug.org/TUGboat/Articles/tb06-3/tb13pk.pdf
Un article en français sur le sujet, mais je ne crois pas qu'il décrive le mode de compression utilisé par pk :
http://www.gutenberg.eu.org/pub/GUTenbe ... usquer.pdf
Deuzio, c'est trouvable dans un vieil article de Tom Rockiki, et un peu aussi dans les annexes de l'ouvrage "Fontes et encodages" de Yannis Haralambous.
Voilà l'article en question :
http://www.tug.org/TUGboat/Articles/tb06-3/tb13pk.pdf
Un article en français sur le sujet, mais je ne crois pas qu'il décrive le mode de compression utilisé par pk :
http://www.gutenberg.eu.org/pub/GUTenbe ... usquer.pdf