[cstex] dlouhé tabulky

Zdenek Wagner zdenek.wagner at gmail.com
Fri Jan 18 13:52:07 CET 2013


Dne 18. ledna 2013 13:41 Josef Tkadlec <tkadlec at fel.cvut.cz> napsal(a):
> Moc díky, tohle funguje.
>
> Jenom dostávám hromadu (těch tabulek jsou stovky) chybových hlášek
> "Underfull \vbox (badness 10000) detected at line ..." ve kterých se ztratí
> vše ostatní. Ony byly už předtím (generovány asi longtable), ale bylo jich
> podstatně méně. Přitom mám \raggedbottom, takže by se vůbec neměly
> vyskytovat. Dá se to nějak odstranit?
>
> Vím, že se dá nastavit \vbadness=10000, ale to myslím potlačí i výpisy
> overfull, což bych nechtěl.
>
Pokud vím, hlášení overfull se potlačit nedá. Pokud máte
\raggedbottom, pak by na konci stránky měl být automaticky vložen
\vfill, takže underfull musí vznikat někde jinde. A nebo je někde
nějaký kód, který ten implicitní \vfill něčím kompenzuje, takže
roztažitelnost zmizí. Asi by to chtělo zapnout nějaké trasování a
podívat se, jak se kompletují boxy a jak se kompletuje stránka (viz
TBN).

> Josef Tkadlec
>
> Zdenek Wagner napsal(a):
>
>> Dne 18. ledna 2013 11:34 Josef Tkadlec <tkadlec at fel.cvut.cz> napsal(a):
>>>
>>> Dobrý den,
>>>
>>> může mi, prosím, někdo pomoci s následujícím problémem?
>>>
>>> Chtěl bych (v LaTeXu) vysázet řadu tabulek různě dlouhých tak, aby
>>> * byly odděleny danou svislou mezerou,
>>> * pokud se tabulka nevejde na zbytek stránky (za jinou), začne na další,
>>> * tabulky delší než výška stránky se rozdělí.
>>>
>>> Napadlo mne použít prostředí longtable oddělená danou mezerou + \vfill
>>> (to
>>> by pro více tabulek na stránce mělo roztáhnout mezery mezi nimi, s čímž
>>> bych
>>> se smířil). Předpokládal jsem, že rozdělení tabulky je nějak
>>> penalizováno,
>>> takže \vfill upřednostní přechod na další stránku - pokud bude tabulka
>>> delší
>>> než stránka, tak už nezbude, než tabulku rozdělit.
>>>
>>> Bohužel to dělá několik nepřístojností (viz přiložený zdrojový soubor a
>>> pdf
>>> výstup):
>>>
>>> 1. Na začátku stránky se objevuje nějaká svislá mezera, kterou jsem
>>> zlikvidoval nastavením \topskip=0pt.
>>>
>>> 2. Mezera \vfill se projeví jen před poslední tabulkou na stránce. (To mi
>>> vyhovuje.)
>>>
>> Ja bych zkusil zapornou penalizaci zvyhodnit zlom mezi tabulkami,
>> napr.takto:
>>
>> \penalty -50
>> \vskip 1cm plus 1fil
>> \penalty -50
>> \vskip 0cm plus -1fil
>>
>> Kdyz tak o tom premyslim, ta prvni penalta je zbytecna, protoze pokud
>> je na strance mene nez 1cm volneho mista, stejne se zlomi stranka v
>> prvnim \vskipu.
>>
>> Kdysi davno jsem potreboval zpracovat tabulku dlouhou asi 2000 stran,
>> ktera byla slozena z podtabulek, takze pokud nevznikly hodne prazdne
>> stranky, mel strankovy zlom prednostne padnout mezi podtabulky a
>> prazdne misto melo zustat dole. Delal jsem to tak, ze jsem prepsal
>> longtable.sty, tj. podtabulky jsem skladal do \vboxu a podle vysky
>> tohoto pomocneho boxu a zbyleho mista na strance jsem bud vynutil
>> strankovy zlom a uschovany kod vypustil na dalsi stranu, nebo jsem to
>> pustil do tabulky a nechal puvodni algoritmy longtable, at si s tim
>> poradi. Navic jsem prepsal i \setlongtables, protoze jsem chtel sirku
>> sloupcu urcit jinym algoritmem. Sirka sloupcu totiz mela byt zachovana
>> v urcite sekci, ne v cele tabulce.
>>
>>> 3. Tabulka, která se nevejde na zbytek stránky, nezačne na další stránce,
>>> ale rozdělí se (v ukázce je to za prvními řádky). Vypadá to, že dělení
>>> tabulky penalizováno není. Zkoušel jsem doplňovat penalizace do tabulky
>>> pomocí \nopagebreak[1], to ale nefunguje pro \hline.
>>>
>>> Nejlepší, k čemu jsem dospěl, je nahrazení \hline -> \cline uvnitř
>>> tabulky a
>>> nechat \hline na začátku (před prvním řádkem). V takovém případě se
>>> tabulka
>>> rozdělí v \hline, které se ale objeví i na konci předcházející
>>> stránky(?!) -
>>> toho bych se rád ho zbavil.
>>>
>>> Josef Tkadlec
>>> _______________________________________________
>>> csTeX mailing list
>>> csTeX at cs.felk.cvut.cz
>>> http://lists.felk.cvut.cz/mailman/listinfo/cstex
>>
>>
>>
>>
>
> _______________________________________________
> csTeX mailing list
> csTeX at cs.felk.cvut.cz
> http://lists.felk.cvut.cz/mailman/listinfo/cstex



-- 
Zdeněk Wagner
http://hroch486.icpf.cas.cz/wagner/
http://icebearsoft.euweb.cz




More information about the csTeX mailing list