是否有一個簡單的包,我可以輸入一個抽象圖並返回一個繪圖?
A類似的問題2010年被問到時,它沒有收到與我的問題相關的任何答案。我不需要複雜的程式碼,只需給出圖形的邊列表並獲得任何繪圖。 (當然,歡迎使用一些可選參數。)這已經在許多程式語言中實現了,所以我想它也應該在 LaTeX 中可用。
答案1
至少有兩種方法:
最靈活的(也是我推薦的)是使用PGF3/TikZ如果您有該軟體包的最新版本(版本 3.0.0 及更高版本)並且使用
luatex
/lualatex
進行編譯,則可以使用 的自動佈局功能。請參閱 PGF 手冊,有一章專門介紹這一點。優點是您可以使用 TikZ 的全部功能來設計節點/邊的樣式,並且它將與文件的其餘部分無縫融合。您可以對標籤/節點內容和 TikZ 樣式使用(幾乎)任意 TeX 程式碼。缺點可能是效能,但您可以透過使用external
庫來緩解這個問題(請參閱手冊)。手冊中的範例:
\tikz [>=spaced stealth’] \graph [layered layout, components go right top aligned, nodes=draw, edges=rounded corners] { first root -> {1 -> {2, 3, 7} -> {4, 5}, 6 }, 4 -- 5; second root -> x -> {a -> {u,v}, b, c -> d -> {w,z} }; third root -> child -> grandchild -> youngster -> third root; };
使用 graphviz 產生佈局,然後使用
dot2tex
。優點是您仍然可以獲得與主文檔相同的字體,您可以使用數學,並且可以編譯一次圖形,並避免在每次編譯文檔時都進行佈局。有一些方法可以使用 LaTeX 套件來自動化後者
dot2texi
。請記住使用pdflatex
選項運行-shell-escape
以使其工作:dot2texi
將需要調用dot2tex
需要與graphviz
.在最新版本中,您可以選擇產生 TikZ 程式碼並為節點/邊指定自訂 TikZ 樣式。文件中的引用:Graphviz 和 dot2tex 的輸出並不完美。有時需要手動調整才能獲得在出版物中使用的正確結果。對於最終和外觀調整,編輯生成的程式碼通常比破解點源更容易。使用 tikz 輸出格式時尤其如此。