Valid XHTML     Valid CSS2    


        #  (gH)   -_-  emarge.pl  ;  TimeStamp (unix) : 29 Janvier 2011 vers 12:19
        
        $version_GH = 5.3 ;
        
        use lib $ENV{"PERL_MACROS"} ;
        use strFuncs ;
        
        $fltx = "lstemarge" ;
        
        if ($#ARGV==-1) {
           print "\n  emarge_latex.pl -- (gH) ; pv=08/10/2007 \n\n" ;
           print "    syntaxe   : emarge nom_fichier [Filière (mots sans _)] \n" ;
           print "    exemples  : emarge asi.lst \n" ;
           print "                emarge licpro.lst LicPro\n" ;
           print "    remarque  : vous pouvez alors utiliser $fltx.tex, .dvi, titre.ps... \n\n";
           print "    il vaut mieux  être dans un répertoire temporaire pour utiliser emarge.\n\n" ;
           print "    il faut mettre un point-virgule entre les prénoms et nom, comme par exemple pour le format standard : \n" ;
           print "        Damien Xavier ; DURAND ;  2009_2010 ; email... \n\n" ;
           print "    S'il n'y a que deux mots, ce doit etre l'ordre NOM Prénom. \n\n" ;
           print "    Il faut lier les mots dans les noms comme DU JARDIN ==> DU_JARDIN\n" ;
           print "    Par contre, en principe les accents majuscules comme ".chr(200)." ne posent pas de probleme.\n" ;
           # chr(200) c'est É
           print "    Il y a 15 noms par page.\n\n" ;
           print "    Des lignes vides en fin de fichier ajoutent des lignes vides dans le tableau... \n" ;
           print "    on peut comme cela prévoir desnouveaux arrivants. \n\n\n" ;
        
           exit( -1) ;
        } ; # fin si sur le nombre d'arguments
        
        open(FE,"$ARGV[0]") or die "\n impossible d'ouvrir le fichier nommé $ARGV[0] \n\n" ;
        $letitre = "" ;
        if ($ARGV[1] ne "") {
          # $letitre = $ARGV[1] ;
          $letitre = phraseSansPremierMot(join(" ",@ARGV)) ;
        } # fin si
        
        ###################################################################
        
        # début du fichier latex
        
        ###################################################################
        
        open(FS,">$fltx.tex") ;
        print FS << 'FINTEX1' ;
        %   (gH)   --  titre.tex  ;
        %
        \documentclass[a4paper,12pt]{article}
        %
        % r\'{e}glage des marges
        %
        \parindent 0cm
        \parskip   0.3cm
        %
        \textheight=21.08cm
        \textwidth=13.5cm
        %
        % pour les accents
        %
        \usepackage[T1]{fontenc}
        \usepackage[french]{babel}
        \usepackage[latin1]{inputenc}
        \usepackage[a4paper,nohead,tmargin=2cm,bmargin=2cm,footskip=3ex]{geometry}
        %
        % fonte pour le titre
        %
        \newfont{\tregros}{cmss17 scaled\magstep 3}
        %
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        %
        \begin{document}
        % pas de page de titre
        \thispagestyle{empty}
        \begin{center}%
        FINTEX1
        
        sub  trim { my $s = shift; $s =~ s/^\s+|\s+$//g; return $s };
        
        print FS '{\Huge LISTE D\'EMARGEMENT '.$letitre."}\n" ;
        print FS '\end{center}%'."\n" ;
        print FS '~\\'."\n" ;
        
        ###################################################################
        
        # parcours du fichier et boucle d'affichage dans le tableau latex
        
        ###################################################################
        
        print FS "\\begin\{tabular\}\{|l|l|l|l|\}\n" ;
        print FS "\\hline\n" ;
        print FS "\\raisebox{6mm}{~}\\raisebox{-3mm}{~}  Num. & ~ PRENOM & ~ NOM & ~ ~ SIGNATURE~ ~  ~ ~ ~  ~ ~  \\\\\n" ;
        print FS "\\hline\n" ;
        
        $nbpp = 12 ; # nombre par page
        
        $nbl = 0 ;
        $nbe = 0 ;
        while (<FE>) {
            $nbl++ ;
            chop($_) ;
            # si la ligne commence par dièse, c'est un commentaire
            # on la recopie comme commentaire dans le fichier latex ?
            if (substr(trim($_),0,1) eq "#") {
              # si recopie, décommenter la ligne suivante
              # print FS "%".$_ ;
            } elsif (length($_)==0) {
              # on ignore les lignes vides
            } else {
            # ici, on a un numéro de plus et une ligne à écrire
            $nbe++ ;
            print FS " & & &  \\\\\n" ;
            # s'il n'y a que deux mots, c'est Ok, sinon on découpe selon les points-virgules
            @p_et_n = split(/\s+/,$_) ;
            if ($#p_et_n==1) {
              ($nom,$prenom) =  ($p_et_n[0],$p_et_n[1]) ;
            } else {
              ($prenom,$nom,$rien) = split(/;/,$_) ;
            } ; # fin de si
        
            # attention aux caractères _ (espace souligné) mis par (gH) pour
            # lier les mots comme DU JARDIN ==> DU_JARDIN
            # pour LaTeX, il faut \_
            # par contre les accents majuscules comme É ne posent pas de problème
        
            $prenom =~ s/_/\\_/g ;
            $nom    =~ s/_/\\_/g ;
            $nom    = &maju($nom) ;
        
            $lig  = "\\raisebox{6mm}{~}\\raisebox{-3mm}{~}" ;
            $lig .= "\\texttt\{".sprintf("  %04d  ",$nbe)."\} &  $prenom & $nom & \\\\" ;
            print FS "$lig\n" ;
            print FS " & & & \\\\\n" ;
            print FS "\\hline\n" ;
        
            } ; # fin si
        
            # tous les $nbpp (par exemple 12 ou 15), on change de page
        
            if ((($nbl%12)==0) & ($nbl>0)) {
                print FS "\\end\{tabular\}\n" ;
                print FS "\\newpage\n" ;
                print FS "\\thispagestyle\{empty\}\n" ;
                print FS "\\begin\{tabular\}\{|l|l|l|l|\}\n" ;
                print FS "\\hline\n" ;
                print FS "\\raisebox{6mm}{~}\\raisebox{-3mm}{~}  Num. & ~ PRENOM & ~ NOM & ~ ~ SIGNATURE~ ~  ~ ~ ~  ~ ~  \\\\\n" ;
                print FS "\\hline\n" ;
            } ; # fin de si
        
        } ; # fin de tant que
        
        print FS "\\end\{tabular\}\n\n" ;
        
        ###################################################################
        
        # fin du fichier latex et affichage
        
        ###################################################################
        
        print FS << 'FINTEX2' ;
        \end{document}
        FINTEX2
        ###################################################################
        close(FS) ;
        close(FE) ;
        system("ldps  $fltx ; xdv -s 8 $fltx ") ;
        print "\nVous pouvez utiliser $fltx*.*\n\n" ;
        

 

 

retour gH    Retour à la page principale de   (gH)