自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

初學(xué)者的LaTeX TikZ快速入門

開發(fā) 開發(fā)工具
實(shí)際上,tikz還為我們提供了許多其他工具。例如,我們迄今為止展示的工具并不足以繪制更復(fù)雜的圖形——例如余弦函數(shù)的圖像。

一、前言

從第一次學(xué)習(xí)LaTeX開始,可能對(duì)tikz有一種幾乎與生俱來的恐懼。實(shí)際上,對(duì)學(xué)習(xí)tikz的抗拒程度之高,甚至在所有與LaTeX相關(guān)的谷歌搜索中加上了“……不使用tikz”的后綴。

大多數(shù)時(shí)候,這種恐懼源于tikz和pgf共享的龐大且詳盡的文檔(https://ftp.cc.uoc.gr/mirrors/CTAN/graphics/pgf/base/doc/pgfmanual.pdf)——順便提一句,在使用tikz繪制了這么多頁面和數(shù)字之后,這些文檔已經(jīng)成為互聯(lián)網(wǎng)上最有幫助的資源之一。但是,和大多數(shù)事情一樣,當(dāng)你有了學(xué)習(xí)tikz的具體理由時(shí),學(xué)習(xí)tikz就會(huì)變得簡(jiǎn)單得多。

線條與顏色線條與顏色

因此,讓我們從兩個(gè)簡(jiǎn)單的例子開始。

二、線條與節(jié)點(diǎn)

看看下面的圖:

圖片圖片

這可能是你能想到的最簡(jiǎn)單的函數(shù)之一,對(duì)吧?

如果你有任何疑問,這不過是以下函數(shù)的圖像:

圖片圖片

簡(jiǎn)單吧。

生成上述圖像的代碼如下:

\documentclass[tikz, margin=5mm]{standalone}
  
\begin{document}
    \begin{tikzpicture}
      \draw[dashed] (-2.99,-2.99) grid (2.99,2.99);
      \draw[thick, ->] (-3,0) -- (3,0)node[pos=1,below]{$x$};
      \draw[thick, ->] (0,-3) -- (0,3)node[pos=1,left]{$y$};
      \draw[thick] (0,0) -- (3,3);
      \draw[thick] (-3,-2) -- (0,1);
      \node[circle, draw=black, inner sep=1.5pt, fill=white](a) at (0,1){};
      \node[circle, draw=black, inner sep=1.5pt, fill=black](b) at (0,0){};
    \end{tikzpicture}
\end{document}

接下來,我們逐行解釋上述代碼片段:

  • 首先,作為簡(jiǎn)寫,我們?cè)赿ocumentclass的可選參數(shù)中包含了tikz。此外,通過參數(shù)margin=5mm,我們要求LaTeX在我們的圖形周圍插入5mm的邊距。不過,我們也可以像使用其他軟件包一樣,常規(guī)地通過\usepackage{tikz}來包含tikz。
  • 通過\begin{document}和\begin{tikzpicture}命令,我們分別進(jìn)入文檔和tikz環(huán)境。
  • 代碼中第一條重要的命令是第5行。在那里,我們從點(diǎn)(-2.99,-2.99)開始繪制一條虛線網(wǎng)格,延伸至點(diǎn)(2.99,2.99)(作為一個(gè)矩形)。默認(rèn)情況下,網(wǎng)格被視為矩形,而提供的兩個(gè)點(diǎn)對(duì)應(yīng)于矩形的左下角和右上角。
  • 接下來的兩行代碼繪制了兩個(gè)坐標(biāo)軸。也就是說,我們繪制了兩條thick線,線的末端帶有箭頭(->),起點(diǎn)和終點(diǎn)均為特定點(diǎn)。
  • 在每條線的末尾,我們添加了一個(gè)節(jié)點(diǎn)以表示每個(gè)坐標(biāo)軸的名稱。這是通過node關(guān)鍵字完成的,我們使用兩個(gè)參數(shù)對(duì)其進(jìn)行定位。第一個(gè)參數(shù)pos=1表示節(jié)點(diǎn)應(yīng)放置在線的末端(100%),而第二個(gè)參數(shù)(below或left)則決定節(jié)點(diǎn)相對(duì)于線段末端的位置。最后,花括號(hào)內(nèi)的任何代碼{...}都對(duì)應(yīng)于節(jié)點(diǎn)的文本——即使是空文本也應(yīng)始終提供。
  • 在第8行和第9行中,我們繪制了兩條直線——它們對(duì)應(yīng)于我們函數(shù)的圖像。
  • 在第10行和第11行中,我們使用兩個(gè)節(jié)點(diǎn)繪制了出現(xiàn)在圖中的兩個(gè)點(diǎn)。我們可以使用draw參數(shù)確定節(jié)點(diǎn)的繪制顏色,而如果想改變節(jié)點(diǎn)的填充顏色(默認(rèn)情況下為none,即無填充,因此所有節(jié)點(diǎn)內(nèi)部都是透明的),則可以使用fill參數(shù)。此外,雖然tikz節(jié)點(diǎn)默認(rèn)為矩形,但通過使用circle關(guān)鍵字,我們可以將它們的形狀更改為圓形。最后,inner sep關(guān)鍵字決定了節(jié)點(diǎn)文本(這里為空)與節(jié)點(diǎn)邊框之間的間距——在這種情況下,它充當(dāng)了節(jié)點(diǎn)的“半徑”。
  • 在方括號(hào)外,我們?cè)趫A括號(hào)內(nèi)提供了每個(gè)節(jié)點(diǎn)的名稱,然后使用at關(guān)鍵字以絕對(duì)坐標(biāo)確定其位置,最后使用{...}提供了它們的文本。

