[cstex] parametry makra zakončené \par

Petr Olsak petr at olsak.net
Fri Jan 26 22:51:48 CET 2024


Dobrý den,

OpTeX odděluje interní jmenný prostor, který používá sekvence \_slovo, 
od uživatelského jmenného prostoru \slovo, ve kterém si uživatel může 
definovat cokoli bez nebezpečí, že by omylem zničil interní chování TeXu 
a OpTeXu. Takže může definovat \def\fi{finito} nebo \def\par{paragraf} a 
pak používat \fi což expanduje na slovo finito a \par což expanduje na 
slovo paragraf. Vnitřní makra OpTeXu se kvůli takovým makrům (na rozdíl 
od LaTeXu nebo ConTeXtu) nerozsypou. Aby to bylo možné, je třeba interní 
řídicí sekvence udržovat ve tvaru \_fi a \_par. Prázdný řádek tedy 
negeneruje \par (jako klasický TeX), ale \_par. Makro, které končí čtení 
parametru, jakmile narazí na prázdný řádek, tedy v OpTeXu je definováno 
jako \def\x#1\_par{...}.

To je důvod, proč jsem zařadil (naprogramoval pro všechny TeX enginy) a 
prosadil možnost generování libovolné řídicí sekvence na prázdném řádku, 
nejen pevně stanovené \par, jako v klasickém TeXu. To se zařídí pomocí 
primitivního příkazu \partokenname. A OpTeX deklaruje

   \partokenname\_par

takže prázdné řádky v OpTeXu generují \_par, nikoli \par.

Viz též dokumentaci k OpTeXu, sekci 2.38 (Other macros), odstavec 
začínající textem LuaTeX version 1.14 and newer. a následující odstavec 
začínající We set \partokenname to \_par ...

Zdravím

Petr Olšák


On 1/26/24 22:25, vclv at centrum.cz wrote:
> Teď jsem zjistil, že po přechodu na opTeX mi přestala fungovat makra, jejichž některé parametry byly zakončeny \par
>
> \def\x#1\par{#1}
>
> \x abc
>
> xxx
> \end
>
> produkuje chybu Paragraph ended before \x was complete.
>
> Mohu, prosím,  nějak zařídit zpátky, aby  prázdný řádek byl interpretován stejně jako \par? Podle TeXbooku jsme zkuisil
>
> \catcode`\^^L=\active \outer\def^^L{\par}
>
> bez úspěchu.
>
>
> _______________________________________________
> csTeX mailing list
> csTeX at cs.felk.cvut.cz
> https://lists.felk.cvut.cz/mailman/listinfo/cstex



More information about the csTeX mailing list