diff options
author | Karl Berry <karl@freefriends.org> | 2009-09-03 18:31:22 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-09-03 18:31:22 +0000 |
commit | 5c627c8066bc3d073519704718fffb64af14609a (patch) | |
tree | 25ccc61aba3a849fd39148531748b1ec9be530a5 /Master/texmf-dist/doc/generic/pst-geo | |
parent | daeaddcef56178dd571d9c813fbdde669ec40f34 (diff) |
pst-geo update (31aug09)
git-svn-id: svn://tug.org/texlive/trunk@15032 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/generic/pst-geo')
31 files changed, 2109 insertions, 175 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-geo/Asia3d.pdf b/Master/texmf-dist/doc/generic/pst-geo/Asia3d.pdf Binary files differdeleted file mode 100644 index f0c054190fd..00000000000 --- a/Master/texmf-dist/doc/generic/pst-geo/Asia3d.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/generic/pst-geo/Asia3d.tex b/Master/texmf-dist/doc/generic/pst-geo/Asia3d.tex deleted file mode 100644 index 3eae5789850..00000000000 --- a/Master/texmf-dist/doc/generic/pst-geo/Asia3d.tex +++ /dev/null @@ -1,19 +0,0 @@ -\documentclass[12pt,a4paper]{article} % <voss _ at _ perce.de> -\usepackage{pst-map3d} -\topmargin=-0.75in -\begin{document} -\section*{Asia} -\begin{verbatim} -\begin{pspicture*}(-7,-6.5)(7,6.5)% - \psset{path=../data,linewidth=0.1pt} - \WorldMapThreeD[PHI=40,THETA=100,rivers=false] -\end{pspicture*} -\end{verbatim} - -\makebox[\textwidth]{\psframebox{% -\begin{pspicture*}(-7,-6.5)(7,6.5)% - \psset{path=../data,linewidth=0.1pt} - \WorldMapThreeD[PHI=40,THETA=100,rivers=false] -\end{pspicture*}}}% -\end{document} - diff --git a/Master/texmf-dist/doc/generic/pst-geo/Changes b/Master/texmf-dist/doc/generic/pst-geo/Changes index 1843e127351..e99f9460ccd 100644 --- a/Master/texmf-dist/doc/generic/pst-geo/Changes +++ b/Master/texmf-dist/doc/generic/pst-geo/Changes @@ -1,23 +1,37 @@ ..... pst-map2d.tex +1.10 2009-08-26 use compressed datafiles +1.09 2008-09-26 add colors for sea and lake 1.08 2008-04-05 rename internal \variables... macro to prevent clash with package pst-vue3d 1.07 2005-11-11 fix introduced bug with loading xkey 1.06 2005-11-10 using pst-xkey instead of pst-key ..... pst-map2dII.tex +0.83 2009-08-26 use compressed datafiles 0.82 2008-04-05 rename internal \variables... macro to prevent clash with package pst-vue3d 0.81 2005-11-10 using pst-xkey instead of pst-key ..... pst-map3d.tex +2.03 2009-08-26 use compressed datafiles +2.02 2009-08-11 - allow empty names in \mapputIIID +2.01 2009-08-09 - allow empty arguments for \psepicenter + - do not use \edef for optional setting + - rename \variableTroisD to \variablesIIID@map3d to + prvent clashes with other packages +2.00 2008-06-29 a lot of new optional arguments and an updated + set of data for earthquakes and magnetic fields 1.04 2008-04-05 rename internal \variables... macro to prevent clash with package pst-vue3d 1.03 2005-11-10 using pst-xkey instead of pst-key ..... pst-map3dII.tex +0.25 2009-08-26 use compressed datafiles 0.24 2008-04-05 rename internal \variables... macro to prevent clash with package pst-vue3d 0.23 2005-11-10 using pst-xkey instead of pst-key +..... pst-map3d.pro +1.01 2009-08-11 fix bug with ondes for \psepicenter diff --git a/Master/texmf-dist/doc/generic/pst-geo/China3d.pdf b/Master/texmf-dist/doc/generic/pst-geo/China3d.pdf Binary files differdeleted file mode 100644 index c5dffe21849..00000000000 --- a/Master/texmf-dist/doc/generic/pst-geo/China3d.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/generic/pst-geo/China3d.tex b/Master/texmf-dist/doc/generic/pst-geo/China3d.tex deleted file mode 100644 index 0dfe7061727..00000000000 --- a/Master/texmf-dist/doc/generic/pst-geo/China3d.tex +++ /dev/null @@ -1,25 +0,0 @@ -\documentclass[12pt,a4paper]{article} % <voss@perce.de> -\usepackage{pstricks} -\usepackage{pst-map3d} -\topmargin=-0.75in -\pagestyle{empty} -\begin{document} -\section*{China} -\begin{verbatim} -\psset{unit=1,path=../data} -\begin{pspicture*}(-7,-6.5)(7,6.5)% -\psset{unit=2} - \WorldMapThreeD[PHI=35,THETA=100,rivers=false] -\end{pspicture*} -\end{verbatim} - -\begin{center} -\psset{path=../data} -\begin{pspicture*}(-7,-6.5)(7,6.5)% -\psset{unit=2} - \WorldMapThreeD[PHI=35,THETA=100,rivers=false] -\end{pspicture*} -\end{center} - -\end{document} - diff --git a/Master/texmf-dist/doc/generic/pst-geo/Europe3d.pdf b/Master/texmf-dist/doc/generic/pst-geo/Europe3d.pdf Binary files differdeleted file mode 100644 index 38f6cf80f10..00000000000 --- a/Master/texmf-dist/doc/generic/pst-geo/Europe3d.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/generic/pst-geo/Europe3d.tex b/Master/texmf-dist/doc/generic/pst-geo/Europe3d.tex deleted file mode 100644 index 12e3a89b37e..00000000000 --- a/Master/texmf-dist/doc/generic/pst-geo/Europe3d.tex +++ /dev/null @@ -1,25 +0,0 @@ -\documentclass[12pt,a4paper]{article} % <voss@perce.de> -\usepackage{pstricks} -\usepackage{pst-map3d} -\definecolor{ocean}{rgb}{0.5,0.8,0.8} -\topmargin=-0.75in -\begin{document} -\section*{Europe} -\begin{verbatim} -\psset{unit=2.75,path=../data} -\psframebox{% -\begin{pspicture*}(-1.5,-1.6)(3.25,4)% - \WorldMapThreeD[rivers=false] -\end{pspicture*} -} -\end{verbatim} - -\psset{unit=2.75,path=../data} -\psframebox{% -\begin{pspicture*}(-1.5,-1.6)(3.25,4)% - \WorldMapThreeD[rivers=false] -\end{pspicture*} -} -% -\end{document} - diff --git a/Master/texmf-dist/doc/generic/pst-geo/PSTricks.bib b/Master/texmf-dist/doc/generic/pst-geo/PSTricks.bib new file mode 100644 index 00000000000..d7ec06279cf --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-geo/PSTricks.bib @@ -0,0 +1,181 @@ +%% -*-bibtex-*- +@STRING{tugboat = {TUGboat} } +@STRING{beiprogramm = {{\TeX}-Beiprogramm} } +@STRING{bretter = {Bretter, die die Welt bedeuten} } +@STRING{dtk = {{D}ie {\TeX}nische {K}om{\"o}die} } +@STRING{editorial = {Editorial} } +@STRING{fremdebuehne = {Von fremden B{\"u}hnen} } +@STRING{fundus = {Aus dem Fundus} } +@STRING{hinterbuehne = {Hinter der B{\"u}hne} } +@STRING{leserbrief = {Leserbrief(e)} } +@STRING{magazin = {Magazin} } +@STRING{rezension = {Rezensionen} } +@STRING{schonimmer = {Was Sie schon immer {\"u}ber {\TeX} wissen wollten \dots} } +@STRING{theaterkasse = {Von der Theaterkasse} } +@STRING{theatertage = {{\TeX}-Theatertage} } + +@Book{PSTricks2, + author = {Herbert Vo\ss}, + title = {{\PST} {G}rafik f\"ur \TeX{} und \LaTeX}, + edition = {forth}, + publisher = {DANTE -- Lehmanns}, + year = {2007}, + address = {Heidelberg/Hamburg} +} + +@Book{companion04, + author = {Frank Mittelbach and Michel Goosens et al}, + title = {The {\LaTeX} {C}ompanion}, + edition = {second}, + publisher = {Addison-Wesley Publishing Company}, + year = {2004}, + address = {Boston} +} + +@Book{begleiter05, + author = {Frank Mittelbach and Michel Goosens et al}, + title = {Der {\LaTeX} {B}egleiter}, + edition = {zweite}, + publisher = {Pearson Education}, + year = {2005}, + address = {M\"unchen} +} + +@Book{unbound, + author = {Alan Hoenig}, + title = {\TeX{} {U}nbound: \LaTeX{} \& \TeX{} {S}trategies, {F}onts, {G}raphics, and {M}ore}, + publisher = {Oxford University Press}, + year = {1998}, + address = {London} +} +@Article{ dtk02.2:jackson.voss:plot-funktionen, + author = {Laura E. Jackson and Herbert Vo{\ss}}, + title = {Die Plot-Funktionen von {\texttt{pst-plot}}}, + journal = dtk, + year = 2002, + volume = {2/02}, + altvolume = 2, + altnumber = 14, + month = jun, + pages = {27--34}, + annote = bretter, + keywords = {}, + abstract = { Im letzten Heft wurden die mathematischen Funktionen von + \PS~im Zusammenhang mit dem {\LaTeX}-Paket + \texttt{pst-plot} zum Zeichnen von Funktionen beschrieben + und durch Beispiele erl{\"a}utert. In diesem Teil werden + die bislang nur erw{\"a}hnten Plot-Funktionen f{\"u}r + externe Daten behandelt. } +} + +@Article{ dtk02.1:voss:mathematischen, + author = {Herbert Vo{\ss}}, + title = {Die mathematischen {F}unktionen von {P}ost{S}cript}, + journal = dtk, + year = 2002, + volume = {1/02}, + altvolume = 1, + altnumber = 14, + month = mar, + pages = {}, + annote = bretter, + keywords = {}, + abstract = { \PS, faktisch genauso alt wie {\TeX}, ist im + Verh{\"a}ltnis dazu allgemein noch weniger bekannt, wenn es + darum geht zu beurteilen, was es denn nun im eigentlichen + Sinne ist. Au{\ss}erdem wird h{\"a}ufig vergessen, dass + sich mit den \PS-Funktionen viele Dinge erledigen lassen, + bei denen sonst auf externe Programme zur{\"u}ckgegriffen + wird. Dies wird im Folgenden f{\"u}r die mathematischen + Funktionen im Zusammenhang mit dem Paket \texttt{pst-plot} + gezeigt. } +} + +@Book{tlgc2, + author = {Michel Goosens and Frank Mittelbach and Sebastian Rahtz and Denis Roegel and Herbert Vo{\ss}}, + title = {The {\LaTeX} {G}raphics {C}ompanion}, + publisher = {{Addison-Wesley Publishing Company}}, + edition = second, + year = {2007}, + address = {Reading, Mass.} +} + +@Book{voss:chaos, + author = {Herbert Vo{\ss}}, + title = {Chaos und {F}raktale selbst programmieren: von {M}andelbrotmengen {\"u}ber {F}arbmanipulationen zur perfekten Darstellung}, + publisher = {{Franzis Verlag}}, + year = {1994}, + address = {Poing} +} + +@Article{girou:01:, + author = {Denis Girou}, + title = {Pr\'esentation de {PST}ricks}, + journal = {Cahier {GUT}enberg}, + year = 1994, + volume = {16}, + month = apr, + pages = {21-70} +} + +@Article{girou:02:, + author = {{Timothy Van} Zandt and Denis Girou}, + title = {Inside {PST}ricks}, + journal = TUGboat, + year = 1994, + volume = {15}, + month = sep, + pages = {239-246} +} + +@Book{PostScript, + Author = {Kollock, Nikolai G.}, + Title = {PostScript richtig eingesetzt: vom {K}onzept zum + praktischen {E}insatz}, + Publisher = {IWT}, + Address = {Vaterstetten}, + year = 1989, +} + +@Manual{pstricks, + Title = {PSTricks - {\PS} macros for generic {\TeX}}, + Author = {{Timothy Van} Zandt}, + Organization = {}, + Address = {\url{http://www.tug.org/application/PSTricks}}, + Note = {}, + year = 1993 +} + +@Manual{pst-plot, + Title = {\texttt{pst-plot}: Plotting two dimensional functions and data}, + Author = {{Timothy Van} Zandt}, + Organization = {}, + Address = {\url{CTAN:graphics/pstricks/generic/pst-plot.tex}}, + Note = {}, + year = 1999 +} + +@Manual{multido, + Title = {\texttt{multido.tex} - a loop macro, that supports fixed-point addition}, + Author = {{Timothy Van} Zandt}, + Organization = {}, + Address = {\url{CTAN:/graphics/pstricks/generic/multido.tex}}, + Note = {}, + year = 1997 +} + +@MISC{xkeyval, + author = {Hendri Adriaens}, + title = {xkeyval package}, + howpublished = {\url{CTAN:/macros/latex/contrib/xkeyval}}, + year = 2004 +} + +@book{voss06, + Title = {\LaTeX{} in {N}aturwissenschaften \&{} {M}athematik}, + Author = {Herbert Vo\ss}, + Publisher = {Franzis Verlag}, + Edition= {first}, + Address= {M\"unchen}, + Year= {2006}, +} diff --git a/Master/texmf-dist/doc/generic/pst-geo/README b/Master/texmf-dist/doc/generic/pst-geo/README index 427f71d8e50..c31c9df13ca 100644 --- a/Master/texmf-dist/doc/generic/pst-geo/README +++ b/Master/texmf-dist/doc/generic/pst-geo/README @@ -1,18 +1,8 @@ -2004-05-09 data small database and city files "extract the tarzip" -2004-05-10 dataII big database "extract the tarzip" -2004-05-07 doc "extract the tarzip" -2004-05-10 examples2d "extract the tarzip" -2004-05-10 examples3d "extract the tarzip" -2004-05-04 map3d.pro PostScript header file -2004-05-05 map3dII.pro PostScript header file -2004-05-03 pst-map2d.sty LaTeX style file -2004-05-09 pst-map2d.tex corresponding TeX file -2004-05-03 pst-map2dII.sty LaTeX style file -2004-05-09 pst-map2dII.tex corresponding TeX file -2004-05-03 pst-map3d.sty LaTeX style file -2004-05-09 pst-map3d.tex corresponding TeX file -2004-05-03 pst-map3dII.sty LaTeX style file -2004-05-09 pst-map3dII.tex corresponding TeX file +All decumentations are created with the script pst2pdf +which extracts all psapicture or postscript environments +from the documents, run them as stand alone documents +with the same preamble as the main document, and creates +png images to decrease the size of the pdf document. + +For more information see pst2pdf. -Install all files as usual, decompress the zipped ones and update -the TeX database with texhash or mktexlsr, if needed.
\ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-geo/SouthAmerica3d.pdf b/Master/texmf-dist/doc/generic/pst-geo/SouthAmerica3d.pdf Binary files differdeleted file mode 100644 index 6a36320b514..00000000000 --- a/Master/texmf-dist/doc/generic/pst-geo/SouthAmerica3d.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/generic/pst-geo/SouthAmerica3d.tex b/Master/texmf-dist/doc/generic/pst-geo/SouthAmerica3d.tex deleted file mode 100644 index 2b2280cba6e..00000000000 --- a/Master/texmf-dist/doc/generic/pst-geo/SouthAmerica3d.tex +++ /dev/null @@ -1,38 +0,0 @@ -\documentclass[12pt,a4paper]{article} % <voss@perce.de> -\usepackage{pstricks} -\usepackage{pst-map3d} -\topmargin=-0.5in -\begin{document} -\section*{Southamerica} - -\begin{verbatim} -\psset{path=../data} -\psframebox{% -\begin{pspicture*}(-6.5,-6.5)(6.5,6.5) - \WorldMapThreeD[RotZ=-65,RotY=-65] -\end{pspicture*}} - - -\psframebox{% -\begin{pspicture*}(-6.5,-6.5)(6.5,6.5) - \psset{unit=2} - \WorldMapThreeD[RotZ=-65,RotY=-65] -\end{pspicture*}} -\end{verbatim} - -\psset{path=../data} -\psframebox{% -\begin{pspicture*}(-6.5,-6.5)(6.5,6.5) - \WorldMapThreeD[RotZ=-65,RotY=-65] -\end{pspicture*}} - - -\psframebox{% -\begin{pspicture*}(-6.5,-6.5)(6.5,6.5) - \psset{unit=2} - \WorldMapThreeD[RotZ=-65,RotY=-65] -\end{pspicture*}} - - -\end{document} - diff --git a/Master/texmf-dist/doc/generic/pst-geo/data.tgz b/Master/texmf-dist/doc/generic/pst-geo/data.tgz Binary files differdeleted file mode 100644 index dc504e54495..00000000000 --- a/Master/texmf-dist/doc/generic/pst-geo/data.tgz +++ /dev/null diff --git a/Master/texmf-dist/doc/generic/pst-geo/dataII.tgz b/Master/texmf-dist/doc/generic/pst-geo/dataII.tgz Binary files differdeleted file mode 100644 index a9bc0618c5a..00000000000 --- a/Master/texmf-dist/doc/generic/pst-geo/dataII.tgz +++ /dev/null diff --git a/Master/texmf-dist/doc/generic/pst-geo/doc-map2d.pdf b/Master/texmf-dist/doc/generic/pst-geo/doc-map2d.pdf Binary files differdeleted file mode 100644 index 0e1038ff644..00000000000 --- a/Master/texmf-dist/doc/generic/pst-geo/doc-map2d.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/generic/pst-geo/doc-map2dII.pdf b/Master/texmf-dist/doc/generic/pst-geo/doc-map2dII.pdf Binary files differdeleted file mode 100644 index 4a923a35b50..00000000000 --- a/Master/texmf-dist/doc/generic/pst-geo/doc-map2dII.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/generic/pst-geo/doc-map3dII.pdf b/Master/texmf-dist/doc/generic/pst-geo/doc-map3dII.pdf Binary files differdeleted file mode 100644 index 704f20de40b..00000000000 --- a/Master/texmf-dist/doc/generic/pst-geo/doc-map3dII.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/generic/pst-geo/examples2d.tgz b/Master/texmf-dist/doc/generic/pst-geo/examples2d.tgz Binary files differdeleted file mode 100644 index 28db02a0748..00000000000 --- a/Master/texmf-dist/doc/generic/pst-geo/examples2d.tgz +++ /dev/null diff --git a/Master/texmf-dist/doc/generic/pst-geo/examples3d.tgz b/Master/texmf-dist/doc/generic/pst-geo/examples3d.tgz Binary files differdeleted file mode 100644 index 6a6c4a002b8..00000000000 --- a/Master/texmf-dist/doc/generic/pst-geo/examples3d.tgz +++ /dev/null diff --git a/Master/texmf-dist/doc/generic/pst-geo/index.phtml b/Master/texmf-dist/doc/generic/pst-geo/index.phtml new file mode 100644 index 00000000000..95f59054ef3 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-geo/index.phtml @@ -0,0 +1,62 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><html><head> +<html> +<head> + <title>my LaTeX pages</title> +</head> +<body bgcolor="#ffffff" text="#000000" link="#aa0000" alink="#ff3300" vlink="#330099"> + <hr noshade="noshade"> + <h1>pst-geo by Manuel Luque, Giuseppe Mattarazzi, Herbert Voß</h1> +<h4> All the files have a <strong>Beta-Status</strong>! For a stable version look at <a href="ftp://ftp.dante +.de/pub/tex/graphics/pstricks/contrib/pst-3dplot/">CTAN</a></h4> + <hr noshade="noshade"> + <div class=text> +<? +$cdir = dir("./"); + +$entries=array(); +while ($entry = $cdir->read()) + $entries[] = $entry; + +echo "Files in this directory:"; +echo " <hr noshade=\"noshade\">"; +echo "<table>"; + +asort($entries); +reset($entries); + +//foreach($entries as $entry) { +while (list(, $entry) = each($entries)) { +// if (!is_dir($entry) && ($entry != "index.phtml") && ($entry != ".htaccess")) { + if (($entry != ".") && ($entry != "index.phtml") && ($entry != ".htaccess")) { + echo "<tr>"; + echo "<td><a href=\"$entry\">$entry</a></td>"; + if (is_dir($entry)) + echo "<td><Dir></td>"; + else + echo "<td></td>"; + echo "<td align=\"right\"> ".filesize($entry)." Byte </td>"; + echo "<td align=\"right\"> ".date("D, j F Y, H:i:s",filemtime($entry))." </td>"; + echo "</tr>"; + } +} +echo "</table>"; + +?> +<hr noshade="noshade"> +Page last updated on <?php echo date("d.m.Y", getlastmod() ); ?> +</p> +</div> +<hr> +<? +if (file_exists("README")) { + $fp = fopen("README","r"); + echo "<pre>"; + while ($line=fgets($fp,1000)) { + echo "$line"; + } + echo "</pre>"; + fclose($fp); +} +?> +</body> +</html> diff --git a/Master/texmf-dist/doc/generic/pst-geo/pst-geo-compress.pl b/Master/texmf-dist/doc/generic/pst-geo/pst-geo-compress.pl new file mode 100644 index 00000000000..051b37b4470 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-geo/pst-geo-compress.pl @@ -0,0 +1,460 @@ +#!/usr/bin/env perl +use strict; +$^W=1; +# pst-geo-compress.pl +# Copyright (C) 2009 Heiko Oberdiek. +# +# This work may be distributed and/or modified under the +# conditions of the LaTeX Project Public License, either version 1.3 +# of this license or (at your option) any later version. +# The latest version of this license is in +# http://www.latex-project.org/lppl.txt +# and version 1.3 or later is part of all distributions of LaTeX +# version 2005/12/01 or later. +# +# This work has the LPPL maintenance status `maintained'. +# +# The Current Maintainer of this work is Heiko Oberdiek. +# +# See file "README" for a list of files that belong to this project. +my $file = "pst-geo-compress.pl"; +my $program = uc($&) if $file =~ /^\w+/; +my $version = "1.1"; +my $date = "2009/07/30"; +my $author = "Heiko Oberdiek"; +my $copyright = "Copyright (c) 2009 by $author."; +# History: +# 2009/07/30 v1.0: First release. +my $title = "$program $version, $date - $copyright\n"; +print $title; +my $prg_gs = "gs"; +$prg_gs = "gs386" if $^O =~ /dos/i; +$prg_gs = "gsos2" if $^O =~ /os2/i; +$prg_gs = "gswin32c" if $^O =~ /mswin32/i; +$prg_gs = "gswin32c" if $^O =~ /cygwin/i; +$prg_gs = "mgs" if defined($ENV{"TEXSYSTEM"}) and + $ENV{"TEXSYSTEM"} =~ /miktex/i; +my $prg_gstest = $prg_gs; + +my $data = 1; +my @bool = ('false', 'true'); +$::opt_help = 0; +$::opt_test = 0; +$::opt_gscmd = ''; +$::opt_gstestcmd = ''; + +my $usage = <<"END_OF_USAGE"; +Function: Compresses data files for pst-geo +Options: (defaults:) + --help print usage + --data1 | -1 .dat files from data.tgz ($bool[$data == 1]) + --data2 | -2 .dat files from dataII.tgz ($bool[$data == 2]) + --gscmd <name> call of ghostscript ($prg_gs) + --gstestcmd <name> call of ghostscript for testing ($prg_gstest) + --test test mode without compressing ($bool[$::opt_test]) +END_OF_USAGE +use Getopt::Long; +GetOptions( + "help!", + "test!", + "data1|1" => sub { $data = 1; }, + "data2|2" => sub { $data = 2; }, + "prediction!", + "gscmd=s", + "gstestcmd=s", +) or die $usage; +!$::opt_help or die $usage; + +$prg_gs = $::opt_gscmd if $::opt_gscmd; +if ($::opt_gstestcmd) { + $prg_gstest = $::opt_gstestcmd; +} +else { + $prg_gstest = $prg_gs; +} + +my $tmpfile = "__geo-pst-compress__$$.tmp"; +my $predict_threshold = 0.95; + +my @data1 = qw[ + aus.dat + canada.dat + capitals.dat + c-cap.dat + citysub.dat + corse.dat + c-sub.dat + france.dat + mex.dat + pborder.dat + pcoast.dat + pisland.dat + plake.dat + rhone.dat + ridge.dat + river.dat + seine.dat + transfrm.dat + trench.dat + usa.dat + wfraczon.dat + wmaglin.dat +]; + +my @data2 = qw[ + africa-bdy.dat + africa-cil.dat + africa-riv.dat + asia-bdy.dat + asia-cil.dat + asia-isl.dat + asia-riv.dat + c-cap.dat + citycapitals.dat + citysub.dat + c-sub.dat + europe-bdy.dat + europe-cil.dat + europe-riv.dat + namer-bdy.dat + namer-cil.dat + namer-pby.dat + namer-riv.dat + samer-arc.dat + samer-bdy.dat + samer-cil.dat + samer-riv.dat +]; + +my @data = ($data == 1) ? @data1 : @data2; + +my %city = ( + 'capitals.dat' => 1, + 'c-cap.dat' => 1, + 'citysub.dat' => 1, + 'c-sub.dat' => 1, + 'citycapitals.dat' => 1, +); + +my %predict = ( + # data 1 + 'pborder.dat' => 24, + 'pcoast.dat' => 24, + 'pisland.dat' => 25, + 'plake.dat' => 24, + 'ridge.dat' => 25, + 'river.dat' => 24, + 'seine.dat' => 26, + 'transfrm.dat' => 24, + 'trench.dat' => 25, + 'wfraczon.dat' => 25, + 'wmaglin.dat' => 25, + # data 2 + 'africa-cil.dat' => 22, + 'asia-cil.dat' => 23, + 'europe-riv.dat' => 21, + 'samer-cil.dat' => 23, +); + +my %array; + +sub catch_zap { + unlink $tmpfile if -f $tmpfile; + my $signame = shift; + chomp $signame; + die "!!! Aborted by SIG$signame!\n"; +} +$SIG{'INT'} = \&catch_zap; +$SIG{'__DIE__'} = sub { unlink $tmpfile if -f $tmpfile; }; + +sub tmp_open () { + open(TMP, '>', $tmpfile) or die "!!! Error: Cannot write `$tmpfile'!\n"; +} +sub file_open ($) { + my $file = shift; + open(IN, '<', $file) or die "!!! Error: Cannot open `$file'!\n"; +} + +sub tmp_move ($) { + my $file = shift; + close(IN); + close(TMP); + unlink $file or die "!!! Error: Cannot delete `$file'!\n"; + rename $tmpfile, $file or die "!!! Error: Cannot move `$tmpfile' to `$file'!\n"; +} + +# 1. sanitizing +print "\n"; +print "1. Sanitizing\n"; +print "=============\n"; + +foreach my $file (@data) { + if ($::opt_test) { + print "[skipping because of test mode]\n"; + last; + } + print "* $file\n"; + file_open $file; + my $old_line = <IN>; + not($old_line =~ /^%!PS/) + or die "!!! Error: File `$file' is already compressed!\n"; + $old_line =~ /\/([\w\-]+)(\s|\[)/ + or die "!!! Internal error: Name not found!\n"; + $array{$file} = $1; + $old_line =~ s/%.*$// unless $city{$file}; + $old_line =~ s/\s+$//; + tmp_open; + while (<IN>) { + if ($old_line and $old_line =~ /%/) { + print TMP "$old_line\n"; + $old_line = ''; + } + s/%.*$// unless $city{$file}; + s/^\s+//; + s/\s+$//; + /^\[%/ or s/(.)%.*$/$1/; + s/\s+$//; + s/([\[\]])\s+/$1/g; + s/\s+(\])/$1/g; + s/\s+/ /g; + if ($file eq 'seine.dat') { + s/(\[\d) /$1.000000000 /; + s/(\[\d\.\d) /${1}00000000 /; + s/(\[\d\.\d\d) /${1}0000000 /; + s/( \d+)\]/$1.00000000]/; + s/(\d\.\d)\]/${1}0000000]/; + s/(\d\.\d\d)\]/${1}000000]/; + } + if ($city{$file}) { + s/(\.0+)(\D)/$2/g; + s/(\.\d*[1-9])0+(\D)/$1$2/g; + s/(\D)0\./$1./g; + } + next unless $_; + if ($_ eq '[' or $_ eq ']' or $_ eq ']def' or $_ =~ /\[%/) { + $old_line .= $_; + next; + } + if ($_ eq 'def') { + $old_line .= $_; + $_ = ''; + } + if ($old_line) { + print TMP "$old_line\n"; + $old_line = ''; + } + print TMP "$_\n" if $_; + } + print TMP "$old_line\n" if $old_line; + tmp_move $file; +} +print "\n"; + +# 2. line length analysis +print "2. Line length analysis\n"; +print "=======================\n"; + +foreach my $file (@data) { + if ($::opt_test) { + print "[skipping because of test mode]\n"; + last; + } + print "* $file\n"; + my @lens; + my $num; + file_open $file; + while (<IN>) { + $num++; + my $len = length $_; + if ($lens[$len]) { + $lens[$len]++; + } + else { + $lens[$len] = 1; + } + } + close(IN); + my $max = 0; + for (my $i = 0; $i < @lens; $i++) { + next unless $lens[$i]; + $max = $i; + print " $i: $lens[$i]\n"; + my $threshold = $predict_threshold * $num; + next if $predict{$file}; + if (($lens[$i] > $threshold) or + ($lens[$i-1] and ($lens[$i-1] + $lens[$i] > $threshold)) or + ($lens[$i-1] and $lens[$i-2] and + ($lens[$i-2] + $lens[$i-1] + $lens[$i] > $threshold))) { + $predict{$file} = $i; + } + } + if ($predict{$file}) { + print " --> predict($file) = $predict{$file}\n"; + $predict{$file} == $max + or die "!!! Internal error: prediction ($predict{$file}) too small ($max)!\n"; + } + else { + print " --> predict($file) = ??\n"; + } +} +print "\n"; + +# 3. Prediction preparation +print "3. Prepare prediction\n"; +print "=====================\n"; + +foreach my $file (@data) { + if ($::opt_test) { + print "[skipping because of test mode]\n"; + last; + } + next unless $predict{$file}; + print "* $file\n"; + my $predict = $predict{$file}; + tmp_open; + file_open $file; + while (<IN>) { + my $len = length $_; + if ($len % $predict == 0) { + print TMP $_; + next; + } + chomp; + $_ .= ' ' x ($predict - ($len % $predict)); + $_ .= "\n"; + length($_) % $predict == 0 or die "!!! Internal Error!\n"; + print TMP $_; + } + tmp_move $file; +} +print "\n"; + +# 4. Compression +print "4. Compress files\n"; +print "=================\n"; + +sub check_gs_end () { + if ($? & 127) { + die sprintf "!!! Error: Ghostscript died with signal %d!\n", + ($? & 127); + } + elsif ($? != 0) { + die sprintf "!!! Error: Ghostscript exited with error code %d!\n", + $? >> 8; + } +} + +foreach my $file (@data) { + if ($::opt_test) { + print "[skipping because of test mode]\n"; + last; + } + print "* $file\n"; + my $predict = $predict{$file}; + my $filter_dict = ''; + $filter_dict = "<</Predictor 12/Columns $predict>>" if $predict; + my $compress_dict = "<</Effort 9>>"; + $compress_dict = "<</Effort 9/Predictor 12/Columns $predict>>" if $predict; + my $ps_code = <<"END_PS_CODE"; +%!PS +/buf 10000 string def +/tmpfilename ($tmpfile) def +/header (%!PS\\ncurrentfile$filter_dict/FlateDecode filter cvx exec\\n) def +($file) +% Convert file, stack: <file name> +( converting `) print dup print (' ... ) print flush +dup (r) file +% test if file is already converted +dup header length string readstring +{ + 1 index 0 setfileposition + header eq + { + (nothing to do.\\n) print flush + false + } + {true} + ifelse +} +{ + (read error.\\n) print flush + false +} +ifelse +{ + tmpfilename (w) file + dup header writestring + $compress_dict + /FlateEncode filter + exch + % stack: <input file name> <output file obj> <input file obj> + { + 2 copy + buf readstring + 3 1 roll + writestring + not {exit} if + } loop + closefile + closefile + dup deletefile tmpfilename exch renamefile + (done.\\n) print flush +} if +quit +%%EOF +END_PS_CODE + my @cmd = ( + $prg_gs, + '-q', + '-sDEVICE=nullpage', + '-dBATCH', + '-c', + $ps_code + ); + system @cmd; + check_gs_end; +} +print "\n"; + +# 5. Test +print "5. Testing\n"; +print "==========\n"; + +foreach my $file (@data) { + print "* $file\n"; + my $ps_code = <<"END_PS_CODE"; +%!PS +( testing `$file' ... ) print flush +($file) run +END_PS_CODE + $ps_code .= <<"END_PS_CODE" if $::opt_test; +(\\n) print flush +END_PS_CODE + $ps_code .= <<"END_PS_CODE" unless $::opt_test; +$array{$file} type /arraytype eq +{ + (ok.\\n) print flush +}{ + (FAILED!\\n) print flush + ioerror +} +ifelse +END_PS_CODE + $ps_code .= <<"END_PS_CODE"; +quit +%%EOF +END_PS_CODE + my @cmd = ( + $prg_gstest, + '-q', + '-sDEVICE=nullpage', + '-dBATCH', + '-c', + $ps_code + ); + system @cmd; + check_gs_end; +} + +print "\n"; +__END__ diff --git a/Master/texmf-dist/doc/generic/pst-geo/pst-geo-decompress.pl b/Master/texmf-dist/doc/generic/pst-geo/pst-geo-decompress.pl new file mode 100644 index 00000000000..38574176ce4 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-geo/pst-geo-decompress.pl @@ -0,0 +1,120 @@ +#!/usr/bin/env perl +use strict; +$^W=1; +# pst-geo-uncompress.pl +# Copyright (C) 2009 Heiko Oberdiek. +# +# This work may be distributed and/or modified under the +# conditions of the LaTeX Project Public License, either version 1.3 +# of this license or (at your option) any later version. +# The latest version of this license is in +# http://www.latex-project.org/lppl.txt +# and version 1.3 or later is part of all distributions of LaTeX +# version 2005/12/01 or later. +# +# This work has the LPPL maintenance status `maintained'. +# +# The Current Maintainer of this work is Heiko Oberdiek. +# +# See file "README" for a list of files that belong to this project. +my $file = "pst-geo-uncompress.pl"; +my $program = uc($&) if $file =~ /^\w+/; +my $version = "1.0"; +my $date = "2009/07/30"; +my $author = "Heiko Oberdiek"; +my $copyright = "Copyright (c) 2009 by $author."; +# History: +# 2009/07/30 v1.0: First release. +my $title = "$program $version, $date - $copyright\n"; +print STDERR $title; +my $prg_gs = "gs"; +$prg_gs = "gs386" if $^O =~ /dos/i; +$prg_gs = "gsos2" if $^O =~ /os2/i; +$prg_gs = "gswin32c" if $^O =~ /mswin32/i; +$prg_gs = "gswin32c" if $^O =~ /cygwin/i; +$prg_gs = "mgs" if defined($ENV{"TEXSYSTEM"}) and + $ENV{"TEXSYSTEM"} =~ /miktex/i; + +$::opt_help = 0; + +my $usage = <<"END_OF_USAGE"; +Function: Compresses data files for pst-geo +Syntax: $0 <input file> [output file] +If the output file is not given, standard output is used. +Options: (defaults:) + --help print usage + --gscmd <name> call of ghostscript ($prg_gs) +END_OF_USAGE +use Getopt::Long; +GetOptions( + "help!", + "gscmd=s" => \$prg_gs +) or die $usage; +!$::opt_help or die $usage; + +(@ARGV == 1 or @ARGV == 2) or die $usage; + +my $input = $ARGV[0]; +my $output = $ARGV[1]; + +open(IN, '<', $input) or die "!!! Error: Cannot open file `$input'!\n"; +my $header = <IN> . <IN>; +$header =~ /^%!PS\s+(.*)currentfile((<<[^>]+>>)?\/[\w\d]+ filter) cvx exec\s*$/s + or die "!!! Error: Unknown file format of `$input'!\n"; +my $decode = $2; +my $pos = tell(IN); +my $ps_input = unpack 'H*', $input; +my $ps_output = ''; +my $ps_output = unpack 'H*', $output if $output; + +my $ps_code = <<"END_PS_CODE"; +%!PS +/buf 10000 string def +<$ps_input> (r) file +dup $pos setfileposition +$decode +END_PS_CODE +$ps_code .= <<"END_PS_CODE" if $output; +<$ps_output> (w) file +exch +END_PS_CODE +$ps_code .= <<"END_PS_CODE"; +{ dup buf readstring exch +END_PS_CODE +$ps_code .= <<"END_PS_CODE" unless $output; + print +END_PS_CODE +$ps_code .= <<"END_PS_CODE" if $output; + 3 index exch writestring +END_PS_CODE +$ps_code .= <<"END_PS_CODE"; + not {exit} if +} loop +closefile +END_PS_CODE +$ps_code .= <<"END_PS_CODE" if $output; +closefile +END_PS_CODE +$ps_code .= <<"END_PS_CODE"; +quit +%%EOF +END_PS_CODE +my @cmd = ( + $prg_gs, + '-q', + '-sDEVICE=nullpage', + '-dBATCH', + '-c', + $ps_code +); +system @cmd; +if ($? & 127) { + die sprintf "!!! Error: Ghostscript died with signal %d!\n", + ($? & 127); +} +elsif ($? != 0) { + die sprintf "!!! Error: Ghostscript exited with error code %d!\n", + $? >> 8; +} +print STDERR "* `$output' written.\n" if $output; +__END__ diff --git a/Master/texmf-dist/doc/generic/pst-geo/pst-map2d-doc.pdf b/Master/texmf-dist/doc/generic/pst-geo/pst-map2d-doc.pdf Binary files differnew file mode 100644 index 00000000000..424513e210d --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-geo/pst-map2d-doc.pdf diff --git a/Master/texmf-dist/doc/generic/pst-geo/doc-map2d.tex b/Master/texmf-dist/doc/generic/pst-geo/pst-map2d-doc.tex index a5a972badf9..b801bd1cb24 100644 --- a/Master/texmf-dist/doc/generic/pst-geo/doc-map2d.tex +++ b/Master/texmf-dist/doc/generic/pst-geo/pst-map2d-doc.tex @@ -1,9 +1,13 @@ -%------------------------------------------------------------------- -% Map2d-doc Dec.05,2003 - rev.0.92 by M. Luque, G. Matarazzo -%------------------------------------------------------------------- \documentclass[a4paper]{article} \usepackage{pstricks,pst-map2d,url} \usepackage[T1]{fontenc} +\usepackage{lmodern} +\usepackage{listings} +\lstset{basicstyle=\small\ttfamily} +\usepackage{ragged2e,xspace} +\def\PST{\texttt{PSTricks}\xspace} +\def\PS{\texttt{PostScript}\xspace} + \pagestyle{empty} \title{The \PstMapTwoDPackage{} package\\A PSTricks package for Geographical Projections} \author{Manuel \textsc{Luque} @@ -31,8 +35,10 @@ \^etre d\'etaill\'ees dans la suite du document. \end{abstract} \tableofcontents + \section{Les sources\label{sources}} \subsection{Pour la partie math\'ematique} + \begin{enumerate} \item Henri \textsc{Bouasse} : G\'eographie math\'ematique (1919), Delagrave. \item \url{http://mathworld.wolfram.com/topics/MapProjections.html} @@ -47,6 +53,7 @@ Elles ont \'et\'e converties sous forme de tableau PostScript, en degr\'es, gr\^ ace à un petit programme en pascal (de Giuseppe Matarazzo) qui fait partie de la distribution. + \subsection{Le pr\'ecurseur en postscript} Bill \textsc{Casselman} : \url{http://www.math.ubc.ca/~cass/graphics/text/www/} @@ -91,7 +98,7 @@ la longitude $(\pm 180)$. \item \Parameter{increment=10} : est la valeur par défaut, en degrés, de l'écart angulaire entre deux méridiens ou parallèles. On pourra donc fixer une valeur plus petite dans le cas d'un zoom. -\item \Parameter{MapFillColor=0.99 0.95 0.7 } : permet de choisir la couleur de remplissage des continents, +\item \Parameter{MapFillColor={[rgb]{0.99,0.95,0.7}}} : permet de choisir la couleur de remplissage des continents, en mode RGB. \item \Parameter{borders=true} : on dessine les frontières des pays. \item \Parameter{rivers=true} : permet de dessiner les fleuves et les rivières. @@ -112,40 +119,48 @@ de Mercator, sans les parallèles et les méridiens. Par défaut, c'est le niveau de détail le plus élevé et la projection type Mercator qui ont été choisis : \Parameter{[type=1,level=1]}. On jouera sur les unités afin d'adapter le dessin aux dimensions souhaitées, avec par exemple~: -\begin{verbatim} +\begin{lstlisting} \psset{linewidth=0.75\pslinewidth} {\psset{xunit=0.5,yunit=0.5} \begin{pspicture}*(-9,-9)(10,9) \WorldMap[maillage=false] \end{pspicture}} -\end{verbatim} +\end{lstlisting} qui permet d'obtenir la projection de Mercator suivante : \begin{center} +\begin{postscript} \psset{linewidth=0.75\pslinewidth} {\psset{xunit=0.5,yunit=0.5} -\psset{MapFillColor=0.5 0.8 0.5} +\psset{MapFillColor={[rgb]{0.5,0.8,0.5}}} \begin{pspicture}*(-9,-9)(10,9) \WorldMap[maillage=false] \end{pspicture}} +\end{postscript} \end{center} + Le script suivant dessine la projection de Mercator, en mode paysage : -\begin{verbatim} -\hbox{\hspace{-3cm}% +\begin{lstlisting} \begin{pspicture}*(-9,-9)(9,10) \rput{90}(0,0){\WorldMap[city=true,borders=true]} -\end{pspicture}} -\end{verbatim} -\hbox{\hspace{-3cm}% +\end{pspicture} +\end{lstlisting} +\hspace*{-3cm}% +\begin{postscript} \begin{pspicture}*(-9,-9)(9,10) \rput{90}(0,0){\WorldMap[city=true,borders=true,USA=true,AUS=true,MEX=true]} -\end{pspicture}} +\end{pspicture} +\end{postscript} + \subsection{Projection de Lambert} \begin{center} +\begin{postscript} {\psset{xunit=0.75,yunit=0.75} \begin{pspicture}(-9,-4.5)(9.5,4.5) \WorldMap[type=2,city=true] \end{pspicture}} +\end{postscript} \end{center} + \subsection{Projection simple} \begin{center} \begin{pspicture}(-3,-9)(3,10) @@ -153,32 +168,43 @@ Le script suivant dessine la projection de Mercator, en mode paysage : \WorldMap[type=3,maillage=true]} \end{pspicture} \end{center} + \subsection{Projection Sanson-Flamsteed} \begin{center} +\begin{postscript} \psset{xunit=0.75,yunit=0.75} \begin{pspicture}(-5,-5)(8,5) \WorldMap[type=4] \end{pspicture} +\end{postscript} \end{center} + \subsection{Projection cylindrique} -\hbox{\hspace{-3cm} +\hspace*{-3cm} \begin{pspicture}*(-9,-9)(9.5,9) \WorldMap[type=5] -\end{pspicture}} +\end{pspicture} + \subsection{Projection de Babinet} \begin{center} +\begin{postscript} {\psset{xunit=0.75,yunit=0.75} \begin{pspicture}(-9,-9)(10,9) \WorldMap[type=6] \end{pspicture}} +\end{postscript} \end{center} + \subsection{Projection de Collignon} \begin{center} +\begin{postscript} {\psset{xunit=0.75,yunit=0.75} \begin{pspicture}(-9,-9)(10,9) \WorldMap[type=7] \end{pspicture}} +\end{postscript} \end{center} + \subsection{Projection de Bonne} On peut choisir la latitude et la longitude de référence avec les paramètres : \Parameter{latitude0=45} et \Parameter{longitude0=0}, @@ -188,6 +214,7 @@ qui sont les valeurs par défaut. \WorldMap[type=8] \end{pspicture} \end{center} + \section{Comment faire un zoom sur un pays ou une région donnée} Il n'a pas été prévu de commande particulière, mais la procédure suivante : @@ -195,15 +222,16 @@ suivante : \item Placer un \verb+\psgrid+ après le tracé de la carte, puis repérer les coordonnées des deux sommets opposés du rectangle dans lequel sera inclus la région souhaitée. -\psset{level=1} \begin{center} -\psset{linewidth=0.5\pslinewidth} +\begin{postscript} +\psset{level=1,linewidth=0.5\pslinewidth} \psset{xunit=0.75,yunit=0.75} \begin{pspicture}*(-9,-9)(10,9) \WorldMap[rivers=true,city=true,USA=true,maillage=false] \psgrid(-8,-8)(9,8) \psframe[linewidth=0.5mm,linecolor=red](-6.5,1)(-3,3) \end{pspicture} +\end{postscript} \end{center} \item Par exemple, si nous choisissons de représenter les \'Etats-Unis les coordonnées des coins bas-gauche et haut-droit @@ -212,7 +240,7 @@ suivante : L'agrandissement sera obtenu en changeant d'unité, un zoom $\times4$ s'obtiendra avec : \verb+\psset{xunit=4,yunit=4}+. Finalement la commande s'écrira : -\begin{verbatim} +\begin{lstlisting} \begin{center} \psset{xunit=4,yunit=4}% zoom 4* \psset{linewidth=1.25\pslinewidth} @@ -220,15 +248,18 @@ suivante : \WorldMap[rivers=true,city=true,USA=true] \end{pspicture} \end{center} -\end{verbatim} +\end{lstlisting} \begin{center} +\begin{postscript} \psset{xunit=4,yunit=4}% zoom 4* \psset{linewidth=1.25\pslinewidth} \begin{pspicture}*(-6.5,1)(-3,3) \WorldMap[rivers=true,city=true,USA=true,maillage=true] \end{pspicture} +\end{postscript} \end{center} \end{enumerate} + \section{Téléchargement des fichiers} Le fichier des données (\texttt{wdb.zip}) est sur : \url{http://melusine.eu.org/syracuse/mluque/mappemonde/} @@ -251,4 +282,16 @@ directement dans le fichier \verb+pst-map2d.tex+. Il est prévu la création d'un CR-ROM contenant toutes données, il sera gravé et fourni gratuitement par Giuseppe à tous ceux qui lui en feront la demande. + + +\nocite{*} +\bgroup +\RaggedRight +\bibliographystyle{plain} +\bibliography{PSTricks} +\egroup + + + + \end{document} diff --git a/Master/texmf-dist/doc/generic/pst-geo/pst-map2dII-doc.pdf b/Master/texmf-dist/doc/generic/pst-geo/pst-map2dII-doc.pdf Binary files differnew file mode 100644 index 00000000000..2767a7e6a25 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-geo/pst-map2dII-doc.pdf diff --git a/Master/texmf-dist/doc/generic/pst-geo/doc-map2dII.tex b/Master/texmf-dist/doc/generic/pst-geo/pst-map2dII-doc.tex index f0e25e3ddca..0475c150d46 100644 --- a/Master/texmf-dist/doc/generic/pst-geo/doc-map2dII.tex +++ b/Master/texmf-dist/doc/generic/pst-geo/pst-map2dII-doc.tex @@ -1,8 +1,15 @@ \documentclass{article} +\usepackage[T1]{fontenc}% \usepackage[latin1]{inputenc}% +\usepackage{lmodern} +\usepackage{listings} +\lstset{basicstyle=\small\ttfamily} \usepackage{pstricks,url,graphicx,lscape} \usepackage[francais]{babel} \usepackage{pst-map2dII} +\usepackage{ragged2e,xspace} +\def\PST{\texttt{PSTricks}\xspace} +\def\PS{\texttt{PostScript}\xspace} \definecolor{ocean}{rgb}{0.5,0.8,0.8} \title{The \PstMapIIPackage{} package\\A PSTricks package for Geographical Projections} \author{Manuel \textsc{Luque} @@ -31,11 +38,13 @@ données à traiter. Cependant des options permettent de choisir la représentation d'un continent ou plusieurs. Un ordinateur puissant avec beaucoup de mémoire vive est donc souhaitable. \begin{center} +\begin{postscript} \psset{xunit=5,yunit=5} \psframebox[framesep=0pt,linewidth=0.2mm,doubleline=true]{% \begin{pspicture}*(-0.5,1.70)(1.5,3)% \WorldMapII[africa=true,increment=2] \end{pspicture}} +\end{postscript} \end{center} \end{abstract} @@ -179,9 +188,11 @@ Le script suivant dessine la projection de Mercator (qui est le type par défaut) \end{pspicture}} \end{verbatim} \makebox[\textwidth]{% +\begin{postscript} \begin{pspicture*}(-9,-9)(9,10) \rput{90}(0,0){\WorldMapII[all=true,rivers=false,borders=false,linewidth=0.1\pslinewidth,level=75]} \end{pspicture*} +\end{postscript} } \subsection{Projection de Lambert} \begin{verbatim} @@ -190,10 +201,12 @@ Le script suivant dessine la projection de Mercator (qui est le type par défaut) \end{pspicture*} \end{verbatim} \makebox[\textwidth]{% -{\psset{xunit=0.75,yunit=0.75} +\begin{postscript} +\psset{xunit=0.75,yunit=0.75} \begin{pspicture}(-9,-5)(9,5) \WorldMapII[type=2,all=true,rivers=false,borders=false,linewidth=0.1\pslinewidth] -\end{pspicture}} +\end{pspicture} +\end{postscript} } \begin{landscape} @@ -204,10 +217,12 @@ Le script suivant dessine la projection de Mercator (qui est le type par défaut) \WorldMapII[type=3,maillage=false,all=true] \end{pspicture*} \end{verbatim} +\begin{postscript} \begin{pspicture*}(-9,-3)(9,3) \psframe*[linecolor=ocean](-9,-3)(9,3) \WorldMapII[type=3,all=true,maillage=false,rivers=false,borders=false,linewidth=0.1\pslinewidth] \end{pspicture*} +\end{postscript} \end{landscape} \subsection{Projection Sanson-Flamsteed} @@ -218,9 +233,12 @@ Le script suivant dessine la projection de Mercator (qui est le type par défaut) \end{verbatim} \begin{center} \resizebox{\linewidth}{!}{% +\begin{postscript} \begin{pspicture*}(-10,-5)(10,5) \WorldMapII[type=4,all=true,rivers=false,borders=false,linewidth=0.1\pslinewidth] -\end{pspicture*}} +\end{pspicture*} +\end{postscript} +} \end{center} \clearpage @@ -233,11 +251,13 @@ Le script suivant dessine la projection de Mercator (qui est le type par défaut) \WorldMapII[type=5,all=true] \end{pspicture} \end{verbatim} -{\psset{xunit=0.5,yunit=0.5} +\begin{postscript} +\psset{xunit=0.5,yunit=0.5} \begin{pspicture}*(-9,-12)(9.5,14) \psframe(-9,-12)(9.5,14) \WorldMapII[type=5,all=true,linewidth=0.1\pslinewidth,rivers=false,borders=false] -\end{pspicture}} +\end{pspicture} +\end{postscript} \clearpage @@ -249,20 +269,25 @@ Le script suivant dessine la projection de Mercator (qui est le type par défaut) \WorldMapII[type=6,all=true,rivers=false,borders=false,linewidth=0.1\pslinewidth] \end{pspicture*}} \end{verbatim} -{\psset{xunit=0.75,yunit=0.75} +\begin{postscript} +\psset{xunit=0.75,yunit=0.75} \begin{pspicture*}(-10,-5)(10,5) \WorldMapII[type=6,all=true,rivers=false,borders=false,linewidth=0.1\pslinewidth] -\end{pspicture*}} +\end{pspicture*} +\end{postscript} \clearpage \subsection{Projection de Collignon} \begin{center} \resizebox{\linewidth}{!}{% +\begin{postscript} \psset{xunit=0.75,yunit=0.75} \begin{pspicture*}(-10,-5)(10,5) \WorldMapII[type=7,all=true] -\end{pspicture*}} +\end{pspicture*} +\end{postscript} +} \end{center} \clearpage @@ -273,9 +298,11 @@ On peut choisir la latitude et la longitude de référence avec les paramètres : \Parameter{latitude0=45} et \Parameter{longitude0=0}, qui sont les valeurs par défaut. \begin{center} +\begin{postscript} \begin{pspicture*}(-7,-10)(7,3) \WorldMapII[type=8,all=true] \end{pspicture*} +\end{postscript} \end{center} \clearpage @@ -289,12 +316,14 @@ suivante : repérer les coordonnées des deux sommets opposés du rectangle dans lequel sera inclus la région souhaitée. \begin{center} +\begin{postscript} \psset{linewidth=0.2\pslinewidth} \psset{xunit=0.75,yunit=0.75} \begin{pspicture*}[showgrid=true](-9,-9)(10,9) \WorldMapII[maillage=false,rivers=false,borders=false,all=true] \psframe[linewidth=0.5mm,linecolor=red](-6.5,1)(-3,3) \end{pspicture*} +\end{postscript} \end{center} \item Par exemple, si nous choisissons de représenter les \'Etats-Unis les coordonnées des coins bas-gauche et haut-droit @@ -313,22 +342,35 @@ suivante : \end{center} \end{verbatim} \begin{center} +\begin{postscript} \psset{xunit=4,yunit=4}% zoom 4* \psset{linewidth=1.25\pslinewidth} \begin{pspicture}*(-6.5,1)(-3,3) \WorldMapII[samer=true,namer=true,europe=false] \end{pspicture} +\end{postscript} \end{center} + \item Pour le Japon, on choisira le cadre \verb+(6.2,1.4)(7.6,2.8)+ avec un zoom$\times10$. On ne sectionnera que \texttt{asia=true}, tous les autres sont à \texttt{false}. \begin{center} +\begin{postscript} \psset{xunit=10,yunit=10}% zoom 10* \psset{linewidth=1.25\pslinewidth} \begin{pspicture}*(6.2,1.4)(7.6,2.8) \WorldMapII[asia=true,increment=1] \end{pspicture} +\end{postscript} \end{center} \end{enumerate} +\nocite{*} +\bgroup +\RaggedRight +\bibliographystyle{plain} +\bibliography{PSTricks} +\egroup + + \end{document} diff --git a/Master/texmf-dist/doc/generic/pst-geo/pst-map3d-doc-pdf.pdf b/Master/texmf-dist/doc/generic/pst-geo/pst-map3d-doc-pdf.pdf Binary files differnew file mode 100644 index 00000000000..975273b8e48 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-geo/pst-map3d-doc-pdf.pdf diff --git a/Master/texmf-dist/doc/generic/pst-geo/pst-map3d-doc-pdf.tex b/Master/texmf-dist/doc/generic/pst-geo/pst-map3d-doc-pdf.tex new file mode 100644 index 00000000000..bc6c8ee2a87 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-geo/pst-map3d-doc-pdf.tex @@ -0,0 +1,463 @@ +\RequirePackage{graphicx} +\RequirePackage[pdftex]{xcolor} +\documentclass[12pt]{article} +\usepackage{pst-map3d,pstricks-add} +\let\PSTfileversion\fileversion +\let\PSTfiledate\filedate +\usepackage[latin1]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[garamond]{mathdesign} +\renewcommand{\ttdefault}{lmtt} +\usepackage{longtable,array} +\usepackage{ragged2e} +%\usepackage{url} +\usepackage[a4paper,margin=2cm,nohead]{geometry} +\usepackage[colorlinks=true]{hyperref} +\usepackage{showexpl,xspace} +\usepackage[french]{babel} +\def\PST{\texttt{PSTricks}\xspace} +\def\PS{\texttt{PostScript}\xspace} +\makeatletter +\newdimen\pssizeStar +\def\psset@sizeStar#1{\pssetlength\pssizeStar{#1}} +\psset@sizeStar{1.5pt} + +%% adapté de \psRandom du package pstricks-add +%% pour rendre aléatoire la taille des étoiles +\def\psRandomStar{\pst@object{psRandomStar}}% +\def\psRandomStar@i{\@ifnextchar({\psRandomStar@ii}{\psRandomStar@iii(0,0)(1,1)}} +\def\psRandomStar@ii(#1){\@ifnextchar({\psRandomStar@iii(#1)}{\psRandomStar@iii(0,0)(#1)}} +\def\psRandomStar@iii(#1)(#2)#3{% + \def\pst@tempA{#3}% + \ifx\pst@tempA\pst@empty\psclip{\psframe(#2)}\else\psclip{#3}\fi + \pst@getcoor{#1}\pst@tempA + \pst@getcoor{#2}\pst@tempB + \begin@SpecialObj + \addto@pscode{ + \pst@tempA\space /yMin exch def + /xMin exch def + \pst@tempB\space /yMax exch def + /xMax exch def + /dy yMax yMin sub def + /dx xMax xMin sub def + rrand srand % initializes the random generator + /getRandReal { rand 2147483647 div } def + \psk@randomPoints { + /DS \pst@number\pssizeStar\space getRandReal mul def + \@nameuse{psds@\psk@dotstyle} + \ifPst@color getRandReal 1 1 sethsbcolor \fi + getRandReal dx mul xMin add + getRandReal dy mul yMin add + Dot + \ifx\psk@fillstyle\psfs@solid fill \fi stroke + } repeat + }% + \end@SpecialObj + \endpsclip + \ignorespaces +} +\makeatother +\definecolor{graygreen}{cmyk}{0.7,0,0.6,0.2} +\newcommand{\PstMapThreeDPackage}{`\textsf{pst-map3d}'} + \title{The \PstMapThreeDPackage{} package\\A PSTricks package for Geographical Projections} + \author{Manuel \textsc{Luque} + \mbox{\texttt{<manuel.luque27@gmail.com>}}\\ + and\\ + Giuseppe \textsc{Matarazzo} \mbox{\texttt{<joematara@hotmail.com>}}} + \date{Version 2.0\\ 18 mars 2008} + +\begin{document} +\maketitle +\begin{abstract} +\PstMapThreeDPackage{} traite de la représentation en trois dimensions + du globe terrestre avec plusieurs fonctionnalités qui rendent son + utilisation agréable (tout au moins nous l'espérons). + +Il s'agit d'une reprise du package élaboré avec Giuseppe Matarazzo en +2003. Celui-ci présentait quelques erreurs de représentation lorsqu'une +grande partie d'un pays était cachée aux yeux de l'observateur. Une idée +très astucieuse de Christophe Poulain permettant de résoudre ce problème +est à l'origine de la refonte du package. J'ai aussi profité de quelques +macros \texttt{postscript} mises au point par Jean-Paul Vignault pour +l'écriture du package \texttt{`pst-solides3d'}. + +L'élaboration et la mise en ligne de ce package a bénéficié des +encouragements, de toute la compétence et de la disponibilité de +Jean-Michel Sarlat. + +La plus grande le code ayant donc du être réécrite, il m'a semblé +judicieux d'introduire de nouvelles fonctionnalités parmi lesquelles : +le \textit{globe tellure}, les plaques tectoniques, les épicentres des +séismes, les zones de fracture et les linéations magnétiques (anomalies +magnétiques des fonds océaniques). + +\end{abstract} + \tableofcontents +% \newpage + \section{Les données\label{datas}} +GLOBE Binaries DECODING : World Public Domain Dbase : + F.Pospeschil, A.Rivera (1999) + +\url{ftp://ftp.blm.gov/pub/gis/wdbprg.zip} + +Elles ont \'et\'e converties sous forme de tableau PostScript, en +degr\'es, +gr\^ ace à un petit programme en pascal (de Giuseppe Matarazzo) qui +fait partie de la distribution. Ce sont les mêmes données que +celles du package \textsf{pst-map2d}. +\section{Les paramètres} +\begin{longtable}{|>{\bfseries\ttfamily\color{blue}}l|c|m{10cm}|} + \hline + \multicolumn{1}{|c|}{\textbf{Paramètre}}& + \multicolumn{1}{c|}{\textbf{Défaut}}& + \multicolumn{1}{c|}{\textbf{Signification}} \\ \hline\hline +\endfirsthead +\hline + \multicolumn{1}{|c|}{\textbf{Paramètre}}& + \multicolumn{1}{c|}{\textbf{Défaut}}& + \multicolumn{1}{c|}{\textbf{Signification}} \\ \hline\hline +\endhead +\multicolumn{3}{|r|}{\textit{Suite à la page suivante}}\\ \hline +\endfoot +\multicolumn{3}{|r|}{\textit{Fin de la table}}\\ \hline +\endlastfoot +Radius&5&rayon du globe \\\hline +Dobs&20&distance de l'observateur au centre du globe \\\hline +Decran&25&distance de l'écran à l'observateur \\\hline +THETA&0& angle définissant, avec $\phi$ en coordonnées sphériques la position de l'observateur \\\hline +PHI&45& angle définissant, avec $\theta$ en coordonnées sphériques la position de l'observateur \\\hline +RotZ&0& rotation du globe autour de l'axe vertical $Oz$ en degrés\\\hline +RotX&0& rotation du globe autour de l'axe horizontal $Ox$ en degrés\\\hline +RotY&0& rotation du globe autour de l'axe horizontal $Oy$ en degrés\\\hline +gridmap&true& boléen : trace le maillage de la sphère : méridiens et parallèles\\\hline +gridmapdiv&$10^{\mathrm{o}}$& écart angulaire entre 2 méridiens ou 2 parallèles\\\hline +gridmapcolor&black& couleur des méridiens et parallèles\\\hline +gridmapwidth&0.8pt & épaisseur des lignes des méridiens et parallèles\\\hline +mapcolor&``terre''& couleur des continents : la couleur ``terre'' a été prédéfinie\\\hline +oceancolor&``mer''& couleur des océans et mers : : la couleur ``mer'' a été prédéfinie\\\hline +borders&true& booléen : dessine les frontières\\\hline +bordercolor&black& couleur des frontières\\\hline +borderwidth&0.8pt & épaisseur des frontières\\\hline +france&false& booléen : dessine la France métropolitaine et la Corse. + Destiné à la représentation particulière de la France ou bien à sa mise en valeur.\\\hline +coasts&true& booléen : dessine les côtes\\\hline +coastcolor&black& couleur des côtes\\\hline +coastwidth&0.8pt & épaisseur des côtes\\\hline +islandcolor&black& couleur du contour des îles\\\hline +rivers&true& booléen : dessine les fleuves\\\hline +lakes&true& booléen : dessine les lacs\\\hline +capitals&true& booléen : marque les capitales visibles\\\hline +citys&true& booléen : marque toutes les villes visibles\\\hline +usa&false& booléen : dessine les états \\\hline +australia&false& booléen : dessine les états \\\hline +mexico&false& booléen : dessine les états \\\hline +circles&false& booléen : dessine des cercles parallèles sur les océans et les mers \\\hline +circlecolor&blue& couleur des côtes\\\hline +circlewidth&0.5pt & épaisseur des côtes\\\hline +circlesep&$2^{\mathrm{o}}$& écart angulaire entre 2 cercles\\\hline +visibility&booléen& true : dessine les parties du globe visibles pour l'observateur\\\hline +blueEarth&booléen& true : dessine un disque couleur de l'océan à la dimension du globe\\\hline +daynight&booléen& false : dessine la nuit sur le globe\\\hline +hour&12 & heure locale du lieu\\\hline +Day&le jour actuel& jour d'observation\\\hline +Month&le mois actuel& mois d'observation\\\hline +ridge&false& trace les limites des plaques tectoniques\\\hline +ridgecolor&red& couleur des dorsales\\ \hline +trenchcolor&darkgreen& couleur des lignes de convergence\\ \hline +transfrmcolor&orange& couleur des lignes de transcurrence\\ \hline +ridgewidth&2 pt& épaisseur des lignes précédentes\\ \hline +zonefrac&false& booléen : tracé des lignes de fracture\\ \hline +zonefraccolor&red& couleur des lignes de fracture\\ \hline +zonefracwidth&0.8 pt& épaisseur des lignes de fracture\\ \hline +wmaglinwidth&0.8 pt& épaisseur des lignes de linéation magnétique\\ \hline +wmaglin&false& booléen : tracé des linéations magnétiques\\ \hline +wmaglincolor&red& couleur des linéations magnétiques\\ \hline +Year&l'année actuelle& l'année d'observation\\\hline +waves&3& nombre de cercles concentriques à partir de l'épicentre\\\hline +Rmax&1500& Rayon, en km, du plus grand cercle centré sur l'épicentre\\\hline +\end{longtable} +\section{La représentation du globe} + +La représentation du globe est centrée sur Paris avec les paramètres +\begin{center}\centering \verb+\psset{PHI=48.85,THETA=2.32}+.\end{center} +Un effet de moirage apparaît du aux +cercles concentriques tracés sur la sphère. Différentes options de +couleur sont testées avec cet exemple. + +%\begin{LTXexample}[width=8cm] +\includegraphics[scale=0.5]{images/./pst-map3d-doc-tmp-0.png} +%\end{LTXexample} + +\section{Effet de transparence et rotations} + +La transparence(resp. opacité) du globe se règle avec le paramètre +\texttt{opacity}. Si l'on souhaite combiner les rotations celles-ci +s'effectuent, pour des raisons spécifiques à ce package, dans l'ordre +suivant \texttt{RotZ}, \texttt{RotX}, \texttt{RotY}. + +Rappelons que les effets de transparence ne sont possibles qu'avec le +fichier \texttt{pdf}, celui-ci sera obtenu avec la séquence de commandes: +\texttt{\LaTeX}-->\texttt{dvips}-->\texttt{ps2pdf}. + +%\begin{LTXexample}[width=8.2cm] +\includegraphics[scale=0.5]{images/./pst-map3d-doc-tmp-1.png} +%\end{LTXexample} + + +\section{Mise en valeur du territoire français} +\begin{center} + +\begin{pspicture*}(-0.5\linewidth,-0.45\textheight)(0.5\linewidth,0.5\textheight) +\psset{PHI=45,THETA=5,unit=7.5,path=../data} +\WorldMapThreeD[lakes=false,circlesep=0.25,lakes=false,gridmap=false, + mapcolor=graygreen!50,bordercolor=red,rivers=false, + coasts=false,islandcolor=blue]% +\WorldMapThreeD[gridmapcolor=yellow,circles=false,lakes=true,gridmapdiv=5,france=true, + islandcolor=blue,blueEarth=false, + bordercolor=red,islands=false,borders=false,rivers=true,coasts=true, + coastcolor=blue]% +\psmeridien{2.32} +\psparallel{48.85} +\newpsstyle{NodeLabelStyle}{fillstyle=solid,fillcolor=yellow!50,framesep=0, + linestyle=none,opacity=0.5} +\input{villesFrance3d} +\newpsstyle{NodeLabelStyle}{fillstyle=solid,fillcolor=red!50, + framesep=0,linestyle=none,opacity=0.5} +\newpsstyle{psNodeMapStyle}{fillstyle=solid,fillcolor=yellow!50,linecolor=red} +\psset{nodeWidth=0.025\psunit,linecolor=red} +\pnodeMapIIID(15.2833,37.0833){Syracuse} +\pscircle[fillstyle=solid,fillcolor=green](Syracuse){0.025\psunit} +\psdot[dotsize=0.025\psunit](Syracuse) +\uput[l](Syracuse){\psframebox[fillstyle=solid,fillcolor=yellow,framesep=0, + linestyle=none,opacity=0.5]{\textsf{Syracuse}}} +\pnodeMapIIID(10.51667,43.85){Lucques} +\pscircle[fillstyle=solid,fillcolor=green](Lucques){0.025\psunit} +\psdot[dotsize=0.025\psunit](Lucques) +\uput[u](Lucques){\psframebox[fillstyle=solid,fillcolor=yellow!50,framesep=0, + linestyle=none,opacity=0.5]{\textsf{Lucques}}} +\input{capitales} +\psepicenter[circlecolor=red,waves=16,Rmax=2000](0.3333,46.5833){Poitiers} +\end{pspicture*} + +\end{center} + +\section{Les macros} +\subsection{La commande \textbackslash pnodeMapIIID} +Une commande créée à cet effet permet de placer en un point du globe, défini +par sa longitude et sa latitude, une ville, un lieu, un symbole ou une +annotation quelconque. Cette commande qui utilise le package +\textsf{pst-node} est la suivante : +\begin{verbatim} +\pnodeMapIIID(longitude,latitude){nom} +\end{verbatim} +\textsf{longitude} et \textsf{latitude} sont en degrés, le \textsf{nom} +attribué au n\oe{}ud ne doit pas contenir de lettre accentuée. +\subsection{La commande \textbackslash mapputIIID} +La commande \verb+\mapputIIID(0.100000,49.483333){Le Havre}+ est identique à la suite de commandes : +\begin{itemize} +\item \verb+\pnodeMapIIID(0.100000,49.483333){LeHavre}+ +\item \verb+\psdot[linecolor=red,dotsize=2mm](LeHavre)+ +\item \verb+\uput[u](LeHavre){\psframebox*[fillstyle=solid,+\\ + \verb+ fillcolor=yellow,framesep=0]{\textsf{Le Havre}}}+ +\end{itemize} +D'une façon générale elle s'écrit : +\begin{verbatim} + \mapputIIID[angle](longitude,lattitude)[node name]{node label}[country] +\end{verbatim} +Ce qui est entre crochets est facultatif. Par défaut l'angle de positionnement vaut $90^{\mathrm{o}}$. + +Les paramètres avec les valeurs par défaut sont les suivants : +\begin{verbatim} + \newpsstyle{psNodeMapStyle}{fillstyle=solid,fillcolor=red} + \newpsstyle{NodeLabelStyle}{fillstyle=solid,fillcolor=yellow, + framesep=0,linestyle=none} + nodeWidth=1 mm +\end{verbatim} +\subsection{La commande \textbackslash psmeridien} +\begin{verbatim} +\psmeridien[options]{longitude} +\end{verbatim} +Elle permet de tracer la partir visible du méridien défini par sa +longitude en degrés. + +\subsection{La commande \textbackslash psparallel} +\begin{verbatim} +\psparallel[options]{latitude} +\end{verbatim} +Elle permet de tracer la partir visible du cercle parallèle à +l'équateur défini par sa latitude en degrés. + +\section{Le globe tellure} + +Le \textit{globe tellure} est décrit dans le document +\textit{Globe\_tellure\_original.pdf}. + +La macro qui lui est associée est la suivante : +\begin{verbatim} +\def\psGlobeTellure{\pst@object{psGlobeTellure}} +\def\psGlobeTellure@i(#1,#2)#3{% longitude, latitude et nom de la ville + \begin@SpecialObj% + \pnode(!/ux 0 def /uy 90 #2 sub sin def /uz 90 #2 sub cos def 0 0){ttt}% + \psset{PHI=0,THETA=0}% + {\psset{RotX=#2 90 sub,RotZ=90 #1 add} + \WorldMapThreeD[style=\psk@styleGlobe,daynight=false]% + \mapputIIID(#1,#2){#3}}% + \WorldMapThreeD[style=\psk@styleNight,daynight=true,circles=false, + blueEarth=false, + borders=false,islands=false, + rivers=false,lakes=false, + gridmap=false,latitudeParallel=#2]% + \psframe*(-3,-6.5)(3,-5.5) + \rput(! 0 \psk@TroisD@Radius\space neg -1 add){% + \white% + \psk@WorldMap@hour h le \psk@WorldMap@J/\psk@WorldMap@M/\psk@WorldMap@A} + \end@SpecialObj% + \ignorespaces}% +\end{verbatim} +Les deux styles associés à la partie éclairée et à la partie dans +l'ombre sont : + +\begin{verbatim} +\newpsstyle{Globe}{circles=true} +\newpsstyle{night}{fillstyle=solid,fillcolor=black,opacity=0.8} +\end{verbatim} +et sont modifiables grâce aux deux options : \texttt{[styleGlobe=Globe]} +et \texttt{[styleNight=night]} qui sont les styles par défaut. + +Elle s'utilise simplement, mais elle n'est valable que pour les villes de l'hémisphère nord : + +%\begin{LTXexample}[width=8cm] +\begin{postcript} +\definecolor{BlueDark}{cmyk}{1,1,0,0.5} +\newpsstyle{Globe}{circles=true,gridmap=true,daynight=false} +\newpsstyle{night}{fillstyle=solid,fillcolor=BlueDark,linecolor=BlueDark,opacity=0.8} +\psset{Radius=5,Decran=100,Dobs=100,unit=0.5,path=../data} +\includegraphics[scale=0.5]{images/./pst-map3d-doc-tmp-2.png} +\end{postcript} +%\end{LTXexample} + +Elle comprend en options, l'heure locale, le jour, le mois et l'année et +en argument les coordonnées géographiques de la ville ainsi que son nom. + +La commande \verb+\psRandomStar(-7,-7)(7,7){\psframe(-7,-7)(7,7)}+ a été +empruntée au package \texttt{pstricks-add} et permet de dessiner des +étoiles dont la position et la taille sont aléatoires. Par rapport à la +commande de \texttt{pstricks-add}, il y a en plus l'option +\texttt{[sizeStar=1.5pt]} qui permet de fixer la taille maximale des +étoiles. La package +\texttt{pstricks-add} doit être chargé en préambule avant +\PstMapThreeDPackage. + +\begin{verbatim} +\newdimen\pssizeStar +\def\psset@sizeStar#1{\pssetlength\pssizeStar{#1}} +\psset@sizeStar{1.5pt} + +%% adapté de \psRandom du package pstricks-add +%% pour rendre aléatoire la taille des étoiles +\def\psRandomStar{\pst@object{psRandomStar}}% +\def\psRandomStar@i{% + \@ifnextchar({\psRandomStar@ii}{\psRandomStar@iii(0,0)(1,1)}} +\def\psRandomStar@ii(#1){% + \@ifnextchar({\psRandomStar@iii(#1)}{\psRandomStar@iii(0,0)(#1)}} +\def\psRandomStar@iii(#1)(#2)#3{% + \def\pst@tempA{#3}% + \ifx\pst@tempA\pst@empty\psclip{\psframe(#2)}\else\psclip{#3}\fi + \pst@getcoor{#1}\pst@tempA + \pst@getcoor{#2}\pst@tempB + \begin@SpecialObj + \addto@pscode{ + \pst@tempA\space /yMin exch def + /xMin exch def + \pst@tempB\space /yMax exch def + /xMax exch def + /dy yMax yMin sub def + /dx xMax xMin sub def + rrand srand % initializes the random generator + /getRandReal { rand 2147483647 div } def + \psk@randomPoints { + /DS \pst@number\pssizeStar\space getRandReal mul def + \@nameuse{psds@\psk@dotstyle} + \ifPst@color getRandReal 1 1 sethsbcolor \fi + getRandReal dx mul xMin add + getRandReal dy mul yMin add + Dot + \ifx\psk@fillstyle\psfs@solid fill \fi stroke + } repeat + }% + \end@SpecialObj + \endpsclip + \ignorespaces +} +\makeatother +\end{verbatim} +\section{Les épicentres} +La commande suivante : +\begin{verbatim} +\psepicenter[circlecolor=red,waves=4,Rmax=2000](95.98,3.30){Sumatra} +\end{verbatim} +tracera l'épicentre du séisme qui eut lieu sur la côte occidentale du +nord de Sumatra le 26 décembre 2004, les coordonnées géographiques sont +indiquées entre les parenthèses : +\texttt{(longitude, latitude)}, la nom de la ville ou de la région entre +accolades. Les paramètres optionnels concernent la couleur des cercles +concentriques, leur nombre et le rayon maximum en km de l'onde, +l'épaisseur se règle avec +\texttt{[circlewidth=2pt]}. + +Il y a de très nombreux renseignements sur les séismes sur le site : + +\centerline{\url{http://earthquake.usgs.gov/eqcenter/eqarchives/year/magnitude8_1900_date.php}} + +%\begin{LTXexample}[pos=t] +\includegraphics[scale=0.5]{images/./pst-map3d-doc-tmp-3.png} +%\end{LTXexample} + + +\section{Les plaques tectoniques} + +Elles se tracent avec l'option \texttt{ridge}. Les différents types se +distinguent par des couleurs différentes (paramétrables : voir la partie +correspondant aux paramètres). + +Les données relatives aux plaques ont été obtenues sur le site : + +\centerline{\url{http://www.ig.utexas.edu/research/projects/plates/}} + +%\begin{LTXexample}[pos=t] +\includegraphics[0.5=0.5]{images/./pst-map3d-doc-tmp-4.png} + +%\end{LTXexample} + +\section{Les zones de fracture et les linéations magnétiques} + +%\begin{LTXexample}[pos=t] +\includegraphics[0.5=0.5]{images/./pst-map3d-doc-tmp-5.png} +%\end{LTXexample} +%\begin{LTXexample}[pos=t] + +\includegraphics[0.5=0.5]{images/./pst-map3d-doc-tmp-6.png} +%\end{LTXexample} + + +\section{Quelques liens} +Le développement du package : \url{http://syracuse-dev.org/mpst-globe} + +\url{http://melusine.eu.org/syracuse/pstricks/pst-solides3d/} + +Pour les données sur les plaques tectoniques, les volcans, les +linéations magnétiques et le zones de fracture : + +\url{http://www.versamap.com/webdoc03.htm} + + +\nocite{*} +\bgroup +\RaggedRight +\bibliographystyle{plain} +\bibliography{PSTricks} +\egroup + + + +\end{document} diff --git a/Master/texmf-dist/doc/generic/pst-geo/pst-map3d-doc.pdf b/Master/texmf-dist/doc/generic/pst-geo/pst-map3d-doc.pdf Binary files differindex a16633b0c57..24113a861bd 100644 --- a/Master/texmf-dist/doc/generic/pst-geo/pst-map3d-doc.pdf +++ b/Master/texmf-dist/doc/generic/pst-geo/pst-map3d-doc.pdf diff --git a/Master/texmf-dist/doc/generic/pst-geo/pst-map3d-doc.tex b/Master/texmf-dist/doc/generic/pst-geo/pst-map3d-doc.tex new file mode 100644 index 00000000000..de50a02a711 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-geo/pst-map3d-doc.tex @@ -0,0 +1,632 @@ +\documentclass[12pt]{article} +\usepackage{pst-map3d,pstricks-add} +\let\PSTfileversion\fileversion +\let\PSTfiledate\filedate +\usepackage[latin1]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[garamond]{mathdesign} +\renewcommand{\ttdefault}{lmtt} +\usepackage{longtable,array} +\usepackage{ragged2e} +%\usepackage{url} +\usepackage[a4paper,margin=2cm,nohead]{geometry} +\usepackage[colorlinks=true]{hyperref} +\usepackage{showexpl,xspace} +\usepackage[french]{babel} +\def\PST{\texttt{PSTricks}\xspace} +\def\PS{\texttt{PostScript}\xspace} +\makeatletter +\newdimen\pssizeStar +\define@key[psset]{}{sizeStar}[1.5pt]{\pssetlength\pssizeStar{#1}} +\psset{sizeStar=1.5pt} +%% adapté de \psRandom du package pstricks-add +%% pour rendre aléatoire la taille des étoiles +\def\psRandomStar{\pst@object{psRandomStar}}% +\def\psRandomStar@i{\@ifnextchar({\psRandomStar@ii}{\psRandomStar@iii(0,0)(1,1)}} +\def\psRandomStar@ii(#1){\@ifnextchar({\psRandomStar@iii(#1)}{\psRandomStar@iii(0,0)(#1)}} +\def\psRandomStar@iii(#1)(#2)#3{% + \def\pst@tempA{#3}% + \ifx\pst@tempA\pst@empty\psclip{\psframe(#2)}\else\psclip{#3}\fi + \pst@getcoor{#1}\pst@tempA + \pst@getcoor{#2}\pst@tempB + \begin@SpecialObj + \addto@pscode{ + \pst@tempA\space /yMin exch def + /xMin exch def + \pst@tempB\space /yMax exch def + /xMax exch def + /dy yMax yMin sub def + /dx xMax xMin sub def + rrand srand % initializes the random generator + /getRandReal { rand 2147483647 div } def + \psk@randomPoints { + /DS \pst@number\pssizeStar\space getRandReal mul def + \@nameuse{psds@\psk@dotstyle} + \ifPst@color getRandReal 1 1 sethsbcolor \fi + getRandReal dx mul xMin add + getRandReal dy mul yMin add + Dot + \ifx\psk@fillstyle\psfs@solid fill \fi stroke + } repeat + }% + \end@SpecialObj + \endpsclip + \ignorespaces +} +\makeatother +\definecolor{graygreen}{cmyk}{0.7,0,0.6,0.2} +\definecolor{BlueDark}{cmyk}{1,1,0,0.5} +\newcommand{\PstMapThreeDPackage}{`\textsf{pst-map3d}'} + \title{The \PstMapThreeDPackage{} package\\A PSTricks package for Geographical Projections} + \author{Manuel \textsc{Luque} + \mbox{\texttt{<manuel.luque27@gmail.com>}}\\ + and\\ + Giuseppe \textsc{Matarazzo} \mbox{\texttt{<joematara@hotmail.com>}}} + \date{Version 2.0\\ 18 mars 2008} + +\begin{document} +\maketitle +\begin{abstract} +\PstMapThreeDPackage{} traite de la représentation en trois dimensions + du globe terrestre avec plusieurs fonctionnalités qui rendent son + utilisation agréable (tout au moins nous l'espérons). + +Il s'agit d'une reprise du package élaboré avec Giuseppe Matarazzo en +2003. Celui-ci présentait quelques erreurs de représentation lorsqu'une +grande partie d'un pays était cachée aux yeux de l'observateur. Une idée +très astucieuse de Christophe Poulain permettant de résoudre ce problème +est à l'origine de la refonte du package. J'ai aussi profité de quelques +macros \texttt{postscript} mises au point par Jean-Paul Vignault pour +l'écriture du package \texttt{`pst-solides3d'}. + +L'élaboration et la mise en ligne de ce package a bénéficié des +encouragements, de toute la compétence et de la disponibilité de +Jean-Michel Sarlat. + +La plus grande le code ayant donc du être réécrite, il m'a semblé +judicieux d'introduire de nouvelles fonctionnalités parmi lesquelles : +le \textit{globe tellure}, les plaques tectoniques, les épicentres des +séismes, les zones de fracture et les linéations magnétiques (anomalies +magnétiques des fonds océaniques). + +\end{abstract} + \tableofcontents +% \newpage + \section{Les données\label{datas}} +GLOBE Binaries DECODING : World Public Domain Dbase : + F.Pospeschil, A.Rivera (1999) + +\url{ftp://ftp.blm.gov/pub/gis/wdbprg.zip} + +Elles ont \'et\'e converties sous forme de tableau PostScript, en +degr\'es, +gr\^ ace à un petit programme en pascal (de Giuseppe Matarazzo) qui +fait partie de la distribution. Ce sont les mêmes données que +celles du package \textsf{pst-map2d}. +\section{Les paramètres} +\begin{longtable}{|>{\bfseries\ttfamily\color{blue}}l|c|m{10cm}|} + \hline + \multicolumn{1}{|c|}{\textbf{Paramètre}}& + \multicolumn{1}{c|}{\textbf{Défaut}}& + \multicolumn{1}{c|}{\textbf{Signification}} \\ \hline\hline +\endfirsthead +\hline + \multicolumn{1}{|c|}{\textbf{Paramètre}}& + \multicolumn{1}{c|}{\textbf{Défaut}}& + \multicolumn{1}{c|}{\textbf{Signification}} \\ \hline\hline +\endhead +\multicolumn{3}{|r|}{\textit{Suite à la page suivante}}\\ \hline +\endfoot +\multicolumn{3}{|r|}{\textit{Fin de la table}}\\ \hline +\endlastfoot +Radius&5&rayon du globe \\\hline +Dobs&20&distance de l'observateur au centre du globe \\\hline +Decran&25&distance de l'écran à l'observateur \\\hline +THETA&0& angle définissant, avec $\phi$ en coordonnées sphériques la position de l'observateur \\\hline +PHI&45& angle définissant, avec $\theta$ en coordonnées sphériques la position de l'observateur \\\hline +RotZ&0& rotation du globe autour de l'axe vertical $Oz$ en degrés\\\hline +RotX&0& rotation du globe autour de l'axe horizontal $Ox$ en degrés\\\hline +RotY&0& rotation du globe autour de l'axe horizontal $Oy$ en degrés\\\hline +gridmap&true& boléen : trace le maillage de la sphère : méridiens et parallèles\\\hline +gridmapdiv&$10^{\mathrm{o}}$& écart angulaire entre 2 méridiens ou 2 parallèles\\\hline +gridmapcolor&black& couleur des méridiens et parallèles\\\hline +gridmapwidth&0.8pt & épaisseur des lignes des méridiens et parallèles\\\hline +mapcolor&``terre''& couleur des continents : la couleur ``terre'' a été prédéfinie\\\hline +oceancolor&``mer''& couleur des océans et mers : : la couleur ``mer'' a été prédéfinie\\\hline +borders&true& booléen : dessine les frontières\\\hline +bordercolor&black& couleur des frontières\\\hline +borderwidth&0.8pt & épaisseur des frontières\\\hline +france&false& booléen : dessine la France métropolitaine et la Corse. + Destiné à la représentation particulière de la France ou bien à sa mise en valeur.\\\hline +coasts&true& booléen : dessine les côtes\\\hline +coastcolor&black& couleur des côtes\\\hline +coastwidth&0.8pt & épaisseur des côtes\\\hline +islandcolor&black& couleur du contour des îles\\\hline +rivers&true& booléen : dessine les fleuves\\\hline +lakes&true& booléen : dessine les lacs\\\hline +capitals&true& booléen : marque les capitales visibles\\\hline +citys&true& booléen : marque toutes les villes visibles\\\hline +usa&false& booléen : dessine les états \\\hline +australia&false& booléen : dessine les états \\\hline +mexico&false& booléen : dessine les états \\\hline +circles&false& booléen : dessine des cercles parallèles sur les océans et les mers \\\hline +circlecolor&blue& couleur des côtes\\\hline +circlewidth&0.5pt & épaisseur des côtes\\\hline +circlesep&$2^{\mathrm{o}}$& écart angulaire entre 2 cercles\\\hline +visibility&booléen& true : dessine les parties du globe visibles pour l'observateur\\\hline +blueEarth&booléen& true : dessine un disque couleur de l'océan à la dimension du globe\\\hline +daynight&booléen& false : dessine la nuit sur le globe\\\hline +hour&12 & heure locale du lieu\\\hline +Day&le jour actuel& jour d'observation\\\hline +Month&le mois actuel& mois d'observation\\\hline +ridge&false& trace les limites des plaques tectoniques\\\hline +ridgecolor&red& couleur des dorsales\\ \hline +trenchcolor&darkgreen& couleur des lignes de convergence\\ \hline +transfrmcolor&orange& couleur des lignes de transcurrence\\ \hline +ridgewidth&2 pt& épaisseur des lignes précédentes\\ \hline +zonefrac&false& booléen : tracé des lignes de fracture\\ \hline +zonefraccolor&red& couleur des lignes de fracture\\ \hline +zonefracwidth&0.8 pt& épaisseur des lignes de fracture\\ \hline +wmaglinwidth&0.8 pt& épaisseur des lignes de linéation magnétique\\ \hline +wmaglin&false& booléen : tracé des linéations magnétiques\\ \hline +wmaglincolor&red& couleur des linéations magnétiques\\ \hline +Year&l'année actuelle& l'année d'observation\\\hline +waves&3& nombre de cercles concentriques à partir de l'épicentre\\\hline +Rmax&1500& Rayon, en km, du plus grand cercle centré sur l'épicentre\\\hline +\end{longtable} +\section{La représentation du globe} + +La représentation du globe est centrée sur Paris avec les paramètres + +\verb+\psset{PHI=48.85,THETA=2.32}+. + +Un effet de moirage apparaît du aux +cercles concentriques tracés sur la sphère. Différentes options de +couleur sont testées avec cet exemple. + +\begin{center} +\begin{pspicture}(-4,-4)(4,4) +\psset{PHI=48.85,THETA=2.32,Decran=15,path=../data} +\WorldMapThreeD[gridmapcolor=yellow,circlesep=1,mapcolor=green!50,bordercolor=red, + coastwidth=1.2pt,capitals,islandcolor=blue,coastcolor=blue,coasts] +\psmeridien{2.32} +\psparallel{48.85} +\mapputIIID(2.32,48.85){Paris} +\end{pspicture} +\end{center} + +\begin{lstlisting} +\begin{pspicture}(-4,-4)(4,4) +\psset{PHI=48.85,THETA=2.32,Decran=15,path=../data} +\WorldMapThreeD[gridmapcolor=yellow,circlesep=1,mapcolor=green!50,bordercolor=red, + coastwidth=1.2pt,capitals,islandcolor=blue,coastcolor=blue,coasts] +\psmeridien{2.32} +\psparallel{48.85} +\mapputIIID(2.32,48.85){Paris} +\end{pspicture} +\end{lstlisting} + + + + +\section{Effet de transparence et rotations} + +La transparence(resp. opacité) du globe se règle avec le paramètre +\texttt{opacity}. Si l'on souhaite combiner les rotations celles-ci +s'effectuent, pour des raisons spécifiques à ce package, dans l'ordre +suivant \texttt{RotZ}, \texttt{RotX}, \texttt{RotY}. + +Rappelons que les effets de transparence ne sont possibles qu'avec le +fichier \texttt{pdf}, celui-ci sera obtenu avec la séquence de commandes: +\texttt{\LaTeX}-->\texttt{dvips}-->\texttt{ps2pdf}. + +\begin{center} +\begin{pspicture}(-4,-4)(4,4) +\psset{RotX=-23,RotZ=30,PHI=46.5833,THETA=0.3333,visibility=false,Decran=15,path=../data} +\WorldMapThreeD[circles=false,blueEarth=false] +\WorldMapThreeD[circles=false,visibility=true,opacity=0.7] +\psmeridien[visibility=true]{0.333} +\psparallel[visibility=true]{46.5833} +\mapputIIID(0.3333,46.5833){Poitiers} +\end{pspicture} +\end{center} + +\begin{lstlisting} +\begin{pspicture}(-4,-4)(4,4) +\psset{RotX=-23,RotZ=30,PHI=46.5833,THETA=0.3333,visibility=false,Decran=15,path=../data} +\WorldMapThreeD[circles=false,blueEarth=false] +\WorldMapThreeD[circles=false,visibility=true,opacity=0.7] +\psmeridien[visibility=true]{0.333} +\psparallel[visibility=true]{46.5833} +\mapputIIID(0.3333,46.5833){Poitiers} +\end{pspicture} +\end{lstlisting} + +\section{Mise en valeur du territoire français} + +\begin{center} +\begin{postscript} +\begin{pspicture*}(-0.5\linewidth,-0.45\textheight)(0.5\linewidth,0.5\textheight) +\psset{PHI=45,THETA=5,unit=7.5,path=../data} +\WorldMapThreeD[lakes=false,circlesep=0.25,lakes=false,gridmap=false, + mapcolor=graygreen!50,bordercolor=red,rivers=false, + coasts=false,islandcolor=blue]% +\WorldMapThreeD[gridmapcolor=yellow,circles=false,lakes=true,gridmapdiv=5,france=true, + islandcolor=blue,blueEarth=false, + bordercolor=red,islands=false,borders=false,rivers=true,coasts=true, + coastcolor=blue]% +\psmeridien{2.32} +\psparallel{48.85} +\newpsstyle{NodeLabelStyle}{fillstyle=solid,fillcolor=yellow!50,framesep=0, + linestyle=none,opacity=0.5} +\input{villesFrance3d} +\newpsstyle{NodeLabelStyle}{fillstyle=solid,fillcolor=red!50, + framesep=0,linestyle=none,opacity=0.5} +\newpsstyle{psNodeMapStyle}{fillstyle=solid,fillcolor=yellow!50,linecolor=red} +\psset{nodeWidth=0.025\psunit,linecolor=red} +\pnodeMapIIID(15.2833,37.0833){Syracuse} +\pscircle[fillstyle=solid,fillcolor=green](Syracuse){0.025\psunit} +\psdot[dotsize=0.025\psunit](Syracuse) +\uput[l](Syracuse){\psframebox[fillstyle=solid,fillcolor=yellow,framesep=0, + linestyle=none,opacity=0.5]{\textsf{Syracuse}}} +\pnodeMapIIID(10.51667,43.85){Lucques} +\pscircle[fillstyle=solid,fillcolor=green](Lucques){0.025\psunit} +\psdot[dotsize=0.025\psunit](Lucques) +\uput[u](Lucques){\psframebox[fillstyle=solid,fillcolor=yellow!50,framesep=0, + linestyle=none,opacity=0.5]{\textsf{Lucques}}} +\input{capitales3d} +\psepicenter[circlecolor=red,waves=16,Rmax=2000](0.3333,46.5833){Poitiers} +\end{pspicture*} +\end{postscript} +\end{center} + +\begin{lstlisting} +\begin{pspicture*}(-0.5\linewidth,-0.45\textheight)(0.5\linewidth,0.5\textheight) +\psset{PHI=45,THETA=5,unit=7.5,path=../data} +\WorldMapThreeD[lakes=false,circlesep=0.25,lakes=false,gridmap=false, + mapcolor=graygreen!50,bordercolor=red,rivers=false, + coasts=false,islandcolor=blue]% +\WorldMapThreeD[gridmapcolor=yellow,circles=false,lakes=true,gridmapdiv=5,france=true, + islandcolor=blue,blueEarth=false, + bordercolor=red,islands=false,borders=false,rivers=true,coasts=true, + coastcolor=blue]% +\psmeridien{2.32} +\psparallel{48.85} +\newpsstyle{NodeLabelStyle}{fillstyle=solid,fillcolor=yellow!50,framesep=0, + linestyle=none,opacity=0.5} +\input{villesFrance3d} +\newpsstyle{NodeLabelStyle}{fillstyle=solid,fillcolor=red!50, + framesep=0,linestyle=none,opacity=0.5} +\newpsstyle{psNodeMapStyle}{fillstyle=solid,fillcolor=yellow!50,linecolor=red} +\psset{nodeWidth=0.025\psunit,linecolor=red} +\pnodeMapIIID(15.2833,37.0833){Syracuse} +\pscircle[fillstyle=solid,fillcolor=green](Syracuse){0.025\psunit} +\psdot[dotsize=0.025\psunit](Syracuse) +\uput[l](Syracuse){\psframebox[fillstyle=solid,fillcolor=yellow,framesep=0, + linestyle=none,opacity=0.5]{\textsf{Syracuse}}} +\pnodeMapIIID(10.51667,43.85){Lucques} +\pscircle[fillstyle=solid,fillcolor=green](Lucques){0.025\psunit} +\psdot[dotsize=0.025\psunit](Lucques) +\uput[u](Lucques){\psframebox[fillstyle=solid,fillcolor=yellow!50,framesep=0, + linestyle=none,opacity=0.5]{\textsf{Lucques}}} +\input{capitales3d} +\psepicenter[circlecolor=red,waves=16,Rmax=2000](0.3333,46.5833){Poitiers} +\end{pspicture*} +\end{lstlisting} + +\section{Les macros} +\subsection{La commande \textbackslash pnodeMapIIID} + +Une commande créée à cet effet permet de placer en un point du globe, défini +par sa longitude et sa latitude, une ville, un lieu, un symbole ou une +annotation quelconque. Cette commande qui utilise le package +\textsf{pst-node} est la suivante : + +\begin{lstlisting} +\pnodeMapIIID(longitude,latitude){nom} +\end{lstlisting} + +\textsf{longitude} et \textsf{latitude} sont en degrés, le \textsf{nom} +attribué au n\oe{}ud ne doit pas contenir de lettre accentuée. + +\subsection{La commande \textbackslash mapputIIID} +La commande \verb+\mapputIIID(0.100000,49.483333){Le Havre}+ est identique à la suite de commandes : +\begin{itemize} +\item \verb+\pnodeMapIIID(0.100000,49.483333){LeHavre}+ +\item \verb+\psdot[linecolor=red,dotsize=2mm](LeHavre)+ +\item \verb+\uput[u](LeHavre){\psframebox*[fillstyle=solid,+\\ + \verb+ fillcolor=yellow,framesep=0]{\textsf{Le Havre}}}+ +\end{itemize} + +D'une façon générale elle s'écrit : +\begin{lstlisting} + \mapputIIID[angle](longitude,lattitude)[node name]{node label}[country] +\end{lstlisting} + +Ce qui est entre crochets est facultatif. Par défaut l'angle de positionnement vaut $90^{\mathrm{o}}$. + +Les paramètres avec les valeurs par défaut sont les suivants : +\begin{lstlisting} + \newpsstyle{psNodeMapStyle}{fillstyle=solid,fillcolor=red} + \newpsstyle{NodeLabelStyle}{fillstyle=solid,fillcolor=yellow, + framesep=0,linestyle=none} + nodeWidth=1 mm +\end{lstlisting} + +\subsection{La commande \textbackslash psmeridien} +\begin{lstlisting} +\psmeridien[options]{longitude} +\end{lstlisting} +Elle permet de tracer la partir visible du méridien défini par sa +longitude en degrés. + +\subsection{La commande \textbackslash psparallel} +\begin{lstlisting} +\psparallel[options]{latitude} +\end{lstlisting} +Elle permet de tracer la partir visible du cercle parallèle à +l'équateur défini par sa latitude en degrés. + +\section{Le globe tellure} + +Le \textit{globe tellure} est décrit dans le document \textit{Globe\_tellure\_original.pdf}. + +La macro qui lui est associée est la suivante : +\begin{lstlisting} +\def\psGlobeTellure{\pst@object{psGlobeTellure}} +\def\psGlobeTellure@i(#1,#2)#3{% longitude, latitude et nom de la ville + \begin@SpecialObj% + \pnode(!/ux 0 def /uy 90 #2 sub sin def /uz 90 #2 sub cos def 0 0){ttt}% + \psset{PHI=0,THETA=0}% + {\psset{RotX=#2 90 sub,RotZ=90 #1 add} + \WorldMapThreeD[style=\psk@styleGlobe,daynight=false]% + \mapputIIID(#1,#2){#3}}% + \WorldMapThreeD[style=\psk@styleNight,daynight=true,circles=false, + blueEarth=false, + borders=false,islands=false, + rivers=false,lakes=false, + gridmap=false,latitudeParallel=#2]% + \psframe*(-3,-6.5)(3,-5.5) + \rput(! 0 \psk@TroisD@Radius\space neg -1 add){% + \white% + \psk@WorldMap@hour h le \psk@WorldMap@J/\psk@WorldMap@M/\psk@WorldMap@A} + \end@SpecialObj% + \ignorespaces}% +\end{lstlisting} + +Les deux styles associés à la partie éclairée et à la partie dans l'ombre sont : + +\begin{lstlisting} +\newpsstyle{Globe}{circles=true} +\newpsstyle{night}{fillstyle=solid,fillcolor=black,opacity=0.8} +\end{lstlisting} + +et sont modifiables grâce aux deux options : \texttt{[styleGlobe=Globe]} +et \texttt{[styleNight=night]} qui sont les styles par défaut. + +Elle s'utilise simplement, mais elle n'est valable que pour les villes de l'hémisphère nord : + +\begin{postscript} +\definecolor{BlueDark}{cmyk}{1,1,0,0.5} +\newpsstyle{Globe}{circles=true,gridmap=true,daynight=false} +\newpsstyle{night}{fillstyle=solid,fillcolor=BlueDark,linecolor=BlueDark,opacity=0.8} +\psset{Radius=5,Decran=100,Dobs=100,unit=0.5,path=../data} +\begin{pspicture}(-7,-7)(7,7) +\psframe*[linecolor=BlueDark](-7,-7)(7,7)% +\psRandomStar[linecolor=yellow!50,randomPoints=100](-7,-7)(7,7){\psframe(-7,-7)(7,7)} +\psGlobeTellure[hour=10,Day=22,Month=06,Year=2008](15.28,37.07){Syracuse} +\end{pspicture} +\end{postscript} + +\begin{lstlisting} +\definecolor{BlueDark}{cmyk}{1,1,0,0.5} +\newpsstyle{Globe}{circles=true,gridmap=true,daynight=false} +\newpsstyle{night}{fillstyle=solid,fillcolor=BlueDark,linecolor=BlueDark,opacity=0.8} +\psset{Radius=5,Decran=100,Dobs=100,unit=0.5,path=../data} +\begin{pspicture}(-7,-7)(7,7) +\psframe*[linecolor=BlueDark](-7,-7)(7,7)% +\psRandomStar[linecolor=yellow!50,randomPoints=100](-7,-7)(7,7){\psframe(-7,-7)(7,7)} +\psGlobeTellure[hour=10,Day=22,Month=06,Year=2008](15.28,37.07){Syracuse} +\end{pspicture} +\end{lstlisting} + +Elle comprend en options, l'heure locale, le jour, le mois et l'année et +en argument les coordonnées géographiques de la ville ainsi que son nom. + +La commande \verb+\psRandomStar(-7,-7)(7,7){\psframe(-7,-7)(7,7)}+ a été +empruntée au package \texttt{pstricks-add} et permet de dessiner des +étoiles dont la position et la taille sont aléatoires. Par rapport à la +commande de \texttt{pstricks-add}, il y a en plus l'option +\texttt{[sizeStar=1.5pt]} qui permet de fixer la taille maximale des +étoiles. La package +\texttt{pstricks-add} doit être chargé en préambule avant +\PstMapThreeDPackage. + +\begin{lstlisting} +\newdimen\pssizeStar +\define@key[psset]{}{sizeStar}[1.5pt]{\pssetlength\pssizeStar{#1}} +\psset{sizeStar=1.5pt} +%% adapté de \psRandom du package pstricks-add +%% pour rendre aléatoire la taille des étoiles +\def\psRandomStar{\pst@object{psRandomStar}}% +\def\psRandomStar@i{% + \@ifnextchar({\psRandomStar@ii}{\psRandomStar@iii(0,0)(1,1)}} +\def\psRandomStar@ii(#1){% + \@ifnextchar({\psRandomStar@iii(#1)}{\psRandomStar@iii(0,0)(#1)}} +\def\psRandomStar@iii(#1)(#2)#3{% + \def\pst@tempA{#3}% + \ifx\pst@tempA\pst@empty\psclip{\psframe(#2)}\else\psclip{#3}\fi + \pst@getcoor{#1}\pst@tempA + \pst@getcoor{#2}\pst@tempB + \begin@SpecialObj + \addto@pscode{ + \pst@tempA\space /yMin exch def + /xMin exch def + \pst@tempB\space /yMax exch def + /xMax exch def + /dy yMax yMin sub def + /dx xMax xMin sub def + rrand srand % initializes the random generator + /getRandReal { rand 2147483647 div } def + \psk@randomPoints { + /DS \pst@number\pssizeStar\space getRandReal mul def + \@nameuse{psds@\psk@dotstyle} + \ifPst@color getRandReal 1 1 sethsbcolor \fi + getRandReal dx mul xMin add + getRandReal dy mul yMin add + Dot + \ifx\psk@fillstyle\psfs@solid fill \fi stroke + } repeat + }% + \end@SpecialObj + \endpsclip + \ignorespaces +} +\makeatother +\end{lstlisting} + +\section{Les épicentres} +La commande suivante : + +\begin{lstlisting} +\psepicenter[circlecolor=red,waves=4,Rmax=2000](95.98,3.30){Sumatra} +\end{lstlisting} + +tracera l'épicentre du séisme qui eut lieu sur la côte occidentale du +nord de Sumatra le 26 décembre 2004, les coordonnées géographiques sont +indiquées entre les parenthèses : +\texttt{(longitude, latitude)}, la nom de la ville ou de la région entre +accolades. Les paramètres optionnels concernent la couleur des cercles +concentriques, leur nombre et le rayon maximum en km de l'onde, +l'épaisseur se règle avec +\texttt{[circlewidth=2pt]}. + +Il y a de très nombreux renseignements sur les séismes sur le site : + +\url{http://earthquake.usgs.gov/eqcenter/eqarchives/year/magnitude8_1900_date.php} + +\begin{pspicture}(-5,-5)(5,5) +\psset{Radius=5,Dobs=200,Decran=200,path=../data} +\psset{PHI=10,THETA=120,circlewidth=1.5pt} +\WorldMapThreeD[circles=false,australia=true]% +\psmeridien{95.98} +\psparallel{3.30} +\psepicenter[circlecolor=red,waves=4,Rmax=2000](95.98,3.30){Sumatra} +\psmeridien[meridiencolor=green]{160} +\psparallel[parallelcolor=green]{52.76} +\psepicenter[circlecolor=green](160,52.76){Kamchatka} +\end{pspicture} + +\begin{lstlisting} +\begin{pspicture}(-5,-5)(5,5) +\psset{Radius=5,Dobs=200,Decran=200,path=../data} +\psset{PHI=10,THETA=120,circlewidth=1.5pt} +\WorldMapThreeD[circles=false,australia=true]% +\psmeridien{95.98} +\psparallel{3.30} +\psepicenter[circlecolor=red,waves=4,Rmax=2000](95.98,3.30){Sumatra} +\psmeridien[meridiencolor=green]{160} +\psparallel[parallelcolor=green]{52.76} +\psepicenter[circlecolor=green](160,52.76){Kamchatka} +\end{pspicture} +\end{lstlisting} + +\section{Les plaques tectoniques} + +Elles se tracent avec l'option \texttt{ridge}. Les différents types se +distinguent par des couleurs différentes (paramétrables : voir la partie +correspondant aux paramètres). + +Les données relatives aux plaques ont été obtenues sur le site : + +\url{http://www.ig.utexas.edu/research/projects/plates/} + +%\begin{LTXexample}[pos=t] +\begin{postscript} +\psset{unit=0.8,RotX=0,Decran=100,Dobs=100,PHI=0,THETA=-100,path=../data} +\begin{pspicture}(-5,-5)(5,5) +\WorldMapThreeD[gridmapcolor=yellow,circles=false,ridge=true]% +\psframe(4,-6.4)(10.5,-3.6) +\uput[r](4,-4){Tectonic plates boundaries} +\psline[linecolor=red,linewidth=2pt](4.2,-4.5)(5,-4.5)\uput[r](5,-4.5){\color{red}{Ridge}} +\psline[linecolor=darkgreen,linewidth=2pt](4.2,-5.25)(5,-5.25)\uput[r](5,-5.25){\color{darkgreen}{Trench}} +\psline[linecolor=orange,linewidth=2pt](4.2,-6)(5,-6)\uput[r](5,-6){\color{orange}{Transform}} +\end{pspicture}\\ +\begin{pspicture}(-5,-5)(5,5) +\psset{PHI=0,THETA=100} +\WorldMapThreeD[gridmapcolor=yellow,circles=false,ridge=true]% +\end{pspicture} +\end{postscript} +%\end{LTXexample} + +\begin{lstlisting} +\psset{unit=0.8,RotX=0,Decran=100,Dobs=100,PHI=0,THETA=-100,path=../data} +\begin{pspicture}(-5,-5)(5,5) +\WorldMapThreeD[gridmapcolor=yellow,circles=false,ridge=true]% +\psframe(4,-6.4)(10.5,-3.6) +\uput[r](4,-4){Tectonic plates boundaries} +\psline[linecolor=red,linewidth=2pt](4.2,-4.5)(5,-4.5)\uput[r](5,-4.5){\color{red}{Ridge}} +\psline[linecolor=darkgreen,linewidth=2pt](4.2,-5.25)(5,-5.25)\uput[r](5,-5.25){\color{darkgreen}{Trench}} +\psline[linecolor=orange,linewidth=2pt](4.2,-6)(5,-6)\uput[r](5,-6){\color{orange}{Transform}} +\end{pspicture}\\ +\begin{pspicture}(-5,-5)(5,5) +\psset{PHI=0,THETA=100} +\WorldMapThreeD[gridmapcolor=yellow,circles=false,ridge=true]% +\end{pspicture} +\end{lstlisting} + +\section{Les zones de fracture et les linéations magnétiques} + +%\begin{LTXexample}[pos=t] +\noindent +\begin{postscript} +\psset{Decran=100,Dobs=100,unit=0.8,path=../data} +\begin{pspicture}(-5,-5)(5,5) +\psset{PHI=0,THETA=-90} +\WorldMapThreeD[gridmapcolor=yellow,circles=false,wfraczon=true]% +\psline[linecolor=red,linewidth=2pt](4.2,-5)(5,-5)\uput[r](5,-5){\color{red}{wzonfrac}} +\end{pspicture}\\ +\begin{pspicture}(-5,-5)(5,5) +\psset{PHI=0,THETA=90} +\WorldMapThreeD[gridmapcolor=yellow,circles=false,wfraczon=true]% +\end{pspicture} +\end{postscript} +%\end{LTXexample} + +%\begin{LTXexample}[pos=t] +\begin{postscript} +\psset{Decran=100,Dobs=100,unit=0.8,path=../data} +\begin{pspicture}(-5,-5)(5,5) +\psset{PHI=0,THETA=-90} +\WorldMapThreeD[gridmapcolor=yellow,circles=false,wmaglin=true]% +\psline[linecolor=darkblue,linewidth=2pt](4.2,-5)(5,-5)\uput[r](5,-5){\color{darkblue}{wmaglin}} +\end{pspicture}\\ +\begin{pspicture}(-5,-5)(5,5) +\psset{PHI=0,THETA=90} +\WorldMapThreeD[gridmapcolor=yellow,circles=false,wmaglin=true]% +\end{pspicture} +\end{postscript} +%\end{LTXexample} + + +\section{Quelques liens} +Le développement du package : \url{http://syracuse-dev.org/mpst-globe} + +\url{http://melusine.eu.org/syracuse/pstricks/pst-solides3d/} + +Pour les données sur les plaques tectoniques, les volcans, les +linéations magnétiques et le zones de fracture : + +\url{http://www.versamap.com/webdoc03.htm} + + +\nocite{*} +\bgroup +\RaggedRight +\bibliographystyle{plain} +\bibliography{PSTricks} +\egroup + + + +\end{document} diff --git a/Master/texmf-dist/doc/generic/pst-geo/pst-map3dII-doc.pdf b/Master/texmf-dist/doc/generic/pst-geo/pst-map3dII-doc.pdf Binary files differnew file mode 100644 index 00000000000..f9fd82768d2 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-geo/pst-map3dII-doc.pdf diff --git a/Master/texmf-dist/doc/generic/pst-geo/doc-map3dII.tex b/Master/texmf-dist/doc/generic/pst-geo/pst-map3dII-doc.tex index e5a8591797d..c58c3ca5759 100644 --- a/Master/texmf-dist/doc/generic/pst-geo/doc-map3dII.tex +++ b/Master/texmf-dist/doc/generic/pst-geo/pst-map3dII-doc.tex @@ -1,24 +1,30 @@ -%------------------------------------------------------------------- -% doc-pst-map3dII.tex Dec.22,2003 - rev.02 by M. Luque, G. Matarazzo -%------------------------------------------------------------------- \documentclass[a4paper]{article} \usepackage{pstricks,pst-map3dII,url} +\usepackage[T1]{fontenc} +\usepackage[garamond]{mathdesign} +\renewcommand{\ttdefault}{lmtt} \psset{path=../dataII,level=50} \usepackage[francais]{babel} -\usepackage[ansinew]{inputenc}% - \title{The \PstMapThreeDIIPackage{} package\\A PSTricks package for Geographical Projections} - \author{Manuel \textsc{Luque} - \mbox{\texttt{<Mluque5130@aol.com>}}\\ - and\\ - Giuseppe \textsc{Matarazzo} \mbox{\texttt{<joematara@hotmail.com>}}} +\usepackage[latin9]{inputenc}% + +\title{The \PstMapThreeDIIPackage{} package\\A PSTricks package for Geographical Projections} +\author{Manuel \textsc{Luque} + \mbox{\texttt{<Mluque5130@aol.com>}}\\ + and\\ + Giuseppe \textsc{Matarazzo} \mbox{\texttt{<joematara@hotmail.com>}}} \date{Version 0.2\\ December 20, 2003\\ - {\small Documentation revised November 11, 2005 by hv}} + {\small Documentation revised August 28, 2009 by hv}} + +\usepackage{ragged2e,xspace} +\def\PST{\texttt{PSTricks}\xspace} +\def\PS{\texttt{PostScript}\xspace} +\def\psp{pspicture} \newcommand{\PstMapThreeDIIPackage}{`\textsf{pst-map3dII}'} \newcommand\Parameter[1]{\colorbox{black}{\textcolor{white}{#1}}} \begin{document} - \maketitle - \begin{abstract} - Dans la continuité de \textsf{pst-map2dII}, cette solution se propose +\maketitle +\begin{abstract} +Dans la continuité de \textsf{pst-map2dII}, cette solution se propose d'utiliser la base de données géographiques : \textsf{CIA World DataBank II}, que l'on trouvera sur \url{http://www.evl.uic.edu/pape/data/WDB/} pour dessiner la mappemonde en 3D. @@ -36,7 +42,7 @@ on se limite au dessin de certaines parties du monde, le temps de calcul est très raisonnable et une mémoire réduite suffisante. \end{abstract} - \tableofcontents +\tableofcontents \section{La mise en forme des données} Pour faciliter le travail de PostScript et diminuer le temps de @@ -78,7 +84,7 @@ Elle s'obtient par la commande : Dans laquelle \textsf{PHI=40,THETA=15} fixent en latitude et longitude la position du point de vue : sur la carte le point de coordonnées géographiques correspondantes sera au centre ; il est nécessaire cependant, que les coordonnées de -l'environnement \verb+\begin{pspicture}*(-9,-4)(9,4)+ possèdent une symétrie +l'environnement \texttt{\{\psp\}(-9,-4)(9,4)} possèdent une symétrie centrale. \textsf{Decran=80} fixe la distance de l'écran de projection de l'image vue, plus cette distance sera grande et plus l'image obtenue (plus l'effet de zoom) sera grande. @@ -91,13 +97,19 @@ parallèles ou deux méridiens. Les explications concernant ces paramètres vont être développées dans les exemples suivants, ainsi que celles d'autres paramètres. +\begin{postscript} \makebox[\textwidth]{% \begin{pspicture*}(-9,-4)(9,4) \WorldMapThreeDII[PHI=35,THETA=15,Decran=80,city=true,% borders=true,asia=true, africa=true,rivers=false,% linewidth=0.5\pslinewidth,increment=5]% -\end{pspicture*}} +\end{pspicture*} +} +\end{postscript} + + + \section{Les paramètres et les options} \subsection{Les paramètres} @@ -154,15 +166,18 @@ Avec le scénario suivant on se place au-dessus du pôle Nord. rivers=false,borders=false]% \end{verbatim} \begin{center} -\begin{pspicture}*(-7,-7)(7,7) +\begin{postscript} +\begin{pspicture*}(-7,-7)(7,7) \psframe*[linecolor=black](-7,-7)(7,7) \WorldMapThreeDII[PHI=80,THETA=-10,Decran=25,city=true,% asia=true,africa=true,namer=true,samer=true,% rivers=false,borders=false, linewidth=0.5\pslinewidth]% -\end{pspicture} +\end{pspicture*} +\end{postscript} \end{center} + \clearpage Avec les paramètres : @@ -175,13 +190,15 @@ On tourne le globe terrestre de $\mathrm{-45^o}$ autour de $Ox$, dans le repère les nouvelles coordonnées sont re-calculées ; le dessin des fleuves et rivières est désactivé. \begin{center} -\begin{pspicture}*(-7,-7)(7,7) +\begin{postscript} +\begin{pspicture*}(-7,-7)(7,7) \psframe*[linecolor=black](-7,-7)(7,7) \WorldMapThreeDII[PHI=42,THETA=20,Decran=25,RotX=-45,city=true,% asia=true,africa=true,namer=true,samer=true,% rivers=true,borders=true, linewidth=0.5\pslinewidth]% -\end{pspicture} +\end{pspicture*} +\end{postscript} \end{center} \subsection{Visualiser une partie du globe terrestre} @@ -198,11 +215,13 @@ représentées, comme nous l'avons vu dans le premier exemple de présentation. \end{pspicture} \end{verbatim} \begin{center} -\hbox{\hspace{-1.5cm}% +\hspace*{-1.5cm}% +\begin{postscript} \begin{pspicture}*(-8,-8)(8,8) \WorldMapThreeDII[PHI=45,THETA=2,Decran=150,city=true,% asia=false,africa=false,samer=true,europe=true,increment=2]% France -\end{pspicture}} +\end{pspicture} +\end{postscript} \end{center} @@ -218,11 +237,13 @@ représentées, comme nous l'avons vu dans le premier exemple de présentation. \end{pspicture}} \end{verbatim} \begin{center} -\hbox{\hspace{-1.5cm}% +\hspace*{-1.5cm}% +\begin{postscript} \begin{pspicture}*(-8,-8)(8,8) \WorldMapThreeDII[PHI=15,THETA=-90,Decran=80,city=true,% asia=false,africa=false,samer=true,europe=false,namer=true,increment=2]% Mexico -\end{pspicture}} +\end{pspicture} +\end{postscript} \end{center} @@ -236,11 +257,14 @@ représentées, comme nous l'avons vu dans le premier exemple de présentation. namer=false,increment=2]% Madagascar \end{pspicture} \end{verbatim} + \begin{center} +\begin{postscript} \begin{pspicture}*(-5,-5)(5,5) \WorldMapThreeDII[PHI=-19,THETA=47.5,Decran=85,Dobs=15,city=true,% asia=false,africa=true,samer=false,europe=false,namer=false,increment=2]% Madagascar \end{pspicture} +\end{postscript} \end{center} \section{Téléchargement des fichiers} \begin{itemize} @@ -258,4 +282,14 @@ nom des villes, les degrés de méridiens et parallèles etc. Par conséquent, si ce sujet vous intéresse et si vous souhaitez compléter et améliorer ces packages : \textsf{pst-map2d, pst-map3d, pst-map2dII, pst-map3dII}, n'hésitez pas à vous manifester\ldots + +\nocite{*} +\bgroup +\RaggedRight +\bibliographystyle{plain} +\bibliography{PSTricks} +\egroup + + + \end{document} |