日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

tikz包 安装_LaTeX—Tikz 宏包入门使用教程

發布時間:2023/12/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tikz包 安装_LaTeX—Tikz 宏包入门使用教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這里是一則小廣告:

關注作者請點擊這里哦:zdr0

我的專欄里面不僅有學習筆記,也有一些科普文章,相信我的專欄不會讓您失望哦~大家可以關注一下:數學及自然科學

記得點贊加收藏哦~

創作不易,請贊賞一下支持一下作者吧[期待]~

文章中如果有錯誤的話還請各位大佬多多斧正,感謝!

-盡力寫最好的講義,盡力寫最好的科普。

這篇文章中,我們來學習

中tikz宏包的一些基本命令。

一般人們并不直接使用PGF 底層命令,而是通過它前端TikZ 來調用。在引用tikz 宏包之前,用戶需要設置PGF 系統驅動。比如dvipdfmx 的設置方法如下,使用pdflatex 和xelatex 時,它知道驅動是誰。

\def\pgfsysdriver{pgfsys -dvipdfmx.def}

\usepackage{tikz}

\begin{document}

...

\end{document}

TikZ宏包是一個十分強大的繪圖宏包,它提供\tikz 命令和tikzpicture 環境,具體繪圖指令可以放在\tikz 后面,也可以放在tikzpicture 中間。兩者效果相同,用戶可以任意選擇。

\tikz ...

\begin{tikzpicture}

...

\end{tikzpicture}

本人的習慣是使用后者。

基本圖形對象

直線和矩形

使用PGF繪圖的基本語法是:

\draw[option]...;

其中\draw 稱為繪圖命令;后面的...部分稱為操作;而[]中的能容稱為選項,也就是說[]內可以不寫內容。

如果我們要繪制一條直線的話,我們只需要在\draw 命令后面輸入點的坐標并使用--連結起來即可。比如:

%Ex1\begin{tikzpicture}

\draw (1,3)--(2,2)--(4,5);

\end{tikzpicture}圖片1:Ex1。

當然了,你可以通過[option]將圖片1中鋒利的角變成圓角,在option 處填寫rounded corners即可:

%Ex1(rounded corners)\begin{tikzpicture}

\draw[rounded corners] (1,3)--(2,2)--(4,5);

\end{tikzpicture}圖片2:Ex1(rounded corners)。

我們也可以將Ex1 的首尾相連,使他成為一個“封閉”圖形。做法也很簡單,就是讓最后一個點的坐標與起點相同即可:

%Ex1(circuit)\begin{tikzpicture}

\draw (1,3)--(2,2)--(4,5)--(1,3);

\end{tikzpicture}圖片3:Ex1(circuit)。

但圖片三并非真正意義上的封閉圖形,因為那只是我們人為的設置了終點和起點一致而已。如果想要繪制真正意義上的封閉圖形,那我們需要使用cycle 操作:

%Ex1(closed circuit)\begin{tikzpicture}

\draw (1,3)--(2,2)--(4,5)--cycle;

\end{tikzpicture}圖片4:Ex1(closed circuit)。

你會發現圖片4和圖片3似乎沒有什么區別,但是,如果將所有的角都換成圓角,那么區別就立刻出現了:圖片5:加圓角效果。

圖片5的左側是我們對圖片3加圓角的效果,右側是對圖片4加圓角的效果。可見,圖片4這個偽封閉的圖形它的左上頂點并未被圓角化,而圖片4中的所有角均被圓角化了。

下面我們在來看看如何繪制一個矩形。矩形當然也有偽封閉和真封閉之分了,偽封閉的矩形我就不再舉例了,下面的的代碼是最正統的繪制矩形的方式:

%Ex2(rectangle)\begin{tikzpicture}

\draw (0,0) rectangle (4,2);

\end{tikzpicture}圖片6:Ex2(rectangle)。

可見繪制矩形使用到的操作是 rectangle。我們只需要給出矩形的一對對角頂點然后將 rectangle 寫在兩者中間即可。比如Ex2 中的兩個對角頂點分別是

。矩陣也有圓角選項,設置方式與之前一樣:

%Ex2(rectangle rounded corners)\begin{tikzpicture}

\draw[rounded corners] (0,0) rectangle (4,2);

\end{tikzpicture}圖片7:Ex2(rectangle rounded corners)。

圓、橢圓、弧

畫一個圓的命令十分的簡單,給出圓心坐標和半徑,然后將circle 操作寫在兩者之間即可,注意半徑值需要用小括號括起來:

%Ex3(circle)\begin{tikzpicture}

