From d94921c034f3fdf580fd994df4691a4035a94067 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 18 May 2009 18:22:48 +0000 Subject: new pstricks package pst-gantt (13may09) git-svn-id: svn://tug.org/texlive/trunk@13210 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/generic/pst-gantt/Changes | 6 + Master/texmf-dist/doc/generic/pst-gantt/README | 18 ++ .../doc/generic/pst-gantt/pst-gantt-doc.bib | 159 ++++++++++++++++ .../doc/generic/pst-gantt/pst-gantt-doc.pdf | Bin 0 -> 107522 bytes .../doc/generic/pst-gantt/pst-gantt-doc.tex | 199 ++++++++++++++++++++ .../texmf-dist/source/generic/pst-gantt/Makefile | 66 +++++++ .../texmf-dist/tex/generic/pst-gantt/pst-gantt.tex | 203 +++++++++++++++++++++ .../texmf-dist/tex/latex/pst-gantt/pst-gantt.sty | 8 + Master/tlpkg/bin/tlpkg-ctan-check | 2 +- Master/tlpkg/libexec/ctan2tds | 1 + Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc | 1 + Master/tlpkg/tlpsrc/pst-gantt.tlpsrc | 2 + 12 files changed, 664 insertions(+), 1 deletion(-) create mode 100644 Master/texmf-dist/doc/generic/pst-gantt/Changes create mode 100644 Master/texmf-dist/doc/generic/pst-gantt/README create mode 100644 Master/texmf-dist/doc/generic/pst-gantt/pst-gantt-doc.bib create mode 100644 Master/texmf-dist/doc/generic/pst-gantt/pst-gantt-doc.pdf create mode 100644 Master/texmf-dist/doc/generic/pst-gantt/pst-gantt-doc.tex create mode 100644 Master/texmf-dist/source/generic/pst-gantt/Makefile create mode 100644 Master/texmf-dist/tex/generic/pst-gantt/pst-gantt.tex create mode 100644 Master/texmf-dist/tex/latex/pst-gantt/pst-gantt.sty create mode 100644 Master/tlpkg/tlpsrc/pst-gantt.tlpsrc (limited to 'Master') diff --git a/Master/texmf-dist/doc/generic/pst-gantt/Changes b/Master/texmf-dist/doc/generic/pst-gantt/Changes new file mode 100644 index 00000000000..c1d33e7d412 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-gantt/Changes @@ -0,0 +1,6 @@ +..... pst-gantt.tex +0.20 2009-05-12 - first CTAN version + + +..... pst-gantt.sty + 2009-05-12 first version diff --git a/Master/texmf-dist/doc/generic/pst-gantt/README b/Master/texmf-dist/doc/generic/pst-gantt/README new file mode 100644 index 00000000000..cd88515bb1a --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-gantt/README @@ -0,0 +1,18 @@ +pst-gantt: plotting Gantt charts + +Save the files pst-gantt.sty|pro|tex in a directory, which is part of your +local TeX tree. The pro file should go into $TEXMF/dvips/pstricks/ +Then do not forget to run texhash to update this tree. +For more information see the documentation of your LATEX distribution +on installing packages into your local TeX system or read the +TeX Frequently Asked Questions: +(http://www.tex.ac.uk/cgi-bin/texfaq2html?label=instpackages). + +pst-func needs pst-plot (pstricks-add) and pstricks, which should +be part of your local TeX installation, otherwise get it from a +CTAN server, f.ex. ftp://ftp.ctan.org + +PSTricks is PostScript Tricks, the documentation cannot be run +with pdftex, use the sequence latex->dvips->ps2pdf. + +%% $Id: README 117 2009-05-13 05:54:00Z herbert $ diff --git a/Master/texmf-dist/doc/generic/pst-gantt/pst-gantt-doc.bib b/Master/texmf-dist/doc/generic/pst-gantt/pst-gantt-doc.bib new file mode 100644 index 00000000000..8894fa5f494 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-gantt/pst-gantt-doc.bib @@ -0,0 +1,159 @@ +%% -*-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} } + +@Article{ dtk02.2:jackson.voss:plot-funktionen, + author = {Laura E. Jackson and Herbert Vo{\ss}}, + title = {Die {P}lot-{F}unktionen 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 = {Post{S}cript 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 +} + +@Book{PSTricks2, + author = {Herbert Vo\ss}, + title = {\texttt{PSTricks} -- {G}rafik f\"ur \TeX{} und \LaTeX}, + edition = {5.}, + publisher = {DANTE -- Lehmanns}, + year = {2008}, + address = {Heidelberg/Hamburg} +} + +@Book{voss:math, + author = {Herbert Vo\ss}, + title = {\LaTeX\ in {M}athematik und {N}aturwissenschaften}, + publisher = {{Franzis-Verlag}}, + year = {2006}, + address = {Poing} +} + +@Manual{wolfram, + author = {Eric Weisstein}, + title = {Wolfram MathWorld}, + publisher = {{Wolfram}}, + year = {2007}, + address = {\url{http://mathworld.wolfram.com}} +} + diff --git a/Master/texmf-dist/doc/generic/pst-gantt/pst-gantt-doc.pdf b/Master/texmf-dist/doc/generic/pst-gantt/pst-gantt-doc.pdf new file mode 100644 index 00000000000..88bc952e2fc Binary files /dev/null and b/Master/texmf-dist/doc/generic/pst-gantt/pst-gantt-doc.pdf differ diff --git a/Master/texmf-dist/doc/generic/pst-gantt/pst-gantt-doc.tex b/Master/texmf-dist/doc/generic/pst-gantt/pst-gantt-doc.tex new file mode 100644 index 00000000000..c5c64403b4c --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-gantt/pst-gantt-doc.tex @@ -0,0 +1,199 @@ +%% $Id: pst-func-doc.tex 86 2009-01-29 10:34:00Z herbert $ +\documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,smallheadings + headexclude,footexclude,oneside]{pst-doc} +\usepackage[utf8]{inputenc} +\usepackage{pst-gantt} +\let\pstGanntFV\fileversion +\usepackage{pstricks-add} +\usepackage{lscape} +\lstset{pos=t,wide=true,language=PSTricks, + morekeywords={},basicstyle=\footnotesize\ttfamily} +% +\begin{document} + +\title{\texttt{pst-gannt}} +\subtitle{Gannt charts; v.\pstGanntFV} +\author{Denis Girou\\Herbert Vo\ss} +\docauthor{Herbert Vo\ss} +\date{\today} +\maketitle + +\tableofcontents + +\clearpage + +\begin{abstract} +\noindent +\LPack{pst-gannt} loads by default the following packages: \LPack{pst-node}, +\LPack{pst-grad}, \LPack{pst-xkey}, and, of course \LPack{pstricks}. +All should be already part of your local \TeX\ installation. If not, or in case +of having older versions, go to \url{http://www.CTAN.org/} and load the newest version. + +{\itshape If \LPack{pstricks-add} is loaded together with the package \LPack{pst-func} then the \Lkeyword{InsideArrow} + of the \Lcs{psbezier} macro doesn't work!} + +\vfill\noindent +%Thanks to: \\ +%and last but not least \url{http://mathworld.wolfram.com} + +\end{abstract} + + + +\begin{LTXexample} +\newpsstyle{Important}{fillstyle=solid,fillcolor=red} +\newpsstyle{NotImportant}{fillstyle=vlines} +\begin{PstGanttChart}{5}{7} +\PstGanttTask{0}{3} +\PstGanttTask{2}{1} +\PstGanttTask[TaskStyle=Important, + TaskInsideLabel=Important]{2}{5} +\PstGanttTask[TaskStyle=NotImportant]{4}{2} +\PstGanttTask{5}{2} +\end{PstGanttChart} +\end{LTXexample} + +% Example 2 +% + +\begin{LTXexample} +\newpsstyle{Important}{fillstyle=solid,fillcolor=red} +\newpsstyle{NotImportant}{fillstyle=vlines} +\begin{PstGanttChart}[yunit=2]{5}{7} +\PstGanttTask{0}{3} +\PstGanttTask{2}{1} +\PstGanttTask[TaskStyle=Important,% + TaskInsideLabel=Important]{2}{5} +\PstGanttTask[TaskStyle=NotImportant]{4}{2} +\PstGanttTask{5}{2} +\end{PstGanttChart} +\end{LTXexample} + +\vspace{1cm} +% +% Example 3 +% + +\begin{LTXexample} +\newpsstyle{Important}{fillstyle=solid,fillcolor=red} +\newpsstyle{NotImportant}{fillstyle=vlines} +\begin{PstGanttChart}[unit=2,TaskOutsideLabelMaxSize=1, + ChartShowIntervals]{5}{7} +\PstGanttTask[TaskOutsideLabel={Task 1}]{0}{3} +\PstGanttTask[TaskOutsideLabel={Task 2},TaskUnitType=Day] + {15}{3} % 3 days starting at day 15 +\PstGanttTask[TaskStyle=Important,TaskOutsideLabel={Task 3}, + TaskInsideLabel={\Large\textcolor{white}{% + \textbf{Important}}}]{2}{5} +\PstGanttTask[TaskStyle=NotImportant, + TaskOutsideLabel={Task 4}]{4}{2} +\PstGanttTask[TaskOutsideLabel={Task 5}]{5}{2} +\end{PstGanttChart} +\end{LTXexample} + + +% +% Example 4 +% +\begin{LTXexample} +\begin{PstGanttChart}[yunit=2,ChartUnitIntervalName=Month, + TaskUnitIntervalValue=30,TaskUnitType=Month, + ChartShowIntervals]{3}{4} + \PstGanttTask[TaskInsideLabel={Task 1}]{0}{1} + \PstGanttTask[TaskInsideLabel={Task 2},TaskUnitType=Day] + {24}{40} % 40 days starting at day 24 + \PstGanttTask[TaskInsideLabel={Task 3}]{2}{2} +\end{PstGanttChart} +\end{LTXexample} + +% +% Example 5 +% +\begin{LTXexample} +\begin{PstGanttChart}[yunit=1.5,ChartUnitIntervalName=Year, + ChartUnitBasicIntervalName=Month, + TaskUnitIntervalValue=12,TaskUnitType=Year, + ChartShowIntervals]{4}{4} + \PstGanttTask[TaskInsideLabel={Task 1}]{0}{1} + \PstGanttTask[TaskInsideLabel={Task 2},TaskUnitType=Month] + {6}{24} % 24 months starting at month 6 + \PstGanttTask[TaskInsideLabel={Task 3}]{2}{2} + \PstGanttTask[TaskInsideLabel={Task 4}]{3}{1} +\end{PstGanttChart} +\end{LTXexample} + + + + +\begin{landscape} +\definecolor{LightCyan} {rgb}{0.88,1.,1.} +\definecolor{Orange} {rgb}{1.,0.65,0.} +\definecolor{PaleGreen} {rgb}{0.6,0.98,0.6} +\definecolor{Pink} {rgb}{1.,0.75,0.8} +\psset{gradmidpoint=0,fillstyle=gradient,gradbegin=LightCyan,gradend=white} +\newpsstyle{TaskStyleA}{gradbegin=cyan,gradend=blue} +\newpsstyle{TaskStyleB}{gradbegin=red,gradend=Pink} +\newpsstyle{TaskStyleC}{gradbegin=yellow,gradend=Orange} +\newpsstyle{TaskStyleD}{gradbegin=green,gradend=PaleGreen} + +\begin{PstGanttChart}[yunit=2.5,xunit=3.5,ChartUnitIntervalName=Semaine, + ChartUnitBasicIntervalName=Jour,TaskUnitType=Jour, + TaskOutsideLabelMaxSize=14,ChartShowIntervals]{8}{43} + \psset{gradangle=90,TaskStyle=TaskStyleA} + \PstGanttTask[TaskOutsideLabel={\'Etude}]{0}{10} + \PstGanttTask[TaskOutsideLabel={R\'edaction dossier}]{6}{7} + \PstGanttTask[TaskOutsideLabel={Relecture et corrections}]{14}{2} + \PstGanttTask[TaskOutsideLabel={Soumission},TaskStyle=TaskStyleB]{17}{1} + \psset{TaskStyle=TaskStyleC} + \PstGanttTask[TaskOutsideLabel={R\'ealisation}]{25}{14} + \PstGanttTask[TaskOutsideLabel={Tests}]{35}{6} + \PstGanttTask[TaskOutsideLabel={V\'erification}]{39}{3} + \PstGanttTask[TaskOutsideLabel={Recette},TaskStyle=TaskStyleD]{42}{1} +\end{PstGanttChart} +\end{landscape} + +\begin{lstlisting} +\definecolor{LightCyan} {rgb}{0.88,1.,1.} +\definecolor{Orange} {rgb}{1.,0.65,0.} +\definecolor{PaleGreen} {rgb}{0.6,0.98,0.6} +\definecolor{Pink} {rgb}{1.,0.75,0.8} +\psset{gradmidpoint=0,fillstyle=gradient,gradbegin=LightCyan,gradend=white} +\newpsstyle{TaskStyleA}{gradbegin=cyan,gradend=blue} +\newpsstyle{TaskStyleB}{gradbegin=red,gradend=Pink} +\newpsstyle{TaskStyleC}{gradbegin=yellow,gradend=Orange} +\newpsstyle{TaskStyleD}{gradbegin=green,gradend=PaleGreen} + +\begin{PstGanttChart}[yunit=2.5,xunit=3.5,ChartUnitIntervalName=Semaine, + ChartUnitBasicIntervalName=Jour,TaskUnitType=Jour, + TaskOutsideLabelMaxSize=14,ChartShowIntervals]{8}{43} + \psset{gradangle=90,TaskStyle=TaskStyleA} + \PstGanttTask[TaskOutsideLabel={\'Etude}]{0}{10} + \PstGanttTask[TaskOutsideLabel={R\'edaction dossier}]{6}{7} + \PstGanttTask[TaskOutsideLabel={Relecture et corrections}]{14}{2} + \PstGanttTask[TaskOutsideLabel={Soumission},TaskStyle=TaskStyleB]{17}{1} + \psset{TaskStyle=TaskStyleC} + \PstGanttTask[TaskOutsideLabel={R\'ealisation}]{25}{14} + \PstGanttTask[TaskOutsideLabel={Tests}]{35}{6} + \PstGanttTask[TaskOutsideLabel={V\'erification}]{39}{3} + \PstGanttTask[TaskOutsideLabel={Recette},TaskStyle=TaskStyleD]{42}{1} +\end{PstGanttChart} +\end{lstlisting} + +\section{List of all optional arguments for \texttt{pst-gantt}} + +\xkvview{family=pst-gantt,columns={key,type,default}} + +\bgroup +\raggedright +\nocite{*} +\bibliographystyle{plain} +\bibliography{pst-gantt-doc} +\egroup + +\printindex + + + +\end{document} + + diff --git a/Master/texmf-dist/source/generic/pst-gantt/Makefile b/Master/texmf-dist/source/generic/pst-gantt/Makefile new file mode 100644 index 00000000000..8bfa888b6f0 --- /dev/null +++ b/Master/texmf-dist/source/generic/pst-gantt/Makefile @@ -0,0 +1,66 @@ +# `Makefile' for `pst-func.pdf', hv, 2006/08/11 + +.SUFFIXES : .tex .ltx .dvi .ps .pdf .eps + +PACKAGE = pst-gantt + +MAIN = $(PACKAGE)-doc + +LATEX = latex + +ARCHNAME = $(MAIN)-$(shell date +%y%m%d) + +ARCHFILES = $(PACKAGE).sty $(PACKAGE).tex $(PACKAGE).pro $(MAIN).tex README Changes Makefile + +TDS = ~/PSTricks/PSTricks-TDS + +all : doc clean tds clean +doc: $(MAIN).pdf + +$(MAIN).pdf : $(MAIN).ps + GS_OPTIONS=-dAutoRotatePages=/None ps2pdf $< + +$(MAIN).ps : $(MAIN).dvi + dvips $< + +$(MAIN).dvi : $(MAIN).tex + $(LATEX) $< + $(LATEX) $< + if ! test -f $(basename $<).glo ; then touch $(basename $<).glo; fi + if ! test -f $(basename $<).idx ; then touch $(basename $<).idx; fi + makeindex -s gglo.ist -t $(basename $<).glg -o $(basename $<).gls \ + $(basename $<).glo + makeindex -s pst-doc.ist -t $(basename $<).ilg -o $(basename $<).ind \ + $(basename $<).idx + bibtex $(basename $<) + $(LATEX) $< + $(LATEX) $< + +clean : + $(RM) $(addprefix $(MAIN), .log .aux .bbl .blg .glg .glo .gls .ilg .idx .ind .tmp .toc .out ) + $(RM) $(addprefix $(MAIN), .dvi .ps .xcp) + +veryclean : clean + $(RM) $(addprefix $(MAIN), .pdf .bbl .blg) + +arch : + zip $(ARCHNAME).zip $(ARCHFILES) + +tds: + cp -u Changes $(TDS)/doc/generic/$(PACKAGE)/ + cp -u README $(TDS)/doc/generic/$(PACKAGE)/ + cp -u $(MAIN).pdf $(TDS)/doc/generic/$(PACKAGE)/ +# + cp -u Changes $(TDS)/tex/latex/$(PACKAGE)/ + cp -u $(PACKAGE).sty $(TDS)/tex/latex/$(PACKAGE)/ +# + cp -u Changes $(TDS)/tex/generic/$(PACKAGE)/ + cp -u $(PACKAGE).tex $(TDS)/tex/generic/$(PACKAGE)/ +# + cp -u Changes $(TDS)/source/$(PACKAGE)/ + cp -u $(MAIN).tex $(TDS)/source/$(PACKAGE)/ + cp -u $(MAIN).bib $(TDS)/source/$(PACKAGE)/ + cp -u Makefile $(TDS)/source/$(PACKAGE)/ + + +# EOF diff --git a/Master/texmf-dist/tex/generic/pst-gantt/pst-gantt.tex b/Master/texmf-dist/tex/generic/pst-gantt/pst-gantt.tex new file mode 100644 index 00000000000..d0876e18139 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pst-gantt/pst-gantt.tex @@ -0,0 +1,203 @@ +%% +%% This is file `pst-gantt.tex', +%% +%% IMPORTANT NOTICE: +%% +%% Package `pst-gantt.tex' +%% +%% Denis Girou, Herbert Voss +%% +%% This program can be redistributed and/or modified under the terms +%% of the LaTeX Project Public License Distributed from CTAN archives +%% in directory macros/latex/base/lppl.txt. +%% +%% DESCRIPTION: +%% `pst-gantt' is a PSTricks package to draw GANTT diagrams and timelines +%% +\csname PSTganttLoaded\endcsname +\let\PSTganttLoaded\endinput +% Require PSTricks, pst-node, pstcol, pst-plot, pst-3d packages +\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi +\ifx\PSTnodesLoaded\endinput\else\input pst-node.tex\fi +\ifx\PSTplotLoaded\endinput\else \input pst-grad.tex\fi +\ifx\PSTXKeyLoaded\endinput\else \input pst-xkey.tex\fi +\ifx\MultidoLoaded\endinput\else \input multido.tex \fi +% +\edef\PstAtCode{\the\catcode`\@} +\catcode`\@=11\relax +% +% interface to the `xkeyval' package +\pst@addfams{pst-gantt} +% +\def\fileversion{0.2} +\def\filedate{2009/05/12} +\message{`pst-gantt' v\fileversion, \filedate\space (Denis Girou and Herbert Voss)} +% +% "pspicture" environment or not? +\define@boolkey[psset]{pst-gantt}[Pst@]{PstPicture}[true]{} +\psset[pst-gantt]{PstPicture=true} +% Intervals to show? +\define@boolkey[psset]{pst-gantt}[Pst@]{ChartShowIntervals}[true]{} +\psset[pst-gantt]{ChartShowIntervals=false} +% Style for the tasks +\define@key[psset]{pst-gantt}{TaskStyle}[TaskStyleDefault]{\def\psk@GanttTaskStyle{#1}} +\psset[pst-gantt]{TaskStyle=TaskStyleDefault} +% Name for unit interval +\define@key[psset]{pst-gantt}{ChartUnitIntervalName}[Week]{\def\psk@GanttChartUnitIntervalName{#1}} +% Name for basic unit +\define@key[psset]{pst-gantt}{ChartUnitBasicIntervalName}[Day]{% + \def\psk@GanttChartUnitBasicIntervalName{#1}} +% Unit interval for the tasks (7 for a week, 30 for a month, etc.) +% Warning: define it before "TaskUnitType"! +\define@key[psset]{pst-gantt}{TaskUnitIntervalValue}[7]{% + \pst@cntg=#1\relax + \edef\psk@GanttTaskUnitIntervalValue{\the\pst@cntg}} +% Unit type for the tasks (UnitIntervalName or UnitBasicIntervalName) +\define@key[psset]{pst-gantt}{TaskUnitType}[Week]{% + \def\psk@GanttTaskUnitValue{#1}% +% Validation of the parameter + \ifx\psk@GanttTaskUnitValue\psk@GanttChartUnitIntervalName + \edef\psk@GanttTaskUnitValue{\psk@GanttTaskUnitIntervalValue}% + \else + \ifx\psk@GanttTaskUnitValue\psk@GanttChartUnitBasicIntervalName + \def\psk@GanttTaskUnitValue{1}% + \else + {\@pstrickserr{GanttTaskUnitType must be `\psk@GanttChartUnitIntervalName' + or `\psk@GanttChartUnitBasicIntervalName' + (and not `\psk@GanttTaskUnitValue')}\@eha}% + \fi + \fi} +% Outside label for the tasks +\define@key[psset]{pst-gantt}{TaskOutsideLabel}[]{\def\psk@GanttTaskOutsideLabel{#1}} +% Inside label for the tasks +\define@key[psset]{pst-gantt}{TaskInsideLabel}[]{\def\psk@GanttTaskInsideLabel{#1}} +% Maximum outside size label for the tasks (in unit TaskUnitType !) +\define@key[psset]{pst-gantt}{TaskOutsideLabelMaxSize}[0]{% + \pst@cntg=#1\relax + \edef\psk@GanttTaskOutsideLabelMaxSize{\the\pst@cntg}} +% Default values +% -------------- +% pspicture environment, don't show intervals, default task style, +% unit for tasks is a week (so 7 days), no outside and inside labels +\psset[pst-gantt]{ChartUnitIntervalName=Week,ChartUnitBasicIntervalName=Day, + TaskUnitIntervalValue=7,TaskUnitType=Week, + TaskOutsideLabel=,TaskInsideLabel=,TaskOutsideLabelMaxSize=0} +\newpsstyle{TaskStyleDefault}{fillstyle=solid,fillcolor=yellow} +% The environment \PstGanttChart +% ------------------------------ +\SpecialCoor +% +% Syntax: \PstGanttChart[parameters]{Number of tasks}{Number of days} +\def\PstGanttChart{\@ifnextchar[\PstGanttChart@i{\PstGanttChart@i[]}} +\def\PstGanttChart@i[#1]#2#3{% +\begingroup +\psset{unit=0.1,#1} % Affectation of local parameters +% +\ifPst@PstPicture % "pspicture" environment + \pst@cnta=\psk@GanttTaskOutsideLabelMaxSize + \multiply\pst@cnta\psk@GanttTaskUnitValue + % + \pst@cntb=#2 + \multiply\pst@cntb by 5 + \advance\pst@cntb\@ne + % + \pst@cntc=#3 + \multiply\pst@cntc\psk@GanttTaskUnitValue + \advance\pst@cntc\tw@ + % + \ifPst@ChartShowIntervals + \pspicture(-\pst@cnta,-\pst@cntb)(\pst@cntc,2) + \else + \pspicture(-\pst@cnta,-\pst@cntb)(\pst@cntc,0) + \fi +\fi +\psframe(0,-\pst@cntb)(\pst@cntc,0) +% +\ifPst@ChartShowIntervals + % We will show the intervals + \pst@cnta=#3 + \multiply\pst@cnta\psk@GanttTaskUnitValue + \divide\pst@cnta\psk@GanttTaskUnitIntervalValue + \advance\pst@cnta\@ne + % + \pst@cntb=#2 + \multiply\pst@cntb by 5 + \advance\pst@cntb\@ne + % + \pst@dima=\psk@GanttTaskUnitIntervalValue pt + \divide\pst@dima\tw@ + \advance\pst@dima\@ne pt + \pst@dimtonum{\pst@dima}{\pst@tempa} + % + \multido{\iInterval=1+1,\iIntervalPos=1+\psk@GanttTaskUnitIntervalValue, + \nIntervalPos=\pst@tempa+\psk@GanttTaskUnitIntervalValue.0}{\pst@cnta}{% + \ifnum\iInterval=\pst@cnta + \psline(\iIntervalPos,0)(\iIntervalPos,1.5) + \psline[linestyle=dotted](\iIntervalPos,-\pst@cntb)(\iIntervalPos,0) + \else + \rput(\nIntervalPos,1){\psk@GanttChartUnitIntervalName\space\iInterval} + \psline(\iIntervalPos,0)(\iIntervalPos,1.5) + \psline[linestyle=dotted](\iIntervalPos,-\pst@cntb)(\iIntervalPos,0) + \fi} +\fi} +\def\endPstGanttChart{% +\ifPst@PstPicture + \endpspicture % End of "pspicture" environment +\fi +\endgroup} +% The macro \PstGanttTask +% ----------------------- +\newcount\pst@GanttTaskCnt +\pst@GanttTaskCnt=\z@ +% Syntax: \PstGanttTask[parameters]{Start}{Length} +\def\PstGanttTask{\@ifnextchar[\PstGanttTask@i{\PstGanttTask@i[]}} +\def\PstGanttTask@i[#1]#2#3{ +\advance\pst@GanttTaskCnt\m@ne +\begingroup +\psset{#1}% % Affectation of local parameters +% Frame +\pst@cnta=\psk@GanttTaskUnitValue +\multiply\pst@cnta by #2 +\advance\pst@cnta\@ne +% +\pst@cntb=\psk@GanttTaskUnitValue +\multiply\pst@cntb by #3 +\advance\pst@cntb\pst@cnta +% +\pst@cntc=\pst@GanttTaskCnt +\multiply\pst@cntc by 5 +% +\pst@cntd=\pst@cntc +\advance\pst@cntd by 4 +% +\psframe[style=\psk@GanttTaskStyle](\pst@cnta,\pst@cntc)(\pst@cntb,\pst@cntd) +% Inside label +\ifx\psk@GanttTaskInsideLabel\empty +\else + \pst@dima=\pst@cnta pt + \advance\pst@dima\pst@cntb pt + \divide\pst@dima\tw@ + \pst@dimtonum{\pst@dima}{\pst@tempa} + % + \pst@dimb=\pst@cntc pt + \advance\pst@dimb\pst@cntd pt + \divide\pst@dimb\tw@ + \pst@dimtonum{\pst@dimb}{\pst@tempb} + % + \rput(\pst@tempa,\pst@tempb){\psk@GanttTaskInsideLabel} +\fi +% Outside label +\ifx\psk@GanttTaskOutsideLabel\empty +\else + \pst@dimb=\pst@cntc pt + \advance\pst@dimb\pst@cntd pt + \divide\pst@dimb\tw@ + \pst@dimtonum{\pst@dimb}{\pst@tempb} + \rput[r](-1.5,\pst@tempb){\psk@GanttTaskOutsideLabel} +\fi +\endgroup} +% +\catcode`\@=\PstAtCode\relax +%% END: pst-gantt.tex +\endinput + diff --git a/Master/texmf-dist/tex/latex/pst-gantt/pst-gantt.sty b/Master/texmf-dist/tex/latex/pst-gantt/pst-gantt.sty new file mode 100644 index 00000000000..e73fcf3cd57 --- /dev/null +++ b/Master/texmf-dist/tex/latex/pst-gantt/pst-gantt.sty @@ -0,0 +1,8 @@ +\RequirePackage{pstricks} +\ProvidesPackage{pst-gantt}[2008/03/21 package wrapper for + pst-gantt.tex (hv)] +\input{pst-gantt.tex} +\ProvidesFile{pst-gantt.tex} + [\filedate\space v\fileversion\space `pst-gantt' (hv)] +\endinput +%% $Id: pst-gantt.sty 116 2009-05-12 22:12:03Z herbert $ diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index b88aadf7d5a..cf4cf7fcdd4 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -188,7 +188,7 @@ my @WorkingTLP = qw( pst-calendar pst-circ pst-cox pst-dbicons pst-diffraction pst-eps pst-eucl pst-fill pst-fr3d pst-fractal pst-fun pst-func - pst-geo pst-grad pst-infixplot pst-jtree pst-labo + pst-gantt pst-geo pst-grad pst-infixplot pst-jtree pst-labo pst-lens pst-light3d pst-math pst-ob3d pst-optexp pst-optic pst-osci pst-pad pst-pdf pst-pdgr pst-qtree pst-sigsys pst-solides3d pst-soroban pst-spectra diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index 2c1efd31b89..f662b852013 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -419,6 +419,7 @@ chdir $startdir || die "chdir($startdir) failed: $!"; # back to raw 'pst-fractal', "&MAKEpst", 'pst-fun', "&MAKEpst", 'pst-func', "&MAKEpst", + 'pst-gantt', "&MAKEpst", 'pst-geo', "&MAKEpstgeo", 'pst-ghsb', "&MAKEpst", 'pst-gr3d', "&MAKEpst", diff --git a/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc b/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc index 3abd05a51b8..54f6438bf7f 100644 --- a/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc @@ -28,6 +28,7 @@ depend pst-fr3d depend pst-fractal depend pst-fun depend pst-func +depend pst-gantt depend pst-geo depend pst-ghsb depend pst-gr3d diff --git a/Master/tlpkg/tlpsrc/pst-gantt.tlpsrc b/Master/tlpkg/tlpsrc/pst-gantt.tlpsrc new file mode 100644 index 00000000000..7f78a6de9aa --- /dev/null +++ b/Master/tlpkg/tlpsrc/pst-gantt.tlpsrc @@ -0,0 +1,2 @@ +name pst-gantt +category Package -- cgit v1.2.3