Comment réaliser un style pour GaTeX ?
Mise en jambes: le tuto vu par Moscbahh
http://gamall-ida.co...&mode=view&.gif
Attention: Pour aborder ce tuto, vous devez avoir bien compris le fonctionnement de GaTeX en tant qu'utilisateur de styles préexistants. cf par exemple ce tuto. Ecrire un lisez-moi en utilisant le style DEFAULT ou WIWILAND ne doit pas avoir de secrets pour vous.
Ce tuto est à lire ligne par ligne, avec GaTeX à la main
Bien. Allons-y.
Les styles sont stockés dans format.ini. Faites-en une copie, au cas où, et ouvrez-le. Allez tout à la fin du fichier, et écrivez
{ DEMO $tab = " " }
Vous avez juste déclaré un nouveau style appelé "DEMO". Notez que vous devez définir $tab sans quoi le style ne sera pas détecté.
Essayez de compiler un fichier de test avec le style DEMO :
\style{DEMO} \output{demo.out.txt}Le résultat est un fichier blanc, certes, mais ça compile sans problème
Mais DEMO est vide pour l'instant. Déclarons des "commandes de structure" pour pouvoir commencer à écrire.
Créer des blocs de texte à formater
Le plus simple d'abord: du texte tout bête, aligné à gauche.
{ DEMO $tab = " " { text $type = text %width = 65 } }$type = text signifie que c'est une structure qui contient du texte à mettre en forme. %width = 65 signifie qu'aucune ligne ne doit faire plus de 65 caractères.
Essayez de compiler avec du texte entre les balises \text et \end, et vous verrez que ça marche parfaitement. Ceci est l'environnement de mise en forme le plus simple qu'on puisse définir en GaTeX.
Maintenant, justifions le texte. Ajoutez simplement la ligne $align = JUST dans les spécifications du bloc "text". Essayez aussi avec CENTER et RIGHT.
Finalement, restons-en à
{ text $type = text %width = 65 $align = JUST }Ca fait parfaitement l'affaire pour un corps de texte.
Qu'y a-t-il d'autre dans un lisez-moi qui se respecte ? Un tire, des sections, sous-sections etc...
Attaquons nous au titre de section.
{ section $type = text %width = 65 $align = CENTER }C'est déjà bien, mais on obtient quelque-chose du genre:
TITRE DE SECTION Elle avait pris ce pli dans son âge enfantin De venir dans ma chambre un peu chaque matin; Je l'attendais ainsi qu'un rayon qu'on espère; Elle entrait, et disait: Bonjour, mon petit père;Le titre est collé au corps de texte. Corrigeons cela: ajoutez à section la ligne $()out = " ", qui signifie "ajouter la ligne <ligne blanche> après avoir écrit le texte". Et le problème est reglé. (Note: Il est judicieux aussi de faire ça pour les blocs de texte, afin que deux blocs consécutifs soient séparés par une ligne).
Maintenant on a envie de souligner le titre de section... Sisisisi....
$()out= ============================================== " "Donnera
TITRE DE SECTION ============================================== Elle avait pris ce pli dans son âge enfantin De venir dans maC'est un peu moche Comment faire pour avoir juste la bonne largeur ? Utiliser la commande \rep{ x }, qui répète le motif x autant de fois que nécessaire pour boucher les trous. Par exemple:
$()out= 0\rep{+=}0 " "donne
TITRE DE SECTION 0+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+0 Elle avait pris ce pli dans son âge enfantin De venir dans maNote: Malheureusement, on ne peut utiliser qu'une seule commande \rep par ligne dans les styles. C'est une limitation dûe à la paresse congénitale du programmeur (cad de moi, mais chut ) qui sera corrigée dans les prochaines versions de GaTeX.
Je pense que vous l'aurez deviné, de même qu'il y a un paramètre $()out, il existe un paramètre $()in, qui permet d'insérer une ou plusieurs lignes avant le texte.
{ section $type = text %width = 65 $align = CENTER $()out = 0\rep{+=}0 " " $()in = 0\rep{-}0 }donne
0---------------------------------------------------------------0 TITRE DE SECTION 0+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+0Ca donne envie de boucher les trous à gauche et à droite, non ? Pour ce faire, il y a $left et $right. Ajoutez $left = # et $right = #. Ca donne
0---------------------------------------------------------------0 # TITRE DE SECTION # 0+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+0Notez que ces valeurs sont répétées sur toutes les lignes du texte dans le bloc, s'il y en a plusieurs. Par exemple, si vous faites ça sur le bloc texte:
{ text $type = text %width = 65 $align = JUST $left = "- " $right = " <" }vous aurez
- Elle avait pris ce pli dans son âge enfantin De venir dans < - ma chambre un peu chaque matin; Je l'attendais ainsi qu'un < - rayon qu'on espère; Elle entrait, et disait: Bonjour, mon < - petit père; Prenait ma plume, ouvrait mes livres, < etc....Pour aller un peu plus loin, imaginons que vous vouliez avoir un motif à gauche ou à droite du texte, au début du bloc ou à la fin... c'est possible
Modifiez le bloc text ainsi:
{ text $type = text %width = 65 $align = JUST $left = "- " $right = " <" $()leftin = "li1 " "li2 " "li3 " "li4 " $()leftout = "lo1 " "lo2 " "lo3 " "lo4 " $()rightin = " ri1" " ri2" " ri3" " ri4" $()rightout = " ro1" " ro2" " ro3" " ro4" }Vous obtenez
0---------------------------------------------------------------0 # TITRE DE SECTION # 0+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+0 li1 Elle avait pris ce pli dans son âge enfantin De venir ri1 li2 dans ma chambre un peu chaque matin; Je l'attendais ainsi ri2 li3 qu'un rayon qu'on espère; Elle entrait, et disait: ri3 li4 Bonjour, mon petit père; Prenait ma plume, ouvrait mes ri4 - livres, s'asseyait Sur mon lit, dérangeait mes papiers, < - et riait, Puis soudain s'en allait comme un oiseau qui < etc etc.... - genoux, leur mère Tout près, quelques amis causant au < - coin du feu ! J'appelais cette vie être content de peu ! < lo1 Et dire qu'elle est morte! Hélas! que Dieu m'assiste ! Je ro1 lo2 n'étais jamais gai quand je la sentais triste; J'étais ro2 lo3 morne au milieu du bal le plus joyeux Si j'avais, en ro3 lo4 partant, vu quelque ombre en ses yeux. ro4Comme vous le voyez, sur les premières et dernières lignes, les instructions right/left:in/out remplacent les $left et $right normaux. S'il n'y a pas assez de lignes pour caser tout le monde, sachez que les "in" ont la priorité.
Créer des blocs de texte sans formatage: environnements de type verbatim
Dans la majorité des cas, il est souhaitable que le programme formate le texte. Dans d'autres, c'est tout à fait nuisible. Si vous voulez que le programme rende ce que l'utilisateur écrit tel quel, créez un environement verbatim:
{ verb $type = verb $escape= "verb" }Tout texte entré entre les balises \verb et \end{verb} (le premier venant de la ligne { verb et le second de $escape = "verb") sera rendu sans aucun formatage par le programme.
Notez que vous pouvez tout de même appliquer une mise en forme limitée à un environnement verb: si vous définissez %width, vous pourrez utiliser $left, $right, $()in et $()out, exactement de la même manière qu'avec un environnement texte. Voyez par exemple dans le style DEFAULT:
{ verb $type = verb $left = " " $right = "" %width = 65 $()in = " \rep{~} " $()out = " \rep{~} " " " $escape = "verb" // the string to pass as argument to \end to escape verbatim mode. }qu'on voit en action dans le readme de GaTeX:
source text for this file, "Readme.gat", with your favourite raw text editor. Look at the few first lines : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \header_in GaTeX: An ASCII Document Formatting System \end ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ And now, compare the data in both format.ini and Readme.gat to the three very first lines of this file:
Soumettre un style
Voilà, vous avez fait un super style GaTeX et vous voulez le partager avec le reste du Monde (et + si affinités) ?
Il vous faut poster trois choses:
1° Le code du bloc de style dans votre format.ini [à mettre entre balises spoiler pour ne pas encombrer]
2° Un fichier demo utilisant le style prêt à compiler [idem]
3° Votre exemple compilé, pour que les gens voient à quoi ça ressemble.
Notez que les styles GaTeX n'appartiennent à personne: publier un style signifie accepter que tout personne le souhaitant l'utilise, le modifie, le distribue etcétéra
Conclusion / demander de l'aide
Voilà, je pense avoir couvert tout ce qu'il faut dans ce tuto
Si vous avez des questions sur l'art et la manière de faire des styles GaTeX, posez-les sur ce topic.
Si vous avez des questions d'ordre général sur l'utilisation de GaTeX dans le contexte Wiwiland (c'est à dire en utilisant un style fait pour Wiwiland, comme le style WIWILAND), posez-les sur le sujet du tuto "général"
Si vous avez des questions, suggestions ou remarques techniques sur le programme, ou portant sur l'utilisation de styles perso qui n'ont rien à voir avec Wiwiland, posez-les dans le topic de développement de GaTeX.
Yop yop