LaTeX/PSTricks

Izvor: Викикњиге

Šablon:LaTeX/Top

PSTricks je set ekstenzija. Osnovni paket je pstricks, ostali paketi se mogu učitati kada su potrebni.

Ekstenzija xcolor učitava se zajedno sa PSTricks, te nema potrebe da je ručno ubacujete.

PSTricks ima jednu tehničku osobinu: interno koristi PostScript, odatle ime. Te ne možete koristiti pdftex ili pdflatex kompajlere, treba da koristite dvips da biste dobili valjan dokument. Još uvek je moguće dobiti PDF iz PS fajlova zahvaljujući ps2pdf. Takođe postoji mogućnost korišćenja PDFTricks ekstenzije, što omogućava korišćenje pdflatex zajedno sa PSTricks komandama.

Međutim, ako ste instalirali ovaj paket xetex-pstricks, možete koristiti pstricks sa xetex ili xelatex bez modifikovanja izvornog fajla.

pspicture okruženje[uredi]

PSTricks komande obično su smeštene u pspicture okruženju.

\begin{pspicture}(x1,y1)
% ...
\end{pspicture}

Prvi argument između zagrada precizira koordinate gornjeg desnog ugla slike. Donji levi ugao je na (0,0) i postavljen je kod referentne tačke sledećeg karaktera u LaTeX dokumentu.

Takođe je moguće preciziranje koordinata (x0,y0) donjeg levog ugla:

\begin{pspicture}(x0,y0)(x1,y1)
% ...
\end{pspicture}

Te je veličina slike (x1-x0)x(y1-y0). Osnovna jedinica dužine za koordinate je (cm); ovo se može promeniti sa \psset, kao u \psset{unit=1bp}. Svaka TeX dimenzija je dozvoljena.

Fundamentalni objekti[uredi]

Linije i polilinije[uredi]

Obična linija se štampa sa

\psline(x0,y0)(x1,y1)

Da dobijete vektor, dodajte strelicu kao parametar:

\psline{->}(x0,y0)(x1,y1)

Možete dodati koliko želite tačaka da biste dobili poliliniju:

\psline(x0,y0)(x1,y1)(x2,y3)…(xn,yn)

Da biste dobili zaobljene uglove, dodajte sledeću opciju:

\psline[linearc=0.2]{->}(0,0)(2,1)(1,1)

ili

\psline[linearc=0.2,arrows=->](0,0)(2,1)(1,1)

Pravougaonici[uredi]

\psframe(x0,y0)(x1,y1)
\psframe*(x0,y0)(x1,y1)

Verzija sa zvezdicom štampa polje pravougaonika. Koristite sledeći parametar da biste dobili zaobljene uglove:

\psframe[framearc=0.2](x0,y0)(x1,y1)

Mnogouglovi[uredi]

Mnogouglovi su uvek zatvoreni. Sintaksa je ista kao za \psline:

\pspolygon(x0,y0)(x1,y1)(x2,y2)...(xn,yn)

Kao i kod pravougaonika, verzija sa zvezdicom štampa polje mnogounika. I linearc=0.2 će štampati zaobljene uglove.

Krugovi, luk i elipse[uredi]

Verzija sa zvezdicom ispunjava oblik.

Za krugove, treba da zadate koordinate centra i poluprečnik:

\pscircle(x,y){r}

Da biste ograničili crtanje na luk, dodajte početne i krajnje vrednosti uglova izražene u trigonometrijskoj notaciji:

\psarc(x,y){r}{angle1}{angle2}

Konačno, elipse:

\psellipse(x,y)(horizontal_axis,vertical_axis)


Krive[uredi]

\psparabola(x0,y0)(x1,y1)

će štampati simetričnu parabolu sa vertikalnom asimptotom, sa najvišom (x1,y1) i najnižom (x0,y0) tačkom.

Koristite \psbezier da biste štampali Bezijerove krive sa proizvoljnim brojem kontrolnih tačaka. Lukovi imaju najviše 4 kontrolne tačke. Koristite showpoints=true opciju za štampanje kontrolnih tačaka i tangenti.

Koristite \pscurve za štampanje interpolacije unetih tačaka.

\psecurve команда изоставља први и последњи лук.

Tekst[uredi]

