GEN-FF-LOG-L Archives

Archiver > GEN-FF-LOG > 2006-12 > 1166126648


From:
Subject: Re: [LifeLines] erreur sur script
Date: 14 Dec 2006 21:04:08 +0100
References: <87r6v2d4av.fsf@linux.site> <els5r1.3vvd0mb.1@genindre.org>


Patrick Texier <> a écrit :

Bonsoir

>[...]
> if (e, birth(i)) { "Naissance : " complexdate(e) place(e) nl() }
>
>Il faut définir les formats au début du programme :
>
>dayformat(2)
>monthformat(8)
>dateformat(0)

Bizarre, mon truc marchait et, maintenant la plupart des mois ont
disparu ! (cf. source à la fin)

Mais je vais essayer de profiter de ton savoir :
- les enregistrements de personnes que j'ai fait avec llines
contiennent tous un tag DEAT même s'il est vide (faut-il donc
systématiquement enlevé ce tag si la personne est encore vivante) donc
le test : if (e, death(individu)) est toujours vérifié :(
- j'en suis venu donc "bêtement" à tester le contenu de la valeur de
la date de mort (en plus au début où j'utilisais je mettais un '?') :
or(not(eqstr(date(expression),"")),not(eqstr(date(expression),"?")))
mais ça ne marche pas : je me retrouve quand même avec des champs vides
ou avec un point d'interrogation :(
- quand je fais un key(individu) je suis surpris de ne pas "voir" de
trou dans la notation (j'ai les mêmes clés que ma numérotation de page
(en même temps, ça m'aménera à trouver facilement la page du conjoint),
alors qu'il m'est arrivé d'éliminer des individus... llines
renumérote-t-il les id des individus à chaque enregistrement ?

Bon c'est un premier jet de questions....je crois qu'il y en aura plein
d'autres :)

/* début */

proc headerLaTeX() {
"\\documentclass[12pt]{article}\n"
"\\usepackage[dvips,a5paper]{geometry}\n"
"\\usepackage[T1]{fontenc}\n"
"\\usepackage{fourier}\n"
"\\usepackage[frenchb]{babel}\n"
"\\newcommand{\\titre}[2]{\n"
" \\begin{center}\n"
" {\\bfseries #1} --- #2%%\n"
" \\end{center}\n"
"}\n"
"\\begin{document}\n"
}

proc footerLaTeX() {
"\\end{document}"
}

func nonvide(expression) {
return (or( not(eqstr( date(expression) , "" )) , not(eqstr( date(expression) , " ?" ))) )
}

proc naissanceLaTeX(expression) {
if ( nonvide(expression) ) {
"\\noindent\\emph{Naissance : } " complexdate(expression) "\\par" nl()
"\\mbox{}\\hfill {\\small à " place(expression) "}\\par" nl()
}
}

proc decesLaTeX(expression) {
if ( nonvide(expression) ) {
"\\noindent\\emph{Décès : } " complexdate(expression) "\\par" nl()
"\\mbox{}\\hfill {\\small à " place(expression) "}\\par" nl()
}
}

proc mariageLaTeX(idC,idF) {
"\\noindent\\emph{Mariage avec : }" name(idC) "\\par" nl()
"\\mbox{}\\hfill {\\small le " date(idF) "}\\par" nl()
"\\mbox{}\\hfill {\\small à " place(idF) "}\\par" nl()
}

proc main () {
dayformat(2)
monthformat(8)
dateformat(0)

call headerLaTeX()
forindi (i,nb) {
"\\titre{" name(i) "}{" key(i) "}" nl()
if (e, birth(i)) {call naissanceLaTeX(e)}
if (e, death(i)) {call decesLaTeX(e)}
spouses(i,idConjoint,idFamille,j) {
call mariageLaTeX(idConjoint,idFamille)
}
"\\newpage" nl()
}
call footerLaTeX()
}
/* fin */

david

PS1 llines a l'air vraiment *très* puissant !
PS2 là j'utilise emacs avec le mode C, y-a-t-il un truc plus adapté ?
PS3 je me suis emm*rdé à faire en Tcl un script pour convertir mon
.ged en une sorte de fichiers de commandes LaTeX puis une bibliothèque
metapost utilisant ces macros LaTeX pour faire de jolies boîtes (arbres
d'ascendance), mais comme ça faisait des fichiers metapost quand même
difficilement maintenables, j'en étais arrivé à faire un script Tcl
parsant un fichier aux notations simplifiées qui permettait de
construire le fichier metapost, évidemment je termine le tout avec une
compilation LaTeX ! Mouais...deux semaines de boulot ! et tout cela pour
découvrir que le langage de llines est super-adapté pfffffffff


This thread: