summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/progress/progress.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/progress/progress.sty')
-rw-r--r--macros/latex/contrib/progress/progress.sty359
1 files changed, 359 insertions, 0 deletions
diff --git a/macros/latex/contrib/progress/progress.sty b/macros/latex/contrib/progress/progress.sty
new file mode 100644
index 0000000000..4b0147cea9
--- /dev/null
+++ b/macros/latex/contrib/progress/progress.sty
@@ -0,0 +1,359 @@
+%%
+%% This is file `progress.sty',
+%%
+%% version 1.10
+%%
+%% Copyright (C) 2002-2003 Kasper B. Graversen - this is freeware
+%%
+%% Thanks to Robin Fairbairns for helping me sorting things out ;-)
+%% Thanks to Dan Luecking for some definitions
+%% Also thanks to David Bausum for his free 'trept' "TeX: Reference and Examples" information material
+%%
+%% Progress may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.1
+%% 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.1 or later is part of all distributions of LaTeX
+%% version 1999/06/01 or later.
+
+\NeedsTeXFormat{LaTeX2e}[1994/06/01]
+\ProvidesPackage{progress}[2003/29/06 v1.10 progress package]
+\typeout{Package: progress v1.10 <2003/29/06> (Kasper B. Graversen)}
+
+
+% User-redefinable option: the form of the output filename
+\newcommand{\ProgressReportName}{\jobname\YYYYMMDDdate.html}
+
+% User-redefinable option: the size of the picture, if progress graphs are drawn
+\newlength{\ProgressGfxUnitSize}
+\setlength{\ProgressGfxUnitSize}{0.07mm} % default value
+
+\newcount\ProgressGfxXSize
+\newcount\ProgressGfxYSize
+\ProgressGfxXSize = 100 \relax
+\ProgressGfxYSize = 20 \relax
+
+
+% User-redifinable option: the output in the document (dvi/pdf file)
+\newcommand{\ProgressDocOutput}[1]{\marginpar{\ProgressDrawBar{#1}}}
+
+
+
+
+
+% pr@gressArgument - holds the percent given to \progress{}
+\newcount\pr@gressArgument
+
+% pr@gressDepth is the level of output
+% pr@gressDepth = 1 : only chapters
+% pr@gressDepth = 2 : only chapters & sections
+% pr@gressDepth = 3 : only chapters & sections & subsections
+% pr@gressDepth = 4 : only chapters & sections & subsections & subsubsection
+\newcount\pr@gressDepth
+
+% pr@gressCurrentDepth denotes the currently encountered \chapter, \section, \subsection, or \subsubsection
+% pr@gressCurrentDepth = 1 : chapter
+% pr@gressCurrentDepth = 2 : section
+% pr@gressCurrentDepth = 3 : subsection
+% pr@gressCurrentDepth = 4 : subsubsection
+\newcount\pr@gressCurrentDepth
+
+% denotes if \progress should perfom actions or not
+% \d@cumentstate = 1 : draft.. include all definitions
+% \d@cumentstate = 2 : final.. include nothing
+\newcount\d@cumentstate
+\d@cumentstate=1\relax % default is draftmode (\relax stops scanning: it's only active job)
+
+
+\DeclareOption{chapter}{\pr@gressDepth=1\relax}
+\DeclareOption{section}{\pr@gressDepth=2\relax}
+\DeclareOption{subsection}{\pr@gressDepth=3\relax}
+\DeclareOption{subsubsection}{\pr@gressDepth=4\relax}
+
+\DeclareOption{textonly}{\renewcommand{\ProgressDocOutput}[1]{\marginpar{{\scriptsize progress: #1\%}}}}
+\DeclareOption{textgfx}{\renewcommand{\ProgressDocOutput}[1]{\marginpar{\ProgressDrawBar{#1}{\scriptsize~#1\%}}}}
+
+\DeclareOption{final}{%
+ \newcommand{\progress}[1]{}% in final mode do not write anything to the document (nor to the html file!)
+ \d@cumentstate=2\relax% set to final mode
+}%
+
+\DeclareOption{draft}{
+ \d@cumentstate=1\relax% set to draft mode
+ \newcommand{\progress}[1]{%
+ % ask if current level is <= user specified level
+ \@tempcnta=\pr@gressDepth
+ \advance\@tempcnta by 1
+ \ifnum\pr@gressCurrentDepth < \@tempcnta
+ \pr@gressArgument=#1 % set a register to the given percent value to determine its size
+ \ifnum\pr@gressArgument < 0
+ \def\bgcolor{A05050} ****\else % HTML "brown"
+ \ifnum\pr@gressArgument < 51
+ \def\bgcolor{FF0000} \else % HTML "red"
+ \ifnum\pr@gressArgument < 71
+ \def\bgcolor{C71585} \else % HTML "MediumVioletRed"
+ \ifnum\pr@gressArgument < 81
+ \def\bgcolor{6495ED} \else % HTML light blue
+ \ifnum\pr@gressArgument < 91
+ \def\bgcolor{FF8C00} \else % orange
+ \ifnum\pr@gressArgument < 95
+ \def\bgcolor{008000} \else % green
+ \ifnum\pr@gressArgument = 100
+ \def\bgcolor{ADFF2F} % GreenYellow
+ \fi\fi\fi\fi\fi\fi\fi
+ \immediate\write\fp{<td bgcolor="\hashchar \bgcolor"><b><font color="\hashchar FFFFFF"> #1\percentchar</font><b></td></tr>}%
+ \fi%
+ \ProgressDocOutput{#1} % write something in the document
+ }%
+}%
+
+\ProcessOptions\relax
+%
+% source2e contains some explanations of \@ifstar, \@dblarg, and the syntax of \chapter, ...
+% \dosometingbefore/\dosomethingafter marks the stuff/macro that you can insert.
+% Heiko <oberdiek@uni-freiburg.de>
+%
+% Syntax for \foo (\chapter, \section, ...):
+% \foo*{...}
+% \foo[...]{...}
+% \foo{...}
+% The star is catched by \@ifstar:
+
+%%% define \percentchar and \hashchar by Dan Luecking
+{\catcode`\%=12 \gdef\percentchar{%}}
+{\catcode`\#=12 \gdef\hashchar{#}}
+
+
+\AtBeginDocument{%
+\ifnum\d@cumentstate = 1\relax % only if draft mode
+ %%% setup file write..
+ \newwrite\fp
+ \immediate\openout\fp=\ProgressReportName
+
+ %%% title header of document and document title
+ \immediate\write\fp{<html><head><title>Progress of "\jobname"\space \eightdigitdate</title></head><body>}
+ \immediate\write\fp{<h1>Progress of "\jobname"\space generated \eightdigitdate </h1>}
+
+ %% start real HTML table
+ \immediate\write\fp{<table border="1" width="100\percentchar">}
+\fi
+}
+
+
+% long definition since @mkboth otherwise fucks up when using headers in document
+\newcommand{\insertChapter}[1]{%
+ \pr@gressCurrentDepth=1\relax
+ \begingroup
+ \set@display@protect
+ \let\@mkboth\@gobbletwo
+ \ifnum\thechapter > 0
+ \immediate\write\fp{<tr><td bgcolor="\hashchar cccccc" width=70\percentchar><font size="+3">\thechapter&nbsp;#1</font></td>}
+ \fi
+ \endgroup
+}
+
+
+\newcommand{\insertSection}[1]{%
+ \pr@gressCurrentDepth = 2\relax
+ \ifnum\pr@gressDepth > 1
+ \immediate\write\fp{<tr><td><font size="+2">&nbsp;&nbsp;&nbsp;&nbsp;\thesection&nbsp;#1</font></td>}
+ \fi
+}
+\newcommand{\insertSubsection}[1]{%
+ \pr@gressCurrentDepth = 3\relax
+ \ifnum\pr@gressDepth > 2
+ \immediate\write\fp{<tr><td><font size="+1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\thesubsection&nbsp;#1</font></td>}
+ \fi
+}
+
+\newcommand{\insertSubsubsection}[1]{%
+ \pr@gressCurrentDepth = 4\relax
+ \ifnum\pr@gressDepth > 3
+ \immediate\write\fp{<tr><td><font size="+0">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\thesubsubsection&nbsp;#1</font></td>}
+ \fi
+}
+
+
+%%% CHAPTER
+\ifx\chapter\undefined
+%no definition if in article mode or other modes without chapter
+\else
+ \ifnum\d@cumentstate = 1\relax % only if draft mode
+ \newcommand*{\oooldchapter}{}% check, if \oooldchapter is free
+ \let\oooldchapter\chapter
+
+ \renewcommand*{\chapter}{%
+ \@ifstar{\starchapter}%
+ {\@dblarg\nostarchapter}%
+ }
+
+ \newcommand*{\starchapter}[1]{%
+ \oooldchapter*{#1}%
+ \insertChapter{#1}%
+ }
+
+ \newcommand{\nostarchapter}{}
+ \def\nostarchapter[#1]#2{% #1: toc entry, #2: main entry
+ \oooldchapter[{#1}]{#2}%
+ \insertChapter{#2}%
+ }
+ \fi
+\fi
+
+%%% SECTION
+\ifnum\d@cumentstate = 1 \relax % only if draft mode
+ \newcommand*{\oooldsection}{}% check, if \oooldchapter is free
+ \let\oooldsection\section
+
+ \renewcommand*{\section}{%
+ \@ifstar{\starsection}%
+ {\@dblarg\nostarsection}%
+ }
+
+ \newcommand*{\starsection}[1]{%
+ \oooldsection*{#1}%
+ \insertSection{#1}%
+ }
+
+ \newcommand{\nostarsection}{}
+ \def\nostarsection[#1]#2{% #1: toc entry, #2: main entry
+ \oooldsection[{#1}]{#2}%
+ \insertSection{#2}%
+ }
+\fi
+
+
+%%% SUBSECTION
+\ifnum\d@cumentstate = 1\relax % only if draft mode
+ \newcommand*{\oooldsubsection}{}% check, if \oooldchapter is free
+ \let\oooldsubsection\subsection
+
+ \renewcommand*{\subsection}{%
+ \@ifstar{\starsubsection}%
+ {\@dblarg\nostarsubsection}%
+ }
+
+ \newcommand*{\starsubsection}[1]{%
+ \oooldsubsection*{#1}%
+ \insertSubsection{#1}%
+ }
+
+ \newcommand{\nostarsubsection}{}
+ \def\nostarsubsection[#1]#2{% #1: toc entry, #2: main entry
+ \oooldsubsection[{#1}]{#2}%
+ \insertSubsection{#2}%
+ }
+\fi
+
+
+%%% SUBSUBSECTION
+\ifnum\d@cumentstate = 1\relax % only if draft mode
+ \newcommand*{\oooldsubsubsection}{}% check, if \oooldchapter is free
+ \let\oooldsubsubsection\subsubsection
+
+ \renewcommand*{\subsubsection}{%
+ \@ifstar{\starsubsubsection}%
+ {\@dblarg\nostarsubsubsection}%
+ }
+
+ \newcommand*{\starsubsubsection}[1]{%
+ \oooldsubsubsection*{#1}%
+ \insertSubsection{#1}%
+ }
+
+ \newcommand{\nostarsubsubsection}{}
+ \def\nostarsubsubsection[#1]#2{% #1: toc entry, #2: main entry
+ \oooldsubsubsection[{#1}]{#2}%
+ \insertSubsubsection{#2}%
+ }%
+\fi
+
+
+
+
+%%% helper methods for generating the date for the HTML file output
+\newcommand{\eightdigitdate}{%
+ \ifnum\number \day < 10 0\number\day \else \number\day\fi.%
+ \ifnum\number \month< 10 0\number\month \else \number\month\fi.%
+ \number\year%
+}
+
+%% is used for naming the progress output file. It returns an 8-digit date with no "." in format YYMMDD
+\newcommand{\YYYYMMDDdate}{%
+ \number\year%
+ \ifnum\number \month< 10 0\number\month \else \number\month\fi%
+ \ifnum\number \day < 10 0\number\day \else \number\day\fi%
+}
+
+%% is used for naming the progress output file. It returns an 8-digit date with no "." in format DDMMYY
+\newcommand{\DDMMYYYYdate}{%
+ \ifnum\number \day < 10 0\number\day \else \number\day\fi%
+ \ifnum\number \month< 10 0\number\month \else \number\month\fi%
+ \number\year%
+}
+
+%% is used for naming the progress output file. It returns an 8-digit date with no "." in format MMDDYY
+\newcommand{\MMDDYYYYdate}{%
+ \ifnum\number \month< 10 0\number\month \else \number\month\fi%
+ \ifnum\number \day < 10 0\number\day \else \number\day\fi%
+ \number\year%
+}
+
+\AtEndDocument{%
+ \ifnum\d@cumentstate = 1\relax % only if draft mode
+ %% end overview table
+ \immediate\write\fp{</table>}
+ %% write legend table
+ \immediate\write\fp{<br><br><br><br><blockquote>Legend:<br><table border="1" cellspacing="0" cellpadding="5">}
+ \immediate\write\fp{<tr><td bgcolor="A05050" width=40> &nbsp; <td width=55> < 0 <td> Means the same as above 0, but indicate that the author is stuck and needs consultance with co-author(s) </td></tr>}
+ \immediate\write\fp{<tr><td bgcolor="FF0000"> <td> 0-50<td> Unfinished</td></tr>}
+ \immediate\write\fp{<tr><td bgcolor="C71585">&nbsp; <td>51-70<td> 1st draft - can have "rough edges"<br><br> Focus: main form, contents, major points.</td></tr>}
+ \immediate\write\fp{<tr><td bgcolor="6495ED">&nbsp; <td>71-80<td> 2nd draft <br><br> Focus: section consistency internally within the chapter, errors, misunderstandings, disagreements, missing points, missing references, additions, readability.</td></tr>}
+ \immediate\write\fp{<tr><td bgcolor="FF8C00">&nbsp; <td>81-90<td> 3rd draft<br><br> Focus: chapter consistency externally within the report, agreement with contents, form, last check if points have been left out, readability.</td></tr>}
+ \immediate\write\fp{<tr><td bgcolor="008000">&nbsp; <td>91-99<td> Deliverable</td></tr>}
+ \immediate\write\fp{<tr><td bgcolor="008000">&nbsp; <td>95 <td> Deliverable, all quotes checked</td></tr>}
+ \immediate\write\fp{<tr><td bgcolor="008000">&nbsp; <td>96 <td> Deliverable, BibTeX references checked</td></tr>}
+ \immediate\write\fp{<tr><td bgcolor="008000">&nbsp; <td>97 <td> Deliverable, punctuation checked</td></tr>}
+ \immediate\write\fp{<tr><td bgcolor="008000">&nbsp; <td>98 <td> Deliverable, thesaurus consulted</td></tr>}
+ \immediate\write\fp{<tr><td bgcolor="008000">&nbsp; <td>99 <td> Deliverable, whole document spelling checked</td></tr>}
+ \immediate\write\fp{<tr><td bgcolor="ADFF2F">&nbsp; <td>100 <td> Finished</td></tr>}
+ \immediate\write\fp{</table>}
+ %% end HTML
+ \immediate\write\fp{<table width="100\percentchar"><tr align="right"><td><font size="-2">report generated by progress.sty (c) Kasper B. Graversen 2002-2003</font></td></tr></tabel>}
+ \immediate\write\fp{</blockquote><br></body></html>}
+ \fi
+}
+
+% draws a progress bar with the argument as the percent
+\newcommand{\ProgressDrawBar}[1]{%
+ \setlength{\unitlength}{\ProgressGfxUnitSize}
+ \begin{picture}(\ProgressGfxXSize,\ProgressGfxYSize)(0,0)
+
+ \put(0,0){\framebox(\ProgressGfxXSize,\ProgressGfxYSize)} % draw the progress box
+ % draw the progress bar
+ \@tempcnta=\ProgressGfxXSize
+ \ifnum \@tempcnta < 0 \multiply \@tempcnta by -1 \fi % handle negative %'s by * -1
+ \multiply \@tempcnta by #1 \divide \@tempcnta by 100
+ \multiput(1,0)(1,0){\@tempcnta}{\line(0,1){\ProgressGfxYSize}}
+
+ % draw the 25% marker
+ \@tempcnta=\ProgressGfxXSize \divide \@tempcnta by 4 % find x-length of 25%
+ \@tempcntb=\ProgressGfxYSize \divide \@tempcntb by 4 % find y-height of the 25% and 75% markers
+ \put(\@tempcnta ,0){\line(0,1){\@tempcntb}}%
+
+ % draw the 75% marker
+ \@tempcnta=\ProgressGfxXSize \divide \@tempcnta by 4 \multiply \@tempcnta by 3 % find x-length of 75%
+ \put(\@tempcnta ,0){\line(0,1){\@tempcntb}}%
+
+ % draw the 50% marker
+ \@tempcnta=\ProgressGfxXSize \divide \@tempcnta by 2 % find x-length of 50%
+ \@tempcntb=\ProgressGfxYSize \divide \@tempcntb by 2 % find y-height of the 50% marker
+ \put(\@tempcnta ,0){\line(0,1){\@tempcntb}}%
+
+ \end{picture}%
+}
+
+
+
+\endinput