[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