Tâches répétitives

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

Tâches répétitives

Messagepar fadila » Jeudi 08 Mai 2014, 08:20

Bonjour
Je voudrais adresser des convocations nominatives à mes élèves; j'envisage de créer une liste d'élèves (Albert, Dupont, ...) puis latex mettra à l'aide d'un compteur le bon nom à la bonne page. Quelqu'un sait-il comment je peux faire ?
Merci
fadila
Kilo-utilisateur
 
Messages: 213
Inscription: Samedi 12 Août 2006, 09:02
Localisation: Nantes

Publicité

Re: taches repetitives

Messagepar gigiair » Jeudi 08 Mai 2014, 09:06

Un publipostage, en quelque sorte ?
Si le nombre de destinataires n'est pas trop grand (ce qui est le cas, j'imagine), l'extension datatool le permet.
Autrement, l'extension pgffor permet de réaliser assez simplement des boucles.

Code: Tout sélectionner
\foreach \nom/\prenom/\civilite in
{Havrante/Hélène/Mme,Mamobe/Alfonse/Mr,Comsicomsa/Eva/Mlle}
{Bonjour \civilite{} \prenom{} \nom\newpage}
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2443
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Re: taches repetitives

Messagepar rebouxo » Jeudi 08 Mai 2014, 09:47

gigiair a écrit:Un publipostage, en quelque sorte ?
Si le nombre de destinataires n'est pas trop grand (ce qui est le cas, j'imagine), l'extension datatool le permet.
Autrement, l'extension pgffor permet de réaliser assez simplement des boucles.
Code: Tout sélectionner
\foreach \nom/\prenom/\civilite in
{Havrante/Hélène/Mme,Mamobe/Alfonse/Mr,Comsicomsa/Eva/Mlle}
{Bonjour \civilite{} \prenom{} \nom\newpage}



Ouaf, ouaf :mrgreen:

Bon, moi pour ce genre de chose je le fais avec python, mais c'est juste une suggestion.

Olivier
A line is a point that went for a walk. Paul Klee
Par solidarité, pas de MP
rebouxo
Modérateur
 
Messages: 6952
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant

Re: taches repetitives

Messagepar fadila » Jeudi 08 Mai 2014, 10:04

Gigiair : merci
Rebouxo : pourrais-tu stp montrer le programme python que tu utilises.
Merci
fadila
Kilo-utilisateur
 
Messages: 213
Inscription: Samedi 12 Août 2006, 09:02
Localisation: Nantes

Re: taches repetitives

Messagepar gigiair » Jeudi 08 Mai 2014, 12:21

J'ai un fichier exemple de publipostage réalisé avec lettrscr2 et datatool.
Le fichier d'adresses est joint.
Le fichier NF.lco vient normalement avec toute bonne distribution.
publipost.tex
Le fichier de publipostage
(4.86 Kio) Téléchargé 201 fois
adresses.txt
Le fichier d'adresses
(1.07 Kio) Téléchargé 173 fois

(il faut renommer adresses.txt en adresses.csv car l'extension .csv n'est pas permise sur ce site, ou bien remplacer adresses.csv par adresses.txt dans le source publipostage.tex)
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2443
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Re: Tâches répétitives

Messagepar marco56 » Jeudi 08 Mai 2014, 14:05

Rigolo ! Cela marche bien mais j'ai des 3 traits horizontaux qui se baladent sur chaque page, à gauche. C'est normal ?
marco56
Giga-utilisateur
 
Messages: 777
Inscription: Jeudi 25 Novembre 2010, 22:10
Statut actuel: Actif et salarié | Enseignant

Re: taches repetitives

Messagepar rebouxo » Jeudi 08 Mai 2014, 15:25

fadila a écrit:Gigiair : merci
Rebouxo : pourrais-tu stp montrer le programme python que tu utilises.
Merci


J'ai fait ceci (c'était pour des mots de passe), mais j'ai distribué une lettre pour chaque prof.

Code: Tout sélectionner
#-*- coding:latin-1-*-

"""
Il s'agit d'écrire à partir du fichier cahier_de_texte.dat, une lettre avec le nom, le prénom, l'identifiant, le mot de passe
et le sexe est géré
idenfiant, Nom, Prénom, Sexe, MdP.
"""

import os
import re

lien="http://w3.ac-rouen.fr/grr/0760056Y"

def repl_func(m):
    """process regular expression match groups for word upper-casing problem"""
    return m.group(1) + m.group(2).upper()

fo = open("CdT.txt","r")
listeProf=[]
for line in fo :
    elem=[]
    champ=""
    for c in line :
        if str(c)=="," :
            elem.append(champ)
            champ=""
        else :
            champ+=c
    listeProf.append(elem)
listeProf.sort()

foGRR=open("mdp_GRR.dat","r")
listeGRR=[]
for line in foGRR :
    elem=[]
    champ=""
    for c in line :
        if str(c)=="," :
            elem.append(champ)
            champ=""
        else :
            champ+=c
    listeGRR.append(elem)

