[cstex] Problém s makrem XeVlna

Zdenek Wagner zdenek.wagner at gmail.com
Tue Jun 4 09:53:24 CEST 2013


Dne 4. června 2013 7:02 Petr Olsak <petr at olsak.net> napsal(a):
>
> Vážení kolegové,
>
> především: ano, zařadím definici \newXeTeXintercharclass do csplain.ini, ale
> než se to objeví v distribucích, bude to chvíli trvat. Takže okamžité řešení
> je vytvořit si kód s definicí přímo do dokumentu nebo do xevlna.sty nebo do
> csplain.ini a znovu generovat. Rovněž se při této příležitosti ptám, zda tam
> XeTeXisté nepotřebují ještě něco, aby se to udělalo při jednom. V manuálu
> xetex-reference.pdf se vesměs hovoří o XeTeX primitivech a toto je jediný
> případ, kdy se hovoří o makru (aniž to je explicitně zmíněno). Nebo se
> mýlím?
>
Zdá se, že máte pravdu. Bohužel v xetex-reference není uvedeno, co
jsou primitivy a co jsou makra...

> Navrhovaný kód do csplain.ini od pana Wagnera nebude fungovat při generování
> ostatních formátů, protože pomocí \ifx se nedá přeskakovat \newcount, je
> totiž v plainTeXu definovaný jako \outer. Takže připravuji zařadit do
> csplain.ini asi následující kód:
>
Na to jsem zapomněl, ale poznal bych to hned, až bych to spustil a TeX
by se začal zlobit.

> \ifx\XeTeXuseglyphmetrics\undefined \else % XeTeX specific:
>   \csname newcount\endcsname \XeTeXallocatorG \XeTeXallocatorG=3
>   \def\newXeTeXintercharclass#1{% \newXeTeXintercharclas is documented
>      \global\advance\XeTeXallocatorG by1 % in xetex-reference.pdf
>      \ifnum\XeTeXallocatorG<255
>        \global\chardef#1=\XeTeXallocatorG
>        \wlog{\string#1=\string\XeTeXintercharclass\the\XeTeXallocatorG}%
>      \else \errmessage{No room for a new \XeTeXintercharclass}\fi}
>   \XeTeXuseglyphmetrics=1
> \fi
>
> Lehce mimo téma: Povšimněte si, že mé makro se drží tradice udělat věci
> jednoduše, přímočaře a bez zavináčů. Na rozdíl od stejného makra v xetex.ini
> je napsáno srozumitelně a na sedmi řádcích (místo původních třinácti) a dá
> se jednoduše přečíst, co to dělá, a dělá to totéž.
>
> Zdravím
>
> Petr Olšák
>
>
> On Tue, 4 Jun 2013, Zdenek Wagner wrote:
>
>> Oprava, při kopírování jsem zapomněl vložit \catcode:
>>
>> Dne 4. června 2013 2:23 Zdenek Wagner <zdenek.wagner at gmail.com> napsal(a):
>>>
>>> Dne 3. června 2013 22:50 Řehoř J. Žáček <rehor.zacek at gmail.com>
>>> napsal(a):
>>>>
>>>> Prosím, mohl byste mi tedy polopaticky říct, jak má ona konstrukce
>>>> vypadat? Protože jestli to dobře chápu, tak se bude v konstrukci mezi \else
>>>> a \fi zalamovat řádky a já bych rád, pokud by to bylo napsané a hned
>>>> fungovalo korektně. Ještě jednou ale oceňuji Vaši pomoc.
>>>> _______________________________________________
>>>> csTeX mailing list
>>>> csTeX at cs.felk.cvut.cz
>>>> http://lists.felk.cvut.cz/mailman/listinfo/cstex
>>>
>>>
>>> Za normálních okolností je konec řádku nahrazen mezerou a mezery na
>>> začátku řádky jsou ignorovány, takže je jedno, mezi kterými tokeny se
>>> řádek zlomí. Pro přehlednost lze řádky odsadit. Mělo by tudíž fungovat
>>> toto:
>>>
>> \ifx\XeTeXuseglyphmetrics\
>> undefined \else % XeTeX specific
>> \XeTeXuseglyphmetrics=1
>> %
>> % Allocator for \XeTeXintercharclass values, from Enrico Gregorio
>> %
>> \catcode`\@=11
>> \newcount\xe at alloc@intercharclass % allocates intercharclass
>> \xe at alloc@intercharclass=\thr@@ % from 4 (1,2 and 3 are used by CJK,
>> AFAIK)
>> \def\xe at alloc@#1#2#3#4#5{\global\advance#1\@ne
>> \xe at ch@ck#1#4#2% make sure there's still room
>> \allocationnumber#1%
>> \global#3#5\allocationnumber
>> \wlog{\string#5=\string#2\the\allocationnumber}}
>> \def\xe at ch@ck#1#2#3{%
>> \ifnum#1<#2\else
>>  \errmessage{No room for a new #3}%
>> \fi}
>> \def\newXeTeXintercharclass{%
>> \xe at alloc@\xe at alloc@intercharclass\XeTeXintercharclass\chardef\@cclv}
>> %at most 254
>> \catcode`\@=112
>> \fi
>>
>>>
>>>
>>>
>>> --
>>> Zdeněk Wagner
>>> http://hroch486.icpf.cas.cz/wagner/
>>> http://icebearsoft.euweb.cz
>>
>>
>>
>>
>> --
>> Zdeněk Wagner
>> http://hroch486.icpf.cas.cz/wagner/
>> http://icebearsoft.euweb.cz
>>
>> _______________________________________________
>> csTeX mailing list
>> csTeX at cs.felk.cvut.cz
>> http://lists.felk.cvut.cz/mailman/listinfo/cstex
>
>
> _______________________________________________
> 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