LaTeX備忘——在LaTeX中配置使用開源繪圖工具PlantUML

    PlantUML是一個開源繪圖工具,主要用於繪製UML圖形。LaTeX所帶的UML繪圖工具包不怎麼好用,直接用tikz宏包來繪製的話又太麻煩,PlantUML提供了將UML圖形轉換爲tikz語句的功能,簡化了UML圖形繪製。配置方法步驟如下:

--

操作系統:Ubuntu 18.04

編輯工具:TeXstudio 2.12.6

編譯方式:LuaLaTeX


1. 下載PlantUML包與plantuml.jar文件

    PlantUML包中我們要用到的文件是plantuml.sty與plantuml.lua兩個文件。下載地址:plantuml,可以用以下命令下載:

git clone https://github.com/koppor/plantuml.git

    plantuml.jar下載地址:plantuml.jar

2. 安裝openjdk

    安裝openjdk-8或openjdk-11都可以,命令如下:

sudo apt install openjdk-11-jdk
3. 配置環境

    編輯/etc/profile文件,在最後加入第1步下載的plantuml.jar文件的路徑與文件名,例如:

export PLANTUML_JAR=/home/starry/plantuml.jar

    保存後重啓電腦。

4. 設置TeXstudio

    把編譯方式設置成LuaLaTeX,並加入參數“-shell-escape”,如下圖:

plantuml之TeXstudio設置

    圖中LuaLaTeX一項的內容爲:

lualatex  -shell-escape -synctex=1 -interaction=nonstopmode %.tex

    如果沒有使用TeXstudio或者想從終端運行命令,可以直接用以下命令來編譯:

lualatex  -shell-escape 要編譯的tex文件
5. 放置好plantuml.sty與plantuml.lua文件

    在具體使用時,最簡單的方法就是把第1步下載的plantuml.sty與plantuml.lua文件放在要編譯的tex文件所在目錄,這樣編譯時才能找到。TeXstudio工具在搜索宏包文件時有固定的默認目錄,在Ubuntu下通常是“~/texmf/tex/latex/commonstuff/”,可以把plantuml.sty文件或鏈接放在這裏。lua文件好像不能這樣放,還是與編譯的tex文件放在一起,我沒有試過,有興趣的朋友可以去試試。

6. 編譯

    編譯稍微有點慢,耐心等待。編譯中會產生一個後綴爲latex的文件,裏面實際上就是轉換好的tikz繪圖語句,大家一看便知。

    注意:tex文件名與所在目錄名不能使用漢字,否則編譯不能通過。 這點我還沒有深入去看,不清楚是我的配置問題還是PlantUML本身限制,以後慢慢解決吧。

7. 繪製UML圖形示例
\documentclass{article}%
% 開源中國,陸巍
\usepackage{ctex}% 中文支持
\usepackage{geometry}% 用於頁面設置
\usepackage{plantuml}

\geometry{%
  a4paper,%
  left = 3.17cm,%
  right = 3.17cm,%
  top = 2.54cm,%
  bottom = 2.54cm%
}%

\begin{document}%
  PlantUML繪圖示例\\
  
  \begin{plantuml}
    @startuml
    Class01 <|-- Class02
    Class03 *-- Class04
    Class05 o-- Class06
    Class07 .. Class08
    Class09 -- Class10
    @enduml
  \end{plantuml}
  
  \begin{plantuml}
    @startuml
    
    abstract class AbstractList
    abstract AbstractCollection
    interface List
    interface Collection
    
    List <|-- AbstractList
    Collection <|-- AbstractCollection
    
    Collection <|- List
    AbstractCollection <|- AbstractList
    AbstractList <|-- ArrayList
    
    class ArrayList {
      Object[] elementData
      size()
    }
    
    enum TimeUnit {
      DAYS
      HOURS
      MINUTES
    }
    
    annotation SuppressWarnings
    
    @enduml
  \end{plantuml}
\end{document}

效果如下:

plantuml類圖示例

8. 繪製思維導圖示例

    PlantUML不僅可以繪製UML圖形,還可以繪製思維導圖。

\documentclass{article}%
%  開源中國,陸巍
\usepackage{ctex}% 中文支持
\usepackage{geometry}% 用於頁面設置
\usepackage{plantuml}

\geometry{%
  a4paper,%
  left = 3.17cm,%
  right = 3.17cm,%
  top = 2.54cm,%
  bottom = 2.54cm%
}%

\begin{document}%
  PlantUML繪圖示例\\
  
  \begin{plantuml}
    @startmindmap
    + OS
    ++ Ubuntu
    +++ Linux Mint
    +++ Kubuntu
    +++ Lubuntu
    +++ KDE Neon
    ++ LMDE
    ++ SolydXK
    ++ SteamOS
    ++ Raspbian
    -- Windows 95
    -- Windows 98
    -- Windows NT
    --- Windows 8
    --- Windows 10
    @endmindmap
  \end{plantuml}

\end{document}

效果如下:

PlantUML之思維導圖示例

    通過PlantUML生成的圖形,本質上還是tikz,所以在排版上與tikz的也一樣。我剛開始使用PlantUML,在使用中還是有些不滿意,先用着吧,實在不行就自己開發。

    以上示例代碼中的繪圖命令來自PlantUML官網,更多示例請看官網:PlantUML

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章