Sirka popisky

Antonin Strejc STREJC at vc.cvut.cz
Tue Sep 9 12:19:07 CEST 1997


Stanislav Hledik pise:

>     mam dotaz: potrebuji sazet v LaTeXu tabulky, jejichz popiska je
>nahore (nad tabulkou), pricemz sirka popisky je dana sirkou tabulky.
>Udelal jsem to pomoci prostredi minipage a tabular*, kdy explicitne
>zadavam sirku tabulky (a tim zaroven jeji popisky). Neslo by to
>jednoduseji bez pouziti minipage, tak, ze by se sirka popisky odvodila ze
>sirky tabulky (tabular bez *) dane jejim obsahem a parametry urcujicimi
>rozestupy sloupcu?

Dobry den,

podobny problem jsem pred casem resil take. Chtel jsem zavest
parametry, pomoci nichz by bylo mozne explicitne urcovat sirku
popisky generovane prikazem \caption, popripade sirku praveho
a leveho okraje. Zde je kus odladeneho stylu vcetne komentare:

%.............................zacatek ukazky
%
% POPISKY OBRAZKU A TABULEK
% ~~~~~~~~~~~~~~~~~~~~~~~~~
% \captionmargin  -- pozadovana velikost leveho a praveho okraje
%                    kolem popisky, po vysazeni popisky se
%                    automaticky vynuluje.
% \captionwidth   -- pozadovana sirka popisky, po vysazeni se take
%                    vynuluje.
%
% Je mozne nastavovat libovolne oba tyto parametry, \captionwidth
% vsak ma vyssi prioritu a je-li > 0pt, pak se uzivatelem stanoveny
% \captionmargin neuplatni, resp. pred vystupem popisky se provede
% vypocet \captionmargin podle pozadovane sirky, ktery pripadnou
% drive definovanou hodnotu \captionmargin prepise.
%
% Kratke popisky se sazeji centrovane, delsi se sazeji jako odstavec
% zleva i zprava odsazeny o \captionmargin, dalsi radky jsou navic
% zleva odsazene o sirku oznaceni.

\newdimen\captionmargin  \newdimen\captionwidth

\def\@setcaptionmargin{\captionmargin=\hsize \advance\captionmargin by
     -\captionwidth \captionmargin=.5\captionmargin}

\def\@makecaption#1#2{\ifdim\captionwidth>0pt\@setcaptionmargin\fi
    \setbox\@tempboxa=\hbox{#1: }
    \hangindent=\wd\@tempboxa\hangafter=\@ne
    \ifdim\hsize>.5\textwidth \leftskip=\captionmargin
    \rightskip=\leftskip\fi
    \setbox\@tempboxa=\hbox{\kern2\leftskip\box\@tempboxa\ignorespaces
    #2}\ifdim\wd\@tempboxa>\hsize\noindent\kern-2\leftskip%
    \unhbox\@tempboxa\par
    \else\hbox to \hsize{\hfil\kern-2\leftskip\box\@tempboxa\hfil}\fi
    \global\captionmargin=0pt\global\captionwidth=0pt}

%.......................konec ukazky


Toto byste mohl bez uprav pouzit. Jde jen o to, zmerit ve zdrojaku
potrebnou hodnotu \captionwidth, napriklad takto:

\setbox1=\hbox{\begin{tabular}...\end{tabular}}
\captionwidth=\wd1

\begin{table}
\caption{Text popisky tabulky}
\box1
\end{table}


S pozdravem
Antonin Strejc


---------------------------------------------------------------------
Ing. Antonin Strejc                            Phone: +420-2-24352938
---------------------------------------------------------------------
Czech Technical University in Prague                 Computing Centre
Czech Republic                               Zikova 4, 166 35 Praha 6
---------------------------------------------------------------------



More information about the csTeX mailing list