Koristite

\rput(x,y){text}

za štampanje teksta. Unesite ugao rotacije teksta.

\rput{angle}(x,y){text}

Možete da dodelite sidro teksta koje će biti na određenoj koordinati.

\rput[t]{45}(5,5){text}

Dostupna sidra:

  • B, Bl, Br: osnovna linija centar, levo i desno.
  • t, tl, tr: gore centar, levo i desno.
  • b, bl, br: dole centar, levo i desno.

Takođe postoji i \uput komanda sa daljim opcijama:

\uput{distance}[angle](x,y){text}

distance parametar predstavlja udaljenost od koordinate.

PSTricks dolazi sa nekoliko stilova za okvir teksta.

  • \psframebox{text}: pravougaonik.
  • \psdblframebox{text}: dupli pravougaonik.
  • \psshadowbox{text}: osenčen pravougaonik.
  • \pstcirclebox{text}: krug.
  • \psovalbox{text}: oval.
  • \psdiabox{text}: dijamant.
  • \pstribox{text}: trougao.

Primer:

\rput(5,5){\psdiabox*[fillcolor=green]{text}}


Korišćenjem pst-text ekstenzije, moguće je nacrtati putanju teksta.

\pstextpath{shape}{text}

Za štampanje prateće putanje tksta ez štampanja puta, treba da koristite \psset{linestyle=none}.

Primer:

\usepackage{pst-text}

% ...
\begin{pspicture}(5,5)
\psset{linestyle=none}
\pstextpath{\psline(0,0)(1,1)(2,0)}{triangle text}
\end{pspicture}

Mreže[uredi]

Bez parametra, \psgrid komanda će štampati mrežu svuda po pspicture, sa razmakom od 0.2 (t.j. 2mm). Možete precizirati parametre:

  • \psgrid(xmax,ymax): štampa mrežu od (0,0) do (xmax,ymax).
  • \psgrid(xmin,ymin)(xmax,ymax): štampa mrežu od (xmin,ymin) do (xmax,ymax).
  • \psgrid(x0,y0)(xmin,ymin)(xmax,ymax): štampa mrežu od (xmin,ymin) do (xmax,ymax), jedan od čvorova se nalazi na (x0,y0).
  • griddots=value: puna linija za obeležavanje zamenjena je isprekidanom linijom. value je broj tačaka pri obeležavanju.
  • subgriddots=value: kao i griddots ali za sub-obeležavanje.
  • gridcolor=color,subgridcolor=color: boja za glavno obeležavanje i za sub-obeležavanje.
  • gridwidth=value,subgridwidth=value: širina linija.
  • subgriddiv=value: broj sub-obeležavanja između dva glavna obeležavanja.
  • gridlabels=value: veličina brojeva u opisu.
  • ticksize=value: samoobjašnjivo.
  • ticksize=valueneg valuepos: isto kao gore navedeno, ali valueneg precizira veličinu za negativne koordinate, valuepos za pozitivne.
  • ticklinestyle=value: samoobjašnjivo. value može biti jedna od čvrsta, isprekidana, dotted. ovo je korisno za velika obeležavanja (t.j. ticksize je veliko).
Primer
\psgrid[griddots=5, subgriddiv=0, gridlabels=0pt](-1,-1)(5,5)
Ose

Ako želite da dodate ose, koristite pstricks-add ekstenziju sa sledećim komandama:

\psaxes(xmin,ymin)(xmax,ymax)
\psaxes(x0,y0)(xmin,ymin)(xmax,ymax)

(xmin,ymin) i (xmax,ymax) što je ekstremna vrednost, (x0,y0) što predstavlja intersekciju.

Opcije
  • Dx=value i Dy=value definiše razmak između obeležavanja.
  • comma daje Vam mogućnost da koristite zaraz kao decimalni razmak.
  • Kao i za linije, {->} dodaje strlice na ose.
Primer
\usepackage{pstricks-add}
% ...
\begin{pspicture}(-1,-1)(5,5)
\psaxes[comma,Dx=0.5,Dy=0.5]{->}(0,0)(3,3)
\end{pspicture}

Generički parametri[uredi]

Svi oblici[uredi]

