diff options
Diffstat (limited to 'graphics/pstricks/contrib/pst-calendar/pst-calendar-docFR.tex')
-rw-r--r-- | graphics/pstricks/contrib/pst-calendar/pst-calendar-docFR.tex | 382 |
1 files changed, 0 insertions, 382 deletions
diff --git a/graphics/pstricks/contrib/pst-calendar/pst-calendar-docFR.tex b/graphics/pstricks/contrib/pst-calendar/pst-calendar-docFR.tex deleted file mode 100644 index cce06c5ef1..0000000000 --- a/graphics/pstricks/contrib/pst-calendar/pst-calendar-docFR.tex +++ /dev/null @@ -1,382 +0,0 @@ -\documentclass{article} -\usepackage[latin1]{inputenc}% -\usepackage[T1]{fontenc} -\usepackage[a4paper,margin=2cm]{geometry} -%% Manuel LUQUE <Mluque5130aol.com> %% -%% 1 Octobre 1999 pour le dodécaèdre %% -%% 23 avril 2003 pour le calendrier %% -%% 26 avril : calcul de la date de Pâques %% -%% 27 avril 20003 : repérer une date particulière, -%% suggestion de Jean-Michel Sarlat %% -%% jours fériés : 1 et 8 mai, 1 et 11 décembre -%% 25 août et lundi de Pâques -\pagestyle{empty} -% -\usepackage[french]{pst-calendar} -% -\usepackage{url} -\newcommand\Encadre[1]{\psframebox[fillstyle=solid,fillcolor=yellow,linecolor=red]{#1}} -\title{Calculer un calendrier avec \LaTeX{},\\ -le dessiner en 3D avec PSTricks (version 0.47)} -\author{Manuel Luque} -\date{\today} -\begin{document} - -\maketitle -%{\typein[\Year]{Entrez l'année (2000...2099)?} -%\def\Year{2006} -\begin{center} -\psset{An=2006} -\begin{tabular}{ll} -\psCalendar[Mois=1]&\psCalendar[Mois=2]\\ -\psCalendar[Mois=3]&\psCalendar[Mois=4]\\ -\psCalendar[Mois=5]&\psCalendar[Mois=6] -\end{tabular} - -\end{center} -\begin{center} -\begin{tabular}{ll} -\psCalendar[Mois=7]&\psCalendar[Mois=8]\\ -\psCalendar[Mois=9]&\psCalendar[Mois=10]\\ -\psCalendar[Mois=11]&\psCalendar[Mois=12] -\end{tabular} -\end{center} -%} -\begin{center} -\psscalebox{0.5}{\psCalDodecaeder[Vx=-\rd,Vy=\rc,Vz=0,viewangle=198]} -\end{center} -\section{Objectifs, outils et méthodes adoptés} -\subsection{Objectifs} -Il s'agissait de calculer avec \LaTeX{}, un calendrier valable de l'an -2\,000 à l'an 2\,099 (je suis optimiste), puis d'adopter une méthode -originale de représentation en 3D, en plaçant chaque mois sur l'une des -faces d'un dodécaèdre. Un calendrier de ce type était, il y quelques années, -offert par les visiteurs médicaux des laboratoires \textsc{Pfizer}. -\subsection{Outils adoptés} -Il existe déjà un calendrier écrit en \LaTeX{}, dont les calculs sont faits -directement en \TeX{}. Il s'agit de \texttt{calendar}, écrit par Michael -Barret et disponible sur le serveur du \texttt{CTAN} ; c'est très bien fait. - -Un calendrier en 3D, dessiné avec PSTricks, est déjà proposé depuis plusieurs d'années par Denis -Girou sur : \url{http://tug.org/applications/PSTricks/More}. - -Donc, rien de neuf, mais revu à ma façon : pour ma part j'ai décidé d'utiliser les macros du package \texttt{fp} de Michael -Mehlich, qui forment un excellent outil de calcul. La lecture du code écrit -avec ce package est plus compréhensible que celui écrit en \TeX{} de base. - -Pour la représentation en 3d, j'ai aussi, utilisé PSTricks de Timothy Van Zandt, et -en particulier l'extension \texttt{pst-3d}. -\subsection{Méthode adoptée} -La méthode de calcul des jours de semaine du calendrier est déduite de quelques -observations : -\begin{enumerate} - \item Le 1 janvier 2\,000 est un samedi. On adopte la convention de - représenter les jours de semaine par un numéro : j'ai choisi : -\begin{center} - \renewcommand{\arraystretch}{1.5} - \begin{tabular}{ccccccc} - lundi&mardi&mercredi&jeudi&vendredi&samedi&dimanche\\ \hline - 1&2&3&4&5&6&7 - \end{tabular} -\end{center} - \item Une année ordinaire comprend 365 jours, or $365=52\times7+1$. Il y a - donc un décalage de 1~jour dans le nom des jours pour l'année suivante si - elle est ordinaire elle aussi. Autrement dit le 1~janvier 2\,001 devrait - être un dimanche ($6+1=7$). Or l'an 2\,000 est bissextile et comporte 366~jours : le - décalage sera de 2, le 1~janvier 2\,001 correspondra au numéro $6+2=8=1\ (modulo\ 7)$. - \item Sur la période retenue 2\,000/2\,099 les années divisibles par 4 : - 2\,000, 2\,004, 2\,008 etc. sont bissextiles. On déterminera donc si - l'année choisie est bissextile en testant si elle est un multiple de~4. -\begin{verbatim} -% test d'une année bissextile -\FPeval{\YearBissextil}{(\psk@CalendrierA)/4} -\FPtrunc{\YearBissextil}{\YearBissextil}{0} -\FPeval{\YearBissextil}{(\YearBissextil)*4} -\FPtrunc{\YearBissextil}{\YearBissextil}{0} -\ifnum\YearBissextil=\psk@CalendrierA -etc. -\end{verbatim} - \item Pour une année choisie, on calculera le décalage par rapport à - 2\,000, en comptant les années et en ajoutant 1 chaque fois qu'il y aura - dans cet intervalle une année bissextile (en tenant compte de 2\,000). - \item On retient pour le début de chaque mois : -\begin{center} - \renewcommand{\arraystretch}{1.5} - \begin{tabular}{c|c|c} - mois&année ordinaire&année bissextile\\ \hline - janvier&1&1\\ - février&32&32\\ - mars&60&61\\ - avril&91&92\\ - mai&121&122\\ - juin&152&153\\ - juillet&182&183\\ - août&213&214\\ - septembre&244&245\\ - octobre&274&275\\ - novembre&305&306\\ - décembre&335&336\\ - \end{tabular} -\end{center} -\end{enumerate} - - - - -\section{L'utilisation} -\subsection{Utilisation simple} -Si on veut voir uniquement le mois de l'année choisie, on fera, par exemple : -\begin{verbatim} -\psCalendar[An=2099,Mois=12,Jour=25,MoisChoisi=12] -\end{verbatim} -\begin{center} -\psCalendar[An=2099,Mois=12,Jour=25,MoisChoisi=12] -\end{center} -Cette étude ne teste pas si les valeurs introduites pour l'année(\texttt{An}) et le mois(\texttt{Mois}), sont correctes ! - -Par défaut, la commande \verb+\psCalendar+ affiche le mois et l'année en -cours et entoure la date du jour (suggestion de Jean-Michel \textsc{Sarlat}). - -Si on veut voir afficher, un jour d'un mois particulier, on rajoutera le -paramètre \Encadre{\texttt{MoisChoisi=valeur}} aux autres, comme dans -l'exemple précédent et le suivant. -\begin{center} -\psCalendar -\end{center} -\begin{verbatim} -\psCalendar[An=2004,Mois=6,Jour=21,MoisChoisi=6] -\end{verbatim} -\begin{center} -\psCalendar[An=2004,Mois=6,Jour=21,MoisChoisi=6] -\end{center} -\subsection{Le calendrier en 3D} -La commande s'écrit très simplement : -\begin{verbatim} -\psCalDodecaeder -\end{verbatim} -\begin{center} -\psscalebox{0.5}{\psCalDodecaeder} -\end{center} -pour avoir le calendrier de l'année en cours. Si le schéma est trop grand à -votre goût, encadrez la commande par un \verb+\psscalebox{0.5}{\psCalDodecaeder}+ - -Pour avoir le mois de mai face à soi, on écrira, par exemple : -\begin{verbatim} -\psscalebox{0.5}{\psCalDodecaeder[style=mai]} -\end{verbatim} -\begin{center} -\psscalebox{0.5}{\psCalDodecaeder[style=mai]} -\end{center} -\verb+Vx, Vy, Vz+ sont les valeurs des paramètres de \texttt{viewpoint=-5.85 -3.62 -0} de la commande \verb+\ThreeDput+ de \verb+pst-3d+, qui sont les -coordonnées d'un vecteur définissant la direction où se trouve -l'observateur (la direction de la projection parallèle). - -On jouera aussi sur le paramètre \verb+viewangle+, pour amener la face -observée dans le bon sens de la lecture. - -Pour avoir le mois de janvier face à soi, on écrira : -\begin{verbatim} -\psscalebox{0.35}{\psCalDodecaeder[style=janvier]} -\end{verbatim} -\begin{center} -\psscalebox{0.35}{\psCalDodecaeder[style=janvier]} -\end{center} -Pour avoir le mois de février face à soi, on écrira : -\begin{verbatim} -\psscalebox{0.35}{\psCalDodecaeder[style=fevrier]} -\end{verbatim} -\begin{center} -\psscalebox{0.35}{\psCalDodecaeder[style=fevrier]} -\end{center} -Pour avoir le mois de mars face à soi, on écrira : -\begin{verbatim} -\psscalebox{0.35}{\psCalDodecaeder[style=mars]} -\end{verbatim} -\begin{center} -\psscalebox{0.35}{\psCalDodecaeder[style=mars]} -\end{center} -Pour avoir le mois d'avril face à soi, on écrira : -\begin{verbatim} -\psscalebox{0.35}{\psCalDodecaeder[style=avril]} -\end{verbatim} -\begin{center} -\psscalebox{0.35}{\psCalDodecaeder[style=avril]} -\end{center} -Pour avoir le mois de juin face à soi, on écrira : -\begin{verbatim} -\psscalebox{0.35}{\psCalDodecaeder[style=juin]} -\end{verbatim} -\begin{center} -\psscalebox{0.35}{\psCalDodecaeder[style=juin]} -\end{center} -Pour avoir le mois de juillet face à soi, on écrira : -\begin{verbatim} -\psscalebox{0.35}{\psCalDodecaeder[style=juillet]} -\end{verbatim} -\begin{center} -\psscalebox{0.35}{\psCalDodecaeder[style=juillet]} -\end{center} -Pour avoir le mois d'août face à soi, on écrira : -\begin{verbatim} -\psscalebox{0.35}{\psCalDodecaeder[style=aout]} -\end{verbatim} -\begin{center} -\psscalebox{0.35}{\psCalDodecaeder[style=aout]} -\end{center} -Pour avoir le mois de septembre face à soi, on écrira : -\begin{verbatim} -\psscalebox{0.35}{\psCalDodecaeder[style=septembre]} -\end{verbatim} -\begin{center} -\psscalebox{0.35}{\psCalDodecaeder[style=septembre]} -\end{center} -Pour avoir le mois d'octobre face à soi, on écrira : -\begin{verbatim} -\psscalebox{0.35}{\psCalDodecaeder[style=octobre]} -\end{verbatim} -\begin{center} -\psscalebox{0.35}{\psCalDodecaeder[style=octobre]} -\end{center} -Pour avoir le mois de novembre face à soi, on écrira : -\begin{verbatim} -\psscalebox{0.35}{\psCalDodecaeder[style=novembre]} -\end{verbatim} -\begin{center} -\psscalebox{0.35}{\psCalDodecaeder[style=novembre]} -\end{center} -Pour avoir le mois de décembre face à soi, on écrira : -\begin{verbatim} -\psscalebox{0.35}{\psCalDodecaeder[style=decembre]} -\end{verbatim} -\begin{center} -\psscalebox{0.35}{\psCalDodecaeder[style=decembre]} -\end{center} -Pour visualiser une année particulière, avec un mois choisi face à soi, et un jour de ce mois, (15~mai~2004) on -fera : -\begin{verbatim} -\psscalebox{0.35}{\psCalDodecaeder[style=mai,An=2004,MoisChoisi=5,Jour=15]} -\end{verbatim} -\begin{center} -\psscalebox{0.35}{\psCalDodecaeder[style=mai,An=2004,MoisChoisi=5,Jour=15]} -\end{center} -\section{Calcul de la date de Pâques} -On trouve sur internet, à propos de ce sujet de nombreux sites. \'A partir -de la \textit{définition} de la fête proprement dite, les formules << -magiques >> abondent. L'une d'elle a retenu mon attention, je l'ai -retranscrite avec le package \texttt{fp}. Dans l'ordre, un aperçu de la -page, puis le codage des calculs avec \texttt{fp}. - -Le site : \texttt{http://www.altcal.com/elmcal.html}, et un extrait : - -\begin{verbatim} -Version 2.0 - 11 Nov 1998 - -Copyright and disclaimer ------------------------- - This document is Copyright (C) 1998 by Claus Tondering. - E-mail: claus@tondering.dk. - The document may be freely distributed, provided this - copyright notice is included and no money is charged for - the document. - This document is provided "as is". No warranties are made as - to its correctness. - -G = year mod 19 - -For the Julian calendar: - I = (19*G + 15) mod 30 - J = (year + year/4 + I) mod 7 - -For the Gregorian calendar: - C = year/100 - H = (C - C/4 - (8*C+13)/25 + 19*G + 15) mod 30 - I = H - (H/28)*(1 - (H/28)*(29/(H + 1))*((21 - G)/11)) - J = (year + year/4 + I + 2 - C + C/4) mod 7 - -Thereafter, for both calendars: -L = I - J -EasterMonth = 3 + (L + 40)/44 -EasterDay = L + 28 - 31*(EasterMonth/4) -\end{verbatim} - -\hrule -{\blue -\begin{verbatim} -\FPset{\Year}{1981} % placer ici l'année -\FPeval\GY{(\Year)-19*trunc((\Year)/19,0)} -\FPeval{\Cent}{trunc((\Year)/100,0)} -\FPeval{\Iter}{trunc((\Cent)-trunc((\Cent)/4,0)-trunc((8*(\Cent)+13)/25,0)+ - (\GY)*19+15,0)} -\FPeval{\Iterdiv}{trunc((\Iter)/30,0)} -\FPeval\Hepact{(\Iter)-30*(\Iterdiv)} -\FPeval\Inbre{trunc((\Hepact)-trunc((\Hepact)/28,0)* - (1-trunc((\Hepact)/28,0))*(trunc(29/((\Hepact)+1),0)*trunc((21-(\GY))/11,0)),0)} -\FPeval\Jnbreinter{trunc((\Year)+trunc((\Year)/4,0)+(\Inbre)+2-(\Cent)+trunc((\Cent)/4,0),0)} -\FPeval\Jnbre{trunc((\Jnbreinter)-7*trunc((\Jnbreinter)/7,0),0)} -\FPeval\Lnbre{trunc((\Inbre)-(\Jnbre),0)} -\FPeval\Month{trunc(3+trunc(((\Lnbre)+40)/44,0),0)} -\FPeval\Day{trunc((\Lnbre)+28-31*trunc((\Month)/4,0),0)} -\ifnum\Month=4 - \ifnum\Day>25 \FPeval{\Day}{trunc((\Day)-7,0)} \fi -\fi - -P\^aques le Dimanche \FPprint\Day/\FPprint\Month/\FPprint\Year -\end{verbatim}} -\FPset{\Year}{1981} % placer ici l'année -\FPeval\GY{(\Year)-19*trunc((\Year)/19,0)} -\FPeval{\Cent}{trunc((\Year)/100,0)} -\FPeval{\Iter}{trunc((\Cent)-trunc((\Cent)/4,0)-trunc((8*(\Cent)+13)/25,0)+ - (\GY)*19+15,0)} -\FPeval{\Iterdiv}{trunc((\Iter)/30,0)} -\FPeval\Hepact{(\Iter)-30*(\Iterdiv)} -\FPeval\Inbre{trunc((\Hepact)-trunc((\Hepact)/28,0)* - (1-trunc((\Hepact)/28,0))*(trunc(29/((\Hepact)+1),0)*trunc((21-(\GY))/11,0)),0)} -\FPeval\Jnbreinter{trunc((\Year)+trunc((\Year)/4,0)+(\Inbre)+2-(\Cent)+trunc((\Cent)/4,0),0)} -\FPeval\Jnbre{trunc((\Jnbreinter)-7*trunc((\Jnbreinter)/7,0),0)} -\FPeval\Lnbre{trunc((\Inbre)-(\Jnbre),0)} -\FPeval\Month{trunc(3+trunc(((\Lnbre)+40)/44,0),0)} -\FPeval\Day{trunc((\Lnbre)+28-31*trunc((\Month)/4,0),0)} -\ifnum\Month=4 - \ifnum\Day>25 \FPeval{\Day}{trunc((\Day)-7,0)} \fi -\fi - -\centerline{\Encadre{P\^aques tombe le dimanche -\FPprint\Day/\FPprint\Month/\FPprint\Year}} - -Vous y reconnaîtrez sans peine l'algorithme initial, j'ai rajouté les trois -dernières lignes, car l'auteur des formules précédentes semble avoir oublié -que Pâques peut varier seulement entre le 22~mars et le 25~avril inclus - Sans cette correction, le programme affiche dans l'exemple précédent (1981), le dimanche 26~avril au lieu du - 19~avril. - -Pour le tester quelques dates : -\begin{center} -\begin{tabular}{c|c} -1978& 26 mars \\ \hline -1979&15 avril \\ \hline -1980&6 avril \\ \hline -2000&23 avril \\ \hline -2002&31 mars \\ \hline -2003&20 avril \\ \hline -\end{tabular} -\end{center} -Ce n'est pas garanti sans erreurs, l'emploi des fonctions \texttt{trunc} ou -\texttt{round} ou \texttt{clip} ne donnent pas à 100\% toujours, le résultat -attendu. Par exemple si \texttt{fp} calcule $14.99999999$, alors que -de toute évidence c'est $15$, il ne vaut mieux pas faire -\texttt{trunc} pour avoir la partie entière, mais \texttt{round}, -car sinon on commet une erreur d'une unité en moins ! Il faudrait -donc prévoir de tester ces cas ! -\section{Que reste-t-il à faire ? Problèmes !} -\begin{itemize} - \item Placer les jours fériés du lundi de Pâques et du lundi de - Pentecôte. - \item Dessiner automatiquement le mois en cours, face à notre regard. - \item Prévoir un test qui limite l'année choisie à l'intervalle permis, - soit $[2000-2099]$. - \item Trouver un moyen simple, élégant et cohérent d'entourer la date choisie. - \item Débusquer les erreurs, si vous en trouvez\ldots -\end{itemize} - -\end{document} |