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í
×
    dnes 02:11 | Komunita

    Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.

    Ladislav Hagara | Komentářů: 8
    dnes 02:00 | Nová verze

    Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.

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

    Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.

    Ladislav Hagara | Komentářů: 0
    včera 13:55 | Nová verze

    Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.

    Ladislav Hagara | Komentářů: 0
    včera 12:44 | Nová verze

    Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.

    Ladislav Hagara | Komentářů: 0
    22.12. 23:44 | Nová verze

    Byla vydána nová verze 5.4.0 programu na úpravu digitálních fotografií darktable (Wikipedie). Z novinek lze vypíchnout vylepšenou podporu Waylandu. Nejnovější darktable by měl na Waylandu fungovat stejně dobře jako na X11.

    Ladislav Hagara | Komentářů: 0
    21.12. 05:00 | Nová verze

    Byla vydána beta verze Linux Mintu 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.

    Ladislav Hagara | Komentářů: 2
    21.12. 01:55 | Nová verze

    GNU Project Debugger aneb GDB byl vydán ve verzi 17.1. Podrobný přehled novinek v souboru NEWS.

    Ladislav Hagara | Komentářů: 0
    19.12. 17:22 | IT novinky

    Josef Průša oznámil zveřejnění kompletních CAD souborů rámů tiskáren Prusa CORE One a CORE One L. Nejsou vydány pod obecnou veřejnou licenci GNU ani Creative Commons ale pod novou licencí OCL neboli Open Community License. Ta nepovoluje prodávat kompletní tiskárny či remixy založené na těchto zdrojích.

    Ladislav Hagara | Komentářů: 14
    19.12. 17:00 | Komunita

    Nový CEO Mozilla Corporation Anthony Enzor-DeMeo tento týden prohlásil, že by se Firefox měl vyvinout v moderní AI prohlížeč. Po bouřlivých diskusích na redditu ujistil, že v nastavení Firefoxu bude existovat volba pro zakázání všech AI funkcí.

    Ladislav Hagara | Komentářů: 1
    Kdo vám letos nadělí dárek?
     (30%)
     (1%)
     (10%)
     (3%)
     (1%)
     (3%)
     (13%)
     (23%)
     (14%)
    Celkem 69 hlasů
     Komentářů: 17, poslední dnes 00:24
    Rozcestník

    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: 509×
    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.