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 08:22 | Bezpečnostní upozornění

NÚKIB (Národní úřad pro kybernetickou a informační bezpečnost) informuje o zranitelnosti ROCA v procesu generování RSA klíčů, který se odehrává v softwarové knihovně implementované například v kryptografických čipových kartách, bezpečnostních tokenech a dalších hardwarových čipech vyrobených společností Infineon Technologies AG. Zranitelnost umožňuje praktický faktorizační útok, při kterém útočník dokáže vypočítat

… více »
Ladislav Hagara | Komentářů: 0
dnes 01:23 | Zajímavý software

Příspěvek na blogu otevřené certifikační autority Let's Encrypt informuje o začlenění podpory protokolu ACME (Automatic Certificate Management Environment) přímo do webového serveru Apache. Klienty ACME lze nahradit novým modulem Apache mod_md. Na vývoj tohoto modulu bylo uvolněno 70 tisíc dolarů z programu Mozilla Open Source Support (MOSS). K rozchození HTTPS na Apache stačí nově přidat do konfiguračního souboru řádek s ManagedDomain. Minutový videonávod na YouTube [reddit].

Ladislav Hagara | Komentářů: 0
včera 14:15 | Komunita

Daniel Stenberg, autor nástroje curl, na svém blogu oznámil, že obdržel letošní Polhemovu cenu, kterou uděluje Švédská inženýrská asociace za „technologickou inovaci nebo důvtipné řešení technického problému“.

marbu | Komentářů: 9
včera 13:40 | Pozvánky

Cílem Social Good Hackathonu, který se uskuteční 21. a 22. října v Brně, je vymyslet a zrealizovat projekty, které pomůžou zlepšit svět kolem nás. Je to unikátní příležitost, jak představit nejrůznější sociální projekty a zrealizovat je, propojit aktivní lidi, zástupce a zástupkyně nevládních organizací a lidi z prostředí IT a designu. Hackathon pořádá brněnská neziskovka Nesehnutí.

… více »
Barbora | Komentářů: 1
včera 00:44 | Pozvánky

V sobotu 21. října 2017 se na půdě Elektrotechnické fakulty ČVUT v Praze uskuteční RT-Summit – setkání vývojářů linuxového jádra a uživatelů jeho real-time verze označované jako preempt-rt.

… více »
Pavel Píša | Komentářů: 7
16.10. 23:44 | Bezpečnostní upozornění

V Linuxu byla nalezena bezpečnostní chyba CVE-2017-15265 zneužitelná k lokální eskalaci práv. Jedná se o chybu v části ALSA (Advanced Linux Sound Architecture).

Ladislav Hagara | Komentářů: 1
16.10. 22:44 | Komunita

Greg Kroah-Hartman informuje na svém blogu, že do zdrojových kódu linuxového jádra bylo přidáno (commit) prohlášení Linux Kernel Enforcement Statement. Zdrojové kódy Linuxu jsou k dispozici pod licencí GPL-2.0. Prohlášení přidává ustanovení z GPL-3.0. Cílem je chránit Linux před patentovými trolly, viz například problém s bývalým vedoucím týmu Netfilter Patrickem McHardym. Více v často kladených otázkách (FAQ).

Ladislav Hagara | Komentářů: 4
16.10. 22:04 | Pozvánky

Rádi bychom vás pozvali na přednášku o frameworku Avocado. Jedná se o testovací framework další generace, inspirovaný Autotestem a moderními vývojovými nástroji, jako je třeba git. Přednáška se bude konat 23. října od 17 hodin na FEL ČVUT (Karlovo náměstí, budova E, auditorium K9 – KN:E 301). Více informací na Facebooku.

… více »
mjedlick | Komentářů: 0
16.10. 21:44 | Bezpečnostní upozornění

Nový útok na WPA2 se nazývá KRACK a postihuje prakticky všechna Wi-Fi zařízení / operační systémy. Využívá manipulace s úvodním handshake. Chyba by měla být softwarově opravitelná, je nutné nainstalovat záplaty operačních systémů a aktualizovat firmware zařízení (až budou). Mezitím je doporučeno používat HTTPS a VPN jako další stupeň ochrany.

Václav HFechs Švirga | Komentářů: 3
15.10. 00:11 | Zajímavý projekt

Server Hackaday představuje projekt RainMan 2.0, aneb jak naučit Raspberry Pi 3 s kamerovým modulem pomocí Pythonu a knihovny pro rozpoznávání obrazu OpenCV hrát karetní hru Blackjack. Ukázka rozpoznávání karet na YouTube. Zdrojové kódy jsou k dispozici na GitHubu.

Ladislav Hagara | Komentářů: 0
Jak se vás potenciálně dotkne trend odstraňování analogového audio konektoru typu 3,5mm jack z „chytrých telefonů“?
 (12%)
 (0%)
 (0%)
 (0%)
 (71%)
 (18%)
Celkem 17 hlasů
 Komentářů: 0
    Rozcestník

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

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