Otoceni tabulky

Anton Surda fyzisurd at savba.savba.sk
Tue Jan 23 12:34:53 CET 1996


>
> Nedavno jsem se uz ptal, jak otocit tabulku o 90 stupnu na strance.
> Problem je vsak, ze moje pokusy jsou bez kladnych vysledku. Pokusil
> jsem se pouzit rotate.sty, ale nic...
> Nevite nekdo, v cem je zakopany pes? Pouzivam prastary LateX 2.09.
> Nutne to potrebuji -- cas nepocka a tece mi do bot.
>
>

Osvedcilo sa mi nasladejuce makro, ktore dany objekt napr. tabulku da na
nasledujucu stranu ( ak nie ssu vzasobe este dalsie inserty),
zvisle vycentruje  a vodorovne da k vonkajsiemu okraju
stranky (na neparnu stranu vpravo, parnu vlavo, alebo posledne makro
vycentruje.




\newdimen\oto
\newdimen\otoa
\newdimen\otob

\def\pstransform#1#2{\hbox to0pt{\special{ps:gsave
currentpoint currentpoint translate #1 neg exch neg exch translate}%
#2\hss\special{ps:grestore}}}

\long\def\psotnepar#1{%
\setbox0=\vbox{#1\global\oto=\hsize}
\otoa=\vsize
\advance\otoa by-\oto
\divide\otoa by2
\advance\oto by-\ht0
\advance\oto by-\dp0
\advance\oto by\otoa
\pageinsert
\vskip\oto
\rl{\pstransform{-90 rotate}{\box0}}
\vfill
\endinsert}

\long\def\psotpar#1{%
\setbox0=\vbox{#1\global\oto=\hsize}
\otob=\pagewidth
\advance\otob by-\ht0
\advance\otob by-\dp0
\otoa=\vsize
\advance\otoa by-\oto
\divide\otoa by2
\advance\oto by-\ht0
\advance\oto by-\dp0
\advance\oto by\otoa
\pageinsert
\vskip\oto
\rl{\pstransform{-90 rotate}{\box0}\hskip\otob}
\vfill
\endinsert}


\long\def\psotcentr#1{%
\setbox0=\vbox{#1\global\oto=\hsize}
\otob=\pagewidth
\advance\otob by-\ht0
\advance\otob by-\dp0
\divide\otob by2
\otoa=\vsize
\advance\otoa by-\oto
\divide\otoa by2
\advance\oto by-\ht0
\advance\oto by-\dp0
\advance\oto by\otoa
\pageinsert
\vskip\oto
\rl{\pstransform{-90 rotate}{\box0}\hskip\otob}
\vfill
\endinsert}




Pouzijeme takto (napr.):

\psotnepar{\hsize=sirka tabulky (alebo obrazka s textom}
tabulka}


(Automaticke urcenie cisla strany, kde sa bude tabulka nachadzat pri
insertoch asi nie je mozne)

Zdravi

Anton Surda




More information about the csTeX mailing list