[cstex] Cteni radku ze souboru

Petr Olsak petr at olsak.net
Thu Jan 24 13:40:17 CET 2008


Dobry den,

zavlecena mezera "vpredu" pred "Text" vznikla z makra
\readln za oteviraci slozenou zavorkou (jak uz upozornil Petr Sojka).
Zavlecena mezera "vzadu" za "Text" je dusledkem \catcode13=5
resp. \endlinechar=13, tj. konec radku je tokenizovan jako mezera.
Bohuzel, tuto vlastnost u hesla \read v TBN moc nezduraznuji, coz bych asi
mel. Na druhe strane TeXbook to rika jasne, viz Excercise 20.18.

Zdravim

Petr Olsak


On Wed, 23 Jan 2008 petr-kucera at volny.cz wrote:

> Dobrý den,
>
> prosím Vás, potřebuji ze souboru přečíst jeden určitý řádek.
> Dělám to pomocí makra
>
> \newcommand{\readln}
> {
> \chardef\soubor=15
> \openin\soubor=pr1.txt
> \read\soubor to \radek
> \closein\soubor
> \radek
> }
>
> Toto makro je velice zjednoduseno, ale i tak se chová jinak, než bych
> předpokládal. Napíši-li do zdojáku např.:
>
> \noindent Text
> \setbox30=\hbox{Text}
>
> \noindent\readln
> \setbox31=\hbox{\readln}
>
> \chardef\soubor=15
> \openin\soubor=pr1.txt
> \read\soubor to \radek
> \closein\soubor
> \noindent\radek
> \setbox32=\hbox{\radek}
>
> \the\wd30::\the\wd31::\the\wd32
>
> tak se sice vypíše 3x "Text", ale pokaždé jinak odsazen a jednotlivé
> boxy mají šířky po řadě 20.00003pt, 26.66669pt a 23.33336pt. V
> čem je problém?
>
> Děkuji za jakékoliv rady.
>
> Petr Kučera
>
> _______________________________________________
> csTeX mailing list
> csTeX at cs.felk.cvut.cz
> http://lists.felk.cvut.cz/mailman/listinfo/cstex
>




More information about the csTeX mailing list