\draw (1,1) circle (1);

\end{tikzpicture}圖片8:Ex3:(circle)。

Ex3繪制了一個圓心在

,半徑為

的圓。

繪制橢圓的方式也很簡單,只要給出橢圓的重心和長軸長、短軸長,然后將ellipse 操作寫在兩者中間即可,注意,長軸長和短軸長需要用括號括起來,兩者之間用and隔開:

%Ex4(ellipse)\begin{tikzpicture}

\draw (1,1) ellipse (2 and 1);

\end{tikzpicture}圖片9:Ex4(ellipse)。

Ex4繪制了一個中心在

,長軸長為

、短軸長為

的橢圓。

繪制圓弧或者橢圓弧我們只需要使用arc 操作并給出相應角度即可:

%Ex5(arc)\begin{tikzpicture}

\draw (1 ,1) arc (0:270:1);

\draw (6 ,1) arc (0:270:2 and 1);

\end{tikzpicture}圖片10:Ex5(arc)。

其中,參數

代表的是

,即圖片10分別繪制了一個圓心在

,半徑為

的四分之三圓弧和一個中心在

,長軸長為

、短軸長為

的四分之三橢圓弧。在終止角度之后,使用一個冒號隔開終止角度與半徑(長軸長 and 短軸長)。

曲線

我們把直線的 --換成 ..,就得到貝塞爾曲線,它需要至少一個控制點。拋物線用parabola 操作,bend 操作可以指明頂點。

%Ex6(parabola)\begin{tikzpicture}

\draw (5,1) parabola bend (6,0) (7.414 ,2);

\end{tikzpicture}圖片11:Ex6(parabola)。

Ex6中,

代表拋物線的起點,

代表拋物線的頂點,

代表拋物線的終點。如果我們想要將這些點也進行標記那我們可以使用\filldraw 命令:

\Ex6(mark point)

\begin{tikzpicture}

\draw (5,1) parabola bend (6,0) (7.414 ,2);

\filldraw (5,1) circle (.1)

(6,0) circle (.1)

(7.414 ,2) circle (.1);

\end{tikzpicture}圖片12:Ex6(mark point)。

網格

網格的畫法如下,其缺省步長是

。grid 操作需要起止點兩個參數。help lines 參數指示用0.2pt 的灰線。

%Ex8(grid)\begin{tikzpicture}

\draw [step=20pt] (0,0) grid (3,2);

\draw [help lines ,step=20pt] (4,0) grid (7,2);

\end{tikzpicture}圖片13:Ex8(grid)。

繪制網格類似于繪制矩形,起點和終點類似于我們在繪制矩形時給出的一對矩形的對角頂點,我們將grid 操作放在這一對點之間即可。step 是步長,即每一個小單元格的邊長(小單元格均為正方形),其單位是pt。如果我們想要單元格的長度大一點的話那我們就將步長設置的大一些,否則就設置的小一些。

圖形控制

箭頭

一些繪制箭頭的命令如下:

%Ex9(arrows)\begin{tikzpicture}

\draw [->] (0,0)--(9,0);

