summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/pst-geo/pst-map3d-doc-pdf.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/generic/pst-geo/pst-map3d-doc-pdf.tex')
-rw-r--r--Master/texmf-dist/doc/generic/pst-geo/pst-map3d-doc-pdf.tex463
1 files changed, 463 insertions, 0 deletions
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}