diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-13 00:03:29 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-13 00:03:29 +0000 |
commit | ef0a1845d1d9d71acc3172564f4423057a077ca4 (patch) | |
tree | 3bc9bdc948b03b38024468e1220252fac16488c1 /Master/texmf-dist/tex | |
parent | ce0c1a96c9362a829d914c89d377b71ed315a09a (diff) |
progress
git-svn-id: svn://tug.org/texlive/trunk@1221 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r-- | Master/texmf-dist/tex/latex/progress/progress.sty | 359 |
1 files changed, 359 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/progress/progress.sty b/Master/texmf-dist/tex/latex/progress/progress.sty new file mode 100644 index 00000000000..7ea2a1a5a2d --- /dev/null +++ b/Master/texmf-dist/tex/latex/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 #1</font></td>} + \fi + \endgroup +} + + +\newcommand{\insertSection}[1]{% + \pr@gressCurrentDepth = 2\relax + \ifnum\pr@gressDepth > 1 + \immediate\write\fp{<tr><td><font size="+2"> \thesection #1</font></td>} + \fi +} +\newcommand{\insertSubsection}[1]{% + \pr@gressCurrentDepth = 3\relax + \ifnum\pr@gressDepth > 2 + \immediate\write\fp{<tr><td><font size="+1"> \thesubsection #1</font></td>} + \fi +} + +\newcommand{\insertSubsubsection}[1]{% + \pr@gressCurrentDepth = 4\relax + \ifnum\pr@gressDepth > 3 + \immediate\write\fp{<tr><td><font size="+0"> \thesubsubsection #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> <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"> <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"> <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"> <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"> <td>91-99<td> Deliverable</td></tr>} + \immediate\write\fp{<tr><td bgcolor="008000"> <td>95 <td> Deliverable, all quotes checked</td></tr>} + \immediate\write\fp{<tr><td bgcolor="008000"> <td>96 <td> Deliverable, BibTeX references checked</td></tr>} + \immediate\write\fp{<tr><td bgcolor="008000"> <td>97 <td> Deliverable, punctuation checked</td></tr>} + \immediate\write\fp{<tr><td bgcolor="008000"> <td>98 <td> Deliverable, thesaurus consulted</td></tr>} + \immediate\write\fp{<tr><td bgcolor="008000"> <td>99 <td> Deliverable, whole document spelling checked</td></tr>} + \immediate\write\fp{<tr><td bgcolor="ADFF2F"> <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 |