以上內(nèi)容有兩個(gè)關(guān)鍵要點(diǎn)。首先,\draw的抽象語法如下:

\draw[options] (...) <shape> (...);

在選項(xiàng)部分,方括號(hào)內(nèi)的[...]可以傳遞多個(gè)參數(shù),主要涉及繪制線條的樣式。然后,使用括號(hào),我們通常通過點(diǎn)來確定相應(yīng)線條的起始和結(jié)束點(diǎn)(在某種相關(guān)的意義上),而shape參數(shù)則決定線條的形狀。在我們的例子中,我們使用了rectangle、grid和--作為形狀類型,它們分別對(duì)應(yīng)于矩形、網(wǎng)格和直線。

我們學(xué)習(xí)了另一個(gè)重要命令是\node,它可以在繪圖中放置一個(gè)節(jié)點(diǎn)。一般來說——但并非嚴(yán)格意義上的——節(jié)點(diǎn)作為點(diǎn)存在,遵循以下抽象語法:

\node[options] (name) at (position) {text};

同樣,任何關(guān)于樣式的內(nèi)容都放在選項(xiàng)部分。節(jié)點(diǎn)的名稱可以是任何字符串——包括字母數(shù)字字符和空格——作為每個(gè)節(jié)點(diǎn)的唯一內(nèi)部標(biāo)識(shí)符。節(jié)點(diǎn)的位置通常以笛卡爾坐標(biāo)的形式給出,格式為(x,y),而節(jié)點(diǎn)的文本可以為空或包含一些文本/數(shù)學(xué)內(nèi)容。

作為一個(gè)重要的提示,請(qǐng)注意,所有繪圖命令都應(yīng)以分號(hào);結(jié)束!

三、關(guān)于標(biāo)簽

如果我們想繪制一個(gè)如下所示的圖形,并且其中包含了許多標(biāo)簽,該怎么辦呢?

圖片圖片

一個(gè)漂亮的矩形。

你肯定可以弄清楚這是哪個(gè)函數(shù)的圖像,但你能寫出生成它的代碼嗎?如果不能,讓我們來看看以下代碼:

\documentclass[tikz, margin=5mm]{standalone}
\usepackage{xfrac} % Used to load to \sfrac command which typesets nice inline fractions.
 
