LaTeX/PSTricks
PSTricks 是一組擴充套件。基本包是pstricks,其他包可能在需要時載入。
該xcolor擴充套件與 PSTricks 一起載入,因此無需手動載入它。
PSTricks 有一項技術規範:它在內部使用 PostScript,因此得名。因此,您不能使用pdftex或pdflatex編譯器,您需要使用dvips來獲取您的正確文件。由於ps2pdf,仍然可以從 PS 檔案中獲取 PDF。還可以使用 PDFTricks 擴充套件,這使得它可以使用pdflatex與 PSTricks 命令一起使用。
但是,如果您安裝了xetex-pstricks包,您可以使用pstricks與xetex或xelatex一起使用,無需修改原始檔。
PSTricks 命令通常放在 pspicture 環境中。
\begin{pspicture}(x1,y1)
% ...
\end{pspicture}
括號之間的第一個引數指定圖片右上角的座標。左下角位於 (0,0),並放置在 LaTeX 文件中下一個字元的參考點處。
也可以指定左下角的座標 (x0,y0)
\begin{pspicture}(x0,y0)(x1,y1)
% ...
\end{pspicture}
因此圖片的大小為 (x1–x0) × (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}:陰影矩形。
- \pscirclebox{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可以是solid, dashed, 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}
通用引數
[edit | edit source]所有形狀
[edit | edit source]這些應該新增到方括號之間。
linewidth=value: 如果value沒有單位,則使用預設單位。linecolor=color: color由xcolor包定義。linestyle=value: value是dashed,dotted之一。doubleline=true.showpoints=true: 高亮顯示點。dotscale=value指定點的尺寸。dotstyle=value其中value屬於- *: 圓盤
- o: 圓形
- +,x: 十字形
- square, squarre*: 星號版本已填充。
- diamond, diamond*
- triangle, triangle*
- 等等。
例如
\pscircle[linewidth=0.2,linestyle=dashed,linecolor=blue](0,0){1}
要全域性應用引數
\psset{linewidth=0.2,linestyle=dashed,linecolor=blue}
\pscircle(0,0){1}
此命令還允許您更改長度的預設單位。
unit=valuexunit=value和yunit=value
value是一個帶或不帶單位的數字。這會更改繪圖的比例,但不會更改線的寬度。
開放形狀
[edit | edit source]您可以使用可選引數{symbol1-symbol2}定義開放形狀(線、折線、弧線等)的極值。有一個相當完整的可用符號列表。
- <或>: 箭頭。
- <<或>>: 雙箭頭。
- |: 條形。
- |*: 居中條形。
- oo: 圓形。
- o: 居中圓形。
- **: 圓盤。
- *: 居中圓盤。
- |<或>|: 箭頭加條形。
- cc: 圓角極值。
- c: 居中圓角極值。
示例
\psline{|->>}(x0,y0)(x1,y1)
封閉形狀
[edit | edit source]對於封閉形狀,您可以定義填充樣式。
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}
物件位置
[edit | edit source]\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擴充套件
[edit | edit source]原始的PSTricks包不能與pdflatex一起使用,但幸運的是PDFTricks允許我們繞過此限制。
- 用法
- 在前言中宣告PDFTricks包。
- 將所有PSTricks擴充套件放在
psinputs環境中;將所有PSTricks命令放在pdfpic環境中。 - 使用以下命令編譯pdflatex -shell-escape <file>.
該-shell-escape引數啟用shell命令呼叫。它是必需的,以便PDFTricks執行。
- 示例
\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包定義。