\draw [

\draw [] (0,2)--(9,2);

\draw [>->>] (0,3)--(9,3);

\draw [||] (0,4)--(9,4);

\end{tikzpicture}圖片14:Ex9(arrows)。

繪制箭頭的命令很簡單,不需要任何操作。[]仍是選項,這個選項中是你要繪制的箭頭的形式,其中代表了箭頭兩側的指向,而—表示線。因為我們的箭頭都是有限長度的,所以,我們需要在[]后面指定箭頭的起點和終點,而線是直線,所以我們仍使用--連接起點和終點。

線型和線寬

PGF 中線條的缺省寬度是0.4pt,線型是實線。下例給出了改變線型和線寬的方法:

%Ex10(change the type and the width of the line)\begin{tikzpicture}

\draw [line width =2pt] (0,0)--(9,0); %加粗實線\draw [dotted] (0,1)--(9,1); %點狀虛線\draw [densely dotted] (0,2)--(9,2); %較密的點狀虛線\draw [loosely dotted] (0,3)--(9,3); %較疏的點狀虛線\draw [dashed] (0,4)--(9,4); %線狀虛線\draw [densely dashed] (0,5)--(9,5); %較密的線狀虛線\draw [loosely dashed] (0,6)--(9,6); %較疏的線狀虛線\end{tikzpicture}圖片15:Ex10(change the type and the width of the line)。

樣式

PGF 比較牛逼的一個地方是我們可以自定義一些樣式,這些樣式一旦被定義了就可以像面向對象的類一樣被繼承。也就是說我們可以在導言區定義一個樣式,然后將來我們可以直接在文本區調用它。比如:

%Ex11(style)\tikzset{

dline/.style ={color = blue, line width =2pt}

}

\begin{document}

...

\begin{tikzpicture}

\draw[dline] (0,0) --(9,0);

\end{tikzpicture}

...

\end{document}圖片16:Ex11(stylw)

除了用\tikzset 命令定義樣式,我們也可以在tikzpicture 環境頭部聲明樣式。前者是全局有效,后者則是局部范圍有效。

%Ex11(style head of tikzpicture environment)\begin{tikzpicture}[dline /. style ={line width =2pt}]

\draw[dline] (0,0) --(9,0);

\end{tikzpicture}

圖形變換

我們可以對圖形對象進行一些變換操作,比如縮放(scale)、平移(shift)、傾斜(slant) 、旋轉(rotate)、定點旋轉(rotate around) 等。注意如果兩種操作同時進行,它們是有順序的。預定義的長度單位在這里對單向平移選項(xshift或yshift) 失效。我們以正方形為例,來看看如何對它進行上述變換。首先,先來畫一個正方形:

\begin{tikzpicture}

\draw (0,0) rectangle (2,2);

\end{tikzpicture}

下面我們先對其進行平移變換:

\begin{tikzpicture}

\draw (0,0) rectangle (2,2);

\draw[shift ={(3 ,0)}] (0,0) rectangle (2,2);

\draw[shift ={(0 ,3)}] (0,0) rectangle (2,2);

\draw[shift ={(0 ,-3)}] (0,0) rectangle (2,2);

\draw[shift ={(-3 ,0)}] (0,0) rectangle (2,2);

\draw[shift ={(3 ,3)}] (0,0) rectangle (2,2);

\draw[shift ={(-3 ,3)}] (0,0) rectangle (2,2);

\draw[shift ={(3 ,-3)}] (0,0) rectangle (2,2);

\draw[shift ={(-3 ,-3)}] (0,0) rectangle (2,2);

\end{tikzpicture}圖片17:平移變換。中間的正方形為原始正方形。

即:將正方形的左下頂點

沿水平方向向右平移

個單位到

,這樣矩形整體向右平移

個單位;

將正方形的左下頂點

沿水平方向向上平移

個單位到

,這樣矩形整體向上平移

個單位;

將正方形的左下頂點

沿水平方向向下平移

個單位到

,這樣矩形整體向下平移

個單位;

將正方形的左下頂點

沿水平方向向左平移

個單位到

,這樣矩形整體向左平移

個單位;

將正方形的左下頂點

沿水平方向向右上平移

個單位到

,這樣矩形整體向右上平移

個單位;

將正方形的左下頂點

沿水平方向向左上平移

個單位到

,這樣矩形整體向左上平移

個單位;

將正方形的左下頂點

沿水平方向向右下平移

個單位到

,這樣矩形整體向右下平移

個單位;

將正方形的左下頂點

沿水平方向向左下平移

個單位到

,這樣矩形整體向左下平移

個單位。

我們還可以指定平移方向和平移距離。xshift 表示水平平移;yshift表示豎直平移,后面直接跟平移的距離即可(可為負數),平移距離的單位是pt:

\begin{tikzpicture}

\draw (0,0) rectangle (2,2);

\draw[xshift =100pt] (0,0) rectangle (2,2);

\draw[xshift =-100pt] (0,0) rectangle (2,2);

\draw[yshift =100pt] (0,0) rectangle (2,2);

\draw[yshift =-100pt] (0,0) rectangle (2,2);

\end{tikzpicture}圖片18:指定平移方向以及平移距離。

需要注意的是如果指定了平移的方向那么后面就不能使用坐標了,而只能自定義平移距離。下面我們再來看看縮放變換:

\begin{tikzpicture}

\draw (0,0) rectangle (2,2);

\draw[xshift =70pt ,xscale =1.5] (0,0) rectangle (2,2);

\draw[yshift =70pt ,yscale =1.5] (0,0) rectangle (2,2);

\draw[xshift =-70pt ,xscale =0.5] (0,0) rectangle (2,2);

\draw[yshift =-70pt ,yscale =0.5] (0,0) rectangle (2,2);

\end{tikzpicture}圖片19:指定方向的縮放變換。

注意,縮放變換是不需要平移的!這里用了平移是為了方便一次性說明所有縮放的效果。xscale = a:指定水平方向縮放

倍。若

則代表水平方向放大(水平拉長);若

則代表水平方向縮小(水平縮短);

yscale = a:指定豎直方向縮放

倍。若

則代表豎直方向放大(豎直拉長);若

則代表豎直方向縮小(豎直縮短)

還有一種更特殊的縮放方式,就是對圖形進行整體縮放:

\begin{tikzpicture}

\draw (0,0) rectangle (2,2);

\draw[shift ={(3,0)},scale =1.5] (0,0) rectangle (2,2);

\draw[shift ={(-2 ,0)},scale =0.5] (0,0) rectangle (2,2);

\end{tikzpicture}圖片20:整體縮放變換。

scale = a:指定整體縮放

倍。若

則代表整體放大;若

則代表整體縮小;

然后是旋轉變換:

\begin{tikzpicture}

\draw (0,0) rectangle (2,2);

\draw[xshift =125pt ,rotate =45] (0,0) rectangle (2,2);

\end{tikzpicture}圖片21:旋轉變換。

rotate后面的數值寫要旋轉的角度,正數表示逆時針旋轉相應角度,而負數表示順時針旋轉相應角度,這與數學上的正方向規定是一致的。

而且如果沒有指定對某個點進行旋轉的話那么默認是對起點進行旋轉,上例中即

還有一個傾斜變換:

\begin{tikzpicture}

\draw (0,0) rectangle (2,2);

\draw[xshift =70pt ,xslant =1] (0,0) rectangle (2,2);

\draw[yshift =70pt ,yslant =1] (0,0) rectangle (2,2);

\end{tikzpicture}圖片22:傾斜變換。

最后一個就是我們的定點旋轉了:

\begin{tikzpicture}

\draw (0,0) rectangle (2,2);

\draw[xshift =125pt ,rotate =45] (0,0) rectangle (2,2);

\draw[xshift =175pt ,rotate around ={45:(2 ,2)}] (0,0) rectangle (2,2);

\end{tikzpicture}圖片23:定點旋轉。

定點旋轉的只需要在rotate aroun后面的{}中寫上旋轉的角度和指定點的坐標即可。旋轉的方向與非定點旋轉時的方向規定一致。

最后一定要說明的一點就是無論是使用哪種變換操作,后面一定要更被操作的對象!比如上面的幾個例子中,每次變換后面都跟了(0,0) rectangle (2,2) 這個對象,也就是我們的正方形。

顏色和填充

PGF 可以結合xcolor 宏包的色彩功能。顏色和填充的用法見下例,其中\filldraw 命令可以用不同顏色畫線和填充。注意封閉路徑才可以填充!

\begin{tikzpicture}

\draw[red] (0,0) --(9,0);

\draw[green] (0,1) --(9,1);

\draw[blue] (0,2) --(9,2);

\filldraw[draw=blue!80,fill=blue!20] (14 ,1) circle (1);

\end{tikzpicture}圖片24:顏色和填充示例。

上例中如果我們想設置直線的顏色那么我們可以直接在\draw 命令后面的選項中填寫顏色即可。\filldraw 命令的選項中,draw是為封閉圖形的邊界設置顏色,而fill是對封閉圖形的內部填充顏色。

示意圖

節點

PGF 中的節點(node) 可以是簡單的標簽,也可以有各種形狀的邊框,還可以有各種復雜的屬性。比如下例中的box 樣式,它的邊框是矩形,有圓角;它有最小寬度、高度、文字和邊框的距離,邊框和填充顏色等屬性。

\tikzset{

box/.style ={

rectangle, %矩形節點rounded corners =5pt, %圓角minimum width =50pt, %最小寬度minimum height =20pt, %最小高度inner sep=5pt, %文字和邊框的距離draw=blue %邊框顏色}}

流程圖

除了上述屬性,節點還可以有名字、位置等屬性。在下例中,我們先畫了三個有名字和邊框的節點,也就是文本框;然后用兩跳箭頭連線把文本框連接起來,注意連接時要引用文本框的名字;接著在連線上加了兩個沒有名字和邊框的標簽。

\begin{tikzpicture}

\node[box] (1) at(0,0) {1};

\node[box] (2) at(4,0) {2};

\node[box] (3) at(8,0) {3};

\draw[->] (1)--(2);

\draw[->] (2)--(3);

\node at(2,1) {a};

\node at(6,1) {b};

\end{tikzpicture}圖片25:簡單流程圖。

\node 命令是繪制節點,[]還是選項,這個選項中可以填我們之前自定義的box,如果填了box 那么他就會按照box 所定義的樣式繪制節點,否則就按缺省模式繪制。()中寫的是文本框的名字,這個名字可以隨便取,{}是文本框中的文本,而at+坐標表示的是節點所處的位置。

我們也可以繪制一棵樹:

\begin{tikzpicture}[sibling distance =80pt]

\node[box] {1}

child {node[box] {2}}

child {node[box] {3}

child {node[box] {4}}

child {node[box] {5}}

child {node[box] {6}}

};

\end{tikzpicture}圖片26:樹。

child 關鍵字用來聲明子節點;sibling distance 選項可以控制相鄰節點之間的距離,單位為pt。當然,你可也以使用圓形節點,將box\.style 中的rectangle 換成circle 并刪除rounded corners選項,并將minimum width 的值和minimum height 的值設為同一個值,比如這里都設置為20pt:圖片27:使用圓形節點。

填充,在box\.style 在添加一項fill = blue!20即可得到:圖片28:填充效果。

是不是感覺可以用流程圖搞一個神經網絡玩兒玩兒?那必須可以啊,我來畫一個:

\begin{tikzpicture}

\node[circle,

minimum width =30pt ,

minimum height =30pt ,draw=blue] (1) at(0,2){$x_1$};

\node[circle,

minimum width =30pt ,

minimum height =30pt ,draw=blue] (2) at(0,0){$x_2$};

\node[circle,

minimum width =30pt ,

minimum height =30pt ,draw=orange] (3) at(2,-1){$a_3^{(2)}$};

\node[circle,

minimum width =30pt ,

minimum height =30pt ,draw=orange] (4) at(2,1){$a_2^{(2)}$};

\node[circle,

minimum width =30pt ,

minimum height =30pt ,draw=orange] (5) at(2,3){$a_1^{(2)}$};

\node[circle,

minimum width =30pt ,

minimum height =30pt ,draw=orange] (6) at(4,-1){$a_3^{(3)}$};

\node[circle,

minimum width =30pt ,

minimum height =30pt ,draw=orange] (7) at(4,1){$a_2^{(3)}$};

\node[circle,

minimum width =30pt ,

minimum height =30pt ,draw=orange] (8) at(4,3){$a_1^{(3)}$};

\node[circle,

minimum width =30pt ,

minimum height =30pt ,draw=purple] (9) at(6,2){$a_1^{(4)}$};

\node[circle,

minimum width =30pt ,

minimum height =30pt ,draw=purple] (10) at(6,0){$a_2^{(4)}$};

\draw[->] (1) --(3);

\draw[->] (1) --(4);

\draw[->] (1) --(5);

\draw[->] (2) --(3);

\draw[->] (2) --(4);

\draw[->] (2) --(5);

\draw[->] (3) --(6);

\draw[->] (3) --(7);

\draw[->] (3) --(8);

\draw[->] (4) --(6);

\draw[->] (4) --(7);

\draw[->] (4) --(8);

\draw[->] (5) --(6);

\draw[->] (5) --(7);

\draw[->] (5) --(8);

\draw[->] (6) --(9);

\draw[->] (6) --(10);

\draw[->] (7) --(9);

\draw[->] (7) --(10);

\draw[->] (8) --(9);

\draw[->] (8) --(10);

\end{tikzpicture}圖片29:神經網絡。

怎么樣,這個神經網絡顏值高吧?那必須的高啊,而且還很好畫哦。

函數圖像繪制

tikz宏包還可以幫助繪制函數圖像,比如:

\begin{tikzpicture}

\draw[->] (-0.2,0) --(6,0) node[right] {$x$};

\draw[->] (0,-0.2) --(0,6) node[above] {$f(x)$};

\draw[domain =0:4] plot (\x ,{0.1* exp(\x)}) node[right] {$f(x)=\frac{1}{10}e^x$};

\end{tikzpicture}圖片30:繪制函數f(x)=\frac{1}{10}e^x的圖像。

其中domain 設置了我們想要繪制的范圍,起始點和終止點之間用 :隔開。plot 是繪制操作,node后面[]中填寫我們文本的位置。

不過想要繪制函數圖像的話我推薦一個一定會讓你感覺很驚艷的網站(這是另外一個宏包了,叫做pgfplots),如果你想畫各種函數圖像、曲面、三維矢量場、統計圖等等,那你看完這個網站以后一定爽死了:

甚至還能畫飛機哦!!!圖片31:飛機。

參考:

雷太赫排版系統簡介第二版 v2.03——包太雷

總結

以上是生活随笔為你收集整理的tikz包 安装_LaTeX—Tikz 宏包入门使用教程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。