Valid XHTML     Valid CSS2    

Listing du fichier emarge_latex.pl

 

00001     # (gH) -_- emarge.pl ; TimeStamp (unix) : 29 Janvier 2011 vers 12:19
00002     
00003     $version_GH = 5.3 ;
00004     
00005     use lib $ENV{"PERL_MACROS"} ;
00006     use strFuncs ;
00007     
00008     $fltx = "lstemarge" ;
00009     
00010     if ($#ARGV==-1) {
00011      print "\n emarge_latex.pl -- (gH) ; pv=08/10/2007 \n\n" ;
00012      print " syntaxe : emarge nom_fichier [Filière (mots sans _)] \n" ;
00013      print " exemples : emarge asi.lst \n" ;
00014      print " emarge licpro.lst LicPro\n" ;
00015      print " remarque : vous pouvez alors utiliser $fltx.tex, .dvi, titre.ps... \n\n";
00016      print " il vaut mieux être dans un répertoire temporaire pour utiliser emarge.\n\n" ;
00017      print " il faut mettre un point-virgule entre les prénoms et nom, comme par exemple pour le format standard : \n" ;
00018      print " Damien Xavier ; DURAND ; 2009_2010 ; email... \n\n" ;
00019      print " S'il n'y a que deux mots, ce doit etre l'ordre NOM Prénom. \n\n" ;
00020      print " Il faut lier les mots dans les noms comme DU JARDIN ==> DU_JARDIN\n" ;
00021      print " Par contre, en principe les accents majuscules comme ".chr(200)." ne posent pas de probleme.\n" ;
00022      # chr(200) c'est É
00023      print " Il y a 15 noms par page.\n\n" ;
00024      print " Des lignes vides en fin de fichier ajoutent des lignes vides dans le tableau... \n" ;
00025      print " on peut comme cela prévoir desnouveaux arrivants. \n\n\n" ;
00026     
00027      exit( -1) ;
00028     } ; # fin si sur le nombre d'arguments
00029     
00030     open(FE,"$ARGV[0]") or die "\n impossible d'ouvrir le fichier nommé $ARGV[0] \n\n" ;
00031     $letitre = "" ;
00032     if ($ARGV[1] ne "") {
00033      # $letitre = $ARGV[1] ;
00034      $letitre = phraseSansPremierMot(join(" ",@ARGV)) ;
00035     } # fin si
00036     
00037     ###################################################################
00038     
00039     # début du fichier latex
00040     
00041     ###################################################################
00042     
00043     open(FS,">$fltx.tex") ;
00044     print FS << 'FINTEX1' ;
00045     % (gH) -- titre.tex ;
00046     %
00047     \documentclass[a4paper,12pt]{article}
00048     %
00049     % r\'{e}glage des marges
00050     %
00051     \parindent 0cm
00052     \parskip 0.3cm
00053     %
00054     \textheight=21.08cm
00055     \textwidth=13.5cm
00056     %
00057     % pour les accents
00058     %
00059     \usepackage[T1]{fontenc}
00060     \usepackage[french]{babel}
00061     \usepackage[latin1]{inputenc}
00062     \usepackage[a4paper,nohead,tmargin=2cm,bmargin=2cm,footskip=3ex]{geometry}
00063     %
00064     % fonte pour le titre
00065     %
00066     \newfont{\tregros}{cmss17 scaled\magstep 3}
00067     %
00068     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00069     %
00070     \begin{document}
00071     % pas de page de titre
00072     \thispagestyle{empty}
00073     \begin{center}%
00074     FINTEX1
00075     
00076     sub trim { my $s = shift; $s =~ s/^\s+|\s+$//g; return $s };
00077     
00078     print FS '{\Huge LISTE D\'EMARGEMENT '.$letitre."}\n" ;
00079     print FS '\end{center}%'."\n" ;
00080     print FS '~\\'."\n" ;
00081     
00082     ###################################################################
00083     
00084     # parcours du fichier et boucle d'affichage dans le tableau latex
00085     
00086     ###################################################################
00087     
00088     print FS "\\begin\{tabular\}\{|l|l|l|l|\}\n" ;
00089     print FS "\\hline\n" ;
00090     print FS "\\raisebox{6mm}{~}\\raisebox{-3mm}{~} Num. & ~ PRENOM & ~ NOM & ~ ~ SIGNATURE~ ~ ~ ~ ~ ~ ~ \\\\\n" ;
00091     print FS "\\hline\n" ;
00092     
00093     $nbpp = 12 ; # nombre par page
00094     
00095     $nbl = 0 ;
00096     $nbe = 0 ;
00097     while (<FE>) {
00098      $nbl++ ;
00099      chop($_) ;
00100      # si la ligne commence par dièse, c'est un commentaire
00101      # on la recopie comme commentaire dans le fichier latex ?
00102      if (substr(trim($_),0,1) eq "#") {
00103      # si recopie, décommenter la ligne suivante
00104      # print FS "%".$_ ;
00105      } elsif (length($_)==0) {
00106      # on ignore les lignes vides
00107      } else {
00108      # ici, on a un numéro de plus et une ligne à écrire
00109      $nbe++ ;
00110      print FS " & & & \\\\\n" ;
00111      # s'il n'y a que deux mots, c'est Ok, sinon on découpe selon les points-virgules
00112      @p_et_n = split(/\s+/,$_) ;
00113      if ($#p_et_n==1) {
00114      ($nom,$prenom) = ($p_et_n[0],$p_et_n[1]) ;
00115      } else {
00116      ($prenom,$nom,$rien) = split(/;/,$_) ;
00117      } ; # fin de si
00118     
00119      # attention aux caractères _ (espace souligné) mis par (gH) pour
00120      # lier les mots comme DU JARDIN ==> DU_JARDIN
00121      # pour LaTeX, il faut \_
00122      # par contre les accents majuscules comme É ne posent pas de problème
00123     
00124      $prenom =~ s/_/\\_/g ;
00125      $nom =~ s/_/\\_/g ;
00126      $nom = &maju($nom) ;
00127     
00128      $lig = "\\raisebox{6mm}{~}\\raisebox{-3mm}{~}" ;
00129      $lig .= "\\texttt\{".sprintf(" %04d ",$nbe)."\} & $prenom & $nom & \\\\" ;
00130      print FS "$lig\n" ;
00131      print FS " & & & \\\\\n" ;
00132      print FS "\\hline\n" ;
00133     
00134      } ; # fin si
00135     
00136      # tous les $nbpp (par exemple 12 ou 15), on change de page
00137     
00138      if ((($nbl%12)==0) & ($nbl>0)) {
00139      print FS "\\end\{tabular\}\n" ;
00140      print FS "\\newpage\n" ;
00141      print FS "\\thispagestyle\{empty\}\n" ;
00142      print FS "\\begin\{tabular\}\{|l|l|l|l|\}\n" ;
00143      print FS "\\hline\n" ;
00144      print FS "\\raisebox{6mm}{~}\\raisebox{-3mm}{~} Num. & ~ PRENOM & ~ NOM & ~ ~ SIGNATURE~ ~ ~ ~ ~ ~ ~ \\\\\n" ;
00145      print FS "\\hline\n" ;
00146      } ; # fin de si
00147     
00148     } ; # fin de tant que
00149     
00150     print FS "\\end\{tabular\}\n\n" ;
00151     
00152     ###################################################################
00153     
00154     # fin du fichier latex et affichage
00155     
00156     ###################################################################
00157     
00158     print FS << 'FINTEX2' ;
00159     \end{document}
00160     FINTEX2
00161     ###################################################################
00162     close(FS) ;
00163     close(FE) ;
00164     system("ldps $fltx ; xdv -s 8 $fltx ") ;
00165     print "\nVous pouvez utiliser $fltx*.*\n\n" ;

Pour ne pas voir les numéros de ligne, ajoutez &nl=non à la suite du nom du fichier.

 

 

retour gH    Retour à la page principale de   (gH)