abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
včera 17:25 | IT novinky

Do prodeje (Farnell) se dostal jednodeskový počítač Tinker Board (unboxing). Jedná se o konkurenci Raspberry Pi 3 od společnosti Asus. Porovnání (jpg) těchto počítačů například na CNXSoft. Cena Tinker Boardu je 55 £.

Ladislav Hagara | Komentářů: 5
včera 14:44 | Zajímavý projekt

Byla zveřejněna pravidla hackerské soutěže Pwn2Own 2017, jež proběhne od 15. do 17. března v rámci bezpečnostní konference CanSecWes ve Vancouveru. Soutěžit se bude o více než milion dolarů v pěti kategoriích. Letos se bude útočit i na Ubuntu. Jedná se již o 10. ročník této soutěže.

Ladislav Hagara | Komentářů: 1
včera 13:33 | Nová verze

Po sedmi měsících vývoje od vydání verze 5.7 byla vydána verze 5.8 (YouTube) toolkitu Qt. Z novinek lze zmínit například Qt Lite pro vestavěná zařízení. Nově jsou plně podporovány moduly Qt Wayland Compositor (YouTube) a Qt SCXML (YouTube). Současně byla vydána verze 4.2.1 integrovaného vývojového prostředí (IDE) Qt Creator.

Ladislav Hagara | Komentářů: 1
včera 11:52 | Pozvánky

Lednový Prague Containers Meetup se koná ve čtvrtek 26. ledna 2017 od 18:00 v Apiary, Pernerova 49, Praha 8. Přijďte se podívat na přednášky o Enterprise Kubernetes a Jenkins as a code.

little-drunk-jesus | Komentářů: 0
včera 11:40 | Pozvánky

Program letošního ročníku konference Prague PostgreSQL Developer Days, která se koná již 15. a 16. února 2017 na ČVUT FIT, Thákurova 9, Praha 6, byl dnes zveřejněn. Najdete ho na stránkách konference včetně anotací přednášek a školení. Registrace na konferenci bude otevřena zítra (24. ledna) v brzkých odpoledních hodinách.

TomasVondra | Komentářů: 0
22.1. 02:20 | Zajímavý článek

David Revoy, autor open source webového komiksu Pepper&Carrot nebo portrétu GNU/Linuxu, upozorňuje na svém blogu, že nový Inkscape 0.92 rozbíjí dokumenty vytvořené v předchozích verzích Inkscape. Problém by měl být vyřešen v Inkscape 0.92.2 [reddit].

Ladislav Hagara | Komentářů: 0
22.1. 02:02 | Komunita

Øyvind Kolås, hlavní vývojář grafických knihoven GEGL a babl, které využívá grafický program GIMP, žádá o podporu na Patreonu. Díky ní bude moci pracovat na vývoji na plný úvazek. Milník 1000 $, který by stačil na holé přežití, se již téměř podařilo vybrat, dalším cílem je dosažení 2500 $, které mu umožní běžně fungovat ve společnosti.

xkomczax | Komentářů: 12
21.1. 23:54 | Pozvánky

DevConf.cz 2017, již devátý ročník jedné z největších akcí zaměřených na Linux a open source ve střední Evropě, proběhne od pátku 27. ledna do neděle 29. ledna v prostorách Fakulty informačních technologií Vysokého učení technického v Brně. Na programu je celá řada zajímavých přednášek a workshopů. Letos je povinná registrace.

Ladislav Hagara | Komentářů: 0
21.1. 22:11 | Nová verze

Byla vydána verze 1.0.0 emulátoru terminálu Terminology postaveného nad EFL (Enlightenment Foundation Libraries). Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
20.1. 17:00 | Nová verze

Byl vydán Docker 1.13. Přehled novinek na YouTube a v poznámkách k vydání na GitHubu. Docker umožňuje běh aplikací v softwarových kontejnerech (Wikipedia).

Ladislav Hagara | Komentářů: 7
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (11%)
 (2%)
 (73%)
 (3%)
 (10%)
Celkem 386 hlasů
 Komentářů: 31, poslední včera 19:19
Rozcestník
Reklama

Dotaz: plainTeX - jak spočítat řádky na stránkách

5.7.2007 15:27 Jiri Tomasek
plainTeX - jak spočítat řádky na stránkách
Přečteno: 445×
Zdravím,

chci upravit tex soubor tak, aby spočítal řádky a znaky na stránce a nějak získaná data uchoval.

Napadlo mě, že bych mohl po vytisknutí každého tokenu testovat, zda za ním tex vytiskne nový řádek nebo novou stránku a takto jen inkrementovat příslušné hodnoty.

Takže můj dotaz zní: Jak otestuji, že tex na aktuální pozici vytiskne nový řádek/stránku? Nebo nešlo by to celé jednoduššeji?

Díky všem za odpovědi

Odpovědi

5.7.2007 15:40 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: plainTeX - jak spočítat řádky na stránkách

