diff options
author | Karl Berry <karl@freefriends.org> | 2010-05-15 00:32:55 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2010-05-15 00:32:55 +0000 |
commit | df555cf003fce98533f61ccda3211fae7bef7254 (patch) | |
tree | e2c44a083ae3c63c2a6059e1f2154c88850e96cd /Master | |
parent | ba6f6aafcb4858fa31ba8d9b61295f3be050d2bb (diff) |
colortab now lppl (13may10)
git-svn-id: svn://tug.org/texlive/trunk@18269 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/doc/generic/colortab/Changes | 5 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/colortab/Makefile | 71 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/colortab/colortab-doc.pdf | bin | 0 -> 62039 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/generic/colortab/colortab-doc.tex | 372 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/colortab/colortab.tex | 669 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/colortab/colortab.sty | 10 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tlpkg-ctan-check | 2 | ||||
-rwxr-xr-x | Master/tlpkg/libexec/ctan2tds | 3 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc | 1 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/colortab.tlpsrc | 0 |
10 files changed, 1130 insertions, 3 deletions
diff --git a/Master/texmf-dist/doc/generic/colortab/Changes b/Master/texmf-dist/doc/generic/colortab/Changes new file mode 100644 index 00000000000..db014bfef98 --- /dev/null +++ b/Master/texmf-dist/doc/generic/colortab/Changes @@ -0,0 +1,5 @@ +colortab.tex -------- +1.00 2010-05-13 - change license to lppl (hv) + - update documentation (hv) + - new LaTeX style file (hv) + diff --git a/Master/texmf-dist/doc/generic/colortab/Makefile b/Master/texmf-dist/doc/generic/colortab/Makefile new file mode 100644 index 00000000000..7bd3e48751f --- /dev/null +++ b/Master/texmf-dist/doc/generic/colortab/Makefile @@ -0,0 +1,71 @@ + +# `Makefile' for `pst-3dplot.pdf', hv, 2007/03/17 + +.SUFFIXES : .tex .ltx .dvi .ps .pdf .eps + +PACKAGE = colortab + +MAIN = $(PACKAGE)-doc + +TDS = ~/PSTricks/PSTricks-TDS + +LATEX = latex + +ARCHNAME = $(MAIN)-$(shell date +%y%m%d) + +ARCHFILES = $(PACKAGE).sty $(PACKAGE).tex $(PACKAGE).pro $(MAIN).tex README Changes Makefile + +all : doc 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 -t $(basename $<).ilg -s pst-doc.ist -o $(basename $<).ind $(basename $<).idx +# makeindex -s gglo.ist -t $(basename $<).glg -o $(basename $<).gls \ +# $(basename $<).glo +# bibtex $(basename $<) +# $(LATEX) $< +# $(LATEX) $< + +clean : + $(RM) $(addprefix $(MAIN), .log .aux .glg .glo .gls .ilg .idx .ind .tmp .toc .out .blg .Roessler .bbl ) + $(RM) $(addprefix $(MAIN), .dvi .ps .xcp) + $(RM) data3d.Roessler + +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)/dvips/$(PACKAGE)/ + cp -u $(PACKAGE).pro $(TDS)/dvips/$(PACKAGE)/ + cp -u $(PACKAGE).pro ~/Links/dvips-local/ +# + 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/doc/generic/colortab/colortab-doc.pdf b/Master/texmf-dist/doc/generic/colortab/colortab-doc.pdf Binary files differnew file mode 100644 index 00000000000..d44f43bc872 --- /dev/null +++ b/Master/texmf-dist/doc/generic/colortab/colortab-doc.pdf diff --git a/Master/texmf-dist/doc/generic/colortab/colortab-doc.tex b/Master/texmf-dist/doc/generic/colortab/colortab-doc.tex new file mode 100644 index 00000000000..a71f74da113 --- /dev/null +++ b/Master/texmf-dist/doc/generic/colortab/colortab-doc.tex @@ -0,0 +1,372 @@ +%% Documentation for colortab.tex/colortab.sty. +%% +%% The color commands \gray and \lightgray must be defined if you +%% want to see the examples. pstricks.tex will be loaded for this +%% purpose if it is found. Otherwise, you must load your own +%% color commands. +%% +%% Change these if using different size paper. You can also include the +%% twosided style option, if desired: + +\documentclass[12pt]{article} +\usepackage [T1]{fontenc} +\usepackage{mathpazo,fancybox,url} +\usepackage{pstricks,colortab} +\let\CTfv\fileversion +\newgray{lightgray}{0.5} +\newgray{gray}{1} +\makeatletter +% VERBATIM HACKS: +\VerbatimFootnotes + +% Short meta (works in verbatim. Can't use < for other purposes. +\catcode`\<=13 \def<#1>{{\rm\it #1\/}} % <meta> (works in verbatim) + +% Short verbatim. " can appear in verbatim environments. +\def\temp{\Verb"} +\expandafter\def\expandafter\dospecials\expandafter{\dospecials\do\"} +\catcode`\"=13 +\let"\temp + +\def\n#1{{\tt\string#1}} + +% Verbatim item: +\newcommand\vitem{\SaveVerb[{\def\bf{}\item[\UseVerb{\MyTemp}]}]{\MyTemp}} + +% Verbatim section" + +% EXAMPLES: +% 1. Save example verbatim to \jobname.tmp, +% 2. Input verbatim with \catcode`\"=14 (" is a comment). +% 3. Input again with \catcode\`"=9 (" is ignored). + +\renewcommand{\EveryVerbatimLine}[2]{} +\renewcommand{\EveryVerbOutLine}[2]{} +\newcommand\BeginExample{% + \VerbatimEnvironment\begin{VerbatimOut}{\jobname.tmp}} +\newcommand\EndExample{% + \end{VerbatimOut}%. + \renewcommand{\EveryVerbatimLine}{}% + \renewcommand{\EveryVerbatimCodes}{\catcode`\"=14}% + \LVerbatimInput{\jobname.tmp}% + \catcode`\"=9} + +\iftrue% always using color +\newenvironment{example}{\BeginExample}{\EndExample + \begin{center}\leavevmode\input{\jobname.tmp}\end{center}} +\else +\newenvironment{example}{\VerbatimEnvironment\LVerbatim}{\endLVerbatim} +\fi + +% END PREAMBLE: +\makeatother +\title{Documentation\thanks{Documentation revised by Herbert Vo\ss} for colortab:\\[5pt] + Shading and coloring \TeX\ tables, v. \CTfv} +\author{Timothy Van Zandt\\ \url{tvz@Princeton.EDU}} +\date{\today} + +\begin{document} + +\maketitle +\tableofcontents + +\begin{quote} +"colortab.tex/colortab.sty" contains macros that let you use your color +commands for shading and coloring cells in tables and other alignment +environments. It is compatible with most \TeX\ macro packages. +\end{quote} + +\section{Introduction} + +Adding color to tables is fraught with difficulties, but as the examples in +this file indicate, it can be done. In any case, consider this an advanced +topic, and be aware that the commands in "colortab.tex" are not robust. + +This is meant to supplement your own color commands. There are many macro +files that implement color for the various "dvi" drivers that can support +color. E.g., the PSTricks package works with a variety of DVI-to-PS drivers. + +For example, suppose you have a macro that defines the color command "\gray". +"colortab.tex" requires that one of the following produce a gray line: +\begin{LVerbatim} + {\gray \hrule} + \gray{\hrule} +\end{LVerbatim} +if you want to use this command to color the cells in tables. +This is probably the case if the one of the following produces gray text: +\begin{LVerbatim} + {\gray I am gray!} + \gray{I am gray!} +\end{LVerbatim} + +"colortab.tex" contains macros for \TeX's "\halign" primitive. Incorporating +color into high-level macros based on the "\halign" primitive requires a +case-by-case treatment. "colortab.tex" also contains macros for coloring cells +\LaTeX's various array environments, and for the \LaTeX\ "longtable" +environment that is defined in the "longtable" (or "longtabl") style option. +These can serve as examples that can be accommodated to other table macros. +See the code itself for happy hacking. + +\section{\TeX's halign primitive} + +To shade cells in an alignment, use +\begin{LVerbatim} + \coloralign +\end{LVerbatim} +instead of "\halign". Then, to color the columns in one or more rows, type +\begin{LVerbatim} + \CC + <row of colors>\cr + <rows to be colored>\cr + \ECC +\end{LVerbatim} +For example: +\begin{example} + \setbox\strutbox=\hbox{\vrule height11.5pt + depth6.5pt width0pt}% + \vbox{\offinterlineskip + \coloralign{% + \vrule\strut\quad\hfil#\hfil\quad + &\vrule\quad\hfil#\quad\vrule\cr + \noalign{\hrule}% + \CC + \gray &\cr + Tamarind&Chiplote\cr + \ECC\noalign{\hrule}% + \CC + \lightgray &\gray\cr + Lulu&Serrano\cr\noalign{\hrule}% + Guanabana&Larga\cr + \ECC\noalign{\hrule}% + }} +\end{example} + +"\CC" and "\ECC" stand for ``ColorCells'' and ``EndColorCells'', respectively. +You cannot change the name of "\ECC" with "\let" or "\def" (without redefining +"\CC"), because it is really just a delimiter. This is also true of the first +"\cr", which marks the end of the row of color commands. +Remember that only complete rows can go between "\CC" and "\ECC". Where you +include horizontal lines is generally inconsequential. You can have nested +"\coloralign" environments, but the nested environment must be enclosed in +brackets "{}". There is no "\coloralign to" or "\coloralign spread" because +the space inserted by "\tabskip" won't be shaded. + +These macros are not very robust. You can make best use of them by knowing how +they work. "\coloralign" just saves the preamble, and otherwise is identical +to "\halign". "\CC" finds the height of the rows that have to be colored, and +then "\CC" draws a rectangle using \TeX's line-drawing primitives in each +cell, colored by the color commands included in the first line that follows +"\CC". E.g., +\begin{LVerbatim} + \yellow &&\red \cr +\end{LVerbatim} +draws a yellow rectangle in column 1, nothing in column 2, and a red rectangle +in column 3. Then "\CC" goes back up the height of the rectangle, so that +\TeX's current point is back where it was when "\CC" started. At this point, +"\CC" has finished its work. When the next rows of the alignment environment +are processed by "\halign", they are put down on top of the rectangles, and +hence have colored backgrounds. + +"\CC" finds the height of the rows to be colored by putting the rows into an +"\halign" environment, using the preamble that was saved by "\coloralign", and +then measuring the height of the resulting box. + +\section{\LaTeX\ array environments} + +Cells can be colored in a \LaTeX\ array without using a special array +environment (i.e., there is no \LaTeX\ analog to "\coloralign"). Use "\LCC" +instead of "\CC", and use "\\" to end the row of color commands instead of +"\cr". For example: +\begin{example} + \def\arraystretch{1.5}% + \begin{tabular}{|l|c|}\hline + \LCC + \gray & \\ + Tamarind & Chiplote \\ \hline + \ECC + \LCC + \lightgray & \gray\\ + Lulu & Serrano\\ \hline + Guanabana & Larga\\ \hline + \ECC + \end{tabular} +\end{example} +The same caveats apply as with the "\coloralign" environment. + +When \n\LCC\ and \n\ECC\ are used with Frank Mittelbach's "array.sty", nested +array-type environments and "\multicolumn" commands wipe out information +needed by \n\ECC\. Here is a workaround: Put "\SP" (``SavePreamble'') at the +beginning of the array-type environment (right after the column declarations), +and put "\RP" (``RestorePreamble'') at the end of each line containing a +"\multicolumn" command or nested array-type environment (after the "\\", and +before the \n\ECC). For example: +\begin{LVerbatim} + \begin{tabular}{|l|c|}\SP\hline + \LCC + \gray & \\ + \multicolumn{2}{c}{Tamarind}\\ \RP \hline + \ECC + \end{tabular} +\end{LVerbatim} +Further nesting (e.g., an array within a "\multicolumn", or a "\multicolumn" +or array within a nested array) sometimes works and sometimes doesn't. You +will have to figure that one out for yourself. + + +\section{longtable.sty} + +"longtable.sty", by David Carlisle, defines the "longtable" environment, for +making multipage tables. "\LCC" will not work with "longtable". However, +"colortab" contains other macros that will work, if you use "longtable.sty" in +conjunction with Frank Mittelbach's "array.sty". These macros have been tested +only briefly, with version 3.04 of "longtable.sty" and version 2.1b of +"array.sty". + +Before every column identifier in the environment's argument (e.g., "c", "l", +"r", "p", "m" or "b"), put +\begin{description} + \vitem"!{\LC}" If none of the below applies; + \vitem"!{\LCi}" If the column is preceded by one or more vertical lines; + \vitem"!{\LCii}" If the column is followed by two vertical lines; + \vitem"!{\LCiii}" If the column is preceded by one or more vertical lines +and followed by two vertical lines. + \vitem"!{\LCz{<len1>}{<len2>}}" If "colortab" should back up by <len1> +before drawing the background, and should draw the background <len2> shorter +than the width of the column. +\end{description} +Remember that you have to do this for every column, not just the columns that +you want to color. + +Then include +\begin{LVerbatim} + \LColors <color> & <color> & ... & <color>\\ +\end{LVerbatim} +in the first row of the environment, and later on as well if you wish to +change the colors. Here also you have to include every column, but you can +leave an entry blank if you don't want any background color in that column. + +The color comes out right, or at all, only after you have run the file enough +times for "longtable.sty" to set the alignment correctly. + +Here is an example. The output will appear in this documentation only if +"longtable.sty" or "longtabl.sty" is installed on your system. +\begingroup + \makeatletter + \catcode`\<=12 +% Modification Denis GIROU (CNRS/IDRIS - France) - <Denis.Girou@idris.fr> - 10 Sep. 1996 +% Can't work with LaTeX 2e +% \@input{longtable.sty}% +% \@input{longtabl.sty}% +% \@input{array.sty}% + \@input{longtable.styX}% Avoid loading of longtable.sty... + \@input{longtabl.sty}% + \@input{array.styX}% Avoid loading of array.sty... + \@testtrue + \@ifundefined{c@LT@tables}{\@testfalse}{}% + \@ifundefined{d@llarbegin}{\@testfalse}{}% + \if@test\else + \renewenvironment{example}{\VerbatimEnvironment\LVerbatim}{\endLVerbatim}% + \fi + \makeatother +\begin{example} + \LARGE + \begin{longtable}{|!{\LCiii}l||!{\LCi}c|!{\LCi}c|}\hline + \LColors \gray & & \\ + Tamarind & Chiplote & Galanga\\ \hline + \LColors \lightgray & & \gray\\ + Lulu & & Serrano\\ \hline + Guanabana & Larga &\\ \hline + \end{longtable} +\end{example} +\endgroup + +\section{Coloring lines} + +Let's begin with the "\halign" environment. Changing the color of lines is +easy, because if you write, say, "{\gray\hrule}", then the line comes out +gray. For example: +\begin{example} + % Thicker lines and wider spacing give better view: + \setbox\strutbox=\hbox{% + \vrule height15.5pt depth8.5pt width0pt}% + \def\Hrule{\hrule height 2.5pt}% + \def\Vrule{\vrule width 2.5pt}% + % Now the table: + \vbox{\offinterlineskip + \halign{% + {\lightgray\Vrule}\strut\quad\hfil#\hfil\quad + &{\gray\Vrule}\quad\hfil#\quad\Vrule\cr + \noalign{\Hrule}% + Tamarind& Chiplote\cr\noalign{{\darkgray\Hrule}}% + Lulu& Serrano\cr\noalign{\Hrule}% + Guanabana& Larga\cr\noalign{{\lightgray\Hrule}}% + }} +\end{example} + +With \LaTeX, you can add an entry like +\begin{LVerbatim} + @{\hspace{\tabcolsep}{\gray\vrule}\hspace{\tabcolsep}} +\end{LVerbatim} +to the argument of the alignment environment, instead of "|", if you want to +color the vertical line that is drawn. If using "array.sty", you can try: +\begin{LVerbatim} + !{{\gray\vrule}} +\end{LVerbatim} + +To color horizontal lines with \LaTeX, don't bother trying +\begin{LVerbatim} + {\gray\hline} +\end{LVerbatim} +because it won't work. You write your own version of "\hline" and "\cline", or +use the non-aligned color commands described in the next section. + +\section{Non-aligned color with PSTricks} + +Here are a few other commands that can be useful for adding color to tables. +{\bf They only work with PSTricks, v0.93 or later.} <color> in this case is +the name of the color, without the backslash. These fudge the color commands +so that they do not have to be balanced with respect to \TeX\ grouping. You +can achieve the same thing using "\special{<raw postscript>}" and "\noalign", +if you know what you are doing. These should work with just about any +alignment macro, include "\halign" and \LaTeX's "tabular" environment. + +\begin{description} + +\vitem"\AC{<color>} ... \EAC" \ + + These stand for "AlignColor" and "EndAlignColor", respectively. <color> is +the name of the color, without a backslash, rather than a color command. This +can be used within a cell, but they do not have to be within the same cell, +nor do they have to be properly nested with respect to \TeX\ grouping. +Generally, "\AC{<color>}" switches to <color>, and \n\EAC\ restores the color +that would be in effect if the first \n\AC\ command were missing. + +\vitem"\NAC{<color>} ... \ENAC" \ + + These stand for "NoAlignColor" and "EndNoAlignColor", respectively. These +are like \n\AC\ and \n\EAC, but the color commands are put inside a +"\noalign". They can only appear at the end of a line, after "\\" or "\cr". + +\end{description} +Actually, these do not even have to be used in pairs. + +Here is an example of how "\AC", etc., can be used. to color lines in \LaTeX\ +arrays. The output will appear in this documentation only if PSTricks is +installed on your system: +\begingroup +\ifx\PSTricksLoaded\endinput\else + \renewenvironment{example}{\VerbatimEnvironment\LVerbatim}{\endLVerbatim} +\fi +\begin{example} + \arrayrulewidth 1.5pt + \begin{tabular}{|l|c|}\hline + Tamarind& Chiplote\\ \NAC{gray}\hline\ENAC + Lulu& Serrano\\ \cline{1-1} + \NAC{lightgray}\cline{2-2}\ENAC + Guanabana\AC{lightgray} & \EAC Larga\\ \hline + \end{tabular} +\end{example} +\endgroup + +\end{document} +%% END colortab.doc diff --git a/Master/texmf-dist/doc/generic/colortab/colortab.tex b/Master/texmf-dist/doc/generic/colortab/colortab.tex new file mode 100644 index 00000000000..85abe169366 --- /dev/null +++ b/Master/texmf-dist/doc/generic/colortab/colortab.tex @@ -0,0 +1,669 @@ +%% BEGIN colortab.tex/colortab.sty +%% +\def\fileversion{1.0} +\def\filedate{10/05/13} +%% +%% COPYRIGHT 1993/2010, by Timothy Van Zandt, tvz@Princeton.EDU +%% +%% DESCRIPTION: +%% colortab.tex/colortab.sty lets you shade or color the cells in a +%% alignment environments (e.g., \halign and \LaTeX's tabular and +%% array environments). It is compatible with most TeX macro packages, +%% including Plain TeX, LaTeX, AmSTeX, and Ams-LaTeX. You must be +%% use in conjunction with other color commands. +%% +%% 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. +%% +%% CODE: +% +% colortab.tex uses TeX primitives, plus the Plain TeX commands: +% \newcount, \newtoks, \newbox, \newif and \z@. +% +% The LaTeX specific macros also use some LaTeX commands. +% +\csname ColortabLoaded\endcsname +\let\ColortabLoaded\endinput +\ifx\PSTricksLoaded\endinput\else \input pstricks.tex\fi +% +\message{\space\space v\fileversion\space\space\filedate\space\space <tvz>} +\edef\TheAtCode{\the\catcode`\@}\catcode`\@=11 +% +% These scratch registers are set globally: +% +\newcount\CT@cnt +\newdimen\CT@dim +\newbox\CT@box +% +% This flag is used to shut off colortab: +% +\newif\ifcolortab +\colortabtrue +% +% To color row cells of unknown height we first have to put the rows in an +% alignment and measure the resulting height, then put down a row of blobs +% (with \hrule, and then move back up the page. +% +% For TeX's \halign primitive, \coloralign saves the preamble in the token +% register \CT@preamble. This is used to calculate the height of the columns +% that are to be colored in. +% +\newtoks\CT@preamble +\def\coloralign{% + \afterassignment\coloralign@ + \setbox\CT@box=\hbox} +\def\coloralign@#1\cr{% + \egroup + \CT@preamble{\halign\bgroup#1\cr}% + \the\CT@preamble} +% +% \CC reads the next row, which should contain the color commands, and then +% the rows to be colored. The height of the latter rows is calculated, and +% then the row of colors is processed. \CT@columncolor uses \leaders to get +% each color to fill the column horizontally, and it uses the previously +% calculated height to fill the columns vertically. +% \begin{macrocode} +\def\CT@columncolor{% + \ifx\next\@nil + \def\next##1&\@nil{\gdef\CT@next{##1}}% + \expandafter\next\CT@next\@nil + \def\CT@temp\@nil{}% + \else + \ifx\next\CT@space + \def\CT@temp{% + \def\next{\futurelet\next\CT@columncolor}% + \afterassignment\next\let\CT@temp= }% + \else + \def\CT@temp{\CT@@columncolor}% + \fi + \fi + \CT@temp} +\def\CT@@columncolor#1&{% + \ifx\next&% + \expandafter\gdef\expandafter\CT@next\expandafter{\CT@next\omit{}&}% + \else + \expandafter\gdef\expandafter\CT@next\expandafter{\CT@next + \omit{{\ignorespaces#1{\leaders\hrule height\CT@dim\hfil}}}&}% + \fi + \futurelet\next\CT@columncolor} +{\def\\{\global\let\CT@space= }\\ } +\def\CC@#1#2#3{% + \ifcolortab + \noalign{% + \setbox\CT@box=\vbox{#1#3\crcr\egroup}% + \CT@dim=\ht\CT@box + \global\advance\CT@dim by \dp\CT@box + \def\CT@next{}% + \futurelet\next\CT@columncolor#2&\@nil}% + \CT@next\cr + \noalign{\vskip-\CT@dim}% + \fi + #3} +\def\CC#1\cr#2\ECC{\CC@{\the\CT@preamble}{#1}{#2}} +% +% With \LaTeX's alignment macros, the preamble is saved for us in \@preamble. +% Otherwise, \LCC is the same as \CC. +% +\def\LCC#1\\#2\ECC{\CC@{\@preamble}{#1}{#2}} +% +% This unaligned color stuff only works with PSTricks: +% +\def\AC#1{% +% \@ifundefined{color@#1}% +% {\@pstrickserr{Color not defined: `#1'}\@ehpa}% + {\pstVerb{\pst@usecolor{#1}}}} +\def\EAC{\pstVerb{\pst@currentcolor}} +\def\NAC#1{\noalign{\AC{#1}}} +\def\ENAC{\noalign{\EAC}} +% +\def\SP{\noalign{\global\let\CT@savedpreamble\@preamble}} +\def\RP{\noalign{\global\let\@preamble\CT@savedpreamble}} +% +\newcount\CT@LCnum +\def\LColors#1\\{% + \noalign{% + \ifnum\CT@LCinitflag=\c@LT@tables\else\CT@LCinit\fi + \ifnum\CT@LCflag=\z@ + \global\CT@LCnum 1 + \CT@LColors#1&\@nil + \global\CT@LCnum\CT@LCmax + \fi}} +\def\CT@LColors#1&{% + \global\@namedef{LColor@\the\CT@LCnum}{#1}% + \@ifnextchar\@nil{\@gobble}{% + \global\advance\CT@LCnum 1 + \CT@LColors}} +\def\CT@LCinit{% + \ifcolortab + \@ifundefined{LT@\romannumeral\c@LT@tables}% + {\gdef\CT@LCflag{1}}{\gdef\CT@LCflag{\z@}}% + \else + \gdef{CT@LCflag{1}}% + \fi + \ifnum\CT@LCflag=\z@ + \begingroup + \def\omit\kern##1&{% + \advance\CT@LCnum 1 + \CT@dim=##1\relax + \expandafter\xdef\csname LCdim@\the\CT@LCnum\endcsname{% + \number\CT@dim sp}}% + \CT@LCnum\z@ + \@nameuse{LT@\romannumeral\c@LT@tables}&% + \xdef\CT@LCmax{\the\CT@LCnum}% + \endgroup + \fi + \xdef\CT@LCinitflag{\the\c@LT@tables}} +\def\CT@LCinitflag{\z@} +\def\LC@Cell{% + \kern-\@tempdima + \ifnum\CT@LCflag=\z@ + \ifnum\CT@LCnum=\CT@LCmax\relax + \global\CT@LCnum 1 + \else + \global\advance\CT@LCnum 1 + \fi + \CT@dim=\@nameuse{LCdim@\the\CT@LCnum}\relax + \advance\CT@dim-\@tempdimb + \expandafter\ifx\csname LColor@\the\CT@LCnum\endcsname\@empty\else + \begingroup + \@nameuse{LColor@\the\CT@LCnum}{% + \vrule width\CT@dim}% + \endgroup + \kern-\CT@dim + \fi + \fi} +\def\LC{\@tempdima=\z@\@tempdimb=\z@\LC@Cell} +\def\LCi{\LCi@\LC@Cell} +\def\LCi@{% + \@tempdima=\doublerulesep + \ifnum\CT@LCflag=\z@ + \ifnum\CT@LCnum=\CT@LCmax\relax + \@tempdimb=\arrayrulewidth + \else + \@tempdimb=\z@ + \fi + \fi} +\def\LCii{% + \@tempdima=\z@ + \@tempdimb=\doublerulesep + \advance\@tempdimb=\arrayrulewidth + \LC@Cell} +\def\LCiii{% + \LCi@ + \advance\@tempdimb\doublerulesep + \advance\@tempdimb\arrayrulewidth + \LC@Cell} +\def\LCz#1#2{% + \@tempdima=#1 + \@tempdimb=#2 + \LC@Cell} +% +\catcode`\@=\TheAtCode\relax +\endinput +%% END colortab.tex/colortab.sty + +%% BEGIN colortab.doc +\def\FileVersion{0.9} +\def\FileDate{93/01/11} +%% +%% Documentation for colortab.tex/colortab.sty. +%% Run through LaTeX, with or without the NFSS. +%% +%% You need the file fancybox.sty, available from Princeton.EDU:/pub/tvz +%% +%% The color commands \gray and \lightgray must be defined if you +%% want to see the examples. pstricks.tex will be loaded for this +%% purpose if it is found. Otherwise, you must load your own +%% color commands. +%% +%% Change these if using different size paper. You can also include the +%% twosided style option, if desired: + +\def\paperwidth{8.5in} +\def\paperheight{11in} + +\documentstyle[12pt,fancybox]{article} + +\makeatletter + +% Load pstricks.tex if it is found: +\@input{pstricks.tex} + +% Input colortab.tex here to check file version: +\input colortab.tex +\ifx\FileVersion\fileversion\else + \@latexerr{colortab input file and documentation do not have the same + version}\@ehd +\fi + +% DATES, VERSIONS AND TITLES: + +\def\expanddate#1/#2/#3/{\year=19#1 \month=#2 \day=#3} +\begingroup + \expandafter\expanddate\filedate/ + \xdef\thefiledate{\today} +\endgroup + +\title{Documentation for colortab.tex/colortab.sty:\\[5pt] + Shading and coloring \TeX\ tables} +\author{Timothy Van Zandt\\ tvz@Princeton.EDU} +\date{Version \fileversion\\ \thefiledate} + +\def\@maketitle{% + \begin{center} + {\Large\bf \@title \par} + \vskip 1.2em {\lineskip .5em + \begin{tabular}[t]{c}\@author\end{tabular}\par} + \vskip .8em {\@date}% + \end{center} + \par + \vskip .5em} + +% PAGE STYLE: + +\pagestyle{myheadings} +\if@twoside + \markboth{Documentation for colortab.tex/.sty}% + {Version \fileversion, \thefiledate}% +\else + \markright{colortab.tex, Version \fileversion} +\fi + +% TABLE OF CONTENTS + +\newskip\myskip + +\def\tableofcontents{% + \par\vfill + \begin{quote} + \begin{center} \Large\bf Contents \end{center} + \def\numberline##1{\hbox to 0pt{\hss##1\hskip 1em}}% + \let\oldaddvspace\addvspace + \def\addvspace##1{% + \myskip##1\relax + \oldaddvspace{.5\myskip}} + \@starttoc{toc}% + \end{quote} + \thispagestyle{empty} + \vfill + \clearpage} + + +% PAGE PARAMETERS: + +% Paragraphs are marked by large space rather than indentation: +\parindent 0pt +\parskip 7pt plus 1pt minus 1pt + +\setlength{\topmargin}{0pt} +\setlength{\headheight}{12pt} % height of running head +\setlength{\headsep}{30pt} % distance between header and text +\setlength{\textheight}{8.2in} % height of text on page + +% Adjust margins for different paper size: +\@tempdima=\paperwidth +\advance\@tempdima-8.5in +\advance\oddsidemargin .5\@tempdima +\advance\evensidemargin .5\@tempdima +\@tempdima=\paperheight +\advance\@tempdima-11in +\advance\topmargin .5\@tempdima + +% VERBATIM HACKS: + +\VerbatimFootnotes + +% Short meta (works in verbatim. Can't use < for other purposes. +\catcode`\<=13 \def<#1>{{\rm\it #1\/}} % <meta> (works in verbatim) + +% Short verbatim. " can appear in verbatim environments. +\def\temp{\Verb"} +\expandafter\def\expandafter\dospecials\expandafter{\dospecials\do\"} +\catcode`\"=13 +\let"\temp + +\def\n#1{{\tt\string#1}} + +% Verbatim item: +\newcommand{\vitem}{\SaveVerb[{\def\bf{}\item[\UseVerb{\MyTemp}]}]{\MyTemp}} + +% Verbatim section" + +% EXAMPLES: +% 1. Save example verbatim to \jobname.tmp, +% 2. Input verbatim with \catcode`\"=14 (" is a comment). +% 3. Input again with \catcode\`"=9 (" is ignored). + +\renewcommand{\EveryVerbatimLine}[2]{} + +\renewcommand{\EveryVerbOutLine}[2]{} + +\newcommand{\BeginExample}{% + \VerbatimEnvironment\begin{VerbatimOut}{\jobname.tmp}} + +\newcommand{\EndExample}{% + \end{VerbatimOut}%. + \renewcommand{\EveryVerbatimLine}{}% + \renewcommand{\EveryVerbatimCodes}{\catcode`\"=14}% + \LVerbatimInput{\jobname.tmp}% + \catcode`\"=9} + +\@ifundefined{lightgray}{\@testfalse}% + {\@ifundefined{gray}{\@testfalse}{\@testtrue}} + +\if@test + +\newenvironment{example}{\BeginExample}{\EndExample + \begin{center}\leavevmode\input{\jobname.tmp}\end{center}} + +\else + +\newenvironment{example}{\VerbatimEnvironment\LVerbatim}{\endLVerbatim} + +\fi + +% END PREAMBLE: +\makeatother + +\begin{document} + +\maketitle + +\begin{quote} +"colortab.tex/colortab.sty" contains macros that let you use your color +commands for shading and coloring cells in tables and other alignment +environments. It is compatible with most \TeX\ macro packages. +\end{quote} + +\tableofcontents + +\section{Introduction} + +Adding color to tables is fraught with difficulties, but as the examples in +this file indicate, it can be done. In any case, consider this an advanced +topic, and be aware that the commands in "colortab.tex" are not robust. + +This is meant to supplement your own color commands. There are many macro +files that implement color for the various "dvi" drivers that can support +color. E.g., the PSTricks package works with a variety of DVI-to-PS drivers. + +For example, suppose you have a macro that defines the color command "\gray". +"colortab.tex" requires that one of the following produce a gray line: +\begin{LVerbatim} + {\gray \hrule} + \gray{\hrule} +\end{LVerbatim} +if you want to use this command to color the cells in tables. +This is probably the case if the one of the following produces gray text: +\begin{LVerbatim} + {\gray I am gray!} + \gray{I am gray!} +\end{LVerbatim} + +"colortab.tex" contains macros for \TeX's "\halign" primitive. Incorporating +color into high-level macros based on the "\halign" primitive requires a +case-by-case treatment. "colortab.tex" also contains macros for coloring cells +\LaTeX's various array environments, and for the \LaTeX\ "longtable" +environment that is defined in the "longtable" (or "longtabl") style option. +These can serve as examples that can be accommodated to other table macros. +See the code itself for happy hacking. + +\section{\TeX's halign primitive} + +To shade cells in an alignment, use +\begin{LVerbatim} + \coloralign +\end{LVerbatim} +instead of "\halign". Then, to color the columns in one or more rows, type +\begin{LVerbatim} + \CC + <row of colors>\cr + <rows to be colored>\cr + \ECC +\end{LVerbatim} +For example: +\begin{example} + \setbox\strutbox=\hbox{\vrule height11.5pt + depth6.5pt width0pt}% + \vbox{\offinterlineskip + \coloralign{% + \vrule\strut\quad\hfil#\hfil\quad + &\vrule\quad\hfil#\quad\vrule\cr + \noalign{\hrule}% + \CC + \gray &\cr + Tamarind&Chiplote\cr + \ECC\noalign{\hrule}% + \CC + \lightgray &\gray\cr + Lulu&Serrano\cr\noalign{\hrule}% + Guanabana&Larga\cr + \ECC\noalign{\hrule}% + }} +\end{example} + +"\CC" and "\ECC" stand for ``ColorCells'' and ``EndColorCells'', respectively. +You cannot change the name of "\ECC" with "\let" or "\def" (without redefining +"\CC"), because it is really just a delimiter. This is also true of the first +"\cr", which marks the end of the row of color commands. +Remember that only complete rows can go between "\CC" and "\ECC". Where you +include horizontal lines is generally inconsequential. You can have nested +"\coloralign" environments, but the nested environment must be enclosed in +brackets "{}". There is no "\coloralign to" or "\coloralign spread" because +the space inserted by "\tabskip" won't be shaded. + +These macros are not very robust. You can make best use of them by knowing how +they work. "\coloralign" just saves the preamble, and otherwise is identical +to "\halign". "\CC" finds the height of the rows that have to be colored, and +then "\CC" draws a rectangle using \TeX's line-drawing primitives in each +cell, colored by the color commands included in the first line that follows +"\CC". E.g., +\begin{LVerbatim} + \yellow &&\red \cr +\end{LVerbatim} +draws a yellow rectangle in column 1, nothing in column 2, and a red rectangle +in column 3. Then "\CC" goes back up the height of the rectangle, so that +\TeX's current point is back where it was when "\CC" started. At this point, +"\CC" has finished its work. When the next rows of the alignment environment +are processed by "\halign", they are put down on top of the rectangles, and +hence have colored backgrounds. + +"\CC" finds the height of the rows to be colored by putting the rows into an +"\halign" environment, using the preamble that was saved by "\coloralign", and +then measuring the height of the resulting box. + +\section{\LaTeX\ array environments} + +Cells can be colored in a \LaTeX\ array without using a special array +environment (i.e., there is no \LaTeX\ analog to "\coloralign"). Use "\LCC" +instead of "\CC", and use "\\" to end the row of color commands instead of +"\cr". For example: +\begin{example} + \def\arraystretch{1.5}% + \begin{tabular}{|l|c|}\hline + \LCC + \gray & \\ + Tamarind & Chiplote \\ \hline + \ECC + \LCC + \lightgray & \gray\\ + Lulu & Serrano\\ \hline + Guanabana & Larga\\ \hline + \ECC + \end{tabular} +\end{example} +The same caveats apply as with the "\coloralign" environment. + +When \n\LCC\ and \n\ECC\ are used with Frank Mittelbach's "array.sty", nested +array-type environments and "\multicolumn" commands wipe out information +needed by \n\ECC\. Here is a workaround: Put "\SP" (``SavePreamble'') at the +beginning of the array-type environment (right after the column declarations), +and put "\RP" (``RestorePreamble'') at the end of each line containing a +"\multicolumn" command or nested array-type environment (after the "\\", and +before the \n\ECC). For example: +\begin{LVerbatim} + \begin{tabular}{|l|c|}\SP\hline + \LCC + \gray & \\ + \multicolumn{2}{c}{Tamarind}\\ \RP \hline + \ECC + \end{tabular} +\end{LVerbatim} +Further nesting (e.g., an array within a "\multicolumn", or a "\multicolumn" +or array within a nested array) sometimes works and sometimes doesn't. You +will have to figure that one out for yourself. + + +\section{longtable.sty} + +"longtable.sty", by David Carlisle, defines the "longtable" environment, for +making multipage tables. "\LCC" will not work with "longtable". However, +"colortab" contains other macros that will work, if you use "longtable.sty" in +conjunction with Frank Mittelbach's "array.sty". These macros have been tested +only briefly, with version 3.04 of "longtable.sty" and version 2.1b of +"array.sty". + +Before every column identifier in the environment's argument (e.g., "c", "l", +"r", "p", "m" or "b"), put +\begin{description} + \vitem"!{\LC}" If none of the below applies; + \vitem"!{\LCi}" If the column is preceded by one or more vertical lines; + \vitem"!{\LCii}" If the column is followed by two vertical lines; + \vitem"!{\LCiii}" If the column is preceded by one or more vertical lines +and followed by two vertical lines. + \vitem"!{\LCz{<len1>}{<len2>}}" If "colortab" should back up by <len1> +before drawing the background, and should draw the background <len2> shorter +than the width of the column. +\end{description} +Remember that you have to do this for every column, not just the columns that +you want to color. + +Then include +\begin{LVerbatim} + \LColors <color> & <color> & ... & <color>\\ +\end{LVerbatim} +in the first row of the environment, and later on as well if you wish to +change the colors. Here also you have to include every column, but you can +leave an entry blank if you don't want any background color in that column. + +The color comes out right, or at all, only after you have run the file enough +times for "longtable.sty" to set the alignment correctly. + +Here is an example. The output will appear in this documentation only if +"longtable.sty" or "longtabl.sty" is installed on your system. +\begingroup + \makeatletter + \catcode`\<=12 + \@input{longtable.sty}% + \@input{longtabl.sty}% + \@input{array.sty}% + \@testtrue + \@ifundefined{c@LT@tables}{\@testfalse}{}% + \@ifundefined{d@llarbegin}{\@testfalse}{}% + \if@test\else + \renewenvironment{example}{\VerbatimEnvironment\LVerbatim}{\endLVerbatim}% + \fi + \makeatother +\begin{example} + \LARGE + \begin{longtable}{|!{\LCiii}l||!{\LCi}c|!{\LCi}c|}\hline + \LColors \gray & & \\ + Tamarind & Chiplote & Galanga\\ \hline + \LColors \lightgray & & \gray\\ + Lulu & & Serrano\\ \hline + Guanabana & Larga &\\ \hline + \end{longtable} +\end{example} +\endgroup + +\section{Coloring lines} + +Let's begin with the "\halign" environment. Changing the color of lines is +easy, because if you write, say, "{\gray\hrule}", then the line comes out +gray. For example: +\begin{example} + % Thicker lines and wider spacing give better view: + \setbox\strutbox=\hbox{% + \vrule height15.5pt depth8.5pt width0pt}% + \def\Hrule{\hrule height 2.5pt}% + \def\Vrule{\vrule width 2.5pt}% + % Now the table: + \vbox{\offinterlineskip + \halign{% + {\lightgray\Vrule}\strut\quad\hfil#\hfil\quad + &{\gray\Vrule}\quad\hfil#\quad\Vrule\cr + \noalign{\Hrule}% + Tamarind& Chiplote\cr\noalign{{\darkgray\Hrule}}% + Lulu& Serrano\cr\noalign{\Hrule}% + Guanabana& Larga\cr\noalign{{\lightgray\Hrule}}% + }} +\end{example} + +With \LaTeX, you can add an entry like +\begin{LVerbatim} + @{\hspace{\tabcolsep}{\gray\vrule}\hspace{\tabcolsep}} +\end{LVerbatim} +to the argument of the alignment environment, instead of "|", if you want to +color the vertical line that is drawn. If using "array.sty", you can try: +\begin{LVerbatim} + !{{\gray\vrule}} +\end{LVerbatim} + +To color horizontal lines with \LaTeX, don't bother trying +\begin{LVerbatim} + {\gray\hline} +\end{LVerbatim} +because it won't work. You write your own version of "\hline" and "\cline", or +use the non-aligned color commands described in the next section. + +\section{Non-aligned color with PSTricks} + +Here are a few other commands that can be useful for adding color to tables. +{\bf They only work with PSTricks, v0.93 or later.} <color> in this case is +the name of the color, without the backslash. These fudge the color commands +so that they do not have to be balanced with respect to \TeX\ grouping. You +can achieve the same thing using "\special{<raw postscript>}" and "\noalign", +if you know what you are doing. These should work with just about any +alignment macro, include "\halign" and \LaTeX's "tabular" environment. + +\begin{description} + +\vitem"\AC{<color>} ... \EAC" \ + + These stand for "AlignColor" and "EndAlignColor", respectively. <color> is +the name of the color, without a backslash, rather than a color command. This +can be used within a cell, but they do not have to be within the same cell, +nor do they have to be properly nested with respect to \TeX\ grouping. +Generally, "\AC{<color>}" switches to <color>, and \n\EAC\ restores the color +that would be in effect if the first \n\AC\ command were missing. + +\vitem"\NAC{<color>} ... \ENAC" \ + + These stand for "NoAlignColor" and "EndNoAlignColor", respectively. These +are like \n\AC\ and \n\EAC, but the color commands are put inside a +"\noalign". They can only appear at the end of a line, after "\\" or "\cr". + +\end{description} +Actually, these do not even have to be used in pairs. + +Here is an example of how "\AC", etc., can be used. to color lines in \LaTeX\ +arrays. The output will appear in this documentation only if PSTricks is +installed on your system: +\begingroup +\ifx\PSTricksLoaded\endinput\else + \renewenvironment{example}{\VerbatimEnvironment\LVerbatim}{\endLVerbatim} +\fi +\begin{example} + \arrayrulewidth 1.5pt + \begin{tabular}{|l|c|}\hline + Tamarind& Chiplote\\ \NAC{gray}\hline\ENAC + Lulu& Serrano\\ \cline{1-1} + \NAC{lightgray}\cline{2-2}\ENAC + Guanabana\AC{lightgray} & \EAC Larga\\ \hline + \end{tabular} +\end{example} +\endgroup + +\end{document} +%% END colortab.doc diff --git a/Master/texmf-dist/tex/generic/colortab/colortab.sty b/Master/texmf-dist/tex/generic/colortab/colortab.sty new file mode 100644 index 00000000000..23363a92093 --- /dev/null +++ b/Master/texmf-dist/tex/generic/colortab/colortab.sty @@ -0,0 +1,10 @@ +%% $Id: pst-3dplot.sty 294 2010-02-18 21:15:47Z herbert $ +\RequirePackage{pstricks} +\RequirePackage{fancybox} +\ProvidesPackage{colortab}[2010/05/13 package wrapper for + colortab.tex (hv)] +\input{colortab.tex} +\ProvidesFile{colortab.tex} + [\filedate\space v\fileversion\space `colortab' (tvz)] +\endinput + diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index f7577569a22..1a977ed6148 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -72,7 +72,7 @@ my @TLP_working = qw( clefval cleveref clock clrscode cm-super cmap cmcyr cmdstring cmdtrack cmll cmpica codedoc codepage - collref colorinfo colorsep colortbl colorwav + collref colorinfo colorsep colortab colortbl colorwav combelow combine combinedgraphics comma commath comment compactbib complexity comprehensive computational-complexity concmath concmath-fonts confproc constants diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index fe54dfc716d..bb88603c260 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -157,7 +157,6 @@ $Master = "$mydir/../.."; 'cmastro', "die 'skipping, noinfo license, author unknown'", 'cmbright', "&MAKEflatten", 'cmcyr', "&MAKEflatten", - 'colortab', "die 'skipping, nosell license'", 'comicsans', "die 'skipping, Comic Sans is nonfree'", 'compact', "die 'skipping, nonfree license'", 'concmath-fonts', "&MAKEflatten", @@ -1291,7 +1290,7 @@ $standarddocfmt='latex'; $standardsourcefmt='latex'; -$standardsource='\.fdd|\.dtx|\.ins|\.c$|Makefile|configure.*|install-sh|\.drv'; +$standardsource='\.fdd|\.dtx|\.ins|\.c$|configure.*|install-sh|\.drv'; %specialsource= ( 'FAQ-en', 'NULL', 'ae', '\.mtx|\.etx|\.tex|clean|go|install|makepl', diff --git a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc index b784cccc64b..242c0b7caaf 100644 --- a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc @@ -96,6 +96,7 @@ depend cmsd depend codedoc depend codepage depend colorinfo +depend colortab depend colorwav depend combelow depend combine diff --git a/Master/tlpkg/tlpsrc/colortab.tlpsrc b/Master/tlpkg/tlpsrc/colortab.tlpsrc new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/Master/tlpkg/tlpsrc/colortab.tlpsrc |