Portál AbcLinuxu, 12. května 2025 04:15

Dotaz: Tex - lamani stran

26.7.2007 21:45 Kumor | skóre: 1
Tex - lamani stran
Přečteno: 411×
Odpovědět | Admin
Ahoj používám tex na automatickou tvorbu textu a následně obrázku, z rss zpráv. Automaticky vytvořený Tex soubor vypadá nějak takhle:
\hsize=8in
\vsize=6in
\footline={}
\font\nadpis = csbx12 scaled \magstep 5
\font\normal = csbx12 scaled \magstep 2
\nadpis{Američtí kongresmani přijedou kvůli radaru do Česka}\vskip3mm
\normal{Kvůli radaru protiraketové obrany USA přijede do Česka několik amerických kongresmanů. Po setkání s iniciátorem výzvy za uspořádání referenda Janem Žižkou to oznámil vládní mluvčí pro radar
}\vskip5mm
\nadpis{Kuba slavila bez Fidela, Raúl poslal vzkaz USA}\vskip3mm
\normal{Kuba oslavovala státní svátek. Projev nepronesl Fidel Castro, ale jeho bratr. Raúl Castro, který nemocného Fidela ve vedení země zastupuje, vyzval příštího prezidenta USA k dialogu o zlepšení vzájemných vztahů. Bushův nástupce vzejde z prezidentských voleb na podzim příštího roku.}\vskip5mm
\nadpis{Do Česka se vrátilo 56 krajanů z Kazachstánu}\vskip3mm
\normal{V Praze přistál vojenský speciál s 56 českými krajany z Kazachstánu. Let byl jedním ze tří, které mají do ČR dopravit 170 krajanů žijících v této zemi. Jejich návrat schválila loni vláda.}\vskip5mm
\nadpis{Srážka větroňů stála jednoho člověka život}\vskip3mm
\normal{U Záskalí na Liberecku se kolem čtvrt na šest večer srazily dva dvoumístné větroně. Tři lidé stihli vyskočit. Jeden to ale nestihl a v troskách letadla zemřel, řekl operační důstojník libereckých hasičů. Jeden člověk je zraněn těžce, dva lehce.}\vskip5mm
\nadpis{Hygienici varovali před laky na nehty s ftaláty}\vskip3mm
\normal{Ministerstvo zdravotnictví varovalo před používáním dvou typů laku na nehty. Výrobky obsahují toxické ftaláty, které mohou způsobit například neplodnost a negativně ovlivnit zdraví u citlivějších skupin obyvatel. }\vskip5mm
.......
.......
\vfill
\eject
\bye
tento soubor potom preložím

iconv -f windows-1250 -t iso8859-2 zpravy.tex>zprava.tex

csplain zprava.tex

dvipng zprava.dvi

Výstupem tedy je sada obrázků, a tady je můj problém.

Obrázky jsou udělány tak, že se klidně stane, že na jednom obrázku je pouze nadpis (nebo jeho část) a popis je až na druhém. Nebo popis je rozdělen na dva obrázky.. Mohl byste mi někdo poradit, jak to udělat, aby nadpis i popis byly vždy spolu na obrázku a celé?
Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

