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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

LaTeX入门学习9(tikz基础-01)

發布時間:2023/12/20 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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內容如下:

\begin{tikzpicture}[parent anchor=east,child anchor=west,grow=east,sibling distance=15mm,level distance=15mm,every node/.style={ball color=cyan,circle,text=black},edge from parent/.style={draw,dashed,thick,red}] \node {root} child {node {左節點}} child {node{右節點}child {node {左子}}child {node {右子}} }; \end{tikzpicture}

在主文件中加上:

\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和上述上述作用類似,不同在于填充和線型不同。線型比較粗的時候看著效果會有點差別:

\begin{tikzpicture}[fill=yellow!80!black,line width=5pt]\filldraw (0,0) -- (1,1) -- (2,1);\filldraw (4,0) circle (.5cm) (4.5,0) circle (.5cm);\filldraw[even odd rule] (6,0) circle (.5cm) (6.5,0) circle (.5cm);\filldraw (9,0) -- (9,1) -- (10,0) circle (.5cm); \end{tikzpicture}

設置填充模式(需要使用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}\def\mypath{(0,0) -- +(0,1) arc (180:0:1.5cm) -- +(0,-1)} % 繪制(0,0),(0,1),arc,(1.5cm,0),填充紅色\fill [red] \mypath;\pattern[pattern color=white,pattern=bricks] \mypath; % 堆上述區域填充磚塊。 \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}

渲染效果:

設置重疊區域奇偶抵消

\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] { $-1+1 = \textcolor{red}{0}$};%順時針填充和逆時針填充抵消,內部為白色。\begin{scope}[yshift=-3cm] % 沿著上圖y方向上向下移動3cm \filldraw[fill=yellow!80!black,even odd rule]% 設置新的圖形的填充格式(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] {$1+1 = \textcolor{red}{2}$}; \end{scope}

渲染效果:

總結

以上是生活随笔為你收集整理的LaTeX入门学习9(tikz基础-01)的全部內容,希望文章能夠幫你解決所遇到的問題。

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