LaTeX/PSTricks

Извор: Викикњиге

Шаблон:LaTeX/Top

PSTricks је сет екстензија. Основни пакет је pstricks, остали пакети се могу учитати када су потребни.

Екстензија xcolor учитава се заједно са PSTricks, те нема потребе да је ручно убацујете.

PSTricks има једну техничку особину: интерно користи PostScript, одатле име. Те не можете користити pdftex или pdflatex компaјлере, треба да користите dvips да бисте добили ваљан документ. Још увек је могуће добити PDF из PS фајлова захваљујући ps2pdf. Такође постоји могућност коришћења PDFTricks екстензије, што омогућава коришћење pdflatex заједно са PSTricks командама.

Међутим, ако сте инсталирали овај пакет xetex-pstricks, можете користити pstricks са xetex или xelatex без модификовања изворног фајла.

pspicture окружење[уреди]

PSTricks команде обично су смештене у pspicture окружењу.

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

Први аргумент између заграда прецизира координате горњег десног угла слике. Доњи леви угао је на (0,0) и постављен је код референтне тачке следећег карактера у LaTeX документу.

Такође је могуће прецизирање координата (x0,y0) доњег левог угла:

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

Те је величина слике (x1-x0)x(y1-y0). Основна јединица дужине за координате је (cm); ово се може променити са \psset, као у \psset{unit=1bp}. Свака TeX димензија је дозвољена.

Фундаментални објекти[уреди]

Линије и полилиније[уреди]

Обична линија се штампа са

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

Да добијете вектор, додајте стрелицу као параметар:

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

Можете додати колико желите тачака да бисте добили полилинију:

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

Да бисте добили заобљене углове, додајте следећу опцију:

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

или

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

Правоугаоници[уреди]

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

Верзија са звездицом штампа поље правоугаоника. Користите следећи параметар да бисте добили заобљене углове:

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

Многоуглови[уреди]

Многоуглови су увек затворени. Синтакса је иста као за \psline:

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

Као и код правоугаоника, верзија са звездицом штампа поље многоуника. И linearc=0.2 ће штампати заобљене углове.

Кругови, лук и елипсе[уреди]

Верзија са звездицом испуњава облик.

За кругове, треба да задате координате центра и полупречник:

\pscircle(x,y){r}

Да бисте ограничили цртање на лук, додајте почетне и крајње вредности углова изражене у тригонометријској нотацији:

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

Коначно, елипсе:

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


Криве[уреди]

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

ће штампати симетричну параболу са вертикалном асимптотом, са највишом (x1,y1) и најнижом (x0,y0) тачком.

Користите \psbezier да бисте штампали Безијерове криве са произвољним бројем контролних тачака. Лукови имају највише 4 контролне тачке. Користите showpoints=true опцију за штампање контролних тачака и тангенти.

Користите \pscurve за штампање интерполације унетих тачака.

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

Текст[уреди]

Користите

\rput(x,y){text}

за штампање текста. Унесите угао ротације текста.

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

Можете да доделите сидро текста које ће бити на одређеној координати.

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

Доступна сидра:

  • B, Bl, Br: основна линија центар, лево и десно.
  • t, tl, tr: горе центар, лево и десно.
  • b, bl, br: доле центар, лево и десно.

Такође постоји и \uput команда са даљим опцијама:

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

distance параметар представља удаљеност од координате.

PSTricks долази са неколико стилова за оквир текста.

  • \psframebox{text}: правоугаоник.
  • \psdblframebox{text}: дупли правоугаоник.
  • \psshadowbox{text}: осенчен правоугаоник.
  • \pstcirclebox{text}: круг.
  • \psovalbox{text}: овал.
  • \psdiabox{text}: дијамант.
  • \pstribox{text}: троугао.

Пример:

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


Коришћењем pst-text екстензије, могуће је нацртати путању текста.

\pstextpath{shape}{text}

За штампање пратеће путање ткста ез штампања пута, треба да користите \psset{linestyle=none}.

Пример:

\usepackage{pst-text}

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

Мреже[уреди]