listeGRR.sort()

listeProfGRR=[]

for elem in listeProf :
    for elemGRR in listeGRR :
        if elem[0] == elemGRR[0] :
            elem[4]=elemGRR[1]
            listeProfGRR.append(elem)

elem=["laguerrp","Laguerre", "Patricia","F","L_qPa$=y,"]
listeProfGRR.append(elem)
listeProfGRR.sort()

# Au dessus de cette marque gestion des listes.
# En dessous écriture de la lettre pour le prof elem.
# Je distingue les femmes des hommes.
# Et je mets les noms avec une capitale au nom... C'est la fonction re.sub()
# trouvée sur internet.
lettre=open("lettreGRR.tex","w")
for elem in listeProfGRR :
    print elem
    lettre.write("\\begin{letter}%\n")
    if elem[3] == "M" :
        prenom=re.sub("(^|\s)(\S)",repl_func,elem[2])
        nom=elem[1].upper()
        string="{M. "+prenom+" "+nom
        lettre.write(string)
    else :
        prenom=re.sub("(^|\s)(\S)",repl_func,elem[2])
        nom=elem[1].upper()
        string="{Mme "+prenom+" "+nom
        lettre.write(string)
    lettre.write("}\n")
    lettre.write("\\name{Ph. Le Pley et O. Reboux}\n")
    lettre.write("\\secondsignature{Personnes Ressources}\n")
    lettre.write("\\address{\\includegraphics[width=5cm]{siegfried}}\n")
    lettre.write("\\lieu{Le Havre}\n")
    lettre.write("\\notelephone{}\n")
    lettre.write("\\nofax{}\n")
    if elem[3]=="M" :
        lettre.write("\\opening{Cher collègue,}\n")
    else :
        lettre.write("\\opening{Chère collègue,}\n")
    lettre.write("Le rectorat continue d'héberger des services que nous hébergions auparavant.\n")
    lettre.write("La plate forme de réservation en ligne (GRR) est maintenant accessible sur les serveurs de l'académie à l'adresse : \n" )
    lettre.write("\\begin{center}\n")
    lettre.write(lien+"\n")
    lettre.write("\\end{center}\n")
    lettre.write("Ce lien fonctionnne de chez vous comme du lycée.\n")
    lettre.write("Ci-dessous, votre login, inchangé, et votre mot de passe associé à ce site que vous pourrez changer.\n")
    lettre.write("\n")
    login="login : \\verb+"+str(elem[0])+"+\n"
    lettre.write(login)
    lettre.write("\n")
    mdp="Mot de passe : \\verb+"+str(elem[4])+"+\n"
    lettre.write(mdp)
    lettre.write("\n")
    lettre.write("\\closing{Cordialement,}\n")
    lettre.write("\\end{letter}\n")


fo.close()
foGRR.close()
lettre.close()


Après un coup de latex me donne les différentes lettres (au format a5). L'écriture de la lettre via des write() est un peu pénible et j'aurais certainement du faire une fonction, mais bon, c'est pas destiné à sortir de mon ordi (en théorie).

Olivier
A line is a point that went for a walk. Paul Klee
Par solidarité, pas de MP
rebouxo
Modérateur
 
Messages: 6952
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant

Re: Tâches répétitives

Messagepar fadila » Jeudi 08 Mai 2014, 16:08

merci rebouxo; je vais voir si je peux utiliser
merci à toi aussi gigiair
a bientôt
fadila
Kilo-utilisateur
 
Messages: 213
Inscription: Samedi 12 Août 2006, 09:02
Localisation: Nantes

Re: Tâches répétitives

Messagepar gigiair » Jeudi 08 Mai 2014, 20:06

marco56 a écrit:Rigolo ! Cela marche bien mais j'ai des 3 traits horizontaux qui se baladent sur chaque page, à gauche. C'est normal ?


Ce sont les marques de pliages. On peut les supprimer, la classe scrlttr2 est très personnalisable.
Si ça ne te plaît pas, il suffit de décommenter la ligne 48 du fichier source
Code: Tout sélectionner
,foldmarks=false

Pour les autres options voir scrguien.pdf (en anglais, scrguide.pdf en allemand)
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2443
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Re: Tâches répétitives

Messagepar marco56 » Jeudi 08 Mai 2014, 20:35

Merci gigiair, pour ces précisions.
marco56
Giga-utilisateur
 
Messages: 777
Inscription: Jeudi 25 Novembre 2010, 22:10
Statut actuel: Actif et salarié | Enseignant


Retourner vers LaTeX

Qui est en ligne

Utilisateurs parcourant ce forum: Google Adsense [Bot], Grapeshot [Crawler], Majestic-12 [Bot], MSN [Bot], Yandex [Bot] et 18 invités

cron