PGF 制图

很久都没仔细看看 PGF 的文档了,这次为了画些东西决定还是继续研究一下。首先是个流程上的东西,很重要的就是使用 preview 帮助 pdfLatex 进行 crop(见这里)。不知道什么时候 XeLaTeX 才能被 preview 支持。下面是一个简单的代码

\documentclass{article}
\usepackage{tikz}
\usepackage[active, pdftex, tightpage]{preview}
\tikzstyle{vis}=[circle, draw=blue!50, fill=blue!20, thick]
\tikzstyle{lat}=[rectangle, draw=black!50, fill=black!20, thick]
\PreviewEnvironment{tikzpicture}
\begin{document}
\begin{tikzpicture}
  \node[lat] (bt)  at (0, 0)      {$\beta_t$} ;
  \node[lat] (bt1) at (-1.5, 0)   {$\beta_{t-1}$} ;
  \node[lat] (mt)  at (0, 1.5)    {$\mu_t$} ;
  \node[lat] (mt1) at (-1.5, 1.5) {$\mu_{t-1}$} ;
  \node[vis] (yt)  at (0, 3)      {$y_t$} ;
  \node      (ot)  at (-1.5, 3)   {$o_t$} ;
  \begin{scope}[->]
    \draw (mt1) -- (mt) ;
    \draw (bt1) -- (bt) ;
    \draw (bt)  -- (mt) ;
    \draw (mt)  -- (yt) ;
    \draw (ot)  -- (yt) ;
  \end{scope}
\end{tikzpicture}
\end{document}

生成的图片如下:

EMP

下面稍微总结一下现在 PGF 提供的一些很有用的功能:

  • arrow tip lib,可以用 \usetikzlibrary{arrows},提供了各式箭头
  • automata lib,方便绘制自动机,可以用 \usetikzlibrary{automata}
  • background lib,方便为背景添加颜色或者框之类的东西,\usetikzlibrary{backgrounds}
  • calendar,方便绘制日历,\usetikzlibrary{calendar}
  • chains,方便绘制排成一列的东西,\usetikzlibrary{chains}
  • decoration,方便在线条上加一些装饰性的曲线,显得自然一些,\usetikzlibrary{decorations.xxx}
  • entity relationship,方便画一些 entity 之间的关系这类线框图,\usetikzlibrary{er}
  • fading,方便画渐变色,\usetikzlibrary{fadings}
  • fitting,方便放置一个 node,给出 fitting 的条件即可,\usetikzlibrary{fit}
  • matrix,方便画表格或者矩阵类似的结构,\usetikzlibrary{matrix}
  • mindmap,方便画概念的树状结构图,\usetikzlibrary{mindmap}
  • paper folding,方便画折纸,\usetikzlibrary{folding}
  • pattern,填充的 pattern,\usetikzlibrary{pattern}
  • petri net,\usetikzlibrary{petri}
  • plot handlers,没看明白怎么用,\usetikzlibrary{plothandlers}
  • plot mark lib,画某些数据图使用的 marks,\usetikzlibrary{plotmarks}
  • shadow,为某些图形增加 shadow,\usetikzlibrary{shadows}
  • shape,提供了更丰富的 shape,\usetikzlibrary{shape.xxx}
  • topath,简化了曲线等绘制,\usetikzlibrary{topaths}
  • through lib,在绘制形状的时候能够要求通过某点,\usetikzlibrary{through}
  • tree lib,绘制树状结构 \usetikzlibrary{trees}
  • pgfplots 是一个额外的包,提供数据图形的绘制,甚至可以绘制函数,这玩意用好了是不是以后就用 matlab 生成数据就行了… 似乎比 gnuplot 还要好用一点… 加上 pgf 还能 render svg…

啊,好吧,个么我就开始用这个玩意画画吧 🙂

——————
And Abraham drew near, and said, Will you also destroy the righteous with the wicked?

Advertisements
PGF 制图

一个有关“PGF 制图”的想法

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s