TeX funguje trochu jinak, než si představujete, tedy úplně jinak, než když píšete na stroji. V okamžiku, kdy se řeší stránkový zlom, už nepracujete s jednotlivými znaky, ale s nalámanými řádky. Teoreticky byste úpravou zdrojáku TeXu mohl nějaké počítání znaků a řádků zavést, ale bylo potřeba ošetřit tolik výjimek a speciálních případů, že by to stejně nemělo valný smysl. Spíš by možná stála za úvahu dodatečná analýza DVI souboru - pro začátek zkuste dvi2tty a wc.

P.S.: jednoduše - jednodušeji

5.7.2007 17:14 robertK | skóre: 26 | blog: Klokanuv_blog | Brno
Rozbalit Rozbalit vše Re: plainTeX - jak spočítat řádky na stránkách
ty řádky na stránce by se daly spočítat ve výstupní rutině. musel byste rozebrat box 255 na řádky pomocí unpenlaty, unskip a removelastbox (nebo tak nějak, možná si ty příkazy nepamatuju přesně, je to popsáno v Texbooku naruby při popisu úpravy sazby z levého na pravý praporek).
5.7.2007 20:51 Jiri Tomasek
Rozbalit Rozbalit vše Re: plainTeX - jak spočítat řádky na stránkách
Díval jsem se do Texbooku a mám zatím 2 nadějné postupy, zatím bohužel ani jeden nefunguje.

Zde je 1. pokus:

\newcount\tempnum
\output={%
  \global\tempnum=0
  \loop \unskip \unpenalty \setbox2=\lastbox \the\box2
     \advance\tempnum by1
  \if ?? \repeat
}

Pokouším se vždycky přečíst řádek, vypsat ho a inkrementovat \tempnum.

Ale zasekl jsem se... Jak mám ukončit ten cyklus, když už nemám odkud brát boxy?

[2. postup by využíval \prevgraf, kde, jak jsem zjistil, je po přečtení každého odstavce počet jeho řádků, ale nastal podobný problém jako u 1. řešení. Ale toto řešení je možná zbytečně složité.]
6.7.2007 12:35 robertK | skóre: 26 | blog: Klokanuv_blog | Brno
Rozbalit Rozbalit vše Re: plainTeX - jak spočítat řádky na stránkách
Je tam nejaky primitiv ifvoid, ktery testuje jestli je box prazdny

Fakt se mi to nechce zkouset, jenom bych se inspiroval makrem \toright, ktere je v Texbooku naruby na strane 265. Vzal bych ho tak jak je a pridal bych tam pocitani radku. Inkrementoval bych pro jistotu pomoci global a citac s poctem radku bych nuloval pri kazdem vyvolani output rutiny.
7.7.2007 12:20 Jiri Tomasek
Rozbalit Rozbalit vše Re: plainTeX - jak spočítat řádky na stránkách
Tak mám 1. funkční verzi. Pořádně ale nechápu, proč se tam tolik řeší glue, asi by to šlo i nějak lépe.

\newcount\linenum
\global\linenum=0 

\output={%
  \setbox1=\vbox{%
      \unvbox255
      \skip0=\lastskip
      \unskip
      \global\setbox255=\vbox{\vskip\skip0}
      \loop \setbox0=\lastbox \skip0=\lastskip \unskip
          \advance\skip0 by\lastskip \unskip
          \advance\skip0 by\lastskip \unskip \unpenalty
          \ifhbox0 \setbox0=\hbox to\hsize{\unhbox0}
          \global\setbox255=\vbox{\vskip\skip0 \box0 \unvbox255}
          \global\advance\linenum by1
      \repeat
  }%
  \wlog{RADKU:\the\linenum}
  \global\linenum=0
  \plainoutput
}

Ještě bych se rád zeptal na tyto úseky:

\global\setbox255=\vbox{\vskip\skip0} - proč to zaručí, že bude ve výsledku všude správně glue?

\setbox1=\vbox{...} - box1 nikde nepoužívám, k čemu je tohle dobré?

A ještě nechápu, proč to tiskne vždycky o řádek víc, než má stránka ve skutečnosti. Je to proto, že to počítá i číslo stránky?
7.7.2007 23:50 robertK | skóre: 26 | blog: Klokanuv_blog | Brno
Rozbalit Rozbalit vše Re: plainTeX - jak spočítat řádky na stránkách
A ještě nechápu, proč to tiskne vždycky o řádek víc, než má stránka ve skutečnosti. 
Je to proto, že to počítá i číslo stránky?
Asi to tak bude, v tom boxuje i zahlavi a zapati. Na ostatni otazky doporucuji cz.comp.cstex.
8.7.2007 09:20 Jiri Tomasek
Rozbalit Rozbalit vše Re: plainTeX - jak spočítat řádky na stránkách
OK, díky za všechny informace

Založit nové vláknoNahoru

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

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.