Closed fduchatea closed 9 months ago
Ça ne marcherait pas simplement en l'échappant ?
Si on échappe le '#', alors il y aura 2 '#' (celui échappé + celui mis par la commande \foreign{}). Actuellement j'ai supprimé tous les # du fichier tex et le résultat est ok (il y a bien un # devant les clés étrangères, grâce à \foreign{}).
Une autre interrogation sur la sortie Latex : où sont définies les macros \foreign, \relat et \prim ? Avant elles étaient dans le fichier Latex. Est-ce que le gabarit latex-b fournit la définition de ces macros ? En tout cas, dans Mocodo online, la sortie Latex n'inclut pas la définition des macros et ça rend le code Latex inutilisable.
Ok, il doit y avoir une redondance effectivement.
Le gabarit latex-b
dérive de latex-bc
qui définit ce qu'il faut.
J'ai trouvé la définition des macros : elle est dans latex-bc. Peut-être que mocodo online devrait produire ce gabarit latex-bc au lieu de latex ?
Oui, pourquoi pas ? Il faut que je voie la cohérence avec les autres options.
La sortie Latex du schéma relationnel sous forme de liste n'est pas très esthétique (avec les puces devant chaque relation). Je vais voir pour modifier un gabarit.
Ouais, après ça dépend de babel ou autre, c'est la typographie locale. Sémantiquement, c'est une liste en tout cas.
PR bienvenue.
Voici un gabarit (testé sous mocodo 4.0.5). Pas de PR car je n'ai pas encore le dépôt Mocodo en local... En plus il faut probablement le renommer.
Voici un exemple de sortie Latex (liste sans puce, plus compacte) :
Sinon, après avoir placé le nouveau gabarit dans resources/relation_templates/
, on ne peut pas l'utiliser avec -t nouveau_gab
: il faut utiliser -t relation:nouveau_gab
. Peut-être mieux l'expliquer dans la doc (qui insiste surtout sur le chemin complet vers le gabarit).
Autre souci avec la sortie Latex : les noms de tables / attributs contenant des '_' doivent être échappés avec un backslash (cas fréquent si on génère un MCD ou si on utilise la notation snakecase).
Merci pour le déboggage, je partirai très certainement de ton gabarit quand je me pencherai sur la question. Rajouter l'échappement des underscores n'est normalement pas très compliqué non plus.
Concernant les gabarits-utilisateur, je reverrai également la doc.
Le dossier de l'application n'est pas destiné à accueillir des fichiers de l'utilisateur. Ils doivent être placés en dehors, ne serait-ce que pour ne pas risquer d'être détruits lors d'une mise à jour.
Pour info, il y a un script dev/update_transfo_metadata.py
à lancer manuellement après ajout d'un nouveau gabarit officiel pour l'indexer et mettre à jour la documentation. Mais encore une fois, placer un gabarit-utilisateur dans le dossier des gabarits officiels n'est pas une pratique recommandée.
latex-c
et latex-bc
sont corrigés. Il y avait aussi un problème d'échappement de la tabulation, oops.latex:b
ou latex:bc
(donc avec boilerplate).NB. Les gabarits définis par l'utilisateur n'ont pas vocation à être placés dans le répertoire
relation_templates
de la distribution. Votre nouveau gabaritnew_sql
ne peut donc pas être invoqué aussi simplement que les gabarits officiels (i.e., avec-t new_sql
). Si vous faites une modification ou un ajout que vous voulez voir inclus dans la distribution, n'hésitez pas à faire une PR.
Ok pour les corrections, je regarderai plus tard.
Si ça intéresse d'autres personnes, voici comment retirer les puces quand on inclut le code Latex généré par Mocodo :
{%
\renewcommand\labelitemi{}% remove bullets
\input{dataset.tex}
}
Pour les gabarits : je ne les mets pas directement dans le répertoire relation_templates
. Ils sont dans un répertoire perso, et un script les copie dans relation_templates
.
Si tu tiens à copier ton gabarit dans le dossier officiel, ton script doit aussi lancer dev/update_transfo_metadata.py
.
Dans la sortie Latex, un '#' apparait devant le nom des attributs (clés étrangères), ce qui fait échouer la compilation Latex (il faudrait '#', mais a-priori c'est la macro \foreign qui est en charge de mettre le dièse). Il faut donc supprimer le '#' de la sortie.
Toujours en version Mocodo 4.0.5, mais ça a peut-être été corrigé dans une version plus récente.