.No Flag .Control Character .First Title .Title Editeur de fontes pour LN03 .Chapter Presentation Cet éditeur permet de créer ou de modifier des fontes pour l'imprimante laser LN03 de DEC. L'éditeur est fourni avec une série de procédures de commandes destinées à faciliter son utilisation. .Paragraph Les caractères manipulés par l'éditeur sont codés sous une forme plus simple que le format de la LN03. Le format utilisé est le format PXL mis en ÷uvre dans l'utilitaire de traitement de texte TeX. .Paragraph La fonte réellement utilisé par la LN03 est placée dans un fichier LN3. Les procédures de commandes sont chargées d'aider à la construction de ce fichier. .Paragraph Pour faciliter la création des fontes, il est possible (et même conseillé !) de partir de fontes TeX, au format PXL. L'une des options de la procédure permet de transférer les fichiers PXL de TeX dans son directory de travail. .Chapter Utilisation L'utilisation de l'éditeur ne nécessite aucun privilége. L'interface utilisateur est assez "fruste", comparé aux utilitaires les plus évolués de DEC. Il utilise la technique des autres utilitaires TeX, à savoir, une série de mots de commande qui doivent être entrés en réponse au prompt de l'éditeur. .Indent Une des commandes est bien sur : HELP, donc, l'honneur est sauf... .Paragraph L'éditeur travaille avec deux 'buffeurs'. Le premier contient le fichier source. Ce 'buffeur' n'est pas modifiable ! Le second contient une série de caractéres extraits du 'buffeur' source. C'est sur ce second 'buffeur' que porte les commandes d'édition et de visualisation des caractères. La commande 'KEEP' permet de transférer les caractères du 'buffeur' source vers le buffer d'édition. Cette précaution a été prise pour éviter à un utilisateur de détruire par inadvertance un fichier source. De plus, le contenu du fichier d'édition doit être explicitement sauvé avant de sortir de l'édition. .Paragraph La partie édition de caractère est réalisée par un appel à TPU. L'interface EVE de TPU est entiérement disponible. Le clavier numérique a été programmé grace à une section globale TPU afin de réaliser quelques fonctions d'édition propre au traitement de la matrice de points décrivant le caractére. La touche PF2 donne un HELP des fonctionnalités du clavier numérique. .Paragraph La partie édition du programme a été conçue pour une VT220. Elle n'a jamais été essayée sur un terminal type VT100. En particulier, comme le clavier numérique est redéfini, le fonctionnement sur VT100 peut poser des problèmes. Dans ce cas, il faudra modifier le fichier EDIT_FONTES.TPU et l'adapter aux besoins. .Paragraph Comme l'éditeur utilise des fonctionnalités de TPU, la version 4.2 de VMS est nécessaire. .Chapter Procedures de commandes Une procédure de commandes, EDIT_FONTES.COM, permet de récupérer un fichier de fontes depuis la "base de données" des fontes TeX, d'éditer un fichier de fontes existant dans le directory et de générer le fichier destiné à être chargé sur la LN03. Dans cette option, un test peut être demandé pour controler le fichier de fontes créé. .Paragraph La procédure imprime le test sur une queue d'impression portant le nom logique SYS$LASER. .Paragraph La procédure demande le nom du fichier de fontes qui sera créé. Ce nom de fichier est passé à l'éditeur qui l'utilisera implicitement pour sauver les caractères créés. .Skip 3 Appel à la procédure de commandes .Paragraph $ exec edit_fontes .Header Level 1 Menu Affiche .Literal Chargement d'une fonte TeX - C Edition - E Generation du fichier - G Sortir - X .End Literal .Header Level 2 Option Chargement (C) Dans cette option, la liste des directories contenant les fichiers de fontes est affichée. Chaque directory contient une série de fonte à une même taille de caractères .Paragraph Une fois la taille de fontes sélectionnée, la liste des fichiers de fontes est affichée. La fonte sélectionnée est copiée dans le directory de travail. .Test Page 4 .Skip Attention .Indent Cette fonte n'est pas chargée automatiquement à l'appel de l'éditeur. Il est nécessaire de chargée individuellement chaque fonte source (Voir la commande LOAD). .Header Level 2 Option Edition (E) Appel l'éditeur de fontes .Header Level 2 Option Génération (G) Cette option permet de générer le fichier chargeable sur la LN03. Il construit également un fichier de test qui peut être envoyé sur l'imprimante pour controle. .Chapter Editeur de fontes L'éditeur de fontes est appelé sous la forme d'une 'Foreign Command', par exemple en définissant le symbole 'EDIT_FONTES' par .Literal $ EDIT_FONTES == "$ UTL$SYSROOT:[SYSEXE.EDIT_FONTES]EDIT_FONTES .End Literal .indent Ou en utilisant la procédure de EXECUTE, de UTL$SYSTEM, par .Literal $ Exec EDIT_FONTES .End Literal .Paragraph Il accepte une option d'appel : le nom du fichier de sauvetage des caractères modifiés. .Literal Par exemple, $ EDIT_FONTES fontes.pxm .End Literal .Header Level 1 Principe L'éditeur travaille sur deux 'buffeurs' différents. Le premier est le 'buffeur' recevant le fichier source. Il ne peut pas être modifié. Il sert de référence et permet de récupérer des caractères existant. Le second reçoit les caractères en cours de modification. .Indent Ce second 'buffeur' doit être sauvé avant de sortir de l'éditeur. Pour travailler sur un caractère, il est nécessaire de le transférer du 'buffeur' source au 'buffeur' de modification. .Paragraph Pour pouvoir être facilement manipuler, le caractère est converti en une matrice de point. Cette matrice est affichée sous la forme d'une matrice de caractères '#' et '.'. .Paragraph L'éditeur travaille dans trois modes différents. Il est possible de visualiser des caractères du 'buffeur' source ou du 'buffeur' de modification. Il est bien sur possible de modifier la forme des caractères. Enfin, il est possible de modifier ou de controler certains paramètres supplémentaires des caractères ou du fichier. .Test Page 8 .Literal Les paramètres pouvant être modifiés sont : La position du caractère par rapport à une position de référence (Coin supérieur gauche d'une 'fenêtre'). La taille de cette fenêtre. La valeur du coefficiant de magnification (Taille de la fonte) La valeur d'un coefficiant conversion des unités DSIZE .End Literal .Header Level 2 Remarque Le format utilisé ne permet de coder que 128 caractères, codés de 0 à 127. Pour travailler avec un alphabet 8 bits, il est nécessaire de charger sur l'imprimante deux fontes complémentaires, associées aux banques 0 et 1 de l'imprimante (Documentation dans le "LN03 User Guide", © DEC). .Header Level 2 Caractères .Paragraph Les caractères sont repérés par un numéro de code, qui correspond à la place du caractère dans le 'buffeur'. .Paragraph Il y a deux manières de désigner un caractère : .Indent 20 Son numéro de code. .Indent 20 Le caractère ASCII associé à ce code. .Paragraph Lorsque la fonte contient un alphabet traditionnel, il est plus pratique d'associer aux caractères leur numéro de code ASCII. Cette convention est respectée par les fichiers de fontes TeX pour la plupart des caractères. .Paragraph L'éditeur permet de travailler avec des fichiers de fontes dans lesquels tous les caractères ne sont pas définis. .Paragraph Les programmes de création du fichier chargeable sur l'imprimante peuvent générer un nombre quelconque de caractères, entre 1 et 92. Mais le premier caractère doit avoir le code 33 et les autres caractères doivent avoir des codes croissants, sans discontinuité. .Paragraph Les paramètres associés aux caractéres sont : .Literal o Le nombre de lignes et de colonnes. o Sa position par rapport à la fenêtre de référence. o La taille de cette fenêtre. .End Literal .Header Level 2 Commandes Lorsque l'éditeur est près à recevoir une commande, il affiche le prompt 'EDIT_FONTES> '. .Header Level 2 help .Center ; Donne la liste des commandes, soit .Literal save - Sauve le fichier modifie help - Mode d'emploi load - Charge un fichier de fontes PXL typ - Affiche un caractere original PXL typmod - Affiche un caractere conserve keep - Conserve un ou plusieurs caracteres edit - Modifie un des caracteres conserves typlong - Affiche un 'longword' du fichier PXL typword - Affiche un 'word' du fichier PXL compress - Comprime le buffer de modification dmpdict - Affiche le dictionnaire modif - Modifie les parametres d'un caractere modfile - Modifie les parametres du fichier exit - Sortie de l'editeur .End Literal .Header Level 2 typ, typmod .Indent 8 typ : Affiche un caractère du 'buffeur' source. .Indent 8 typmod : Affiche un caractère du 'buffeur' de modification. .Paragraph Il est possible de visualiser plus d'un caractère. On indique dans ce cas le premier et le dernier caractère. .Literal Exemple typ 'a' typmod 33 typmod 'a' 94 .End Literal .Test Page 20 .Literal Exemple EDIT_FONTES> typ 'a' .....####.##... ...##########.. ..####..#####.. .#####...####.. .####...#####.. #####...####... ####....####... ####....####... ####...#####... ###....####..## ###....####..## ###....####.### ####.#########. .############.. ..####...###... .End Literal .Header Level 3 Commandes .Literal Fléches : Déplacement d'une position. 8, 4, 6, 2 du clavier numérique : Déplacement de plusieurs lignes ou colonnes. Return : Caractères suivants. CTRL/Z, F10 : Retours au mode de commande de l'éditeur. .End Literal .Header Level 2 load .Indent 8 Charge un fichier de fontes dans le 'buffeur' source. .Paragraph Cette commande contrôle le format interne du fichier de fontes. Ce fichier contient au début et à la fin des informations appelées . .Paragraph En cas d'erreur, le programme affiche le message .Literal Identificateur initial de format PXL incorrecte ou, Identificateur final de format PXL incorrecte Exemple EDIT_FONTES> load amb10.pxl MAG 1200 - DSIZE (10485760, 10.000000)- PXL_LEN 12280 .End Literal .Header Level 2 keep .Indent 8 Transfert des caractères du 'buffeur' source au 'buffeur' de modification. .Literal Format : [prem_car] [[- dern_car] [dest_car]] Avec : Prem_car : Premier caractère à transférer Dern_car : Dernier caractère à transférer Dest_car : Position d'arrivée dans le buffer de modification .End Literal L'éditeur gére un compteur indiquant le dernier caractère transféré et sa position d'arrivée. Pour cette raison, il n'est pas toujours nécessaire d'indiquer 'PREM_CAR' ou 'DEST_CAR'. .Literal Exemple EDIT_FONTES> keep 'a' 10 Transfert du caractere 97 ('a') en 10 .End Literal .Header Level 2 typlong, typword .Indent 8 typlong : Affiche un Long Word du 'buffeur' source. .Indent 8 typword : Affiche un Word du 'buffeur' source. .Paragraph Essentiellement pour la mise au point du programme. .Header Level 2 dmpdict .Indent 8 Affiche le contenu du dictionnaire indiquant les informations associées à chaque caractère. .Paragraph Format : dmpdict [prem_car] [dern_car] .Literal Exemple dmpdict 0 Controle du dictionnaire de 0 a 0 ------------------- Caractere <0> Code ^@ Ligne 23 -- Colonne 21 X offset -1 -- Y offset 22 Raster Start 4 TFM WIDTH 604388 -- 10.000000 Prochaine position libre dans le buffer 156 - Max 262144 .End Literal .Test Page 14 .Literal dmpdict 1 2 Controle du dictionnaire de 1 a 2 ------------------- Caractere <1> Code ^A NON DEFINI ------------------- Caractere <2> Code ^B NON DEFINI Prochaine position libre dans le buffer 156 - Max 262144 .End Literal .Header Level 2 modif .Indent 8 Modification des paramètres d'un caractère. .Paragraph Il est possible de modifier la position du caractère par rapport au coin supérieur gauche de la fenêtre ou la largeur de cette fenêtre. .Paragraph Le programme affiche les anciennes valeurs et propose un choix des modifications possible. .Indent La largeur de la fenêtre est exprimée soit en absolu (Valeur lue dans le 'buffeur'), soit convertie en utilisant la valeur du paramètre 'DSIZE'. L'option 'F' permet de modifier le paramètre en unités absolues. L'option 'R' porte sur l'unité traduite. .Test Page 15 .Literal Exemple EDIT_FONTES> modif 10 Modification du caractere 10 Colonne : 15 Ligne : 15 Offset en X : -2 Offset en Y : 14 Fenetre : 587882 -- 0.560648 Voulez vous modifier l'offset en X ou Y (X,Y), ou la fenetre (F,R) : .End Literal .Header Level 2 modfile .Center ; Modification des paramètres du fichier .Paragraph Il est possible de modifier la valeur de la magnification, c'est-à-dire, la taille de tous les caractères de la fonte, ou la valeur du coefficiant DSIZE. .Literal Exemple EDIT_FONTES> modfile Magnification actuelle 1200 - Entrez la nouvelle valeur : 1225 Nouvelle Magnification 1225 ---- Dsize actuelle 10.000000 - Entrez la nouvelle valeur : 11 Nouvelle Dsize 11.000000 -- .End Literal .Header Level 2 edit .Center ; Edition d'un caractère .Paragraph L'édition se fait sous TPU. Le clavier numérique a été configuré pour faciliter la manipulation des lignes et des matrices de caractères. Il est possible, par exemple, d'inverser une ligne ou une matrice de points, ou de duppliquer celles-ci. .Indent La commande PF2 permet d'avoir un diagramme des fonctions redéfinies. .Paragraph L'utilisateur a le choix de sortir de l'édition par 'EXIT' ou par 'QUIT'. Dans ce dernier cas, les modifications ne sont pas reportées dans le buffer des caractès modifiés. .Page .Center ; Help de l'éditeur .Test Page 9 .Literal --------------------------------------------------------------------- | | [One Window] | | | | | | | | | F 17 | F 18 | F 19 | F 19 | | | | | | | Other Window | Two Window | | | --------------------------------------------------------------------- .End Literal .Test Page 33 .Literal --------------------------------------------------------------------- | | | | | | | | | | | GOLD | PF2 | PF3 | PF4 | | | Help | | | | | Edit_fontes | | | |----------------+----------------+----------------+----------------| | | [Symetrie Mat] | [Symetrie Line]| [Und Line] | | | | | | | 7 | 8 | 9 | - | | | | | | | Mouvement | Mouvement | Mouvement | Del End of Line| |----------------+----------------+----------------+----------------| | [Reverse Mat] | [Permut Mat] | [Perm Line] | | | | | | | | 4 | 5 | 6 | , | | | | | | | Mouvement | Search PIXEL | Mouvement | Del Char | |----------------+----------------+----------------+----------------| | [Move by Word] | [End of Line] | [Perm 2 char] | | | | | | | | 1 | 2 | 3 | | | | | | | | Mouvement | Mouvement | Mouvement | | |---------------------------------+----------------| ENTER | | [ BEGIN OF LINE ] | | | | | | | | 0 | . | | | | | | | RESET PIXEL | SET PIXEL | REVERSE PIXEL | --------------------------------------------------------------------- .Literal .Test Page 15 .End Literal ------------------ | | | | | UP | | | | Mouvement | -----------------|----------------|----------------- | [ SHIFT ] | | [ SHIFT ] | | | | | | LEFT | DOWN | RIGHT | | | | | | Mouvement | Mouvement | Mouvement | ---------------------------------------------------- .End Literal .Header Level 2 save .Indent 8 Sauvetage du 'buffeur' modifié .Paragraph Par défaut, cette commande propose de sauver le fichier avec le nom passé à l'appel. Il est également possible de donner un nom de fichier avec cette commande. .Paragraph Pour réaliser le sauvetage du 'buffeur', l'éditeur doit reconstruire la structure du fichier PIXEL. Cette construction écrase le 'buffeur' SOURCE. Dans le cas d'un sauvetage intermédiaire, au cours d'une cession, il est nécessaire de recharger le fichier source (Voir LOAD). .Test Page 15 .Literal Exemple EDIT_FONTES> save Fichier de sortie essai.pxm ([O],N) : O Fichier essai.pxm sauve --- ATTENTION --- La commande SAVE a ecrase ambi10.pxl Exemple EDIT_FONTES> save essai.tt Fichier essai.tt sauve ATTENTION --- La commande SAVE a ecrase ambi10.pxl .End Literal .Header Level 2 exit .Center ; Sortie du programme .Paragraph Il est nécessaire de sauver le buffer de modification avant la sortie.