[cstex] Problém s \csname

Zdenek Wagner zdenek.wagner at gmail.com
Tue Aug 25 14:34:14 CEST 2009


2009/8/25 Jan Sustek <Jan.Sustek at seznam.cz>:
> Dobry den,
>
> \UUU! nebude fungovat, vykricnik neni pismeno a nacitani nazvu makra skonci
> u \UUU. Makro musite volat jako \csname UUU!\endcsname. Dalsi moznost by
> byla na zacatku nastavit \catcode'\!=11, potom se bude vykricnik chovat jako
> pismeno a TeX spravne nacte nazev makra i pri pouziti \UUU!. Toto reseni ale
> obecne nedoporucuji, zejmena v pripade, ze se v nazvech maker budou
> vyskytovat znaky kategorie 0-8.
>
Přesně tak. LaTeX má pro tvorbu a užívání takových maker \@namedef a
\@nameuse, což je vlstně jen konstrukce s \csname.

> Zdravi
> Jan Sustek
>
>> ------------ Původní zpráva ------------
>> Od: "Procházka Lukáš Ing. - Pontex s. r. o." <LPr at pontex.cz>
>> Předmět: [cstex] Problém s \csname
>> Datum: 25.8.2009 14:10:47
>> ----------------------------------------
>> Zdravím v konferenci,
>>
>> asi jeden z dalších problémů začátečníka - potřeboval implementovat
>> "vytvářeč maker" tak, aby ve jménu mohl být i nepísmenový znak, např "!"
>> nebo "/".
>>
>> Toto mi nefunguje:
>>
>> \def\MkIndexed#1#2{\expandafter\def\csname #1\endcsname{#2}}
>>
>> \MkIndexed{UUU!}{uuu}
>> \MkIndexed{VVV!}{vvv}
>>
>> \UUU!
>> \VVV!
>>
>> S chybou:
>>
>> ! Undefined control sequence.
>> l.56 \UUU
>>         !
>> ?
>>
>> Kdybych se obešel bez vykřičníku ve jménu "UUU!", bylo by vše OK. Jak jej
>> vnutit do jména?
>>
>> Předem děkuji a zdravím.
>>
>> Lukáš Procházka
>>
>>
>>
>>
> _______________________________________________
> csTeX mailing list
> csTeX at cs.felk.cvut.cz
> http://lists.felk.cvut.cz/mailman/listinfo/cstex
>



-- 
Zdeněk Wagner
http://hroch486.icpf.cas.cz/wagner/
http://icebearsoft.euweb.cz



More information about the csTeX mailing list