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

Pocket (dříve Read It Later) (Wikipedie) je oblíbená služba umožňující uložit si článek z webu na později. V červnu 2015 s vydáním Firefoxu 38.0.5 se do té doby doplněk Pocket stal integrovanou součásti Firefoxu, a to i přes odpor celé řady uživatelů tohoto webového prohlížeče. Mozilla po měsících ustoupila a z integrované součásti se stal opět doplněk. Včera bylo oznámeno, že Mozilla službu Pocket kupila (Mozilla Blog, Pocket Blog).

Ladislav Hagara | Komentářů: 0
včera 23:55 | Pozvánky

Tentokrát jsme si pro vás připravili neobvyklou akci. Ve středu 1. 3. v 17:30 nás přivítá sdružení CZ.NIC ve svých prostorách v Milešovské ulici číslo 5 na Praze 3, kde si pro nás připravili krátkou prezentaci jejich činnosti. Následně navštívíme jejich datacentrum pod Žižkovskou věží. Provedou nás prostory, které jsou běžnému smrtelníkovi nedostupné!

… více »
xkucf03 | Komentářů: 0
včera 18:30 | Komunita

Jednodeskový počítač Raspberry Pi slaví již 5 let. Prodej byl spuštěn 29. února 2012. O víkendu proběhne v Cambridgi velká narozeninová party. Na YouTube bylo při této příležitosti zveřejněno video představující zajímavé projekty postavené na Raspberry Pi.

Ladislav Hagara | Komentářů: 0
včera 18:30 | Nová verze

Byla vydána verze 2017.1.1 svobodného multiplatformního leteckého simulátoru FlightGear. Kódový název a výchozí letiště této verze je Bergen. Přehled novinek v Changelogu.

Ladislav Hagara | Komentářů: 0
včera 10:50 | Zajímavý software

Mozilla.cz informuje o dvou nových experimentálních funkcích v programu Firefox Test Pilot (zprávička). Snooze Tabs slouží k odkládání panelů na později. Pokud vám někdo pošle odkaz, ale vy nemáte čas si stránku hned přečíst, můžete si naplánovat otevření panelu na později. Stačí kliknout na tlačítko a vybrat, kdy chcete panel otevřít. Firefox panel schová a ve vybraný čas znovu otevře. Pulse umožňuje ohodnotit, jak dobře stránka funguje, např. jak rychle se ve Firefoxu načetla. Podle nasbíraných hodnocení pak bude Mozilla prohlížeč ladit.

Ladislav Hagara | Komentářů: 6
včera 02:00 | IT novinky

V Barceloně probíhá veletrh Mobile World Congress 2017. Nokia na něm například představila (360° video na YouTube) novou Nokii 3310 (YouTube). BlackBerry představilo BlackBerry KEYone (YouTube) s QWERTY klávesnicí. LG představilo LG G6 (YouTube). Huawei HUAWEI P10 a P10 Plus. Samsung představil tablet Galaxy Tab S3.

Ladislav Hagara | Komentářů: 1
26.2. 14:00 | Nová verze

Komunita kolem Linuxu From Scratch (LFS) vydala Linux Linux From Scratch 8.0 a Linux From Scratch 8.0 se systemd. Nové verze knih s návody na instalaci vlastního linuxového systému ze zdrojových kódů přichází především s Glibc 2.25 a GCC 6.3.0. Současně bylo oznámeno vydání verze 8.0 knih Beyond Linux From Scratch (BLFS) a Beyond Linux From Scratch se systemd.

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

Byla vydána verze 0.10.0 webového prohlížeče qutebrowser (Wikipedie). Přehled novinek v příspěvku na blogu. Vývojáři qutebrowseru kladou důraz na ovladatelnost pomocí klávesnice a minimální GUI. Inspirovali se prohlížečem dwb a rozšířeními pro Firefox Vimperator a Pentadactyl. Prohlížeč qutebrowser je naprogramován v Pythonu a využívá PyQt5. Zdrojové kódy jsou k dispozici na GitHubu pod licencí GNU GPL 3.

Ladislav Hagara | Komentářů: 33
25.2. 16:22 | Nová verze

Po pěti měsících od vydání Waylandu a Westonu 1.12.0 oznámil Bryce Harrington (Samsung) vydání Waylandu 1.13.0 a Westonu 2.0.0.

Ladislav Hagara | Komentářů: 6
24.2. 13:37 | Bezpečnostní upozornění

Společnost Cloudflare (Wikipedie) na svém blogu potvrdila bezpečnostní problém s její službou. V požadovaných odpovědích od reverzní proxy byla odesílána také data z neinicializované paměti. Útočník tak mohl získat cookies, autentizační tokeny, data posílaná přes HTTP POST a další citlivé informace. Jednalo se o chybu v parsování HTML. Zneužitelná byla od 22. září 2016 do 18. února 2017. Seznam webů, kterých se bezpečnostní problém potenciálně týká na GitHubu.

Ladislav Hagara | Komentářů: 1
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (13%)
 (2%)
 (72%)
 (3%)
 (10%)
Celkem 727 hlasů
 Komentářů: 69, poslední dnes 01:02
    Rozcestník

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

    29.4.2007 14:36 oxd
    latex - dlouhá slova a zalamování
    Přečteno: 15813×
    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: 66
    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.