\special na cary

Petr Olsak olsak at math.feld.cvut.cz
Tue Jun 8 11:10:24 CEST 1999


On Tue, 8 Jun 1999, Hans GINZEL wrote:

>
> 	Dobry den.
>
>    Muzete, prosim, poradit jak delat cary pomoci PostScriptu?
>
> Predstavuji si neco takoveho:
> 	\special{"V akt. budu sazby definuj bod 1"}
> 	jinde \special{"V akt. bodu sazby definuj bod 2"}
> 	a o kus dal \special{"Nakresli plnou caru z 1 do 2 tloustky .4pt"}
>
>
> 					Hans Giznel

Zkusil bych neco takoveho:

tady je text\special{ps::[begin]
  currentpoint /startYpoint exch def /startXpoint exch def }

a tady neco uplne jineho\special{"}\special{ps::[end] gsave
  Resolution 72.27 div .4 mul setlinewidth
  currentpoint moveto startXpoint startYpoint lineto
  stroke grestore}

konec

\end

Vysvetleni:

\special{" sice umozni praci s jednotkami nezavislymi na zarizeni, ale
v dobe cinnosti naseho PSoveho kodu je prestaven system souradnic tak, ze
currentpoint ma souradnici 0 0, coz ma nulovou vypovidaci hodnotu a tudiz
pro nase potreby nepouzitelne. Proto je potreba pouzit \special{ps::.

Tento druhy typ specialu sice vrati hodnotu currentpoint, ale v jednotkach
zavislych na rozliseni, protoze v techto jednotkach dvips po celou dobu
pracuje. To nam vadi pri urceni sirky cary nezavisle na rozliseni, takze
musime setlinewidth nastavit za pouziti interni hodnoty Resolution, se
kterou dvips pracuje.

Prvni pouzity \special{ps::[begin] si zapamatuje polohu aktualniho bodu,
druhy pouzity \special{"} je spinavy trik vylozeny nize a treti pouzity
\special{ps::[end] nakresli pozadovnou caru.

Proc je pouzit \specail{"}? Je to takova berlicka. Priznam se, ze jsem
velmi prekvapen. Zkuste berlicku odstranit v prilozenem prikladu. Dockate
se zajimaveho efektu: dvips si dovoli zaradit ten special pred slovo
"jineho", jak se lze snadno presvedcit pohledem do vystupniho *.ps. Pritom
dvitype jednoznacne ukazuje, ze chyba neni na strane TeXu (ten zaradil
prislusny special az za slovo "jineho". Zde si proklate vymysli program
dvips. Odvazuji se tvrdit, ze to je jedna z jeho dalsich chyb.

Petr Olsak





More information about the csTeX mailing list