LaTeX入门学习9(tikz基础-01)
文章目錄
- Tikz基礎
- 繪制 tikz 圖像
- 基礎繪圖指令
- 基礎繪圖相關參數
- 設置線型
- 設置兩條線風格
- 設置填充路徑
- 設置填充模式(需要使用patterns庫)
Tikz基礎
tikz是LaTeXLaTeXLaTeX的繪圖包,其包含非常豐富的繪圖操作,通過其可以繪制出非常精美的圖像。正因如此,tikz包相當復雜,繪圖參數也是非常之多。texdoc tikz 可以查看其官方文檔,文檔由1200多頁,應該算是LaTeXLaTeXLaTeX最復雜的包了。網上關于其資料也是多又雜,多數都是堆官方文檔的直接截斷拷貝。接下來tikz會作為本教程的重點更新,更新依舊是抄官方文檔,不同之處是我會由簡單到復雜一點點進入tikz的世界。
繪制 tikz 圖像
tikz圖像通常是
\begin{tikzpicture} .... ;% 代碼后需要右結尾分號 \end{tikzpicture}你可以向插入普通圖片一樣直接插入這段代碼:
\begin{figure}[!htbp] \centering \begin{tikzpicture} .... \end{tikzpicture} \end{figure}例如:
\begin{tikzpicture}\node {root}child {node {左節點}}child {node {右節點}child {node {左子}}child {node {右子}}}; \end{tikzpicture}渲染結果如下(語法我們之后解釋):
當然你也可以將圖像寫入文件,然后引入文件這樣就像插入一張圖片一樣插入文件。例如 tikz_demo.tex內容如下:
在主文件中加上:
\input{tikz_demo}渲染結果如下:
對于簡單圖像,你可能不想加上\begin{tikzpicture}\end{tikzpicture} 這樣的一段,tikz提供了針對簡單繪圖的\tikz指令,例如:\tikz \draw[line width=2pt,color=red](1,0) -- (0,0) -- (0,1) -- cycle; 此命令繪制一個紅色封閉三角形:
基礎繪圖指令
\tikz \draw (1,1) node {text} -- (2,2):這條指令創建了一個node,這個node的文字為text。位置在(1,1),然后我們連線(1,1)--(2,2)。渲染如下:
當然你可以設置draw的參數,常見的繪圖參數包括:
\begin{itemize}\item line width:線的寬度,\tikz\draw[line width=2pt] (0,0) -- (2,0);(2pt寬的線)\begin{itemize}\item ultra thin:\tikz\draw[ultra thin] (0,0) -- (2,0); (0.1pt)。 \item very thin:\tikz\draw[very thin] (0,0) -- (2,0); (0.2pt)。 \item thin:\tikz\draw[thin] (0,0) -- (2,0); (0.4pt)。 \item semithick:\tikz\draw[semithick] (0,0) -- (2,0);(0.6pt) 。 \item thick:\tikz\draw[thick] (0,0) -- (2,0);(0.8pt) 。 \item very thick:\tikz\draw[very thick] (0,0) -- (2,0);(1.2pt) 。 \item ultra thick:\tikz\draw[ultra thick] (0,0) -- (2,0);(1.6pt) 。 \end{itemize}\item color:線的顏色 \item line cap:線的包圍方式 \begin{itemize}\item round:環形包圍 \tikz\draw[line cap=round,line width=10pt] (0,0) -- +(2,0);\item butt:不包含邊緣圍 \tikz\draw[line cap=but,line width=10pt] (0,0) -- +(2,0);\item rect:矩形包圍圍 \tikz\draw[line cap=rect,line width=10pt] (0,0) -- +(2,0);(和butt不同在于起始和結束的包邊被削掉了)\end{itemize}\item line join:線的鏈接方式。 \begin{itemize}\item round:\tikz \draw[line join=round,line width=4] (0,0) -- ++(.5,1) -- ++(.5,-1);\item bevel:\tikz \draw[line join=bevel,line width=4] (0,0) -- ++(.5,1) -- ++(.5,-1);\item miter:\tikz \draw[line join=miter,line width=4] (0,0) -- ++(.5,1) -- ++(.5,-1);\end{itemize}\item miter limit:設置連接處更尖銳,默認為10。 \begin{itemize}\item 默認效果:\tikz \draw[line width=5pt] (0,0) -- ++(5,.5) -- ++(-5,.5);\item 設置為25后效果:\tikz \draw[miter limit=25,line width=5pt] (6,0) -- ++(5,.5) -- ++(-5,.5);\end{itemize} \end{itemize}基礎繪圖相關參數
-
line width:線的寬度
-
color:線的顏色
-
line cap:線的包圍方式
- round:環形包圍
- butt:不包含邊緣
- rect:矩形包圍
-
line join:線的連接方式
-
round
-
bevel
-
miter
-
mitter limit:設置連接處
設置線型
\begin{itemize}\item data pattern:dash pattern = on 2pt off 3pt on 4pt off 4pt 表示畫2pt后空3pt然后畫4pt后空4pt。效果 \tikz \draw[dash pattern= on 2pt off 3pt on 4pt off 4pt] (0pt,0pt) -- (3.5cm,0.4pt);\item dash phase:設置線起點偏移多少后開始繪制\tikz \draw[dash pattern= on 2pt off 3pt on 4pt off 4pt,dash phase=4pt] (0pt,0pt) -- (3.5cm,0.4pt);\item dash expand off:需要包 decorations 。而且dash pattern只能右一個on和off。 \item solid:線型為實線。\tikz \draw[solid] (0pt,0pt) -- (50pt,0pt);\item dotted:線型為虛線(點)。\tikz \draw[dotted](0pt,0pt) -- (50pt,0pt);\item densely dotted:稠密的點。\tikz \draw[densely dotted](0pt,0pt) -- (50pt,0pt);\item loosely dotted:間距稍微大一點的點。\tikz \draw[loosely dotted](0pt,0pt) -- (50pt,0pt);\item dashed:虛線。\tikz \draw[dashed](0pt,0pt) -- (50pt,0pt);\item densely dashed:稠密虛線。\tikz \draw[densely dashed](0pt,0pt) -- (50pt,0pt);\item loosely dashed:間距稍微大一點虛線。\tikz \draw[loosely dashed](0pt,0pt) -- (50pt,0pt);\item dash dot:點線組成的虛線。\tikz \draw[dash dot](0pt,0pt) -- (50pt,0pt);\item densely dash dot:稠密的點線。\tikz \draw[densely dash dot](0pt,0pt) -- (50pt,0pt);\item loosely dash dot:間距稍微大一點的點線。\tikz \draw[loosely dash dot](0pt,0pt) -- (50pt,0pt);\item densely dash dot dot:虛線結合兩個點。\tikz \draw[densely dash dot dot](0pt,0pt) -- (50pt,0pt);\item loosely dash dot dot:間距稍微大一點的點線。\tikz \draw[loosely dash dot dot](0pt,0pt) -- (50pt,0pt);\end{itemize}設置兩條線風格
- double:繪制兩條線 \tikz \draw[double] plot[smooth cycle] coordinates{(0,0) (1,1) (1,0) (0,1)}
- double distance:繪制兩條線之間的距離 \tikz \draw[draw=black,double=red,very thick](0,1) -- (1,0
- double distance bewteen line centers:兩條線之間中心的距離 \tikz \foreach \lw in {0.5,1,1.4,2,2.5} \draw[double distance between line centers=3pt,line width=\lw pt,double] (\lw,0) -- ++(4mm,0)
渲染效果,雙線繪制還有其他選項,不過個人覺得用的不多,不再解釋,詳情查看官方文檔:
設置填充路徑
設置圖片
\begin{tikzpicture}\fill (0,0) -- (1,1) -- (2,1); % 填充三點組成的三角形區域\fill (4,0) circle (.5cm) (4.5,0) circle (.5cm);\fill[even odd rule] (6,0) circle (.5cm) (6.5,0) circle (.5cm);\fill (9,0) -- (9,1) -- (10,0) circle (.5cm); \end{tikzpicture}渲染效果:
\filldraw和上述上述作用類似,不同在于填充和線型不同。線型比較粗的時候看著效果會有點差別:
設置填充模式(需要使用patterns庫)
我們可以繪制圖形后在其中填充需要的符號
\begin{tikzpicture}\draw[pattern=dots] (0,0) circle (1cm); % 繪制半徑為1cm,圓心在(0,0)的圓,然后其中填充點。\draw[pattern=fivepointed stars] (0,0) rectangle (3,1);%繪制起點為(0,0),寬高分別是[3,1]的矩形,填充五角星。 \end{tikzpicture}渲染如下:
填充指定形狀的圖形:
渲染:
圖像填充方式:
\begin{tikzpicture} \filldraw[fill=yellow!80!black] % 順時針繪制外部矩形(0,0) -- (0,1) -- (1,1) -- (1,0) -- cycle % 逆時針繪制外部矩形(0.25,0.25) -- (0.75,0.25) -- (0.75,0.75) -- (0.25,0.75) -- cycle; \draw[->] (0,1) -- (.4,1);% 箭頭標記順時針方向\draw[->] (0.75,0.75) -- (0.3,.75);% 箭頭標記逆時針方向\draw[->] (0.5,0.5) -- +(0,1) node[above] {crossings: $-1+1 = 0$};%順時針填充和逆時針填充抵消,內部為白色。\begin{scope}[yshift=-3cm] % 沿著上圖y方向上向下移動3cm \filldraw[fill=yellow!80!black]% 設置新的圖形的填充格式% Clockwise rectangle (0,0) -- (0,1) -- (1,1) -- (1,0) -- cycle%順時針填充% Clockwise rectangle (0.25,0.25) -- (0.25,0.75) -- (0.75,0.75) -- (0.75,0.25) -- cycle;%順時針填充\draw[->] (0,1) -- (.4,1); \draw[->] (0.25,0.75) -- (0.4,.75); \draw[->] (0.5,0.5) -- +(0,1) node[above] {crossings: $1+1 = 2$}; \end{scope} \end{tikzpicture}渲染效果:
設置重疊區域奇偶抵消
渲染效果:
總結
以上是生活随笔為你收集整理的LaTeX入门学习9(tikz基础-01)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python自然语言处理 | 分析句子结
- 下一篇: git进行push报错: RPC fai