Changeset 16 for trunk/ToBeReviewed


Ignore:
Timestamp:
05/02/06 11:17:47 (18 years ago)
Author:
pinsard
Message:

upgrade of POSTSCRIPT/Postscript according to cerbere.lodyc.jussieu.fr: /usr/home/smasson/SAXO_RD/ : files

Location:
trunk/ToBeReviewed/POSTSCRIPT
Files:
3 copied

Legend:

Unmodified
Added
Removed
  • trunk/ToBeReviewed/POSTSCRIPT/calibre.pro

    r14 r16  
    88; characteres) des differentes marges, calcul posfenetre et posbar qui 
    99; servent a placer le dessin et la barre de couleur grace a 
    10 ; !p.position sur une feuille petitfeuille*grandfeuille (21*29.7) ou 
     10; !p.position sur une feuille ou 
    1111; sur une sortie ecran dont la fenetre a les memes proportions 
    1212; 
     
    1414; 
    1515; CALLING SEQUENCE: 
    16 ;     calibre, rapportyx,marge,margebar, petitdessin,posfenetre, posbar  
     16;     calibre, rapportyx,marge,margebar, smalldraw,posfenetre, posbar  
    1717; 
    1818; INPUTS: 
     
    3030; couleur. tout est mesure en lignes de characteres 
    3131; 
    32 ;       petitdessin: 2 possiblites 
     32;       smalldraw: 2 possiblites 
    3333;             un vecteur de 4 elements donnant (en portrait ou 
    3434; en landscape) la position de cadre ds lequel doit rentrer le 
     
    4040; faire de le dessin, le nombre de lignes et enfin le numero de la 
    4141; case que doit occuper le dessin (cf matlab). par ex pour faire 6 
    42 ; dessin en 2 colonnes et 3 lignes et occuper la 4 eme case, petit=[2,3,4] 
     42; dessin en 2 colonnes et 3 lignes et occuper la 4 eme case, small=[2,3,4] 
    4343; 
    4444; KEYWORD PARAMETERS: 
    4545; 
    4646;       /REMPLI:oblige le dessin a occuper l'espace maximum definit 
    47 ; par petitdessin sans resperter le rapport y sur x. 
    48 ; 
    49 ;       YSURX: force le rapport y sur x a prendre la valeur 
    50 ; rapportyx*ysurx. ce mot cle est utile ds deux cas:  
    51 ;   1) ysurx=1 : oblige rapportyx a etre bien respecte sinon 
     47; par smalldraw sans resperter le rapport y sur x. 
     48; 
     49;       YXASPECT: force le rapport y sur x a prendre la valeur 
     50; rapportyx*yxaspect. ce mot cle est utile ds deux cas:  
     51;   1) yxaspect=1 : oblige rapportyx a etre bien respecte sinon 
    5252;         calibre se reserve le droit de changer un peu celui-ci dans 
    53 ;         le cas ou le rapport d''aspect de petit dessin est trop 
    54 ;         different de celui de petitdessin. 
    55 ;   2) ysurx=n : multiplie par n le rapport d''aspect donne par 
     53;         le cas ou le rapport d''aspect de small dessin est trop 
     54;         different de celui de smalldraw. 
     55;   2) yxaspect=n : multiplie par n le rapport d''aspect donne par 
    5656;         defaut.par ex ds plt, rapportyx est calcule pour que le 
    5757;         repere soit orthonorme, pour avoir un repere ou l''axe des y 
    58 ;         est 2 fois plus dilate que celui des y YSURX=2 
     58;         est 2 fois plus dilate que celui des y YXASPECT=2 
    5959;        
    6060;       PORTRAIT et LANDSCAPE: mots cles plus utilises mais tjs fonctionnels 
     
    8484;------------------------------------------------------------ 
    8585;------------------------------------------------------------ 
    86 pro calibre, rapportyx,marge,margebar, petitdessin,posfenetre, posbar $ 
    87              ,REMPLI=rempli,YSURX=ysurx,PORTAIT=portrait,LANDSCAPE=lanscape 
    88 ;------------------------------------------------------------ 
    89 @common 
     86pro calibre, rapportyx, marge, margebar, smalldraw, posfenetre, posbar $ 
     87             , REMPLI = rempli, YXASPECT = yxaspect, PORTRAIT = portrait $ 
     88             , LANDSCAPE = lanscape, _extra = ex 
     89;--------------------------------------------------------- 
     90@cm_4ps 
     91  IF NOT keyword_set(key_forgetold) THEN BEGIN 
     92@updatenew 
     93@updatekwd 
     94  ENDIF 
     95;--------------------------------------------------------- 
     96;------------------------------------------------------------ 
    9097   tempsun = systime(1)         ; pour key_performance 
    9198;------------------------------------------------------------- 
    9299   if keyword_set(portrait) then key_portrait=1 
    93100   if keyword_set(landscape) then key_portrait=0 
    94    if keyword_set(ysurx) then begin 
    95       rapportyx=rapportyx*ysurx  
     101   if keyword_set(yxaspect) then begin 
     102      rapportyx=rapportyx*yxaspect  
    96103      test2=0 
    97104   endif else begin 
    98       ysurx=1. 
     105      yxaspect=1. 
    99106      test2=1 
    100    endelse 
     107    ENDELSE 
     108;  
     109    mipgsz = min(page_size, max = mapgsz) 
    101110;------------------------------------------------------------ 
    102111; choix de Landscape ou Portrait 
     
    107116   endif 
    108117;------------------------------------------------------------- 
    109 ; si petitdessin est compte comme ds matlab 
     118; si smalldraw est compte comme ds matlab 
    110119;------------------------------------------------------------- 
    111    if n_elements(petitdessin) EQ 3  then begin 
    112       if n_elements(margescadre) EQ 0 then margescadre = [1, 1, 1, 1] 
    113       petitdessin = long(petitdessin) 
    114       nbrecol = petitdessin[0] 
    115       nbrelig = petitdessin[1] 
    116       numero = petitdessin[2]-1 
     120   if n_elements(smalldraw) EQ 3  then begin 
     121      if n_elements(page_margins) EQ 0 then page_margins = [1, 1, 1, 1] 
     122      smalldraw = long(smalldraw) 
     123      nbrecol = smalldraw[0] 
     124      nbrelig = smalldraw[1] 
     125      numero = smalldraw[2]-1 
    117126      numlig = numero/nbrecol 
    118127      numcol = numero-numlig*nbrecol 
    119       bas = petitfeuille*key_portrait+grandfeuille*(1-key_portrait)  
    120       cote = grandfeuille*key_portrait+petitfeuille*(1-key_portrait)  
    121       poscol = margescadre[0]+findgen(nbrecol+1)*(1.*(bas-(margescadre[0]+margescadre[1]))/nbrecol) 
    122       poslig = cote-margescadre[3]-findgen(nbrelig+1)*(1.*(cote-(margescadre[2]+margescadre[3]))/nbrelig) 
    123       petitdessin = [poscol[numcol], poslig[numlig+1], poscol[numcol+1], poslig[numlig]] 
     128      bas = mipgsz*key_portrait+mapgsz*(1-key_portrait)  
     129      cote = mapgsz*key_portrait+mipgsz*(1-key_portrait)  
     130      poscol = page_margins[0]+findgen(nbrecol+1)*(1.*(bas-(page_margins[0]+page_margins[1]))/nbrecol) 
     131      poslig = cote-page_margins[3]-findgen(nbrelig+1)*(1.*(cote-(page_margins[2]+page_margins[3]))/nbrelig) 
     132      smalldraw = [poscol[numcol], poslig[numlig+1], poscol[numcol+1], poslig[numlig]] 
    124133   endif 
    125134;------------------------------------------------------------ 
     
    127136;------------------------------------------------------------ 
    128137   nombre_de_mots_ds_titre = 60. 
    129    !p.charsize=1.*(petitdessin[2]-petitdessin[0])*!d.x_px_cm / $ 
     138   !p.charsize=1.*(smalldraw[2]-smalldraw[0])*!d.x_px_cm / $ 
    130139    (nombre_de_mots_ds_titre* !d.y_ch_size) 
    131140   if !p.charsize gt 1 then !p.charsize=1 
     
    140149;------------------------------------------------------------ 
    141150   if key_portrait eq 0 then begin 
    142       grand=petitdessin[2]-petitdessin[0] 
    143       petit=petitdessin[3]-petitdessin[1] 
     151      big=smalldraw[2]-smalldraw[0] 
     152      small=smalldraw[3]-smalldraw[1] 
    144153   endif else begin 
    145       petit=petitdessin[2]-petitdessin[0] 
    146       grand=petitdessin[3]-petitdessin[1] 
     154      small=smalldraw[2]-smalldraw[0] 
     155      big=smalldraw[3]-smalldraw[1] 
    147156   endelse 
    148157   if key_portrait eq 0 then $ 
    149     rapportmax=1.*(petit-marge[3]-marge[1])/(grand-marge[2]-marge[0]) $ 
    150    else rapportmax=1.*(petit-marge[2]-marge[0])/(grand-marge[3]-marge[1]) 
    151 ;------------------------------------------------------------ 
    152 ; si ysurx n'est pas specifie on modifie la valeur de rapportyx pour que 
     158    rapportmax=1.*(small-marge[3]-marge[1])/(big-marge[2]-marge[0]) $ 
     159   else rapportmax=1.*(small-marge[2]-marge[0])/(big-marge[3]-marge[1]) 
     160;------------------------------------------------------------ 
     161; si yxaspect n'est pas specifie on modifie la valeur de rapportyx pour que 
    153162; ca colle un peu plus aux proportions de la feuille 
    154163;------------------------------------------------------------ 
     
    175184   if key_portrait eq 0 then begin        
    176185      if keyword_set(rempli) then begin 
    177          xs=grand 
    178          ys=petit 
     186         xs=big 
     187         ys=small 
    179188      endif else begin 
    180189         if rapportyx le rapportmax then begin 
    181             xs=grand 
    182             ys=1.*(grand-marge[0]-marge[1])*rapportyx+marge[2]+marge[3] 
    183             if ys gt petit then begin 
    184                xs=1.*(petit-marge[2]-marge[3])/rapportyx+marge[0]+marge[1] 
    185                ys=petit 
     190            xs=big 
     191            ys=1.*(big-marge[0]-marge[1])*rapportyx+marge[2]+marge[3] 
     192            if ys gt small then begin 
     193               xs=1.*(small-marge[2]-marge[3])/rapportyx+marge[0]+marge[1] 
     194               ys=small 
    186195            endif 
    187196         endif else begin 
    188             xs=1.*(petit-marge[2]-marge[3])/rapportyx+marge[0]+marge[1] 
    189             ys=petit 
    190             if xs gt grand then begin 
    191                xs=grand 
    192                ys=1.*(grand-marge[0]-marge[1])*rapportyx+marge[2]+marge[3] 
     197            xs=1.*(small-marge[2]-marge[3])/rapportyx+marge[0]+marge[1] 
     198            ys=small 
     199            if xs gt big then begin 
     200               xs=big 
     201               ys=1.*(big-marge[0]-marge[1])*rapportyx+marge[2]+marge[3] 
    193202            endif 
    194203         endelse 
    195204      endelse 
    196       xoff=1.*(petit-ys)/2.+petitdessin[1] 
    197       yoff=1.*(grand-xs)/2.+xs+grandfeuille-petitdessin[2] 
    198       a=1.*(grandfeuille-yoff)/grandfeuille 
    199       b=1.*xoff/petitfeuille 
    200       c=a+1.*xs/grandfeuille 
    201       d=b+1.*ys/petitfeuille 
     205      xoff=1.*(small-ys)/2.+smalldraw[1] 
     206      yoff=1.*(big-xs)/2.+xs+mapgsz-smalldraw[2] 
     207      a=1.*(mapgsz-yoff)/mapgsz 
     208      b=1.*xoff/mipgsz 
     209      c=a+1.*xs/mapgsz 
     210      d=b+1.*ys/mipgsz 
    202211   endif $ 
    203212;------------------------------------------------------------ 
     
    206215   else begin        
    207216      if keyword_set(rempli) then begin 
    208          xs=petit 
    209          ys=grand 
     217         xs=small 
     218         ys=big 
    210219      endif else begin 
    211220         if rapportyx le rapportmax then begin 
    212             xs=petit 
    213             ys=1.*(petit-marge[0]-marge[1])*rapportyx+marge[2]+marge[3] 
    214             if ys gt grand then begin 
    215                xs=1.*(grand-marge[2]-marge[3])/rapportyx+marge[0]+marge[1] 
    216                ys=grand 
     221            xs=small 
     222            ys=1.*(small-marge[0]-marge[1])*rapportyx+marge[2]+marge[3] 
     223            if ys gt big then begin 
     224               xs=1.*(big-marge[2]-marge[3])/rapportyx+marge[0]+marge[1] 
     225               ys=big 
    217226            endif 
    218227         endif else begin 
    219             xs=1.*(grand-marge[2]-marge[3])/rapportyx+marge[0]+marge[1] 
    220             ys=grand 
    221             if xs gt petit then begin 
    222                xs=petit 
    223                ys=1.*(petit-marge[0]-marge[1])*rapportyx+marge[2]+marge[3] 
     228            xs=1.*(big-marge[2]-marge[3])/rapportyx+marge[0]+marge[1] 
     229            ys=big 
     230            if xs gt small then begin 
     231               xs=small 
     232               ys=1.*(small-marge[0]-marge[1])*rapportyx+marge[2]+marge[3] 
    224233            endif 
    225234         endelse 
    226235      endelse 
    227       xoff=1.*(petit-xs)/2.+petitdessin[0] 
    228       yoff=1.*(grand-ys)/2.+petitdessin[1] 
    229       a=1.*xoff/petitfeuille 
    230       b=1.*yoff/grandfeuille 
    231       c=a+1.*xs/petitfeuille 
    232       d=b+1.*ys/grandfeuille 
     236      xoff=1.*(small-xs)/2.+smalldraw[0] 
     237      yoff=1.*(big-ys)/2.+smalldraw[1] 
     238      a=1.*xoff/mipgsz 
     239      b=1.*yoff/mapgsz 
     240      c=a+1.*xs/mipgsz 
     241      d=b+1.*ys/mapgsz 
    233242      xset = xoff 
    234243      yset = yoff 
    235244   endelse 
    236245;------------------------------------------------------------ 
    237    bas=grandfeuille*(1-key_portrait)+petitfeuille*key_portrait 
    238    cote=petitfeuille*(1-key_portrait)+grandfeuille*key_portrait 
     246   bas=mapgsz*(1-key_portrait)+mipgsz*key_portrait 
     247   cote=mipgsz*(1-key_portrait)+mapgsz*key_portrait 
    239248   posfenetre=[a,b,c,d]+[ marge[0]/bas, marge[2]/cote $ 
    240249                          ,-marge[1]/bas,-marge[3]/cote ] 
     
    243252;------------------------------------------------------------ 
    244253   if keyword_set(key_performance) THEN print, 'temps calibre', systime(1)-tempsun  
     254 
     255  IF NOT keyword_set(key_forgetold) THEN BEGIN 
     256   @updateold 
     257  ENDIF  
     258   
    245259   return 
    246260end 
  • trunk/ToBeReviewed/POSTSCRIPT/ps.pro

    r14 r16  
    4646;------------------------------------------------------------ 
    4747; on recupere le journal sous la forme d''un vecteur de string: 
    48 vectjournal = getfile(homedir+'idlsave.pro') 
     48vectjournal = getfile(myuniquetmpdir+'idlsave.pro') 
    4949;FOR i = 0,n_elements(vectjournal)-1 DO  print, vectjournal[i] 
    5050;------------------------------------------------------------ 
    5151; on coupe la derniere ligne qui est @ps 
    5252;------------------------------------------------------------ 
    53 vectjournal = vectjournal[0:n_elements(vectjournal)-2 ] 
     53IF strpos(vectjournal[n_elements(vectjournal)-1],'@ps') ne -1 then $ 
     54  vectjournal = vectjournal[0:n_elements(vectjournal)-2 ] 
    5455;------------------------------------------------------------ 
    5556; on le corrige si besoin est... 
     
    9293 
    9394; on le complete pour le transformer en une procedure equivalente a plein2dessin 
    94    vectjournal = ['reinitplt, /z,/invert' $ 
    95                   ,'openps, infowidget= infowidget' $ 
     95;   vectjournal = ['reinitplt, /z,/invert' $ 
     96   vectjournal = ['openps, infowidget= infowidget' $ 
    9697                  , vectjournal $ 
    9798                  ,'closeps, infowidget= infowidget' $ 
    98                   ,'imprime' ] 
     99                  ,'printps' ] 
    99100;FOR i = 0,n_elements(vectjournal)-1 DO print, vectjournal[i] 
    100101; on reecrit idlsave.pro 
    101    putfile, homedir+'idlsave.pro', vectjournal 
     102   putfile, myuniquetmpdir+'idlsave.pro', vectjournal 
    102103; applique idlsave 
    103    cd, homedir 
     104   cd,  current = curdir 
     105   cd, myuniquetmpdir 
    104106@idlsave    
     107   cd, curdir 
    105108; on reouvre le journal et on y met les elements de 
    106109; vectjournal sauf les 2 premieres lignes et les 3 dernieres lignes 
    107 journal 
     110journal, myuniquetmpdir+'idlsave.pro' 
    108111for i = 2, n_elements(vectjournal)-3 DO $ 
    109112printf,  !journal, vectjournal[i] 
Note: See TracChangeset for help on using the changeset viewer.