26.7.2007 22:16 finn | skóre: 43 | blog: finnlandia | 49° 44´/13° 22´
Rozbalit Rozbalit vše Re: Tex - lamani stran
Odpovědět | | Sbalit | Link | Blokovat | Admin
Použij \nobreak – zakáže stránkový i řádkový zlom.
Užívej dne – možná je tvůj poslední.
27.7.2007 00:21 Kumor | skóre: 1
Rozbalit Rozbalit vše Re: Tex - lamani stran
Buď to používám špatně, nebo to nefunguje.. Použil jsem to takto:
\hsize=8in
\vsize=6in
\footline={}
\font\nadpis = csbx12 scaled \magstep 5
\font\normal = csbx12 scaled \magstep 2
\nadpis{NASA odhalila sabotáž - přeřezané kabely počítače}\nobreak\vskip3mm\nobreak
\normal{Americká vesmírná agentura NASA oznámila, že odhalila sabotáž svého vesmírného programu. Jeden z jeho pracovníků úmyslně přeřezal kabely v počítači, který měl být příští měsíc dopraven na mezinárodní vesmírnou stanici ISS. Pachatel zatím nebyl odhalen.}\nobreak\vskip5mm
\nadpis{Američan, který létal s TBC, byl propuštěn z nemocnice}\nobreak\vskip3mm\nobreak
\normal{Američan Andrew Speaker, který v květnu způsobil problémy v řadě států kvůli tomu, že přes doporučení lékařů létal mezi Evropou a USA s tuberkulózou, byl propuštěn z nemocnice. S odvoláním na lékařské zdroje to dnes uvedla agentura AP.}\nobreak\vskip5mm
\nadpis{Boeing dostal kontrakt na radar v Česku}\nobreak\vskip3mm\nobreak
\normal{Americká společnost Boeing dostala od Pentagonu zelenou k zahájení plánování stavby americké protiraketové základny v Česku a Polsku. Potvrdil to mluvčí americké Agentury pro raketovou obranu Richard Lehner. Dohoda podle něj opravňuje Boeing začít s plánováním a zahájit přípravné práce.}\nobreak\vskip5mm
\nadpis{Libye brojí proti milosti pro bulharské zdravotníky}\nobreak\vskip3mm\nobreak
\normal{Libye protestuje proti milosti, kterou bulharský prezident udělil propuštěným zdravotníkům. Rozhodnutí prý znamená jasné porušení dohody, kterou obě země uzavřely začátkem týdne. Bulhaři však takový výklad odmítají.}\nobreak\vskip5mm
.....
.....
\nadpis{Řidič po chvíli jízdy našel v motoru kotě}\nobreak\vskip3mm\nobreak
\normal{Šedesátiletý Victor Gallacher ze skotského Aberdeenu projížděl městem, když si všiml, že jeho auto nevydává úplně obvyklé zvuky. Poté, co odklopil kapotu motoru, vykouklo na něj kotě, napsala BBC.}\nobreak\vskip5mm
\vfill
\eject
\bye
, ale neudělalo to nic zajímavého. Stále je nadpis někdy na jiném obrázku než popis (normal) a někdy je na dva obrázky rozdělený i nadpis..
27.7.2007 06:42 finn | skóre: 43 | blog: finnlandia | 49° 44´/13° 22´
Rozbalit Rozbalit vše Re: Tex - lamani stran
Já bych si to nadefinoval přímo do makra \nadpis: \def\nadpis #1{{\nejakyfont #1}\par\nobreak\vskip3mm}
Užívej dne – možná je tvůj poslední.
27.7.2007 08:11 Tom.š Ze.le.in | skóre: 21 | blog: tz
Rozbalit Rozbalit vše Re: Tex - lamani stran
Můj odhad, proč to nefunguje: první nobreak je ještě v horizontálním módu, takže zakáže zlom řádku. Pak je vskip, na kterém se to může zlomit (je ve vertikálním módu a v seznamu před ním *není* nobreak - ten zmizel do odstavce. A poslední nobreak nemá vliv.

Mělo by to fungovat, pokud před první nobreak dáte par - pak ten nobreak je už ve vertikálním módu a lámání stránky zarazí.

A jak stojí o příspěvek výše (kde ten par mimochodem je), chtělo by to si udělat na to makro. A dodat trochu výplně, aby se to dobře roztahovalo.
27.7.2007 08:21 Tom.š Ze.le.in | skóre: 21 | blog: tz
Rozbalit Rozbalit vše Re: Tex - lamani stran
BTW, zkuste se podívat na/použít makra plaintexu goodbreak a filbreak.
27.7.2007 08:24 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Tex - lamani stran

Případně, pokud nechce roztahovat mezery mezi obrázky, klasický trik typu

  \vskip 0pt plus 20mm\penalty-200\vskip 0pt plus -20mm

(s vhodně zvolenou hodnotou místo 20mm)

27.7.2007 08:34 Tom.š Ze.le.in | skóre: 21 | blog: tz
Rozbalit Rozbalit vše Re: Tex - lamani stran
Což je - jenom pro úplnost - při 20mm = fil onen filbreak.
27.7.2007 11:29 Kumor | skóre: 1
Rozbalit Rozbalit vše Re: Tex - lamani stran
No ještě budu zkoušet, nicméně zatím se mi nepovedlo pořád udělat to co chci, aby se to na ty obrázky (stránky) lámalo vždy až po popisu a ne po nadpisu, nebo uprostred nadpisu/popisu:

obr1:
nadpis
popis
...
...
nadpis2
popis2
...
...
obr2:
nadpis3
popis3
...
...
atd..
27.7.2007 11:50 skonciljsem | skóre: 20
Rozbalit Rozbalit vše Re: Tex - lamani stran
Vždyť to píšu dole, zkus vbox.
27.7.2007 12:07 Tom.š Ze.le.in | skóre: 21 | blog: tz
Rozbalit Rozbalit vše Re: Tex - lamani stran
Vbox by měl určitě taky fungovat, i když mi není jasné proč nefunguje to s tím filbreak. Teoretickou nevýhodou vbox řešení je, že se pokud vím ztratí informace o možném roztahování uvnitř něj - ale to je tady asi jedno.
27.7.2007 12:26 Kumor | skóre: 1
Rozbalit Rozbalit vše Re: Tex - lamani stran
Děkuji všem za rady, podařilo se to udělat přes ten vbox
\vbox{\nadpis{text_nadpisu}\vskip3mm\normal{text_popisu.}}\vskip4mm
a už to pracuje jak má.

Jedinou chybičkou která mi ještě vadí je, že se občas v tom obrázku objeví takové ty černé obdélníčky - když dojde k přetečení, ale to asi nejde nějak lehce nastavit, aby se nezobrazovaly, že?

Proč to nefungovalo přes ten fillbreak mi je celkem jasné - zřejmě jsem to nepoužíval dobře.. :-/
27.7.2007 13:37 ams
Rozbalit Rozbalit vše Re: Tex - lamani stran
Jedinou chybičkou která mi ještě vadí je, že se občas v tom obrázku objeví takové ty černé obdélníčky - když dojde k přetečení, ale to asi nejde nějak lehce nastavit, aby se nezobrazovaly, že?
\overfullrule=0pt
27.7.2007 13:42 Kumor | skóre: 1
Rozbalit Rozbalit vše Re: Tex - lamani stran
:D wow to bylo jednodušší než jsem myslel, nechápu, jaktože jsem na to předtím nikde nenarazil. Děkuji velmi
27.7.2007 16:05 Tom.š Ze.le.in | skóre: 21 | blog: tz
Rozbalit Rozbalit vše Re: Tex - lamani stran
Ty obdélníčky mají svůj (varovný) smysl. Možná lepší než potlačit je jen tak je předtím zkusit zvýšit nastavení např. tolerance - viz např. http://www.tex.ac.uk/cgi-bin/texfaq2html?label=overfull
27.7.2007 12:27 skonciljsem | skóre: 20
Rozbalit Rozbalit vše Re: Tex - lamani stran
Ano, v boxech se to asi neroztáhne a můžou se od sebe případně i dost (nehezky) vzdálit, budou-li vysoké. Pokud k tomu dojde, snad by pomohlo raggedbottom.
27.7.2007 07:46 skonciljsem | skóre: 20
Rozbalit Rozbalit vše Re: Tex - lamani stran
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkus je dát do vboxu.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.