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 14:24 | Nová verze

Opera 46, verze 46.0.2597.26, byla prohlášena za stabilní. Nejnovější verze tohoto webového prohlížeče je postavena na Chromiu 59. Z novinek lze zmínit například podporu APNG (Animated Portable Network Graphics). Přehled novinek pro vývojáře na blogu Dev.Opera. Oznámení o vydání zmiňuje také první televizní reklamu.

Ladislav Hagara | Komentářů: 0
včera 13:37 | IT novinky

I čtenáři AbcLinuxu před dvěma lety vyplňovali dotazníky věnované Retro ThinkPadu. Nyní bylo potvrzeno, že iniciativa Retro ThinkPad je stále naživu a Lenovo připravuje speciální edici ThinkPadu jako součást oslav jeho 25. výročí.

Ladislav Hagara | Komentářů: 8
včera 10:22 | Komunita

Bylo oznámeno, že frontend a runtime programovacího jazyka D bude začleněn do kolekce kompilátorů GCC (GNU Compiler Collection). Správcem byl ustanoven Iain Buclaw.

Ladislav Hagara | Komentářů: 4
21.6. 18:47 | IT novinky
Bulharská firma Olimex je známá jako výrobce kvalitních mini arm desek, u nichž se snaží být maximálně open source. Kromě velké otevřenosti taktéž zaručují dlouhodobou podporu výroby, což je vítáno ve firemním prostředí. Nyní firma ohlásila ESP32-GATEWAY, malou IoT desku s Wifi, Bluetooth, Ethernetem a 20 GPIO porty za 22EUR. Tato malá deska je ořezanou verzí ESP32-EVB.
Max | Komentářů: 19
21.6. 18:00 | Zajímavý článek

LinuxGizmos (v dubnu loňského roku přejmenován na HackerBoards a v lednu letošního roku zpět na LinuxGizmos) zveřejnil výsledky čtenářské ankety o nejoblíbenější jednodeskový počítač (SBC) v roce 2017. Letos se vybíralo z 98 jednodeskových počítačů (Tabulky Google). Nejoblíbenějšími jednodeskovými počítači v letošním roce jsou Raspberry Pi 3 Model B, Raspberry Pi Zero W a Raspberry Pi 2 Model B.

Ladislav Hagara | Komentářů: 0
21.6. 14:22 | Pozvánky

Ne-konference jOpenSpace 2017 se koná od 13. do 15. října 2017 v hotelu Farma u Pelhřimova. Registrace účastníků je nutná. Více informací na stránkách ne-konference.

Zdenek H. | Komentářů: 0
21.6. 14:11 | Nová verze

Vyšla nová verze 1.2 audio kodeku Opus, která přináší mnoho drobných optimalizací a tím i celkové vylepšení poměru bitrate/kvalita. Fullband (do 20 kHz) stereo hudba je možná již od 32 kbit/s, fullband mono řeč již od 14 kbit/s. Více informací sepsal vývojář Opusu J. M. Valin formou již tradiční demo stránky.

Petr Tomášek | Komentářů: 19
21.6. 14:00 | Zajímavý článek

Na MojeFedora.cz byl zveřejněn překlad příspěvku na blogu Christiana Schallera, vedoucího desktopového týmu v Red Hatu, v němž se zabývá novinkami ve Fedoře Workstation 26 a následujících vydáních. Například již ve Fedoře 27 by se měl objevit jednotný server pro audio a video v Linuxu PipeWire. Ten byl představen před dvěma lety. Tenkrát ještě pod názvem Pinos (PulseVideo).

Ladislav Hagara | Komentářů: 0
21.6. 05:55 | Bezpečnostní upozornění

V KMailu byla nalezena a opravena bezpečnostní chyba CVE-2017-9604 týkající se uživatelů, již své maily podepisují a šifrují pomocí OpenPGP. Pokud uživatel KMailu při odesílání mailu zvolil možnost Odeslat později, tak byl mail odeslán nepodepsaný a v otevřeném tvaru.

Ladislav Hagara | Komentářů: 15
21.6. 04:44 | Pozvánky

Mozilla.cz zve na Mozilla meetupy v Brně a Praze. Brněnské setkání proběhne vůbec poprvé, a to tento pátek 23. 6. v Beer & Grill U Dřeváka. To pražské bude příští čtvrtek 29. 6. v Diversion Bistru.

Ladislav Hagara | Komentářů: 0
Chystáte se pořídit CPU AMD Ryzen?
 (6%)
 (31%)
 (1%)
 (9%)
 (44%)
 (9%)
Celkem 820 hlasů
 Komentářů: 65, poslední 1.6. 19:16
    Rozcestník

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

    29.4.2007 14:36 oxd
    latex - dlouhá slova a zalamování
    Přečteno: 16435×
    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: 67
    Rozbalit Rozbalit vše Re: latex - dlouhá slova a zalamování
    Roz\-\-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: 14 | 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 | Švédsko
    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: 14 | 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 | Švédsko
    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: 14 | 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 | Švédsko
    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 | Švédsko
    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 | Švédsko
    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 | Švédsko
    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 | Švédsko
    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 | Švédsko
    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 | Švédsko
    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 | Švédsko
    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: 33 | 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 much more 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á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.