1. 程式人生 > >LaTeX巨集包TikZ-UML使用備忘三

LaTeX巨集包TikZ-UML使用備忘三

  程式碼的檔案頭與備忘一中的一樣,這裡不再列出。因為我一直在對部落格進行修改,其他網站轉載的內容可能已經與原文不一樣,所以請關注51CTO中的原創文章。
 
示例七

% 51CTO陸巍的部落格
\begin{center}
    \begin{tikzpicture}
      \umlclass[x = 0, y = 0, draw = purple]{DB}{}
        {+ store(ProductData)\\ + getProductData(sku)\\ + deleteProductData(sku)}
      \umlsimpleclass[left = 1cm of DB, draw = purple]{ProductData}
      \umlsimpleclass[right = 1cm of DB, draw = purple]{Application}
      \begin{umlpackage}[x = -3.86, y = -3.0, draw = purple, fill = umlyellow]{java{.}sql}
        \umlsimpleclass[x = 0, y = 0, draw = purple]{Connection}
        \umlsimpleclass[x = 3, y = 0, draw = purple]{Statement}
        \umlsimpleclass[x = 6.4, y = 0, draw = purple]{Driver Manager}
        \umlsimpleclass[x = 0, y = -1, draw = purple]{ResultSet}
        \umlsimpleclass[x = 3.5, y = -1, draw = purple]{Prepared Statement}
        \umlsimpleclass[x = 7.4, y = -1, draw = purple]{SQLException}
      \end{umlpackage}

      \umluniassoc[draw = purple]{Application}{DB}
      \umluniassoc[draw = purple]{DB}{ProductData}
      \umlVHVuniassoc[arm1 = 1.5cm, draw = purple]{Application}{ProductData}
      \umluniassoc[draw = purple]{DB}{java{.}sql}
    \end{tikzpicture}
    \\[0.4cm]\heiti 圖15.1 DB FACADE\song
  \end{center}

效果如下:
LaTeX巨集包TikZ-UML使用備忘三
說明:
  1) 示例中包的名稱為java.sql,但是在程式碼中不能直接這樣打,會報錯,所以使用大括號把小數點括起來,這樣就不會報錯了。對於英文的逗號之類的符號也是如此處理。
  2) umlpackage的位置雖然也可以使用“below = 1cm of DB”這樣的方式來確定,但這樣做的話,包內class的座標會以整個圖形為參照,而不是以包的位置為參照。所以這裡對包的位置使用了座標值表示,而不是使用相對位置來表示。
  3) 我目前還沒有找到給名稱換行的方法(\\、\newline等命令無效),所以這些標題都在一行,看上去不太美觀。對外觀要求高的朋友可以直接使用tikz中的基本繪圖語句來繪製,可以做得很好看。這裡使用的tikz-uml巨集包本身就是由tikz擴充套件而來,所以完全可以在這裡面使用tikz繪圖語句。