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 05:22 | IT novinky

    Nezisková organizace Electronic Frontier Foundation (EFF) hájící občanské svobody v digitálním světě po téměř 20 letech opouští platformu X (dříve Twitter). Na platformách Bluesky, Mastodon, LinkedIn, Instagram, TikTok, Facebook, Threads a YouTube zůstává.

    Ladislav Hagara | Komentářů: 0
    dnes 03:33 | Nová verze

    Terminálový textový editor GNU nano byl vydán ve verzi 9.0. Vylepšuje chování horizontálního posouvání pohledu na dlouhé řádky a chování některých klávesových zkratek. Více v seznamu změn.

    |🇵🇸 | Komentářů: 0
    včera 19:22 | IT novinky

    Ministerstvo financí ve spolupráci s finanční správou dnes představilo beta verzi aplikace využívající umělou inteligenci pro předvyplnění daňového přiznání. Není třeba přepisovat údaje z různých potvrzení, ani hledat správné řádky, kam údaje napsat. Stačí nahrát dokumenty a využít AI.

    Ladislav Hagara | Komentářů: 7
    včera 18:33 | Zajímavý projekt

    Výrobce počítačových periferií Keychron zveřejnil repozitář se schématy šasi klávesnic a myší. Licence je restriktivní, zakazuje většinu komerčních užití a v podstatě jsou tak data vhodná pouze pro výukové účely, hlášení a opravy chyb, případně výrobu vlastního příslušenství.

    |🇵🇸 | Komentářů: 0
    včera 18:22 | Nová verze

    Správce balíčků APT, používaný v Debianu a odvozených distribucích, byl vydán ve verzi 3.2 (seznam změn). Mezi novinkami figurují nové příkazy pro práci s historií, včetně vracení transakcí.

    |🇵🇸 | Komentářů: 0
    včera 14:33 | IT novinky

    Společnost Anthropic oznámila Projekt Glasswing a s ní související AI model Claude Mythos Preview. Jedná se o iniciativu zaměřenou na kybernetickou bezpečnost, do které se zapojily velké technologické společnosti Amazon Web Services, Anthropic, Apple, Broadcom, Cisco, CrowdStrike, Google, JPMorganChase, Linux Foundation, Microsoft, NVIDIA a Palo Alto Networks. Anthropic věří, že nový AI model Claude Mythos Preview dokáže

    … více »
    Ladislav Hagara | Komentářů: 1
    včera 13:55 | Zajímavý software

    Firma Ojective Development vydala svůj nástroj pro monitorování a řízení odchozích síťových připojení Little Snitch i pro operační systém Linux. Linuxová verze se skládá ze tří komponent: eBPF program pro zachytávání provozu a webové rozhraní jsou uvolněny pod GNU GPLv2 a dostupné na GitHubu (převážně Rust a JavaScript), jádro backendu je proprietární pod vlastní licencí, nicméně zdarma k použití a redistribuci (cena přitom normálně … více »

    » FIDESZ🧡! « | Komentářů: 0
    8.4. 18:44 | IT novinky

    Vojenské zpravodajství (VZ) se v březnu zapojilo do mezinárodní operace proti aktivitám hackerské skupiny APT28, která je spojovaná s ruskou vojenskou zpravodajskou službou GRU a která přes slabě zabezpečené routery prováděla kybernetické útoky na státní a další organizace v ČR i zahraničí. Operaci vedl americký Federální úřad pro vyšetřování (FBI) a jejím cílem bylo odebrat útočníkům přístup k napadeným zařízením a ty následně … více »

    Ladislav Hagara | Komentářů: 25
    8.4. 16:44 | IT novinky

    Tvůrcem nejpopulárnější kryptoměny bitcoin, který se skrývá za pseudonymem Satoši Nakamoto (Satoshi Nakamoto), je britský kryptograf Adam Back. Na základě vlastní investigativní práce to tvrdí americký deník The New York Times (NYT). Několik indicií podle autorů jasně ukazuje na to, že Back a Nakamoto jsou stejný člověk. Jde mimo jiné o podobný odborný a osobnostní profil či totožné chyby a manýry v psaném projevu.

    Ladislav Hagara | Komentářů: 13
    8.4. 14:44 | Nová verze

    Google Chrome 147 byl prohlášen za stabilní. Nejnovější stabilní verze 147.0.7727.55 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Vylepšeny byly také nástroje pro vývojáře. Přehled novinek v Chrome DevTools 145 až 147 také na YouTube.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (8%)
     (1%)
     (12%)
     (30%)
     (3%)
     (6%)
     (2%)
     (14%)
     (24%)
    Celkem 1252 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Dotaz: Zarovnání českého textu do bloku v terminálu, včetně dělení slov

    26.2.2019 19:15 vencas | skóre: 32
    Zarovnání českého textu do bloku v terminálu, včetně dělení slov
    Přečteno: 459×
    Zdravím, potřebuji zarovnat text (monospace písmo) na předem stanovenou šířku, aby byl přitom do bloku (tj do kraje na obou stranách) a fungovalo dělení slov. Funkční ideálně jako filtr v command-lině. Existuje něco takového? Našel jsem paradj.pl, ale ten neumí češtinu, stejně jako např. groff ap. Díky za nápomoc.

    Řešení dotazu:


    Odpovědi

    Josef Kufner avatar 26.2.2019 19:18 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Zarovnání českého textu do bloku v terminálu, včetně dělení slov
    Můžeš zkusit ukecat pandoc jestli by to nějak nenaformátoval.
    Hello world ! Segmentation fault (core dumped)
    26.2.2019 20:38 vencas | skóre: 32
    Rozbalit Rozbalit vše Re: Zarovnání českého textu do bloku v terminálu, včetně dělení slov
    Co vím (a pro jistotu jsem ještě ověřoval), pandoc převádí mezi sebou formáty textu, má nějakou vnitřní reprezentaci, ale reprezentací textu se nezabývá.
    Josef Kufner avatar 26.2.2019 23:44 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Zarovnání českého textu do bloku v terminálu, včetně dělení slov
    Pandoc konvertuje z jednoho formátu do druhého a mezi možné výstupní formáty patří i plain text nebo Markdown. Nezkoumal jsem, jak moc to splňuje zadání, ale mohlo by to produkovat použitelný výstup.
    Hello world ! Segmentation fault (core dumped)
    26.2.2019 20:03 debian+
    Rozbalit Rozbalit vše Re: Zarovnání českého textu do bloku v terminálu, včetně dělení slov
    Webovy prehladavac.
    26.2.2019 20:39 vencas | skóre: 32
    Rozbalit Rozbalit vše Re: Zarovnání českého textu do bloku v terminálu, včetně dělení slov
    Tak jsem to zkoušel a text mi do bloku nezarovná. Jestli jste na něco narazil, rád se poučím. Já jsem opravdu nenašel nic. Pro jistotu zdůrazňuju: potřebuju správné dělení slov pro češtinu.
    26.2.2019 21:30 Peter Golis | skóre: 65 | blog: Bežné záležitosti | Bratislava
    Rozbalit Rozbalit vše Re: Zarovnání českého textu do bloku v terminálu, včetně dělení slov
    A už to "správné dělení slov pro češtinu" niekto naklepal do slovníkov? Bez toho to pôjde veľmi ťažko, a s tým to pôjde aj v to groff.
    wamba avatar 26.2.2019 22:10 wamba | skóre: 38 | blog: wamba
    Rozbalit Rozbalit vše Re: Zarovnání českého textu do bloku v terminálu, včetně dělení slov
    Příloha:
    Ten paradj.pl používá Tex::Hyphen, který podporuje i češtinu. Neříkám že ideální, ale nějaký slovník to je. Tedy bych zkusil si ten skript upravit:
    <  
    ---
    > binmode(STDIN,  ":utf8");
    > binmode(STDOUT, ":utf8");
    > 
    > 
    18,19c21
    < my $hyp = new TeX::Hyphen;
    <  
    ---
    > my $hyp = new TeX::Hyphen '/usr/share/texmf-dist/tex/csplain/base/czhyphen.tex', 'style' => 'czech',; 
    
    This would have been so hard to fix when you don't know that there is in fact an easy fix.
    26.2.2019 21:57 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Zarovnání českého textu do bloku v terminálu, včetně dělení slov

    Groff umí dělit slova, dokonce má i slovník s českým dělení slov (ukradený z TeXu). Jen se mu musí říci, že jazyk je čeština parametrem -mcs. Příklad manuálové stránky natažené na šířku terminálu včetně dělených slov:

    (echo ".ll ${COLUMNS}\n"; bzcat /usr/share/man/cs/man1/shigofumi.1.bz2) | /usr/bin/preconv | groff -Tutf8 -mandoc -mcs
    26.2.2019 22:08 mhepp
    Rozbalit Rozbalit vše Re: Zarovnání českého textu do bloku v terminálu, včetně dělení slov
    Trochu nerozumím tomu, jak chceš dodržet podmínku, že na každém řádku bude přesně daný počet znaků. Aby to vyšlo vždy na konec slova nebo alespoň mezi dělitelné slabiky. Jak bys chtěl vyřešit nálsedující problém?
    ...
    řádek textu zadané šířky
    další řádek blbě vycházející
    
    Totiž můžeš zarovnat:
    ...
    řádek textu zadané šířky
    další řádek blbě vychá-
    zející
    
    nebo:
    ...
    řádek textu zadané šířky
    další řádek blbě vycháze-
    jící
    
    což není ani v jednom případě do bloku.
    Josef Kufner avatar 26.2.2019 23:42 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Zarovnání českého textu do bloku v terminálu, včetně dělení slov
    Prostě tam nastrkáš mezery a vybereš to nejhezčí. Viz zdrojáky TeXu.
    Hello world ! Segmentation fault (core dumped)
    Řešení 1× (vencas (tazatel))
    27.2.2019 22:39 vencas | skóre: 32
    Rozbalit Rozbalit vše Re: Zarovnání českého textu do bloku v terminálu, včetně dělení slov
    Konečné řešení vezme sazbu TeXu s monospace fontem, převede ji z pdf to txt a přidává mezery na vhodná místa, dokud nemá řádek požadovanou šířku. Zde je výstup pro český výplňový text z http://wellstyled.com/tools/dummy-cz/:
    Těby dived ptyzruně. Měji šlucry
    tří  chré lážlotist vumrou tiper
    v nic gláti úmýpech. Vlydi trou-
    di prýv k paská sro  prytě  fly-
    křu v kust.  Oří o půcpa a vimoj
    opo  trouchetrá  utě děšležrokla
    a mlehřou.  Puďni šru  vonitědre
    crodra vremhrn niv,  nit těpoma-
    bud zroum nědě hlysk srážlo věti
    v chévu břat z mřidis.  Vrůštniž
    hrec z divluděře důd hrovu  mru-
    fí hlů člymflů miť.  Dě timan vé
    vřep  dředi  hlíboumrů  otoučpa-
    bi vadigu  skecru krel  opiv ha-
    ti. Flůchlavrum o mrepré z glouš
    stomřá,  cláni  ratikřes sámřáč-
    lit  šle a matěňáďsé.  Z  dělkác
    vostáčloř děť  nip chlapréleň  s
    myktý.  Fi  mlíďglůch  v clů ně-
    chreť  nichra kra zytý pepo zlo-
    famne  leř.  Třužláč klyť i vydě
    vo těž ďodlo hružlech drbětrévře
    tlezaz myv.  Mežrůst šlévro nyd.
    
    A kdyby to někdo potřeboval, tady je kód:
    #!/usr/bin/env python3
    def monoblock(text,width=80,lang='czech',emergencystretch='2em'):
        content=r'''
        \documentclass[]{article}
        \usepackage{polyglossia}
        \setdefaultlanguage{%s}
        %%\usepackage{showhyphens}
        \usepackage{fontspec}
        \setmainfont{Latin Modern Mono}
        \pagestyle{empty}
        \usepackage{ragged2e}
        \lefthyphenmin=2
        %% tune emergencystretch by hand until happy
        \emergencystretch=%s
        \parindent=0pt
        \begin{document}
            \begin{minipage}{%dex}
                \RaggedRight
                %s
            \end{minipage}
        \end{document}
        '''%(lang,emergencystretch,width,text)
        import tempfile, subprocess, os.path, webbrowser, time
        with tempfile.TemporaryDirectory() as tmpDir:
            tex,pdf=[tmpDir+'/main.'+ext for ext in ('tex','pdf')]
            print(tex)
            f=open(tex,'w')
            f.write(content)
            f.close()
            subprocess.call(['lualatex',tex],cwd=tmpDir)
            txt=subprocess.check_output(['pdftotext','-raw',pdf,'-']).decode('utf-8')
            webbrowser.open('file://'+os.path.abspath(pdf))
            time.sleep(2)
            return expandToBlock(txt,width)
    
    def expandToBlock(txt,wd):
        import re, random
        ll=txt.split('\n')
        lens=[len(l) for l in ll]
        maxWd=max(lens)
        if maxWd>wd: print('WARN: max unexpanded text width %d is greater than required width %d. Increasing to %d.'%(maxWd,wd,maxWd))
        wd=maxWd
        for i,l in enumerate(ll):
            # skip last paragraph line
            if i+1==len(ll) or (i+1<len(ll) and ll[i+1]==''): continue
            pats=[r'… \b',r'\. \b',r': \b',r', \b',r'\) \b',r'\b \(',r'\b \b']
            patReps=['… ','. ',': ',', ',') ',' (',' ']
            for ex in range(1,5): # expand to multiple spaces
                for pat,prep in zip([p.replace(' ',ex*' ') for p in pats],patReps):
                    matches=list(re.finditer(pat,l))
                    if not matches: continue
                    #random.shuffle(matches)
                    todo=min(len(matches),wd-len(l))
                    m2=random.sample(matches,todo)
                    # print('use %d occurrences of "%s" (out of %d)'%(todo,pat,len(matches)))
                    # replace from right to left to preserve indices
                    for m in sorted(m2,key=lambda x: -x.span()[0]): l=l[:m.span()[0]]+prep.replace(' ',(ex+1)*' ')+l[m.span()[1]:]
                    if len(l)==wd: break
                if len(l)==wd: break
            ll[i]=l
        return '\n'.join(ll)
    
    
    
    if __name__=='__main__':
        print('\n\n'+monoblock('Těby dived ptyzruně. Měji šlucry tří chré lážlotist vumrou tiper v nic gláti úmýpech. Vlydi troudi prýv k paská sro prytě flykřu v kust. Oří o půcpa a vimoj opo trouchetrá utě děšležrokla a mlehřou. Puďni šru vonitědre crodra vremhrn niv, nit těpomabud zroum nědě hlysk srážlo věti v chévu břat z mřidis. Vrůštniž hrec z divluděře důd hrovu mrufí hlů člymflů miť. Dě timan vé vřep dředi hlíboumrů otoučpabi vadigu skecru krel opiv hati. Flůchlavrum o mrepré z glouš stomřá, cláni ratikřes sámřáčlit šle a matěňáďsé. Z dělkác vostáčloř děť nip chlapréleň s myktý. Fi mlíďglůch v clů něchreť nichra kra zytý pepo zlofamne leř. Třužláč klyť i vydě vo těž ďodlo hružlech drbětrévře tlezaz myv. Mežrůst šlévro nyd.',width=40,emergencystretch='2em'))
    

    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.