LaTeX: tabulka s pevnou sirkou sloupcu?
David Necas (Yeti)
yeti at physics.muni.cz
Wed Nov 30 10:31:22 CET 2005
On Wed, Nov 30, 2005 at 09:45:44AM +0100, Jaromír Kuben wrote:
> Rudo Blasko napsal(a):
>
> >jedna zo zjednodusenych moznosti je,
> >ze odhadneme velkost najsirsieho stlpca a pouzijeme p{},
> >lenze potom musime stlpec centrovat rucne,
> >napriklad:
> >
> >\newcommand\xc[1]{\hfill #1\hfill\vphantom{.}}
> >
> >\begin{tabular}{|p{4em}|*{3}{p{4em}|}}
> >\hline
> >\xc{THEN} & \xc{FOR} & \xc{a} & \xc{b} \\ \hline
> >\xc{x} & \xc{d} & \xc{ECHO} & \xc{c} \\ \hline\hline
> >\end{tabular}
> >
> To centrovani pak lze udelat elegantneji.
> Pouzijte \usepackage{array}.
> Muzte pak definovat nove typy specifikace sloupcu
> a do definice pomoci >{} resp. <{} vlozit nejake prikazy,
> ktere se automaticke vkladaji do kazde polozky.
> Podrobnosti najdete v dokumentaci k balicku array.
Hlavni problem ovsem asi neni, jak dostat do definice
sloupcu cokoli (k tomu lze vzdy pouzit primo primitiv
\halign), ale jak zaridit stejne, a pritom minimalni sirky.
Pokud jsem spravne pochopil, o co jde. Lze sazet
dvoupruchodove, v prvnim pruchodu si jen zmerit sirky
a v druhem cetnrovat do boxu o jiz zname velikosti (pro
jednoduchost nekreslim cary):
\def\maketable#1{\halign{&\apply{##}\cr#1\crcr}}
\def\fwtable#1{
\dimen0=0pt
\def\apply##1{\setbox0=\hbox{##1}\ifnum\wd0>\dimen0 \global\dimen0=\wd0\fi}
\setbox0=\vbox{\maketable{#1}}
\def\apply##1{\hbox to\dimen0{\hfil##1\hfil}}
\maketable{#1}}
\fwtable{THEN&FOR&a&b\cr
x&d&ECHO&c\cr}
\bye
Slo by to nepochybne prepsat i s package array.
Yeti
--
That's enough.
More information about the csTeX
mailing list