Petites modifications, ajout de noms-lacs.ps et d'une table de caractères dans la...
[carto.git] / cartes / 32U / postscript / carte1.ps
1 %!PS
2
3 << /PageSize [750 900] >> setpagedevice
4 % ------------------------------------------------------------------------------
5 % Utilisation de l'encodage latin1 (utf8 ne peut être utilisé directement).
6 /ISOEncode {
7     dup length dict begin
8                 {1 index /FID ne {def} {pop pop} ifelse} forall
9                 /Encoding ISOLatin1Encoding def
10                 currentdict
11     end
12     /Temporary exch definefont
13 } bind def
14 % ------------------------------------------------------------------------------
15 (svgnames.ps) run                                %% Utilisation des couleurs SVG                           
16 0 450 translate                                  %% Déplacement du point origine
17 gsave                                                         %% Couleur du fond
18   0 0 moveto 750 0 rlineto 0 900 rlineto -750 0 rlineto
19   closepath DeepSkyBlue fill
20 grestore
21 % ------------------------------------------------------------------------------
22
23 (pays.ps)         run
24 (lander.ps)       run
25 (fleuves.ps)      run
26 (lacs.ps)         run
27 (villes.ps)       run
28 (noms-iles.ps)    run
29 (noms-fleuves.ps) run
30 (noms-lacs.ps)    run
31
32 % ------------------------------------------------------------------------------
33 /Pas 1 def
34 % ------------------------------------------------------------------------------
35 /Construction {
36         /region exch def
37         newpath
38         /nbr region length def
39         region 0 get aload pop
40         /Y exch def /X exch def
41         X Y moveto
42         /ncount 0 def
43         0 1 nbr 1 sub {
44                 /ncount ncount 1 add def
45                 region exch get aload pop
46                 ncount Pas mod 0 eq nbr ncount sub 0 lt or {
47                         /Y exch def /X exch def
48                         X  Y lineto
49                 }{ pop pop } ifelse
50         } for
51 } def
52
53 /concatstrings {
54         exch dup length    
55     2 index length add string    
56     dup dup 4 2 roll copy length
57         4 -1 roll putinterval
58 } bind def
59
60 %% PlacePoint et PlaceNom ------------------------------------------------------
61 %% [e n (nom) angle] PlacePoint ensuite PlaceNom récupère ce qu'il lui faut dans
62 %% dictionnaire placedict
63 %%
64 %% Usage : [e n (nom) pos (proc)] PlacePoint .... PlaceNom
65 %% Le cinquième argument est facultatif....
66
67 /placedict 10 dict def
68 placedict /mtrx matrix put
69
70 /PlacePoint {
71         placedict begin
72                 /argv exch def /argn argv length def
73                 argv aload pop
74                 /proc (Place_Defaut) def
75                 argn 4 gt { (Place_) exch concatstrings /proc exch def } if
76                 /pos exch def /nom exch def
77                 /Y exch def /X exch def
78                 newpath
79                 /savematrix mtrx currentmatrix def
80                 X Y translate RayonDisque dup scale
81                 0 0 1 0 360 arc
82                 savematrix setmatrix
83         end
84 } def
85
86 /PlaceNom {
87         placedict begin
88                 pos -1 gt {
89                         /savematrix mtrx currentmatrix def                      
90                         X Y translate
91                         %% Dimension (largeur) du nom -------------------------                 
92                         nom stringwidth pop /wx exch def
93                         %% ----------------------------------------------------
94                         proc cvx exec
95                         %% ----------------------------------------------------
96                         savematrix setmatrix
97                 } if
98         end
99 } def
100
101 /Place_Defaut_Position {
102         pos cos LabelOffset mul /X exch def
103         pos sin LabelOffset mul /Y exch def
104         X 0 gt {
105                 %% Nom Ã  droite
106                 X Y HauteurCaractere 2 div sub moveto
107         } {
108                 X 0 lt {
109                         %% Nom Ã  gauche
110                         X wx sub Y HauteurCaractere 2 div sub moveto
111                 } {
112                         Y 0 gt {
113                                 %% Nom au dessus
114                                 X wx 2 div sub Y moveto
115                         } {
116                                 %% Nom en dessous
117                                 X wx 2 div sub Y HauteurCaractere sub moveto
118                         } ifelse
119                 } ifelse                
120         } ifelse
121 } def
122
123 /Place_Defaut {
124         Place_Defaut_Position
125         %% Présentation du nom --------------------------------                        
126         0.7 setgray nom show
127         CouleurNom wx neg 0.65 sub 0.65 rmoveto nom show        
128 } def
129
130 /Place_Centering {
131         wx 2 div neg wx 2 div neg rmoveto
132         %% Présentation du nom --------------------------------                        
133         0.7 setgray nom show
134         CouleurNom wx neg 0.65 sub 0.65 rmoveto nom show
135 } def
136
137 /Place_Rotate {
138         pos cos 0 ge {
139                 pos rotate 
140                 LabelOffset HauteurCaractere 2 div neg moveto
141         } {
142                 pos 180 sub rotate
143                 LabelOffset wx add neg HauteurCaractere 2 div neg moveto
144         } ifelse
145         %% Présentation du nom --------------------------------                        
146         0.7 setgray nom show
147         CouleurNom wx neg 0.65 sub 0.65 rmoveto nom show
148 } def
149
150 /Place_RotateCentering {
151         pos rotate wx 2 div neg HauteurCaractere 2 div neg moveto
152         %% Présentation du nom --------------------------------                        
153         0.7 setgray nom show
154         CouleurNom wx neg 0.65 sub 0.65 rmoveto nom show
155 } def
156
157
158 % ------------------------------------------------------------------------------
159
160 1 setlinejoin
161
162 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Pays (fond) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
163 allemagne { Construction closepath gsave LightGoldenrod fill grestore} forall
164 [hollande france italie suisse tchequie pologne belgique autriche
165   luxembourg liechtenstein danemark] {
166         { Construction closepath gsave MediumSeaGreen fill grestore} forall 
167 } forall
168
169 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Lacs (fond) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
170 [leman constance] {
171         { Construction closepath gsave DarkBlue fill grestore} forall
172 } forall
173
174 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Pays (frontières) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
175 [allemagne hollande france suisse tchequie pologne belgique autriche
176   luxembourg liechtenstein danemark] {
177         { Construction closepath DarkGray stroke } forall 
178 } forall
179
180 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Länder (frontières) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
181 lander { Construction closepath WhiteSmoke 0.5 setlinewidth stroke} forall
182
183 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Fleuves et rivières %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
184 [rhin saone elbe neckar rhone doubs danube oder saale mosel weser ems main] {
185         { Construction DarkBlue 0.25 setlinewidth stroke} forall
186 } forall
187
188 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Villes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
189 /Helvetica-Bold   findfont 8 scalefont ISOEncode setfont
190 /HauteurCaractere 6 def
191 /CouleurNom       {DarkRed} def
192 /RayonDisque      2 def
193 /LabelOffset      5 def
194 [V_allemagne V_hollande V_belgique V_luxembourg V_france V_suisse V_autriche
195 V_tchequie V_pologne] {
196         { PlacePoint gsave DarkRed fill grestore PlaceNom} forall
197 } forall
198
199 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Capitales %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
200 /Helvetica-Bold   findfont 14 scalefont ISOEncode setfont
201 /HauteurCaractere 10 def
202 /CouleurNom       {Orange} def
203 /RayonDisque      3 def         % Des points un peu plus gros pour les capitales
204 /LabelOffset      6 def
205 V_allemagne_capitales_lander {
206         PlacePoint gsave YellowGreen fill grestore PlaceNom
207 } forall
208
209 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Iles (Noms) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
210 /Helvetica-Bold   findfont 6 scalefont ISOEncode setfont
211 /HauteurCaractere 5 def
212 /CouleurNom       {DarkBlue} def
213 /RayonDisque      3 def         
214 /LabelOffset      5 def
215 I_allemagne {
216         PlacePoint PlaceNom
217 } forall
218
219 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Rivières et lacs (Noms) %%%%%%%%%%%%%%%%%%%%%%%%
220 /Helvetica-Bold   findfont 6 scalefont ISOEncode setfont
221 /HauteurCaractere 5 def
222 /CouleurNom       {DarkBlue} def       
223 [L_allemagne R_allemagne] {
224         { PlacePoint PlaceNom } forall
225 } forall
226
227 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Autres annotations %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
228 /mo /moveto load def
229 /Helvetica-Bold findfont 20 scalefont setfont 
230 /shm { gsave DarkBlue show grestore } def
231 90.412 368.266 mo (Nordsee)shm
232 630.412 418.266 mo (Ostsee)shm
233
234
235 showpage

Licence Creative Commons Les fichiers de Syracuse sont mis à disposition (sauf mention contraire) selon les termes de la
Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.