1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
% File: tabularkv.sty
% Version: 2005/07/22 v1.0
% Author: Heiko Oberdiek
% Email: <oberdiek@uni-freiburg.de>
%
% Copyright: Copyright (C) 2005 Heiko Oberdiek.
%
% This work may be distributed and/or modified under
% the conditions of the LaTeX Project Public License,
% either version 1.3 of this license or (at your option)
% any later version. The latest version of this license
% is in
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions
% of LaTeX version 2003/12/01 or later.
%
% This work has the LPPL maintenance status "maintained".
%
% This Current Maintainer of this work is Heiko Oberdiek.
%
% Function: This package adds a key value interface for tabular
% by the new environment "tabularkv". Thus the TeX
% source code looks better by named parameters,
% especially if package "tabularht" is used.
%
% Use: \usepackage{tabularkv}
%
% The package provides the environment "tabularkv"
% that takes an optional argument with tabular
% parameters:
% * width (width specification, "tabular*" is used)
% * x (width specification, "tabularx" is used,
% package "tabularx" must be loaded)
% * height (height specification, see package tabularht)
% * valign (vertical positioning, this option is optional)
% values: top, bottom, center
%
% Parameter "valign" optional, the following are
% equivalent:
% \begin{tabularkv}[..., valign=top]{l}...\end{tabularkv}
% \begin{tabularkv}[...][t]{l}...\end{tabularkv}
%
% Example:
% \documentclass{article}
% \usepackage{tabularkv}
%
% \begin{document}
% \fbox{%
% \begin{tabularkv}[
% width=4in,
% height=1in,
% valign=center
% ]{@{}l@{\extracolsep{\fill}}r@{}}
% upper left corner & upper right corner\\%
% \noalign{\vfill}%
% \multicolumn{2}{@{}c@{}}{bounding box}\\
% \noalign{\vfill}%
% lower left corner & lower right corner\\
% \end{tabularkv}%
% }
% \end{document}
%
% Installation:
% CTAN location: CTAN:macros/latex/contrib/oberdiek/tabularkv.sty
% TDS location: TDS:tex/latex/oberdiek/tabularkv.sty
%
% History: 2005/09/22 v1.0:
% * first public version,
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{tabularkv}
[2005/09/22 v1.0 Key value interface for tabular parameters]
\RequirePackage{keyval}
\RequirePackage{tabularht}
\let\tabKV@star@x\@empty
\let\tabKV@width\@empty
\let\tabKV@valign\@empty
\define@key{tabKV}{height}{%
\setlength{\dimen@}{#1}%
\edef\@toarrayheight{to\the\dimen@}%
}
\define@key{tabKV}{width}{%
\def\tabKV@width{{#1}}%
\def\tabKV@star@x{*}%
}
\define@key{tabKV}{x}{%
\def\tabKV@width{{#1}}%
\def\tabKV@star@x{x}%
}
\define@key{tabKV}{valign}{%
\edef\tabKV@valign{[\@car #1c\@nil]}%
}
\newenvironment{tabularkv}[1][]{%
\setkeys{tabKV}{#1}%
\@nameuse{%
tabular\tabKV@star@x\expandafter\expandafter\expandafter
}%
\expandafter\tabKV@width\tabKV@valign
}{%
\@nameuse{endtabular\tabKV@star@x}%
}
\endinput
|