Latex--TikZ和PGF--高級文本繪圖,思維繪圖,想到--得到!
TikZ和PGF是一種用在TeX上的CLI繪圖工具。CLI和GUI是兩種常見的繪圖方式,前者是所想即所得(WYTIWYG)的,通過類編程的思想實現繪圖,這種方式往往能夠生成精確控制的函數圖,常見的有PostScript、PGF、Asymptote、PSTricks等。后者則是所見即所得(WYSIWYG)的,常見的有CorelDraw、Illustrator、Photoshop、GIMP、Office、Visio等。 TikZ和PGF的關系則是高層和底層的關系,簡單說來,TikZ基於PGF,它可以幫助我們用更易於理解的方式創建復雜的圖形。PGF的全名是“portable graphics format”,或者“pretty, good, functional”,TikZ的命名更有趣,采用的是遞歸式的取名:“TikZ ist kein Zeichenprogramm”(TikZ is not a drawing program),類似的取名最出名的恐怕就是GNU(GNU is Not Unix)了。
教程
- TikZ and pgf Manual:官方指導教程。
- Graphics with Tikz:一份簡單的TikZ教程slide。
- 例學Tikz & PGF:從具體例子入手學習TikZ和PGF。
- A TikZ mini course:一份介紹TikZ的簡短的slide。
- A TikZ tutorial: Generating graphics in the spirit of TeX:TUG 2009視頻教程。
- Commutative Diagrams using TikZ:一份介紹如何在( )中應用TikZ繪制交換圖的教程。
- Graphics in LaTeX:一份對( )常見畫圖工具的綜述,包含了對TikZ的有用的介紹。
- Graphics with PGF and TikZ:一篇發表在PracTeX雜志上的文章,包含了許多有用的圖例。還有它的演示視頻。
- Including TikZ pictures:介紹如何導入外部TikZ圖案的文章。
- LaTeX Figures with PGF and TikZ:一份關於使用PGF和TikZ的利弊的討論,發表於High Energy PhDs weblog。
- Statistiker-wg.de tutorials:收集了很多PP的TikZ實例,不過是德文的。
- Trace Diagram Codes & Examples:展示如何繪制trance圖。
相關論壇、博客以及郵件列表
- comp.text.tex:最大並且是最活躍的( )相關的論壇。
- LaTeX-Community.org:一個相對比較新的不過發展很迅速的( )論壇/社區。擁有很多友善並且活躍的用戶,可以幫忙解決大部分( )相關的問題。
- Beamer forums on SF:Beamer和PGF都是由同個作者寫的,所以Sourceforge上的Beamer論壇上也有專門討論PGF/Tikz的版塊。
- PGF and TikZ forums on Sourceforge:Sourceforge上的PGF/TikZ論壇。活躍度比較低。但如果你向PGF用戶郵件列表提交問題,獲取幫助的機會比較大。
- LaTeX_Fun:介紹( )技術的博客。
- The latex-beamer-users mailing list on SF:Sourceforge上的( )-Beamer用戶郵件列表。在這個郵件列表中也能夠找到關於PGF/TikZ的討論。
- CTeX論壇:里面有專門的( )繪圖專區版塊,不過介紹的內容比較雜,還可以找到Asymptote、PostScript等的資源。
實例
- TeXample.net:PGF/TikZ的官方gallery,要檢索全部實例可以訪問這里。
- Graph Theory in LaTeX:收集( )下的繪圖工具繪制的圖案;
- Altermundus.com:介紹TikZ相關的包和繪制出來的實例。
- 簡單流圖(Simple flow chart)
- 工作流圖(The TeX work flow)
- UML時序圖(UML sequence diagrams)
- 類圖(Class diagram)
- ER圖(Entity-Relationship diagram)
- 系統架構圖(System Combination)
- 基於數據流的系統架構圖(Inertial navigation system)
- 歸並樹(Merge sort recursion tree)
- Prim算法(Prim’s algorithm,用於生成最小生成樹)
- 神經網絡(Neural network)
- 有限狀態機(state machine)
- 正則表達式圖(Putting a diagrams in chains)
- 便簽條圖(Boxes with text and math)
- 公式說明(Beamer Arrows)
- 負反饋系統控制圖(Control system principles)
- 直線相交(Intersecting lines)
- 函數圖(Parabola plot)
- 波形圖(Parameterized plots)
- 節點形狀(Node shapes)
- 連接文字和圖形(Connecting text and graphics)
- 韋恩圖(Set operations illustrated with Venn diagrams)
- 心智圖(Computer science mindmap)
- 太極圖(Yin and yang)
- 蛛網圖(Spiderweb diagram)
- 分散的點(Scatterplot)
擴展宏包
- bclogo:一個用於創建帶標題和logo的彩色盒子的宏包。支持TikZ和PSTricks。
- Beamer:用來創建精美的幻燈片的宏包,可能是( )下最簡單易用的幻燈片制作工具了。它和PGF/TikZ出自同一個作者。
- Bodegraph:一個用來繪制Bode圖、Nichols-Black圖和Nyquist圖的宏包。
- CircuiTikz for drawing electrical networks:一套用來在科學刊物中繪制電路圖的( )宏包。PGF的電路圖庫就是根據這個包開發出來的。
- Pgfplots:提供一個非常友好的接口,用來完成普通或者對數尺度函數圖的繪制。
- prerex:一個基於PGF的用來創建有節點相連的圖表的工具。
- Schéma-blocs avec PGF/TIKZ:用於繪制block。
- sparklines:用於繪制波形圖。
- tikz-qtree: Simple syntax and smarter layout for trees:用於在TikZ中繪制樹,使用的是Alexis Dimitriadis’Qtree的創建語法。使用它繪制出來的樹不會有樹節點的碰撞問題,相比TikZ的標准繪制樹的功能而言有了較大的改進。
- tikz-timing:用於繪制時序圖。
- tkz-berge:一組用於繪制多種圖形的宏包。
- tkz-graph:用於繪制基本圖形。
- tkz-linknodes:用於連接兩個節點元素。
- tkz-tab:用於繪制復雜的表格圖案。
實用工具
- extractpgf:一個perl腳本,可以直接由tikzpicture環境里的內容生成pdf文件。
- ktikz:一個小巧的KDE工具,可以可視化生成TikZ圖表。
- TikZ2PDF:一個Python腳本工具,可以自動檢測文件的改動並預覽生成的圖案效果。
- TikZIT:一個基於TikZ的跨平台GUI繪圖工具。最初是針對TikZ快速繪制點狀圖而開發,現在也可以用來進行常規的圖形繪制。
- Webgen::Tag::TikZ:一個用於生成靜態的網站的工具。它支持使用TikZ標簽直接在網頁中自動生成基於TikZ的圖形。
- Blend2TikZ:一個支持將blender曲線轉換為TikZ路徑的腳本。
- Convert Your VYM Mindmap to PGF/TikZ:一個小巧的C語言程序,可以將 VYM (View Your Mind)的Mindmap圖導出的XML文件轉換為TikZ的Mindmap圖(查看示例文件)。
- Dia:基於GTK+的圖形繪制程序。能夠將圖形保存成PGF代碼。
- Dot2TeX:Graphviz轉( )。
- dpic:一個類PIC語言的解釋器,可以導出成PGF/TikZ等多種格式。它與circuit-macros一起使用,可以生成電路圖。
- ePIX:一組命令行工具,能夠生成精確控制的函數圖,並支持TikZ、PSTricks、EEPIC等多種導出格式。
- Eps2pgf:將Eps圖形轉換為PGF/TikZ命令 。
- fig2tikz:一個優雅的工具,可以將XFig文件轉換為TikZ命令。
- GeoGebra:一個支持幾何、線性代數、微積分的數學圖像軟件,最新的預覽版本pre-release version已經支持TikZ格式命令的導出。
- Gnuplot TikZ terminal:一個用Lua編寫的Gnuplot終端。能夠生成PGF和TikZ代碼。
- Inkscape TikZ exporter:Inkscape的一個擴展工具,可以導出TikZ格式的SVG路徑。目前還處在開發階段。
- JFlap2TikZ:JFlap是一個用於有限狀態機、圖靈機和計算機理論探索實驗的工具。JFlap2TikZ則是一個非常有用的腳本,用它可以將JFlap生成的包含圖形信息的jff文件轉換為包含了TikZ代碼的( )文件。
- JpgfDraw:一個使用Java編寫的線性圖形工具。可以將插畫導出為PGF格式命令、PNG以及SVG文件。一個有趣的特性是它可以生成flowfram和shapepar包需要的幀序列和圖形信息
- JTikZ:一個基於Java AWT/Swing的PGF/TikZ可視化繪制工具。
- LaTeXPiX:一個GUI繪制工具,支持導出EEPIC和PGF代碼,不過只支持Windows。
- Matfig2PGF:一個能夠將Matlab圖形腳本轉換為PGF代碼的工具。
- matlab2tikz:基於上面的Matfig2PGF,也是一個能將Matlab的圖形轉換為TikZ格式命令的工具。
- QtiPlot:一個用於二維/三維數據可視化及數據分析的程序。
- Sketch - A 3D Scene Description Translator:一個小巧而簡單的系統,可以生成二維/三維的物體和場景草圖。Sketch可生成PSTricks或者PGF/TikZ代碼,並允許對繪制出來的三維物體進行標注。
- tikzDevice - TikZ output from R:提供一個針對R項目的全新的圖形引擎,支持直接輸出為TikZ命令。
- TpX drawing tool:一個輕量級的GUI圖形繪制工具,可以繪制矢量圖形。只支持Windows。