[cstex] automatické rozdělení align v TeXu

Vit Zyka vit.zyka at gmail.com
Thu Jun 28 09:48:28 CEST 2012


Dobrý den,

nevím, zda některá z odpovědí již váš problém nevyřešila. Obávám se 
však, že ne, protože vaším požadavkem bylo, aby zarovnání matematických 
výrazů bylo optimalizovalo nikoliv přes všechny stránky, ale po každé 
stránce zvlášť. Domnívám se, že tento požadavek může být řešen jen 
zásahem do výstupní rutiny. V ní ukončíte prostředí align a porovnáte 
registr \pagetotal oproti \pagegoal (doufám, že si to ještě pamatuji 
dobře) a v případě, že na stránce již bude dost materiálu 
(\pagetotal>=a*\pagegoal, kde a bude zhruba z intervalu <0.8,1>), tak 
dokončíte výstupní rutinu (dojde k \shipout) a do vstupního proudu 
vložíte \begin{align}. Musíte zajistit, aby tato změněná rutina byla 
aktivní jen tehdy, pokud máte otevřené prostředí align.

Zdraví
Vít Zýka

On 25.6.2012 14:02, Josef Tkadlec wrote:
> Martin Plesinger napsal(a):
>> misto \\
>>
>> pouzit \displaybreak[3] \\
>>
>> by mohlo pomoct.
>
> To nepomůže - umožňuje to přejít na druhou stránku (a něco takového je
> nutné, jinak by se vůbec neodstránkovalo), ale až poté, co se zarovnají
> všechny řádky, tedy zpracuje celý obsah align*.
>
> Pavel Striz napsal(a):
>> Kratší tip, pokud vám nevadí matematický režim v každé buňce, tj.
>> balíček longtable nebo tabu+longtable.
>> ps s pozdravy
>
> Díky za námět, to funguje (stačí longtable), při prvním průchodu se
> zarovnávají skupiny 20 řádků na dosud největší šířky, při případném
> druhém se to dorovná.
>
> Bohužel moje řádky jsou komplikované matematické výrazy se zlomky a
> longtable se na to moc nehodí.
>
> Je tu ještě jeden problém, který jsem si předtím neuvědomil - když se
> vezmou nejširší položky v každém sloupci přes celý soubor, může to vyjít
> moc široké, zatímco když se zarovnává jen v rámci jedné stránky (nebo
> skupiny třeba 20 řádků), tak je šířka přijatelná.
>
> S pozdravem, Josef Tkadlec
>
>>> Zdravím,
>>>
>>> může mi, prosím, někdo poradit, zda existuje nějaké relativně jednoduché
>>> řešení následujícího problému?
>>>
>>> Počítačově generuji řádky v prostředí align* (amsmath, každý řádek je
>>> ukončen \\). Může jich být hodně, takže při LaTeXovém zpracování dojde k
>>> přetečení. Chtěl bych dosáhnout toho, aby se při LaTeXovém zpracování
>>> soubor
>>> řádků rozdělil na části, které se vejdou na jednu stránku a
>>> "alignovaly" se
>>> po těchto částech. Maximální počet řádků na jedné stránce by se mohl
>>> zadat
>>> (nemusel by se zjišťovat z výšek jednotlivých řádků).
>>>
>>> Mám řešení na úrovni programu, který ty řádky generuje - zadám si
>>> maximální
>>> počet řádků na stránce a po dosažení tohoto počtu align* ukončím a znovu
>>> začnu. Nevýhoda tohoto postupu je, že po vygenerování následuje
>>> vypouštění
>>> některých řádků, čímž vniknou zbytečně krátké stránky (nebo bych
>>> musel konce
>>> a začátky align* přeeditovat).
>>>
>>> Josef Tkadlec
> _______________________________________________
> csTeX mailing list
> csTeX at cs.felk.cvut.cz
> http://lists.felk.cvut.cz/mailman/listinfo/cstex
>





More information about the csTeX mailing list