出于某些原因笔者最近在折腾TikZ,考虑到以后可能很少用这个,因此先记录在这里,以备偶尔使用。
TikZ宏包:
\usepackage{tikz}
有时可能会需要用到TikZ的其他library,就在上面那条命令后用usetikzlibrary
命令添加,如:
\usepackage{tikz}
\usetikzlibrary{graphs,qoutes}
一般绘图可以在figure
环境中绘图,也可以不用,考虑到\caption
和\label
的需求,还是在figure
环境中搞吧。绘图可以直接用\tikz
命令也可以用tikzpicture
环境,考虑到易读性和美观,还是用后者吧。一般绘图可以:
\usepackage{tikz}
...
\begin{figure}[htbp]
\centering
\begin{tikzpicture}
\node (A) at (0,0) {$A$};
\node (B) at (2,0) {$B$};
\node (C) at (-2,0) {$C$};
\node (D) at (4,0) {$A$};
\draw[->] (A) -- (B) node[midway,above] {$f$};
\draw[->] (C) -- (A) node[midway,above] {$g$};
\draw[->] (B) -- (D) node[midway,above] {$f^{-1}$};
\draw[->] (A) .. controls (2,-1) .. (D) node[midway,below] {$f\circ f^{-1}=\mathrm{id}_A$};
\end{tikzpicture}
\end{figure}
注意TikZ是要有分号的。对应的图:

\node
命令用来指定节点:
\node (节点标识符) at (节点坐标) {文本};
\draw
命令用来连线画图,多种用法:
\draw[参数] (坐标) -- (坐标) -- (坐标);
画曲线就用controls
命令:
\draw[参数] (起点坐标) .. controls (坐标A) and (坐标B) ... (终点坐标);
坐标A和坐标B用来给出曲线的切矢方向:例如以坐标A为终点,起点坐标为起点的矢量与曲线在起点坐标处的切矢平行;以坐标B为终点,坐标A为起点的矢量与曲线在坐标A处的切矢平行。
也可以直接指定曲线的种类和相关参数,如画圆和画抛物线:
\draw (0,0) circle [radius=1cm];%\draw (圆心坐标) circle [radius=半径]
\draw (0,0) parabola[bend at end] (1,1.5);%\draw (起点坐标) parabola[参数,这里是给定抛物线顶点在线末] (终点坐标);
\draw (0,0) parabola bend (1,1.5) (1,1.5); %\draw (起点坐标) parabola bend (抛物线顶点坐标) (终点坐标);
还有很多功能,用到再说。
\draw
命令后接参数用来在曲线上标记,也就是之前的图里的f,g之类的。如之前的例子里:
\draw[->] (A) -- (B) node[midway,above] {$f$};
midway
指这个标记位于曲线的中间,above
指这个标记在曲线的上方,{}内是标记的文本内容。其他例子有:
\begin{figure}[htbp]
\centering
\begin{tikzpicture}
\draw[->] (0,0) -- (2,0) node[near start,above] {$A$} node[near start,below] {$D$};
\draw[->] (3,0) -- (5,0) node[midway,above] {$B$} node[midway,below] {$E$};
\draw[->] (6,0) -- (8,0) node[near end,above] {$C$} node[near end,below] {$F$};
\end{tikzpicture}
\end{figure}

该命令还有其他用法,也有其他命令能达到相同的效果,用到了再说。
Comments NOTHING