Ovo treba ubaciti u uglaste zagrade.

  • linewidth=value: ako je value bezdimenziono, onda se koristi osnovna jedinica.
  • linecolor=color: boja se definiše sa xcolorpackage.
  • linestyle=value: value je jedna od dashed,dotted.
  • doubleline=true.
  • showpoints=true: ističe tačke.
    • dotscale=value precizira veličinu tačke.
    • dotstyle=value gde value je jedno od:
      • *: disc
      • o: circle
      • +,x: cross
      • square, squarre*: starred version is filled.
      • diamond, diamond*
      • triangle, triangle*
      • etc.

Na primer

\pscircle[linewidth=0.2,linestyle=dashed,linecolor=blue](0,0){1}

Da biste primenili parametre na globalno okruženje:

\psset{linewidth=0.2,linestyle=dashed,linecolor=blue}
\pscircle(0,0){1}

Komanda Vam takođe dozvoljava da promenite osnovne jedinice za dužinu.

  • unit=value
  • xunit=value i yunit=value

value je broj sa ili bez jedinice. Ovo menja veličinu crteža, ali ne i širinu linija.

Otvoreni oblici[uredi]

Možete definisati ekstrem (linije, polilinije, luka, itd.) sa opcionalnim parametrom {symbol1-symbol2}. Postoji pristojna lista parametara.

  • < ili >: arrow.
  • << ili >>: double arrow.
  • |: bar.
  • |*: centered bar.
  • oo: circle.
  • o: centered circle.
  • **: disk.
  • *: centered disk.
  • |< ili >|: arrow plus bar.
  • cc: rounded extreme.
  • c: centered rounded extreme.

Primer:

\psline{|->>}(x0,y0)(x1,y1)

Zatvoreni oblici[uredi]

Za zatvorene oblike treba da definišete stil ispunjenja.

  • fillstyle=value: šablon. Moguće vrednosti: crosshatch, crosshatch*, vlines, vlines*, hlines, hlines*, solid.
  • fillcolor=color.
  • hatchcolor=color.
  • hatchwidth=value.
  • hatchsep=value.
  • hatchangle=value.

Primer:

\pscircle[hatchcolor=blue,fillstyle=vlines](0,0){1}

Lokacija objekta[uredi]

Komanda \rput i \uput mogu se koristiti za pomeranje objekta.

Primer
\begin{pspicture}(5,5)
\psline{->}(0,0)(1,1)
\rput(1,1){\psline{->}(0,0)(1,1)}
\end{pspicture}

ili

\begin{pspicture}(5,5)
\psline{->}(0,0)(1,1)
\psline{->}(1,1)(2,2)
\end{pspicture}

Možete ponavljati operaciju sa \multirput:

\multirput(x0,y0)(xoffset, yoffset){times}{object}

Možete koristiti iste opcije kao i kod \rput:

\multirput[reference]{angle}(x0,y0)(xoffset, yoffset){times}{object}

Bez teksta ali samo sa grafikom, možete koristiti \multips komandu:

\multips(x0,y0)(xoffset, yoffset){times}{object}
\multips{angle}(x0,y0)(xoffset,yoffset){times}{object}

PDFTricks ekstenzija[uredi]

Originalni PSTricks paket ne radi sa pdflatex, ali srećom PDFTricks nam dozvoljava da zaobiđemo ovu limitaciju.

Korišćenje
  • Deklarišite PDFTricks paket u preambuli.
  • Postavite sve PSTricks ekstenzije u psinputs okruženje; postavite sve PSTricks komande u pdfpic okruženje.
  • Kompajlujte pdflatex -shell-escape <file>.
-shell-escape параметар укључује позиве команди љуске. За PDFTricks је потребно, да би радило.
Example
\documentclass{article}
 
\usepackage{pdftricks}
\begin{psinputs}
   \usepackage{pstricks}
   \usepackage{multido}
\end{psinputs}
 
% ...
 
\begin{document}
 
% ...
 
\begin{pdfpic}
   \psset{unit=\linewidth}
   \begin{pspicture}(0,0)(10,10)
      [...]
   \end{pspicture}
\end{pdfpic}
 
% ...
 
\end{document}

Još jedan način da koristite PSTricks sa pdflatex je pst-pdf paket.


Prethodno: PGF/TikZ Indeks Sledeće: Xy-pic