Divne chovani tabulek v LaTeXu?

BALDA MIROSLAV mbalda at hera.zcu.cz
Thu May 7 13:59:29 CEST 1998


> Date:          Thu, 7 May 1998 09:24:29 +0100
> Reply-to:      csTeX at cs.felk.cvut.cz
> From:          Petr Kucera <pkucera at math.muni.cz>
> To:            csTeX at cs.felk.cvut.cz
> Subject:       Divne chovani tabulek v LaTeXu?

> Dobry den!
>
> 	Mam jeden takovy problem s tabulkami v LaTeXu. Vytvoril jsem si jedno
> makro, ktere mi funguje dobre, pokud neni pred nim tabulka. Vypada nasledovne:
>
> \newcommand{\nadpis}[2]{
>   \count120=\vsize
>   \count121=\pagetotal
>   \divide\count120 by 2
>   \ifnum\count120<\count121
>   \newpage
>   \noindent{#1#2}
>   \else
>   \vskip12ex
>   \noindent{#1#2}\fi
>   \vskip6ex
>   }
>
> 	Otazka zni: Je problem v mem makru nebo nekde jinde, popr. da se nejak
> odstranit?
>
> 	Dekuji za odpovedi.
>
> 		S pozdravem Petr Kucera.
>
Problem je v tom, ze se delka \pagetotal neupravuje vzdy ihned, takze
muze presahnout \vsize. Potom se treba napise nadpis po tabulce na
novou stranu, i kdyz by se bohate vesel na rozpracovanou.

Makro \nadpis jsem upravil takto:

1. Makro ma 3 parametry. Posledni uvadi, jakou delku (treba pocet
radek (v \baselineskip)), je treba za nadpisem rezervovat pro text.
V puvodnim makru se ponechavala polovina stranky na nadpis a 18ex
vertikalnich mezer.
2. Ihned na pocatku makra se testuje, zda je na strance dostatecny
prostor. Pokud je delka stranky zdanlive preplnena, uvolni se pro
talsi vystup.
3. Nepouzivam countery do kterych se v puvodni verzi transformovaly
delky prepoctem na scaled points, ale primo delkove registry.
4. Dale uvedeny priklad  je volen tak, ze na posledni strane prave
dochazi ke kritickemu stavu, ktery je vsak osetren prvnim testem.
pokud tento test vyradime, vytiskne se nadpis na novou stranu.
Kdyby se zrusilo % v posledni radce povelu \Text, ke kritickemu stavu
by nedochazelo.
%***************************************************************
\newlength{\obsaz} % \newcommand{\text}{Libovony text pro vyplneni
prostoru. } % \newcommand{\nadpis}[3]
{\ifdim \pagetotal>\vsize%
   \obsaz=0pt
 \else
   \obsaz=\pagetotal
 \fi
 \addtolength{\obsaz}{18ex}
 \addtolength{\obsaz}{#3}
 \ifdim \vsize<\obsaz%
   \newpage%
 \else%
   \vspace*{12ex}%
 \fi%
 \noindent{#1#2}%
 \vskip6ex%
}
\newcommand{\Text}
{\text \text \text \text \text \text \text \text \text \text \text
 \text \text \text \text \text \text \text \text \text \text \text
 \text \text \text \text \text \text \text \text \text \text \text
% \text \text \text

}
\newcommand{\tabulka}
{
 \begin{tabular}[t]{l}
   1. © radka	\\
   2. © radka	\\
   $\vdots$	\\
   predposledn¡	\i
   posledni
 \end{tabular}

}
\newcommand{\bls}{\baselineskip}
%***************************************************************
  \nadpis{\bf 1. }{\bf nadpis}{\bls}
  \Text \tabulka
  \nadpis{\bf 2. }{\bf nadpis}{\bls}
  \Text \tabulka
  \nadpis{\bf 3. }{\bf nadpis}{\bls}
  \Text \tabulka
  \nadpis{\bf 4. }{\bf nadpis}{\bls}
  \Text \tabulka
  \nadpis{\bf 5. }{\bf nadpis}{\bls}
  \Text \tabulka
  \nadpis{\bf 6. }{\bf nadpis}{\bls}
%***************************************************************

Doufam, ze tato uprava bude vyhovujici

M. Balda
**************************************************************
* Prof.Ing. Miroslav BALDA, DrSc.  | E-mail: mbalda at hera.zcu.cz
* Institute of Physical Engineering| Phone : ++42019 7236415-6
* Academy of Sciences              | Fax   : ++42019 7220787
* Veleslavinova 11                 |
* 301 14  Plzen                    | Home  : ++42019 227153
* Czech Republic                   |
**************************************************************




More information about the csTeX mailing list