[cstex] powerdot a cstex

Petr Olsak petr at olsak.net
Fri Oct 16 09:59:20 CEST 2015


On Fri, 16 Oct 2015, Petr Sojka wrote:

> On Fri, Oct 16, 2015 at 09:06:33AM +0200, Petr Olsak wrote:
> Dobrý den.
>
>>> %Tesaříkova patch \cline pro babel s czech a slovak
>>> \makeatletter
>>> \begingroup
>>> \catcode`\-=\active
>>> \def\x{\endgroup
>>> \let\cs at cline\@cline
>>> \expandafter\def\expandafter\@cline
>>>   \expandafter##\expandafter1\expandafter
>>>     -\expandafter##\expandafter2\expandafter\@nil\expandafter
>>> {\expandafter\cs at cline\expandafter##\expandafter1\minus##2\@nil}
>>> }\x
>>> \makeatother
>>
>> Není zcela zřejmé, proč je to makro tak hrůzostrašné. Ale při
>> pohledu do maker většiny LaTeXových balíčků i LaTeXu samotného se to
>> asi jeví bohužel jako standard.

> Pokusím se trochu "hrůzostrašnost" vysvětlit: je to kvůli portabilitě.
> Níže užitý primitiv \detokenize totiž není
> v Knuthově originálním TeXu, ale až v e-TeXu. e-TeX
> je sice dnes již poměrně rozšířen, ale LaTeX používá tolik lidi,
> že jako _obecné_ řešení nelze řešení zkracující délku
> makra využitím \detokenize místo mnohých \expandafter akceptovat.
> Řešení je samozřejmě korektní pro ty jednotlivce, kteří ví
> o nevyřčeném předpokladu rozšířeného TeXu (e-TeXu),

Petr Sojka nemá pravdu a (možná záměrně) mate čtenáře tohoto listu. eTeX 
je již několik let (desítky?) přirozenou součástí LaTeXu a i zcela 
základní LaTeXové balíčky si bez něj neškrtnou. Protože problém s \cline 
je problém LaTeXu, který má eTeX *vždy* inicializován, navrhnul jsem 
záměrně toto řešení opírající se o eTeX.

Na druhé straně ukázky v TBN se opírají jen o klasický TeX a tudíž tam 
\detokenize není použito.

Zdravím

Petr Olšák

> P.S. Mnohé příklady TBN z kap. 2 by určitě také šly


> "asi lépe řešit" pomocí \detokenize, a na první pohled
> vypadají pro čtenáře "hrůzostrašně".

>> Nicméně, problém by se dal asi lépe řešit pomocí:
>>
>> \let\clineori=\cline
>> \def\cline#1{\expandafter\clineori\expandafter{\detokenize{#1}}}
>>
>> Toto navíc funguje bez ohledu na to, zda je nebo není
>> \usepackage[czech]{babel} použito.
>>
>> Zdravím
>>
>> Petr Olšák
> _______________________________________________
> csTeX mailing list
> csTeX at cs.felk.cvut.cz
> https://lists.felk.cvut.cz/mailman/listinfo/cstex
>


More information about the csTeX mailing list