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 14:00 | Komunita

    Organizátoři komunitního setkání nejen českých a slovenských správců sítí CSNOG 2027, které se uskuteční 20. a 21. ledna na půdě zlínské univerzity Tomáše Bati, oznámili prodloužení termínu pro zasílání abstraktů do programu akce. Zájemci se mohou hlásit prostřednictvím webu setkání do úterý 10. listopadu. Programová komise uvítá příspěvky věnované nejen správě sítí, ale také legislativě a regulaci nebo síťařským aktivitám studentů a pedagogů.

    VSladek | Komentářů: 1
    dnes 13:55 | IT novinky

    Bylo spuštěno předobjednávání zařízení Flipper One s Linuxem. Za 20 dolarů si lze koupit kupón a zajistit si tím speciální cenu 379 dolarů po spuštění kampaně na Kickstarteru.

    Ladislav Hagara | Komentářů: 1
    dnes 12:44 | Nová verze

    Tor Browser, tj. fork webového prohlížeče Mozilla Firefox s integrovaným klientem sítě Tor přednastavený tak, aby přes tuto síť bezpečně komunikoval, byl vydán ve verzi 16.0. Postaven je na Firefoxu ESR 153. Vydána byla také nová verze 7.16 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. S Tor Browserem 16.0.

    Ladislav Hagara | Komentářů: 1
    dnes 04:00 | Nová verze

    FreeTube, desktopový klient pro YouTube využívající lokální API, byl vydán ve verzi 0.26.0. Toto velké opravné vydání mj. vrací částečnou podporu živých přenosů nebo přepracovává zobrazování titulků a obecně nastavení videa v přehrávači – FreeTube umožňuje např. přehrávat video s větším zrychlením.

    ʚĭɞ 🍉 | Komentářů: 1
    dnes 03:55 | Humor

    Další vlna kyberútoků zasáhla chladicí zařízení supermarketů v sedmi evropských zemích, Belgii, Lucembursku, Švédsku, Nizozemsku, Irsku, Estonsku a Finsku. Mrazáky se v některých prodejnách opět 'proměnily v trouby' a zahřály až na 50°C, což pochopitelně vedlo ke znehodnocení uskladněných potravin. Útoky navazují na podobný incident ve Francii z první poloviny října letošního roku, pachatel stále není znám.

    👻 | Komentářů: 9
    včera 17:52 | Zajímavý projekt
    WorldTUI je experimentální LLM o 360 milionech parametrů, který napodobuje terminál. Podle stisknutých kláves se snaží předpovídat změny na obrazovce a zvládá tak vyonávat rozličné příkazy, například Vim, tmux i jednoduchou hru Snake. Nejedná se o skutečný příkazový řádek, jeho 'soubory' i příkazy jsou pouze simulované a model může samozřejmě různě chybovat. WorldTUI vychází z jazykového modelu Qwen2.5-Coder-0.5B, který autor … více »
    👻 | Komentářů: 2
    včera 17:48 | Zajímavý článek
    Josef Bacik navrhuje novou abstrakci cell, která by celý kontejner reprezentovala jako jeden kernelový objekt. Proces by vznikl přímo uvnitř cell a nemohl by ji opustit. Oprávnění ke správě by se odvozovala od držení cellfd. … více »
    vencour | Komentářů: 10
    včera 16:23 | Bezpečnostní upozornění

    Zranitelnost v aktualizačním mechanismu WordPress umožňuje útočníkovi zasáhnout do dočasného instalačního adresáře během aktualizace jádra systému. Před aktualizací veřejně dostupného WordPressu dočasně zablokovat HTTP přístup k wp-content/upgrade/, následně aktualizovat a zkontrolovat logy. Postižené verze: WordPress 4.7 až 7.1.3.

    vencour | Komentářů: 0
    včera 16:11 | Bezpečnostní upozornění

    Alpine Linux zveřejnil podrobnosti o útoku na svůj GitLab a 30. října oznámil obnovení provozu. Útočník se 20.–21. října pokusil zneužít chybu v regulárních výrazech. Exploit způsobil opakované pády workerů a několikrát se dostal do pokročilé fáze. Úspěšné spuštění kódu však nebylo potvrzeno. Fix: Opravený GitLab a současně Ruby 3.3.13, 3.4.12 nebo 4.0.9+, pokud jde o vlastní sestavení či kontejner.

    vencour | Komentářů: 0
    včera 15:44 | Pozvánky

    Konference OpenAlt 2026 proběhne tento víkend 7. a 8. listopadu na FIT VUT v Brně. Jedná se již o 21. ročník této konference, která propojuje otevřené technologie, svobodný software, hardware a lidi, kteří chtějí věci nejen používat, ale také jim rozumět a měnit je k lepšímu. Více o konferenci v příspěvku OpenAlt 2026: technologie, které dávají svobodu na blogu spolku OpenAlt.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (20%)
     (30%)
     (9%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2970 hlasů
     Komentářů: 34, poslední 26.10. 08:24
    Rozcestník

    Dotaz: latex - dlouhá slova a zalamování

    29.4.2007 14:36 oxd
    latex - dlouhá slova a zalamování
    Přečteno: 21827×
    Dobrý den, jsem začátečník v latexu a mám takovýto problém:

    Dlouhá slova, která se už nevlezou na konec řádku se nezalomí ale přesáhnou okraj. Pokud to chci napravit a před dlouhé slovo vložím příkaz \newline slovo na konci dalšího řádku opět přečuhuje.

    Zde je ukázka: obrázek

    Kde dělám chybu a jak přinutit latex, aby správně zalamoval dlouhá slova?

    Díky moc!

    Odpovědi

    Josef Kufner avatar 29.4.2007 17:51 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: latex - dlouhá slova a zalamování
    Roz\-dě\-luj je.
    Hello world ! Segmentation fault (core dumped)
    29.4.2007 19:09 oxd
    Rozbalit Rozbalit vše Re: latex - dlouhá slova a zalamování
    Rozdělení Jmé\-no opravdu funguje. Skvělý! Je nějaký způsob jak Latex přinutit, aby nepřesahoval šířku řádku a dlouhé texty v mat. prostředí dával na další řádek? Abych nemusel psát \newline, \linebreak.
    29.4.2007 18:03 Paulus | skóre: 15 | Jihlava
    Rozbalit Rozbalit vše Re: latex - dlouhá slova a zalamování
    LaTeXu samozřejmě můžeš říct, jak slova lámat pomocí sekvence \-. Například. Dlou\-ha\-tán\-ský. Pokud ti nerozdělí slovo "Jméno", tak to asi znamená, že nemůže najít vzory pro české dělení slov. Nevím, jakou distribuci TeXu máš a jestli obsahuje CSLaTeX. Zkus raději místo příkazu latex, použít cslates (u mě ale malinko zlobí, když je vstupní soubor v kódování UTF-8).
    29.4.2007 18:42 Marble | skóre: 27 | blog: marble
    Rozbalit Rozbalit vše Re: latex - dlouhá slova a zalamování
    Ne. Pokud je to v LaTeXu stejně jako v plainu (předpokládám), tak při dělení slov nenechává na začátku řádku méně než tři znaky a na konci řádku méně než dva znaky (ale počítá se do toho myslím případná interpunkce). Takže rozdělení "konec vě/ty." funguje, ale "a/hoj" a "vě/ta" ne.

    Ovlivnit se to dá proměnnými \lefthyphenmin a \righthyphenmin (výchozí hodnoty jsou 2 a 3).

    29.4.2007 18:49 Paulus | skóre: 15 | Jihlava
    Rozbalit Rozbalit vše Re: latex - dlouhá slova a zalamování
    Aha, tak to jsem nevěděl. Tím by se leccos vysvětlovalo.
    29.4.2007 19:10 oxd
    Rozbalit Rozbalit vše Re: latex - dlouhá slova a zalamování
    Ať \lefthyphenmin a \righthyphenmin nastavím jak nastavím výsledek je pořád stejný.
    29.4.2007 19:28 Marble | skóre: 27 | blog: marble
    Rozbalit Rozbalit vše Re: latex - dlouhá slova a zalamování
    Funguje to přibližně takto (první odstavec přeteče, druhý ne):

    \parindent=0pt\hsize=7em
    Test dělení slova do řádků.\par
    \righthyphenmin=2
    Test dělení slova do řádků.\par
    \bye
    

    Takhle by to mělo fungovat v čemkoliv, co si řáká TeX (testováno v plainu, nechce se mi hledat, jak se píšou LaTeXové hlavičky, ale fakt nevidím důvod, proč by se měl LaTeX chovat jinak). Můžeš sem dát ukázkový zdroják, ve kterém ti to nefunguje?

    Jinak algoritmus zlomu řádek se dá ovlivnit ještě dalšími proměnnými a pro poměrně úzkou sazbu může být občas nějaká úprava potřeba, ale to už je na delší povídání. To už spíš odkážu na TeXbook naruby od Olšáka. :)

    29.4.2007 19:44 Paulus | skóre: 15 | Jihlava
    Rozbalit Rozbalit vše Re: latex - dlouhá slova a zalamování
    No tak třeba u mě v LaTeXu se oba řádky chovají naprosto stejně - tj. oba se lámou:
    Test dělení slova
    do řádků.
    Píšu 12ti bodovým písmem.
    29.4.2007 19:48 Marble | skóre: 27 | blog: marble
    Rozbalit Rozbalit vše Re: latex - dlouhá slova a zalamování
    Tohle bylo nastaveno na 10bodové písmo. Jinak je třeba asi trochu snížit \hsize, aby se to lámalo už uprostřed slova.
    1.5.2007 16:23 oxd
    Rozbalit Rozbalit vše Re: latex - dlouhá slova a zalamování
    díky moc, nakonec jsem našel na internetu tenhle kód:
    \emergencystretch=0pt
    \pretolerance=150
    \tolerance=250
    \hbadness=150
    \hfuzz=0pt
    
    a po něm už žádný přesah nemám. Sice nevím proč, ale funguje to :)
    2.5.2007 13:52 oxd
    Rozbalit Rozbalit vše Re: latex - dlouhá slova a zalamování
    Zjistil jsem další možné řešení. Stačí použít příkaz
    \sloppy
    a slova už nebudou přesahovat konec řádku.
    29.4.2007 19:46 Marble | skóre: 27 | blog: marble
    Rozbalit Rozbalit vše Re: latex - dlouhá slova a zalamování
    A co se týká zalamování té matiky. Nejčistší řešení je za backslash, ve kterém by se to mohlo lámat přidat \discretionary{}{\the\textfont2\char"6E}{}, případně si rovnou předefinovat makro \backslash tak, aby tento kód obsahovalo, a pak se bude v matice backslash lámat s tím, že se navíc zopakuje na příštím řádku.
    1.5.2007 16:43 oxd
    Rozbalit Rozbalit vše Re: latex - dlouhá slova a zalamování
    Ten zlom za lomítkem mě zajímá. Mohl by jsi nějak upřesnit jak to funguje? Zkoušel jsem předefinovat příkaz \backslash:
    \renewcommand{\backslash}[1]{\backslash\discretionary{}{\the\textfont2\char"6E}{}}
    
    ale latex mi vypíše jen chybu "Tex capacity exceeded, sorry [input stack=5000]". předpokládám, že je to kvůli příkazu \backslash v těle nového příkazu. Dochází asi k nekonečné rekurzi.

    Když příkaz pojmenuju jinak (např. \bslash), tak to funguje, ale nastanou 2 problémy:
    1. za lomítkem chybí 1. znak: $AA\bslash BB\bslash CC$ vypíše AA\B\C
    2. pokud slovo na konci řádku nevyjde, šířku řádku přesáhne (blbá matika :-( )
    
    Tak mě ještě napadlo, je nějaký způsob, jak psát lomítko vně prostředí matiky? Matiku totiž používám na proměnné v textu a ta to celá kazí. Kdyby existoval způsob jak zvýraznit text stejně jako v mat. prostředí $$ a fungovaly by lomítka, pak bych mat. prostředí nemusel vůbec používat a neměl bych problém s přesahem.
    1.5.2007 17:32 Marble | skóre: 27 | blog: marble
    Rozbalit Rozbalit vše Re: latex - dlouhá slova a zalamování
    Omlouvám se, ale LaTeX fakt neznám. :( To že to sežere jeden znak za znamená, že jsi nadefinoval makro s jedním parametrem. Musíš to definovat bez parametrů. (Že by ta jednička v hranatých závorkách?) Co přesně dělá LaTeXovský \newcommand nevím, takže bohužel ani nedokážu říct, proč se mu nelíbí stejný název makra. Ale pokud řešení, co píšeš nevadí, tak bych to dál neřešil. :)

    Ad nevyjde na konec řádku -- no pokud není míst zlomu dostatek vzhledem k povoleným roztažení a stažení různých mezer (mezi slovy), tak se prostě zlom vyřešit nedá. Možnost je poněkud přestylyzovat text, přidat další místa k dělení (ale jestli povolit dělení pomlčkou názvů proměnných nevím ...) atd. Univerzální postup bohužel neexistuje.

    Ad backslash mimo matiku. Máš návod v mém předchozím příspěvku. :) Obsah \discretionary se sází mimo matiku. Takže stačí jen nadefinovat backslash jako {\the\textfont2\char"6E}. Takhle definovaný backslash nebude umět narozdíl od toho standardního, co je definován jako delimiter, růst, ale to tady asi neva. Ještě lépe jej definovat stylem \def\bs{\discretionary{\the\textfont2\char"6E}{\the\textfont2\char"6E}{\the\textfont2\char"6E}}, takže se bude i dělit na konci řádku. Ale nevím jak moc to celé pomůže oproti matice ...

    Zvýraznění jako v matice ... font, co se používá na značky proměnných je myslím standardní kurziva, v matematice je jen jiné mezerování (pro psaní celých slov mnohem ošklivější :), protože se předpokládá, že veličiny se značí jen jedním písmenkem. Takže nadefinovat backslash jak jsme zmínil výše a psát kurzivou.

    1.5.2007 22:09 oxd
    Rozbalit Rozbalit vše Re: latex - dlouhá slova a zalamování
    Tak to je paráda! Příkaz \bs funguje bezvadně. Díky moc! Je vidět, že tomu rozumíš. Po napsání \texttt{A\bs B\bs C\bs D\bs E} se to krásně vysází jako A\B\C\D\E.

    Vím, že už bylo dotazů dost, ale uměl by jsi nadefinovat příkaz, který by to ještě více zpřehlednil? Např. aby \mytext{A\B\C\D\E} vysázelo to samé jako \texttt{A\bs B\bs C\bs D\bs E} ? Nevim jak nahradit automaticky to lomeno za \bs.
    1.5.2007 22:48 Marble | skóre: 27 | blog: marble
    Rozbalit Rozbalit vše Re: latex - dlouhá slova a zalamování
    No backslash sice předefinovat můžeš, ale asi by tě potom nepotěšilo, že nejde zadávat ostatní makra. V principu můžeš v TeXu (až na pár vyjímek) přiřadit libovolnému znaku (ve významu ASCII hodnoty) libovolnou funkci (v TeXovské terminologii catcode). Jenže se asi neobejdeš bez nějakého znaku s \catcode=0, který slouží jako uvození řídících sekvencí. Standardně je to právě backslash, v principu ti nic nebrání si nadefinovat \catcode0 třeba pro zavináč a pak psát {tohle bude {@it kurziva}}, ale nevím, jestli to tak úplně chceš. :) Naopak si můžeš vybrat nějaký nepoužívaný znak (třeba zas ten zavináč), přiřadit mu \catcode 13 (aktivní znak), což znamená, že pak se může jako makro použít sám bez potřeby uvození backslashem (standardně má tuhle kategorii třeba vlnka). Pokud pak provedeš něco jako \catcode`\@=13\def@{\discretionary...}, tak pak můžeš používat zavináč jako backslash.

    Tož asi tak ... prostě nemůžeš po TeXu chtít, aby sám od sebe uhádl, jestli chceš použít backslash jako uvození řídící sekvence, nebo explicitní backslash. :)

    2.5.2007 00:13 oxd
    Rozbalit Rozbalit vše Re: latex - dlouhá slova a zalamování
    Já měl na mysli něco takového: \newcommand{\path}[1]{\texttt{\verb*'#1'}} V textu pak píšu např.: cesta k souboru je \path{\etc\bla\bla}.

    Nemyslel jsem to na celý dokument, jen v té části příkazu. Chtěl bych předefinovat znak \ a / a ~ tak aby tento příkaz korektně vysázel cestu, která se bude lámat v \ a / a nebude se lámat na znaku -. Prostě takový univerzální příkaz, který mi vysází cestu a nemusel bych potom pořád psát pro každé lomítko \bs.
    2.5.2007 01:46 Marble | skóre: 27 | blog: marble
    Rozbalit Rozbalit vše Re: latex - dlouhá slova a zalamování
    OK, už chápu. :)

    Zakázání dělení uprostřed slov se dá udělat nejjednodušeji tím, že se \hypenchar pro daný font nastaví na hodnotu -1 (v \tt fontu je to tak standardně, jinde by bylo potřeba nastavit).

    Vlnka je už sama od sebe aktivním znakem, takže není problém ji předefinovat na \char"7E (znak vlnky). Nadefinovat slash jako aktivní znak také není problém: \catcode`\/=13\def/{\discretionary...}

    S backslashem bude srandy trochu víc ... nejjednodušší je předem si nějaký jiný znak, který určitě nebude v cestě, předefinovat na \catcode0, tím si ušetříš spoustu problémů. :) Třeba takhle: {\catcode`\*=0\catcode`*\=13*def\{*discretionary...}} No a koneckonců, pak si tu hvězdičku zas můžeš předefinovat zpátky na \catcode12, kdyby to bylo potřeba.

    Jo .. a nezapomínat na závorky, ať ty definice a upravené \catcode nevylezou mimo makro. :)

    2.5.2007 02:19 Marble | skóre: 27 | blog: marble
    Rozbalit Rozbalit vše Re: latex - dlouhá slova a zalamování
    Hm, tak jsme se nad tím trochu zamyslel, a není to úplně triv. Řešení vypadá asi následovně:
    {\catcode`\|=0\catcode`\/=13\catcode`\*=13\catcode`\\=13%
    |global|def|path{|begingroup%
            |def*{|endgroup}
            |def~{|char"7E}|catcode`|/=13|def/{|discretionary{|char"2F}{|char"2F}{|char"2F}}%
            |catcode`|*=0|catcode`|\=13|def\{|discretionary{|char"5C}{|char"5C}{|char"5C}}%
            |tt|catcode`|*=13%
    }}
    

    A cesta se pak píše přibližně takto: Soubor je v adresáři \path /tohle/je\cesta/s\~vlnkami/konec*, anebo někde jinde.

    Kvůli změně kategorií se to nedá nijak jednoduše (jestli vůbec) dostat do makra s parametrem, takže je potřeba zvlášť začínací a ukončovací makro. V tomhle případě je ukončovací makro hvězdička.

    Vysvětlení té ukázky hledej v TeXbooku naruby, anebo řekni, co není jasné a zkusím vysvětlit.

    2.5.2007 02:21 Marble | skóre: 27 | blog: marble
    Rozbalit Rozbalit vše Re: latex - dlouhá slova a zalamování
    Jo a to |catcode`|*=0 je tam samozřejmě nanic a klidně může být vyhozeno. Mi tam prolezlo omylem ...
    2.5.2007 13:50 oxd
    Rozbalit Rozbalit vše Re: latex - dlouhá slova a zalamování
    Funguje to parádně!
    {\catcode`\|=0\catcode`\/=13\catcode`\*=13\catcode`\\=13
    |global|def|path{
    |begingroup
    |def*{|endgroup}
    |def~{|char"7E}
    |catcode`|/=13|def/{|discretionary{|char"2F}{|char"2F}{|char"2F}}
    |catcode`|\=13|def\{|discretionary{|char"5C}{|char"5C}{|char"5C}}
    |tt|catcode`|*=13
    }}
    
    Zkoušel jsem přijít na význam a chápu to takhle:
    % nastaví znak | ve významu uvozování příkazu, znaky / * \ budou příkazy
    \catcode`\|=0\catcode`\/=13\catcode`\*=13\catcode`\\=13
    
    % co je global nevím, ale |def|path{ nadefinuje nový příkaz path
    |global|def|path{
    
    % begingroup znamená, že asi začíná skupina, ale proč je to zrovna tady nevím
    |begingroup
    
    % definice příkazů: * bude ukončovat skupinu, ~ se vytiskne jako ~, 
    |def*{|endgroup}
    |def~{|char"7E}
    
    % proč je tu znova řečeno, že / bude příkaz nevím, následuje definice příkazu /
    |catcode`|/=13|def/{|discretionary{|char"2F}{|char"2F}{|char"2F}}
    
    % proč je tu znova řečeno, že \ bude příkaz nevím, následuje definice příkazu \
    |catcode`|\=13|def\{|discretionary{|char"5C}{|char"5C}{|char"5C}}
    
    % |tt nastaví strojové písmo a proč je tu řečeno, že * je příkaz ???
    |tt|catcode`|*=13
    
    Pokoušel jsem se přidat příkazy, aby i podtržítko bylo obyčejný znak. Nejprve jsem zkusil:
    {\catcode`\|=0\catcode`\/=13\catcode`\*=13\catcode`\\=13\catcode`\_=13
    |global|def|path{
    |begingroup
    |def*{|endgroup}
    |def~{|char"7E}
    |def_{|char"5F}
    |catcode`|/=13|def/{|discretionary{|char"2F}{|char"2F}{|char"2F}}
    |catcode`|\=13|def\{|discretionary{|char"5C}{|char"5C}{|char"5C}}
    |tt|catcode`|*=13
    }}
    
    ale to mi latex nezkousl. Nevím proč :(

    Zkoušel jsem, zkoušel jsem, zkoušel jsem a nakonec se mi podařilo přidat podtržítko, ale vůbec nevím proč to tak funguje. Na konec jsem prostě přidal místo

    |tt|catcode`|*=13
    sekvenci:
    |tt|catcode`|*=13|catcode`_=12

    Zkoušel jsem ještě vytvořit nový příkaz tak, abych mohl používat \path{...} místo \path ...*. Začal jsem postupně. Nejprve jsem chtěl aby \path{} sázelo lomítka normálně. Napsal jsem toto:
    \newcommand{\path}[1]
    {
    {
    \catcode`\|=0
    \catcode`\\=13
    |def\{|char"5C}
    |texttt{#1}
    }
    }
    
    Vůbec to ale nejde zkompilovat :( Prostě si Latex dělá co chce :). Když odstraním řádek
    |def\{|char"5C}
    tak se to zkompiluje, ale samozřejmě nefunguje. Kde jenom pořád dělám chyby?
    2.5.2007 13:56 oxd
    Rozbalit Rozbalit vše Re: latex - dlouhá slova a zalamování
    Kvůli změně kategorií se to nedá nijak jednoduše (jestli vůbec) dostat do makra s parametrem, takže je potřeba zvlášť začínací a ukončovací makro. V tomhle případě je ukončovací makro hvězdička.

    Co je to "změna kategorií"?
    2.5.2007 14:44 Marble | skóre: 27 | blog: marble
    Rozbalit Rozbalit vše Re: latex - dlouhá slova a zalamování
    Zmenou kategorie myslim nastaveni \catcode znaku. K cele te veci je potreba si uvedomit v jakem poradi zpracovava TeX vstup. Nejprve proc je v tom mem makru vsechno \catcode dvakrat. Jde o to, ze TeX pri uceni se makra (\def\neco{....}) prikazy neprovadi, ale jen uklada. A uklada je jako dvojici ASCII hodnota a catcode. Ja chci mit zmenene catcode az po zavolani makra \path, ale protoze zaroven v tele makra s temi znaky, kterym menim catcode pracuji, tak uz pri uceni se museji ulozit se spravnou catcode (alespon tam, kde ma catcode vyznam). Takze docasne pro uceni zmenim catcode (to je to pred \def, ale ve slozenych zavorkach, takze po skonceni uceni se uz budou zas catcode jak maji byt). Ale pak ty catcode chci menit jeste pri kazdem pouziti makra. Pri pouziti makra se uz samozrejme jeho obsah provadi, takze se provedou prikazy na zmenu kategorie uvnitr makra. Takze v te tve uprave ti chybi proste jen |catcode`|_=13 uvnitr tela makra.

    Proc to nejde jednoduse udelat jako makro \path{cesta}. No strucne receo proto, ze TeX nejdriv nacita parametry makra a pak teprv to makro provadi. Kdyz bude ale mezi parametry makra napriklad backslash, tak se TeX pokusi vse za \ nacist jako ridici sekvenci, ktera ale neexistuje a zahlasi chybu (a kdyby existovala, tak to stejne bude jine chovani nez chces -- ty bys potreboval, aby mel backslash jinou kategorii uz pri nacitani parametru makra, ale toho nedocilis prikazem \catcode uvnitr makra. Naopak ten system s makrem bez parametru funguje, protoze se nejdriv provede makro \path, nastavi se catcode a pak se teprv pokracuje ve cteni vstupu. IMO je makro s ukoncovacim znakem na pouziti v pohode. Pokud se ti nelibi hvezdicka, predefinuj si k tomu ucelu slozenou zavorku. :-) (Ale bacha na to, ze ji zaroven asi budes chtit pouzivat jako normalni slozenou zavorku v definici makra.)

    Proc je tam \begingroup: Jednoduse proto, ze chci, aby borcus, co mi makro udela (jine \catcode a definice) byl po ukonceni cesty zas hezky uklizen. Takze to cele uzavru do skupiny. Zavorku pouzit nemuzu, protoze bych je pri definici makra nemel spravne sparovane, takze pouziju \begingroup a \endgroup, ktere delaji +/- totez jako slozenen zavorky.

    \global je u definice makra proto, ze cela definice zije ve slozenych zavorkach (kvuli catcode), ale ja chci, aby to nadefinovane makro existovalo i po ukonceni bloku.

    Uf, bych to pomalu mohl vydat jako clanek na Abicku. :) Ale pokud budes mit chvili casu a zajimaji te vnitrnosti TeXu tak ta knizka od Olsaka, co jsem tu parkrat zminil je skutecne skvely popis.

    2.5.2007 15:46 oxd
    Rozbalit Rozbalit vše Re: latex - dlouhá slova a zalamování
    Díky moc za vysvětlení a za rady.
    29.4.2007 23:09 Vtipnéř | skóre: 39 | blog: Vtipnéřův blog | Brno
    Rozbalit Rozbalit vše Re: latex - dlouhá slova a zalamování
    Možný zdroj problémů je také použití programu latex s češtinou v rámci balíku babel. V tom případě se nenačítají české vzory pro dělení slov. Pro správnou funkci je potřeba použít program cslatex, kdy se použije formát vygenerovaný se správnými vzory. Pracuje se na nové verzi babelu (možná už je hotová), která má už v sobě české vzory, ale mám pocit, že ještě není běžně zakomponována v balíčcích pro jednotlivé distribuce linuxu. Bližší informace by asi bylo možné najít na české TeXovské diskusi.

    Jirka
    Opening Windows is better than washing them. Clearing Windows (e.g. erasing or deleting) is even much better.
    30.4.2007 11:57 robertK | skóre: 26 | blog: Klokanuv_blog | Brno
    Rozbalit Rozbalit vše Re: latex - dlouhá slova a zalamování
    tohle už není pravda, ta nová verze babelu už je hotová a prý lepší než cslatex. viz www.cstug.cz

    Založit nové vlákno • Nahoru

    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.