docs/_build/latex/tabulary.sty

changeset 11
79fea4145278
equal deleted inserted replaced
10:f6927689a3b2 11:79fea4145278
1 %%
2 %% This is file `tabulary.sty',
3 %% generated with the docstrip utility.
4 %%
5 %% The original source files were:
6 %%
7 %% tabulary.dtx (with options: `package')
8 %% DRAFT VERSION
9 %%
10 %% File `tabulary.dtx'.
11 %% Copyright (C) 1995 1996 2003 David Carlisle
12 %% This file may be distributed under the terms of the LPPL.
13 %% See 00readme.txt for details.
14 %%
15 \NeedsTeXFormat{LaTeX2e}
16 \ProvidesPackage{tabulary}
17 [2007/10/02 v0.9 tabulary package (DPC)]
18 \RequirePackage{array}
19 \catcode`\Z=14
20 \DeclareOption{debugshow}{\catcode`\Z=9\relax}
21 \ProcessOptions
22 \def\arraybackslash{\let\\=\@arraycr}
23 \def\@finalstrut#1{%
24 \unskip\ifhmode\nobreak\fi\vrule\@width\z@\@height\z@\@depth\dp#1}
25 \newcount\TY@count
26 \def\tabulary{%
27 \let\TY@final\tabular
28 \let\endTY@final\endtabular
29 \TY@tabular}
30 \def\TY@tabular#1{%
31 \edef\TY@{\@currenvir}%
32 {\ifnum0=`}\fi
33 \@ovxx\TY@linewidth
34 \@ovyy\TY@tablewidth
35 \count@\z@
36 \@tempswatrue
37 \@whilesw\if@tempswa\fi{%
38 \advance\count@\@ne
39 \expandafter\ifx\csname TY@F\the\count@\endcsname\relax
40 \@tempswafalse
41 \else
42 \expandafter\let\csname TY@SF\the\count@\expandafter\endcsname
43 \csname TY@F\the\count@\endcsname
44 \global\expandafter\let\csname TY@F\the\count@\endcsname\relax
45 \expandafter\let\csname TY@S\the\count@\expandafter\endcsname
46 \csname TY@\the\count@\endcsname
47 \fi}%
48 \global\TY@count\@ne
49 \TY@width\xdef{0pt}%
50 \global\TY@tablewidth\z@
51 \global\TY@linewidth#1\relax
52 Z\message{^^J^^JTable^^J%
53 Z Target Width: \the\TY@linewidth^^J%
54 Z \string\tabcolsep: \the\tabcolsep\space
55 Z \string\arrayrulewidth: \the\arrayrulewidth\space
56 Z \string\doublerulesep: \the\doublerulesep^^J%
57 Z \string\tymin: \the\tymin\space
58 Z \string\tymax: \the\tymax^^J}%
59 \let\@classz\TY@classz
60 \let\verb\TX@verb
61 \toks@{}\TY@get@body}
62 \let\TY@@mkpream\@mkpream
63 \def\TY@mkpream{%
64 \def\@addamp{%
65 \if@firstamp \@firstampfalse \else
66 \global\advance\TY@count\@ne
67 \edef\@preamble{\@preamble &}\fi
68 \TY@width\xdef{0pt}}%
69 \def\@acol{%
70 \TY@subwidth\col@sep
71 \@addtopreamble{\hskip\col@sep}}%
72 \let\@arrayrule\TY@arrayrule
73 \let\@classvi\TY@classvi
74 \def\@classv{\save@decl
75 \expandafter\NC@ecs\@nextchar\extracolsep{}\extracolsep\@@@
76 \sbox\z@{\d@llarbegin\@nextchar\d@llarend}%
77 \TY@subwidth{\wd\z@}%
78 \@addtopreamble{\d@llarbegin\the@toks\the\count@\relax\d@llarend}%
79 \prepnext@tok}%
80 \global\let\@mkpream\TY@@mkpream
81 \TY@@mkpream}
82 \def\TY@arrayrule{%
83 \TY@subwidth\arrayrulewidth
84 \@addtopreamble \vline}
85 \def\TY@classvi{\ifcase \@lastchclass
86 \@acol \or
87 \TY@subwidth\doublerulesep
88 \@addtopreamble{\hskip \doublerulesep}\or
89 \@acol \or
90 \@classvii
91 \fi}
92 \def\TY@tab{%
93 \setbox\z@\hbox\bgroup
94 \let\[$\let\]$%
95 \let\equation$\let\endequation$%
96 \col@sep\tabcolsep
97 \let\d@llarbegin\begingroup\let\d@llarend\endgroup
98 \let\@mkpream\TY@mkpream
99 \def\multicolumn##1##2##3{\multispan##1\relax}%
100 \CT@start\TY@tabarray}
101 \def\TY@tabarray{\@ifnextchar[{\TY@array}{\@array[t]}}
102 \def\TY@array[#1]{\@array[t]}
103 \def\TY@width#1{%
104 \expandafter#1\csname TY@\the\TY@count\endcsname}
105 \def\TY@subwidth#1{%
106 \TY@width\dimen@
107 \advance\dimen@-#1\relax
108 \TY@width\xdef{\the\dimen@}%
109 \global\advance\TY@linewidth-#1\relax}
110 \def\endtabulary{%
111 \gdef\@halignto{}%
112 \let\TY@footnote\footnote%
113 \def\footnote{}% prevent footnotes from doing anything
114 \expandafter\TY@tab\the\toks@
115 \crcr\omit
116 {\xdef\TY@save@row{}%
117 \loop
118 \advance\TY@count\m@ne
119 \ifnum\TY@count>\z@
120 \xdef\TY@save@row{\TY@save@row&\omit}%
121 \repeat}\TY@save@row
122 \endarray\global\setbox1=\lastbox\setbox0=\vbox{\unvbox1
123 \unskip\global\setbox1=\lastbox}\egroup
124 \dimen@\TY@linewidth
125 \divide\dimen@\TY@count
126 \ifdim\dimen@<\tymin
127 \TY@warn{tymin too large (\the\tymin), resetting to \the\dimen@}%
128 \tymin\dimen@
129 \fi
130 \setbox\tw@=\hbox{\unhbox\@ne
131 \loop
132 \@tempdima=\lastskip
133 \ifdim\@tempdima>\z@
134 Z \message{ecs=\the\@tempdima^^J}%
135 \global\advance\TY@linewidth-\@tempdima
136 \fi
137 \unskip
138 \setbox\tw@=\lastbox
139 \ifhbox\tw@
140 Z \message{Col \the\TY@count: Initial=\the\wd\tw@\space}%
141 \ifdim\wd\tw@>\tymax
142 \wd\tw@\tymax
143 Z \message{> max\space}%
144 Z \else
145 Z \message{ \@spaces\space}%
146 \fi
147 \TY@width\dimen@
148 Z \message{\the\dimen@\space}%
149 \advance\dimen@\wd\tw@
150 Z \message{Final=\the\dimen@\space}%
151 \TY@width\xdef{\the\dimen@}%
152 \ifdim\dimen@<\tymin
153 Z \message{< tymin}%
154 \global\advance\TY@linewidth-\dimen@
155 \expandafter\xdef\csname TY@F\the\TY@count\endcsname
156 {\the\dimen@}%
157 \else
158 \expandafter\ifx\csname TY@F\the\TY@count\endcsname\z@
159 Z \message{***}%
160 \global\advance\TY@linewidth-\dimen@
161 \expandafter\xdef\csname TY@F\the\TY@count\endcsname
162 {\the\dimen@}%
163 \else
164 Z \message{> tymin}%
165 \global\advance\TY@tablewidth\dimen@
166 \global\expandafter\let\csname TY@F\the\TY@count\endcsname
167 \maxdimen
168 \fi\fi
169 \advance\TY@count\m@ne
170 \repeat}%
171 \TY@checkmin
172 \TY@checkmin
173 \TY@checkmin
174 \TY@checkmin
175 \TY@count\z@
176 \let\TY@box\TY@box@v
177 \let\footnote\TY@footnote % restore footnotes
178 {\expandafter\TY@final\the\toks@\endTY@final}%
179 \count@\z@
180 \@tempswatrue
181 \@whilesw\if@tempswa\fi{%
182 \advance\count@\@ne
183 \expandafter\ifx\csname TY@SF\the\count@\endcsname\relax
184 \@tempswafalse
185 \else
186 \global\expandafter\let\csname TY@F\the\count@\expandafter\endcsname
187 \csname TY@SF\the\count@\endcsname
188 \global\expandafter\let\csname TY@\the\count@\expandafter\endcsname
189 \csname TY@S\the\count@\endcsname
190 \fi}%
191 \TY@linewidth\@ovxx
192 \TY@tablewidth\@ovyy
193 \ifnum0=`{\fi}}
194 \def\TY@checkmin{%
195 \let\TY@checkmin\relax
196 \ifdim\TY@tablewidth>\z@
197 \Gscale@div\TY@ratio\TY@linewidth\TY@tablewidth
198 \ifdim\TY@tablewidth <\linewidth
199 \def\TY@ratio{1}%
200 \fi
201 \else
202 \TY@warn{No suitable columns!}%
203 \def\TY@ratio{1}%
204 \fi
205 \count@\z@
206 Z \message{^^JLine Width: \the\TY@linewidth,
207 Z Natural Width: \the\TY@tablewidth,
208 Z Ratio: \TY@ratio^^J}%
209 \@tempdima\z@
210 \loop
211 \ifnum\count@<\TY@count
212 \advance\count@\@ne
213 \ifdim\csname TY@F\the\count@\endcsname>\tymin
214 \dimen@\csname TY@\the\count@\endcsname
215 \dimen@\TY@ratio\dimen@
216 \ifdim\dimen@<\tymin
217 Z \message{Column \the\count@\space ->}%
218 \global\expandafter\let\csname TY@F\the\count@\endcsname\tymin
219 \global\advance\TY@linewidth-\tymin
220 \global\advance\TY@tablewidth-\csname TY@\the\count@\endcsname
221 \let\TY@checkmin\TY@@checkmin
222 \else
223 \expandafter\xdef\csname TY@F\the\count@\endcsname{\the\dimen@}%
224 \advance\@tempdima\csname TY@F\the\count@\endcsname
225 \fi
226 \fi
227 Z \dimen@\csname TY@F\the\count@\endcsname\message{\the\dimen@, }%
228 \repeat
229 Z \message{^^JTotal:\the\@tempdima^^J}%
230 }
231 \let\TY@@checkmin\TY@checkmin
232 \newdimen\TY@linewidth
233 \def\tyformat{\everypar{{\nobreak\hskip\z@skip}}}
234 \newdimen\tymin
235 \tymin=10pt
236 \newdimen\tymax
237 \tymax=2\textwidth
238 \def\@testpach{\@chclass
239 \ifnum \@lastchclass=6 \@ne \@chnum \@ne \else
240 \ifnum \@lastchclass=7 5 \else
241 \ifnum \@lastchclass=8 \tw@ \else
242 \ifnum \@lastchclass=9 \thr@@
243 \else \z@
244 \ifnum \@lastchclass = 10 \else
245 \edef\@nextchar{\expandafter\string\@nextchar}%
246 \@chnum
247 \if \@nextchar c\z@ \else
248 \if \@nextchar l\@ne \else
249 \if \@nextchar r\tw@ \else
250 \if \@nextchar C7 \else
251 \if \@nextchar L8 \else
252 \if \@nextchar R9 \else
253 \if \@nextchar J10 \else
254 \z@ \@chclass
255 \if\@nextchar |\@ne \else
256 \if \@nextchar !6 \else
257 \if \@nextchar @7 \else
258 \if \@nextchar <8 \else
259 \if \@nextchar >9 \else
260 10
261 \@chnum
262 \if \@nextchar m\thr@@\else
263 \if \@nextchar p4 \else
264 \if \@nextchar b5 \else
265 \z@ \@chclass \z@ \@preamerr \z@ \fi \fi \fi \fi\fi \fi \fi\fi \fi
266 \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi}
267 \def\TY@classz{%
268 \@classx
269 \@tempcnta\count@
270 \ifx\TY@box\TY@box@v
271 \global\advance\TY@count\@ne
272 \fi
273 \let\centering c%
274 \let\raggedright\noindent
275 \let\raggedleft\indent
276 \let\arraybackslash\relax
277 \prepnext@tok
278 \ifnum\@chnum<4
279 \global\expandafter\let\csname TY@F\the\TY@count\endcsname\z@
280 \fi
281 \ifnum\@chnum=6
282 \global\expandafter\let\csname TY@F\the\TY@count\endcsname\z@
283 \fi
284 \@addtopreamble{%
285 \ifcase\@chnum
286 \hfil \d@llarbegin\insert@column\d@llarend \hfil \or
287 \kern\z@
288 \d@llarbegin \insert@column \d@llarend \hfil \or
289 \hfil\kern\z@ \d@llarbegin \insert@column \d@llarend \or
290 $\vcenter\@startpbox{\@nextchar}\insert@column \@endpbox $\or
291 \vtop \@startpbox{\@nextchar}\insert@column \@endpbox \or
292 \vbox \@startpbox{\@nextchar}\insert@column \@endpbox \or
293 \d@llarbegin \insert@column \d@llarend \or% dubious "s" case
294 \TY@box\centering\or
295 \TY@box\raggedright\or
296 \TY@box\raggedleft\or
297 \TY@box\relax
298 \fi}\prepnext@tok}
299 \def\TY@box#1{%
300 \ifx\centering#1%
301 \hfil \d@llarbegin\insert@column\d@llarend \hfil \else
302 \ifx\raggedright#1%
303 \kern\z@%<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
304 \d@llarbegin \insert@column \d@llarend \hfil \else
305 \ifx\raggedleft#1%
306 \hfil\kern\z@ \d@llarbegin \insert@column \d@llarend \else
307 \ifx\relax#1%
308 \d@llarbegin \insert@column \d@llarend
309 \fi \fi \fi \fi}
310 \def\TY@box@v#1{%
311 \vtop \@startpbox{\csname TY@F\the\TY@count\endcsname}%
312 #1\arraybackslash\tyformat
313 \insert@column\@endpbox}
314 \newdimen\TY@tablewidth
315 \def\Gscale@div#1#2#3{%
316 \setlength\dimen@{#3}%
317 \ifdim\dimen@=\z@
318 \PackageError{graphics}{Division by 0}\@eha
319 \dimen@#2%
320 \fi
321 \edef\@tempd{\the\dimen@}%
322 \setlength\dimen@{#2}%
323 \count@65536\relax
324 \ifdim\dimen@<\z@
325 \dimen@-\dimen@
326 \count@-\count@
327 \fi
328 \loop
329 \ifdim\dimen@<8192\p@
330 \dimen@\tw@\dimen@
331 \divide\count@\tw@
332 \repeat
333 \dimen@ii=\@tempd\relax
334 \divide\dimen@ii\count@
335 \divide\dimen@\dimen@ii
336 \edef#1{\strip@pt\dimen@}}
337 \long\def\TY@get@body#1\end
338 {\toks@\expandafter{\the\toks@#1}\TY@find@end}
339 \def\TY@find@end#1{%
340 \def\@tempa{#1}%
341 \ifx\@tempa\TY@\def\@tempa{\end{#1}}\expandafter\@tempa
342 \else\toks@\expandafter
343 {\the\toks@\end{#1}}\expandafter\TY@get@body\fi}
344 \def\TY@warn{%
345 \PackageWarning{tabulary}}
346 \catcode`\Z=11
347 \AtBeginDocument{
348 \@ifpackageloaded{colortbl}{%
349 \expandafter\def\expandafter\@mkpream\expandafter#\expandafter1%
350 \expandafter{%
351 \expandafter\let\expandafter\CT@setup\expandafter\relax
352 \expandafter\let\expandafter\CT@color\expandafter\relax
353 \expandafter\let\expandafter\CT@do@color\expandafter\relax
354 \expandafter\let\expandafter\color\expandafter\relax
355 \expandafter\let\expandafter\CT@column@color\expandafter\relax
356 \expandafter\let\expandafter\CT@row@color\expandafter\relax
357 \@mkpream{#1}}
358 \let\TY@@mkpream\@mkpream
359 \def\TY@classz{%
360 \@classx
361 \@tempcnta\count@
362 \ifx\TY@box\TY@box@v
363 \global\advance\TY@count\@ne
364 \fi
365 \let\centering c%
366 \let\raggedright\noindent
367 \let\raggedleft\indent
368 \let\arraybackslash\relax
369 \prepnext@tok
370 \expandafter\CT@extract\the\toks\@tempcnta\columncolor!\@nil
371 \ifnum\@chnum<4
372 \global\expandafter\let\csname TY@F\the\TY@count\endcsname\z@
373 \fi
374 \ifnum\@chnum=6
375 \global\expandafter\let\csname TY@F\the\TY@count\endcsname\z@
376 \fi
377 \@addtopreamble{%
378 \setbox\z@\hbox\bgroup\bgroup
379 \ifcase\@chnum
380 \hskip\stretch{.5}\kern\z@
381 \d@llarbegin\insert@column\d@llarend\hskip\stretch{.5}\or
382 \kern\z@%<<<<<<<<<<<<<<<<<<<<<<<<<<<
383 \d@llarbegin \insert@column \d@llarend \hfill \or
384 \hfill\kern\z@ \d@llarbegin \insert@column \d@llarend \or
385 $\vcenter\@startpbox{\@nextchar}\insert@column \@endpbox $\or
386 \vtop \@startpbox{\@nextchar}\insert@column \@endpbox \or
387 \vbox \@startpbox{\@nextchar}\insert@column \@endpbox \or
388 \d@llarbegin \insert@column \d@llarend \or% dubious s case
389 \TY@box\centering\or
390 \TY@box\raggedright\or
391 \TY@box\raggedleft\or
392 \TY@box\relax
393 \fi
394 \egroup\egroup
395 \begingroup
396 \CT@setup
397 \CT@column@color
398 \CT@row@color
399 \CT@do@color
400 \endgroup
401 \@tempdima\ht\z@
402 \advance\@tempdima\minrowclearance
403 \vrule\@height\@tempdima\@width\z@
404 \unhbox\z@
405 }\prepnext@tok}%
406 \def\TY@arrayrule{%
407 \TY@subwidth\arrayrulewidth
408 \@addtopreamble{{\CT@arc@\vline}}}%
409 \def\TY@classvi{\ifcase \@lastchclass
410 \@acol \or
411 \TY@subwidth\doublerulesep
412 \ifx\CT@drsc@\relax
413 \@addtopreamble{\hskip\doublerulesep}%
414 \else
415 \@addtopreamble{{\CT@drsc@\vrule\@width\doublerulesep}}%
416 \fi\or
417 \@acol \or
418 \@classvii
419 \fi}%
420 }{%
421 \let\CT@start\relax
422 }
423 }
424 {\uccode`\*=`\ %
425 \uppercase{\gdef\TX@verb{%
426 \leavevmode\null\TX@vwarn
427 {\ifnum0=`}\fi\ttfamily\let\\\ignorespaces
428 \@ifstar{\let~*\TX@vb}{\TX@vb}}}}
429 \def\TX@vb#1{\def\@tempa##1#1{\toks@{##1}\edef\@tempa{\the\toks@}%
430 \expandafter\TX@v\meaning\@tempa\\ \\\ifnum0=`{\fi}}\@tempa!}
431 \def\TX@v#1!{\afterassignment\TX@vfirst\let\@tempa= }
432 \begingroup
433 \catcode`\*=\catcode`\#
434 \catcode`\#=12
435 \gdef\TX@vfirst{%
436 \if\@tempa#%
437 \def\@tempb{\TX@v@#}%
438 \else
439 \let\@tempb\TX@v@
440 \if\@tempa\space~\else\@tempa\fi
441 \fi
442 \@tempb}
443 \gdef\TX@v@*1 *2{%
444 \TX@v@hash*1##\relax\if*2\\\else~\expandafter\TX@v@\fi*2}
445 \gdef\TX@v@hash*1##*2{*1\ifx*2\relax\else#\expandafter\TX@v@hash\fi*2}
446 \endgroup
447 \def\TX@vwarn{%
448 \@warning{\noexpand\verb may be unreliable inside tabularx/y}%
449 \global\let\TX@vwarn\@empty}
450 \endinput
451 %%
452 %% End of file `tabulary.sty'.

mercurial