[cstex] ConTeXt a plainovska makra a aplikace II.
Petr Olsak
petr at olsak.net
Tue Apr 24 09:31:23 CEST 2007
On Mon, 23 Apr 2007, Jaroslav Hajtmar wrote:
> Dobry den.
> To, ze je pritomnost "chyby" zavisla na verzi ConTeXtu nebo PdfTeXu je
> pro mne dobra zprava...
Dobry den,
ja nevim, jestli je to uplne jiste. Mame pouze jistotu, ze jeden
ConTeXtista se pokusil chybu zrekonstruovat a nepodarilo se mu to.
Nemam ConTeXt, takze dale vyvozuji jen z toho, co mohu vykoukat z toho
PDF. Ty nuly jsou jen zleva stinovane. Po prevodu toho PDF do
PostScriptu a analyze te casti postscriptoveho kodu, ktera ty
nuly produkuje, jsem zjistil, ze:
- cely dokument je tisten jedinym fontem LMRoman12-Regular vcetne tech nul,
- nuly jsou vytisteny drive nez cokoli ostatniho na strance,
- nuly jsou tisteny kodem 030 osmickove, 0x18 hexa, 24 dekadicky, tj.
jedna se o znak ^^X, coz v kodovani Cork je znak tvorici cast znaku
procento nebo promile (viz napr. TST, str. 288).
Puvodne jsem si myslel, ze problem bude v tom, ze behem vystupni rutiny
ConTeXt nacita nejake sve pracovni soubory, a protoze ma zmenenu v danem
okamziku sadu kategorii, dopadne vystup jinak.
Ted se spis priklanim k tomu, ze za to muze separator ^^X, ktery jsem ve
svem makru scancsv pouzil. Tento znak (mimo rozsah viditelnych ASCII
znaku) jsem pouzil proto, aby nedoslo ke kolizi s beznym vstupnim textem
v CVS souboru, kde takovy znak neocekavam.
Na zacatku definuji ve svem makru scancsv (pouze pro jistotu):
\catcode`\^^X=13 \def^^X{}
a v okamziku cinnosti \scanbase lokalne nastavuji
\endlinechar=`\^^X
abych mohl nakrmit parametry maker jednotlive radky separovane ^^X.
V csplainu neni problem, nikde ve vystupu se (pri \tracingall)
neobjevi v logu vystup tvaru
{the character ^^X}
takze i kdyby makra nespravne zafungovala a uteklo nejake ^^X, pak diky
tomu, ze je \catcode`\^^X=13 \def^^X{}, se do vystupu nic nedostane.
Domnivam se, ze ConTeXt asi meni kategorii znaku ^^X zpet na normalni
a pak se ten znak dostane nejakou cestou do vystupu. V kterem okamziku,
nevim, je to mozne zjistit nastavenim \tracingall a spustenim toho
ConTeXtu (coz ja nemohu).
Zjistil jsem jeste, ze i kdyz zakomentuji bezpecnostni pojistku
\catcode`\^^X=13 \def^^X{}, tak stejne mi zadne ^^X do vystupu v csplainu
neutece. Je to mozna nadbytecna bezpecnostni pojistka, ktera navic v
ConTeXtu nezafungovala.
Prosim ConTeXtisty, aby se na to podivali. Docela me to zajima, kde je
problem.
Zdravim
Petr Olsak
More information about the csTeX
mailing list