\begin{document}
    \begin{tikzpicture}
      \draw[dashed, step=3] (-0.49,-0.49) grid (3.99,3.99);
      \draw[thick, ->] (-.5,0) -- (4,0) node[pos=1,below]{$x$};
      \draw[thick, ->] (0,-.5) -- (0,4) node[pos=1,left]{$y$};
      \draw[thick] (0,0) -- (4,4);
      \node[circle, draw=black, inner sep=1.5pt, fill=white, label={right,yshift=8pt}:{(1,1)}](a) at (3,3){};
      \node[circle, draw=black, inner sep=1.5pt, fill=white, label={left,yshift=-8pt}:{(0,0)}](b) at (0,0){};
      \node[circle, draw=black, inner sep=1.5pt, fill=black, label={left}:{$(0,\sfrac{1}{2})$}](c) at (0,1.5){};
      \node[circle, draw=black, inner sep=1.5pt, fill=black, label={right}:{$(1,\sfrac{1}{2})$}](d) at (3,1.5){};
    \end{tikzpicture}
\end{document}

如你所見,有些部分你可以從之前的繪圖中識(shí)別出來。不過,我們也引入了一些新的內(nèi)容。

首先,可以通過在\draw命令的選項(xiàng)中提供step參數(shù)來確定網(wǎng)格的步長(zhǎng),如上所示——默認(rèn)情況下,任何值都被解釋為厘米。

我們還通過label={}:{}選項(xiàng)提供了一些節(jié)點(diǎn)標(biāo)簽。那么,我們?yōu)槭裁词褂眠@個(gè)而不是簡(jiǎn)單地將一些文本/數(shù)學(xué)內(nèi)容添加到節(jié)點(diǎn)的“本地”標(biāo)簽(即text)中呢?原因在于,默認(rèn)情況下,節(jié)點(diǎn)的文本錨定在中心,并隨節(jié)點(diǎn)一起移動(dòng)。然而,在我們的例子中,我們想要實(shí)現(xiàn)的是在每個(gè)點(diǎn)旁邊添加一些文本以指示其在平面上的位置。為此,可以使用label={}:{}關(guān)鍵字,其一般語法如下:

label = {parameters} : {text / math}

參數(shù)可以涉及相對(duì)定位、錨點(diǎn)等多個(gè)方面。目前,我們使用了left和right將標(biāo)簽分別定位于對(duì)應(yīng)節(jié)點(diǎn)的左側(cè)和右側(cè)——正如你可能猜測(cè)的那樣,還有它們的垂直對(duì)應(yīng)關(guān)系,above和below。

注意,我們還使用了xfrac軟件包,以一種更優(yōu)雅的方式來排版內(nèi)聯(lián)分?jǐn)?shù)——至少在這種情況下是如此。這是通過\sfrac{}{}命令實(shí)現(xiàn)的,它的使用方法與常規(guī)的\frac{}{}命令相同。

四、結(jié)語

以上就是我們的所有內(nèi)容,希望能幫助你快速入門。同時(shí),似乎我們已經(jīng)可以使用它們做很多事情了。實(shí)際上,tikz還為我們提供了許多其他工具。例如,我們迄今為止展示的工具并不足以繪制更復(fù)雜的圖形——例如余弦函數(shù)的圖像。

因此,可以在此入門基礎(chǔ)上探索更多有關(guān)LaTeX Tikz的使用技巧。

責(zé)任編輯:武曉燕 來源: Java學(xué)研大本營(yíng)
相關(guān)推薦

2014-03-12 10:11:57

Python設(shè)計(jì)模式

2010-09-27 14:39:22

Android

2020-08-16 13:10:46

TensorFlow深度學(xué)習(xí)數(shù)據(jù)集

2011-08-24 17:05:01

Lua

2021-08-05 14:40:45

操作系統(tǒng)UNIXLINUX

2023-10-14 17:21:53

Scala編程

2009-06-05 11:01:07

淘寶Open API入門教程

2011-06-27 14:56:46

Qt Designer

2010-11-24 16:15:09

UI設(shè)計(jì)Windows Pho

2011-04-12 10:13:24

2011-09-16 09:38:19

Emacs

2022-04-24 15:21:01

MarkdownHTML

2011-03-02 12:43:40

vsFTPd

2009-06-15 13:17:37

Java初學(xué)者Java概念

2015-07-20 13:56:59

SDN

2022-10-10 15:28:45

負(fù)載均衡

2024-05-14 08:49:35

PytestPython測(cè)試框架

2011-08-17 12:03:36

Objective-C

2009-11-18 09:30:43

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)