Makro z TBN s. 115 nefunguje?

Matous Jan Fialka fialka.tex at seznam.cz
Fri Apr 30 15:44:55 CEST 2004


Ahoj,

resim stale problem s radkovym rejstrikem. Dosahl jsem jiz pokroku v tom
smyslu, ze jsem eliminoval vsechny pruzne \skip-y apod., nastavil \vsize
jako nasobky \baselineskip, ktera je tez nepruzna atd. a docili toho, ze mi
radkovy rejstrik perfektne sedi, ovsem pokud nevkladam do textu dalsi
elementy, napr. obrazky. K tomuto ucelu jsem chtel pouzit $SUBJ, ale zda se,
ze to jaksi nema efekt.

---cut---

\def\usad{\afterassignment\uvnitrboxu \setbox0=}
\def\uvnitrboxu{\aftergroup\usadbox}
\def\usadbox{\par \dimen0=\ht0 \advance\dimen0 by \dp0
   \divide \dimen0 \baselineskip
   \multiply \dimen0 \baselineskip
   \advance \dimen0 by \baselineskip
   \vbox to0pt{\kern-8.5pt \vbox to\dimen0{\vfil\box0\vfil}\vss}
   \nobreak \advance\dimen0 by-2\basleineskip
   \vskip \dimen0 \hbox{}}

---cut---

Nemuzu prijit na to, proc to nefunguje, ale zda se, jakoby se radkovy
rejstrik rozhodil o 0.5\baselineskip, coz je mi podezrele. Logice techto
maker rozumim a uprimne nechapu, proc by nemela fungovat tak, jak je
popisovano v TBN na str. 115.

Jeste nektere z mych nastaveni (pouzivam Didotovy body):

---cut---

\catcode`@=11

% \raggedbottom

\raggedbottom

% There are no widows etc. alowed.

\widowpenalty     = 10000
\clubpenalty      = 10000
\interlinepenalty = 10

% All skips are hardened.

\emergencystretch = \z@
\vfuzz            = \z@
\hfuzz            = \z@

% \baselineskip even \parindent are hardened too.

\font\TR = sldr8z at 12dd
\R

\baselineskip = 13dd plus 0dd minus 0dd

\lineskiplimit = -\maxdimen
\parindent     = \baselineskip % looks good
\parskip       = \z@

% Design variables are set.

\newcount \lines              \lines              = 48
\newcount \topskiplinesnumber \topskiplinesnumber = 2
\newdimen \howmuchnarrow      \howmuchnarrow      = 4\baselineskip

% Everything to left upper corner.

\advance \hoffset by -1truein
\advance \voffset by -1truein

\advance \voffset by \topskiplinesnumber\baselineskip
\advance \hoffset by \howmuchnarrow

% Make document A4 and narrower.

\topskip       = \z@
\splittopskip  = \topskip
\lineskip      = \baselineskip
\lineskiplimit = \z@

\hsize = 210truemm \advance\hsize by -2\howmuchnarrow
\vsize = \lines\baselineskip \advance\vsize by \topskip

% Hardened vertical skips.

\smallskipamount = 1\baselineskip plus \z@ minus \z@
\medskipamount   = 2\baselineskip plus \z@ minus \z@
\bigskipamount   = 3\baselineskip plus \z@ minus \z@

\catcode`@=12

---cut---

S timto nastavenim mi radkovy rejstrik perfektne sedi. Uvedene makro \usad
jej vsak oproti ocekavani rozhodi. :(

Zkuste si treba \usad\vbox{\vskip 22dd Nejaky text je zde! \vskip 15dd} a
uvidite, ze se rejstrik rozhodi. Proc ale? Nejak mi nad tim zustava rozum
stat, protoze by to fungovat melo...

Kdyby mel nekdo nejaky spasny napad anebo uplne jiny postup, jak vlozit do
textu box predem nezname vysky, aniz by to rozhodilo radkovy rejstrik,
prosim, podelte se se mnou. Bohuzel se kvuli tomuto problemu jiz 2 dny
nemohu pohnout dal.

Krasny den preje,

--
Matou\v{s} Jan Fialka aka Variable computing Prague
-----------------------------------------------
Private E-Mail:     matous_jan.fialka at seznam.cz
Home Page: http://burdazd.sh.cvut.cz/~socrates/
Linux User Number: 308523 Peace, TeX, GNU/Linux
-----------------------------------------------



More information about the csTeX mailing list