Без параметра, \psgrid команда ће штампати мрежу свуда по pspicture, са размаком од 0.2 (т.ј. 2mm). Можете прецизирати параметре:

  • \psgrid(xmax,ymax): штампа мрежу од (0,0) до (xmax,ymax).
  • \psgrid(xmin,ymin)(xmax,ymax): штампа мрежу од (xmin,ymin) до (xmax,ymax).
  • \psgrid(x0,y0)(xmin,ymin)(xmax,ymax): штампа мрежу од (xmin,ymin) до (xmax,ymax), један од чворова се налази на (x0,y0).
  • griddots=value: пуна линија за обележавање замењена је испрекиданом линијом. value је број тачака при обележавању.
  • subgriddots=value: као и griddots али за суб-обележавање.
  • gridcolor=color,subgridcolor=color: боја за главно обележавање и за суб-обележавање.
  • gridwidth=value,subgridwidth=value: ширина линија.
  • subgriddiv=value: број суб-обележавања између два главна обележавања.
  • gridlabels=value: величина бројева у опису.
  • ticksize=value: самообјашњиво.
  • ticksize=valueneg valuepos: исто као горе наведено, али valueneg прецизира величину за негативне координате, valuepos за позитивне.
  • ticklinestyle=value: самообјашњиво. value може бити једна од чврста, испрекидана, dotted. ово је корисно за велика обележавања (т.ј. ticksize је велико).
Пример
\psgrid[griddots=5, subgriddiv=0, gridlabels=0pt](-1,-1)(5,5)
Осе

Ако желите да додате осе, користите pstricks-add екстензију са следећим командама:

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

(xmin,ymin) и (xmax,ymax) што је екстремна вредност, (x0,y0) што представља интерсекцију.

Опције
  • Dx=value и Dy=value дефинише размак између обележавања.
  • comma даје Вам могућност да користите зараз као децимални размак.
  • Као и за линије, {->} додаје стрлице на осе.
Пример
\usepackage{pstricks-add}
% ...
\begin{pspicture}(-1,-1)(5,5)
\psaxes[comma,Dx=0.5,Dy=0.5]{->}(0,0)(3,3)
\end{pspicture}

Генерички параметри[уреди]

Сви облици[уреди]

Ово треба убацити у угласте заграде.

  • linewidth=value: ако је value бездимензионо, онда се користи основна јединица.
  • linecolor=color: боја се дефинише са xcolorpackage.
  • linestyle=value: value је једна од dashed,dotted.
  • doubleline=true.
  • showpoints=true: истиче тачке.
    • dotscale=value прецизира величину тачке.
    • dotstyle=value где value је једно од:
      • *: disc
      • o: circle
      • +,x: cross
      • square, squarre*: starred version is filled.
      • diamond, diamond*
      • triangle, triangle*
      • etc.

На пример

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

Да бисте применили параметре на глобално окружење:

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

Команда Вам такође дозвољава да промените основне јединице за дужину.

  • unit=value
  • xunit=value и yunit=value

value је број са или без јединице. Ово мења величину цртежа, али не и ширину линија.

Отворени облици[уреди]

Можете дефинисати екстрем (линије, полилиније, лука, итд.) са опционалним параметром {symbol1-symbol2}. Постоји пристојна листа параметара.

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

Пример:

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

Затворени облици[уреди]

За затворене облике треба да дефинишете стил испуњења.

  • fillstyle=value: шаблон. Могуће вредности: crosshatch, crosshatch*, vlines, vlines*, hlines, hlines*, solid.
  • fillcolor=color.
  • hatchcolor=color.
  • hatchwidth=value.
  • hatchsep=value.
  • hatchangle=value.

Пример:

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

Локација објекта[уреди]

Команда \rput и \uput могу се користити за померање објекта.

Пример
\begin{pspicture}(5,5)
\psline{->}(0,0)(1,1)
\rput(1,1){\psline{->}(0,0)(1,1)}
\end{pspicture}

или

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

Можете понављати операцију са \multirput:

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

Можете користити исте опције као и код \rput:

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

Без текста али само са графиком, можете користити \multips команду:

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

PDFTricks екстензија[уреди]

Оригинални PSTricks пакет не ради са pdflatex, али срећом PDFTricks нам дозвољава да заобиђемо ову лимитацију.

Коришћење
  • Декларишите PDFTricks пакет у преамбули.
  • Поставите све PSTricks екстензије у psinputs окружење; поставите све PSTricks команде у pdfpic окружење.
  • Компајлујте 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}

Још један начин да користите PSTricks са pdflatex је pst-pdf пакет.


Претходно: PGF/TikZ Индекс Следеће: Xy-pic