summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/chronosys/x-chronosys.tex
blob: 0e647c91738ca9da45440a4b1760af4fc778df9d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
% This is is the ConTeXt file for the `chronosys' package.
%
% The maintener of this work is Mathieu Long.
% email : mlong.tex@hotmail.fr
% the `chronosys' package consists in the 9 files :
%  -- `docchronosys_en.tex' and `docchronosys_en.pdf' (english manual)
%  -- `docchronosys_fr.tex' and `docchronosys_fr.pdf' (french manual)
%  -- README
%  -- `chronosys.tex' (file for plain TeX)
%  -- `chronosyschr.tex' (main file of the `chronosys' package)
%  -- `chronosys.sty' (file for LaTeX)
%  -- `x-chronosys.tex' (file for ConTeXt)
%
% 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 Mathieu Long.
%
% % % %
%
%Charger Tikz si MKII ou non si MKIV
\startnotmode[mkiv]% 
\usemodule[tikz]%
\stopnotmode
%
%CHANGEMENT DES CATCODES
\catcode`\@=11%
\catcode`\!=11%
%
%DEFINITION DE \!CHR@VERIF
\def\!chr@verif#1#2{\ifdefined#2\error!message \fi #1#2}%
%
%DEFINITION DES SYSTEMES DE COLORISATION DU FOND DES EVENEMENTS ET PERIODE
\defineframed[chreventframedcolorbox][background=color,backgroundcolor=\!chr@eventcolorbox,frame=off,backgroundoffset=\z@,location=low]%
\defineframed[chrperiodframedcolorbox][background=color,backgroundcolor=\!chr@periodcolorbox,frame=off,backgroundoffset=\z@,location=low]%
\let\!chreventcolorbox\chreventframedcolorbox
\let\!chrperiodcolorbox\chrperiodframedcolorbox
%
%CHARGER CHRONOSYSCHR 
\input chronosyschr.tex%
%
%READAPTER LA SYNTAXE A CELLE DE CONTEXT
%
\def\setupchronology{\dosingleempty\dosetupchronology}%
\def\dosetupchronology[#1]{\iffirstargument \!chrtraitingargvirgule{#1}{!chrdefault}\fi}%
%
\def\setupchronoevent{\def\@@string@a{event}\dodoubleempty\dosetupchronoeventandperiode}%
\def\dosetupchronoeventandperiode[#1][#2]{\iffirstargument
\ifsecondargument
\def\@@string@a{#1}\def\@@string@b{#2}\else\def\@@string@b{#1}\fi \expandafter\!chr@parcoursoptions\@@string@b,\end\fi}%
%
\def\setupchronoperiode{\def\@@string@a{periode}\dodoubleempty\dosetupchronoeventandperiode}%
\def\definechronoperiode{\dosingleempty\dodefinechronoperiode}%
\def\dodefinechronoperiode[#1]{%
\iffirstargument
\def\@@string@a{#1}%
\!chrverifdefines{%
\expandafter\expandafter\expandafter\!chrtraitingargvirgule\expandafter\expandafter\expandafter{\csname !chr#1defaultoptions\endcsname}{!chr@period}%
\!chrtraiteoneargument\dochronoperiode}%
\if!chrverifdefines
\expandafter\def\csname !chr#1defaultoptions\endcsname{textdepth=15pt, dates=true,%
  color=\!chrperiodedef@ultcolor, datesstyle=\relax,%
  startdate=true, stopdate=true, textstyle=\relax,%
  dateselevation=0pt, ifcolorbox=true,%
  colorbox=white, bottomdepth=0pt, topheight=\!chrheight, box=false,%
  textwidth=\relax}\fi\fi
\ifnexttoken[{\!chr@defineorsetupoptions}{}}%
%
\def\definechronoevent{\dosingleempty\dodefinechronoevent}%
\!chrverif\def\dodefinechronoevent[#1]{%
\iffirstargument
\def\@@string@a{#1}%
\!chrverifdefines{%
\expandafter\expandafter\expandafter\!chrtraitingargvirgule\expandafter\expandafter\expandafter{\csname !chr#1defaultoptions\endcsname}{!chr@event}%
\!chrtraiteoneargument\dochronoevent}%
\if!chrverifdefines
\expandafter\def\csname !chr#1defaultoptions\endcsname{barre=true, icon=\relax,%
markdepth=10pt, textstyle=\relax, mark=true,%
date=true, datesseparation=\space, conversionmonth=true,%
datestyle=\relax, datesstyle=\relax, year=true,%
iconheight=0.5\!chrheight, ifcolorbox=true, colorbox=white,%
textwidth=\relax}\fi\fi
\ifnexttoken[{\!chr@defineorsetupoptions}{}}%
%
\setupchronoevent[!!eventgradu@tion][datesstyle=\tfxx]%
\setupchronoperiode[!!periodegradu@tion][datesstyle=\tfxx]%
%
%DEFINITION DE \!CHRUSECOLOR ET DES COULEURS A UTILISER NON EXISTANTES DANS LE FORMAT
\def\!chrusecolor#1{\color[#1]}%
\definecolor[purple][r=0.5, g=0, b=0.5]%
\definecolor[violet][r=0.75, g=0, b=0.25]%
%
%SYSTEME DE CHANGEMENT DE MOTEUR DE DESSIN
%
\!chrverif\def\chronoswitchtomodeMP{\long\def\!chrstarttikzpicture##1\!chrstoptikzpicture{\begingroup\edef\@@string@d{##1}\edef\@@string@d{\@@string@d}\expandafter\startMPcode\@@string@d\stopMPcode\endgroup}%
\def\!chrstoptikzpicture{\stopMPcode}%
\def\!chrfill[color=##1]##2;{fill ##2 withcolor \MPcolor{##1};}%
\def\!chrfilldraw[color=##1]##2;{filldraw ##2 withcolor \MPcolor{##1};}%
\def\!chrdraw[color=##1]##2;{draw ##2 withcolor \MPcolor{##1};}}%
%
\!chrverif\def\chronoswitchtomodeTikz{%
\unless\ifdefined\starttikzpicture
  \usemodule[tikz]%
\fi
\let\!chrstarttikzpicture\starttikzpicture
\let\!chrstoptikzpicture\stoptikzpicture
\def\!chrfill{\fill}%
\def\!chrfilldraw{\filldraw}%
\def\!chrdraw{\draw}}%
%
\startmode[mkiv]%
\chronoswitchtomodeMP
\stopmode
\startnotmode[mkiv]%
\chronoswitchtomodeTikz
\stopnotmode
%
\catcode`\@=12%
\catcode`\!=12%
\endinput