矢量圖形(Vector Picture, SVG, PDF)轉TiKZ代碼


在使用LaTeX的過程中,我們需要往往需要使用一些圖片,譬如,在樣式文件中,但是如果在樣式文件中使用外部的圖片,總感覺不是那么地舒服「請原諒強迫症」。因此,想辦法將圖形內嵌入LaTeX文件。

首先,我們需要知道如下的知識:

  • TiKZ是LaTeX繪圖最成功的語言(之一);
  • 圖像分為位圖與矢量圖;「這一點不知道請自行百度或Google,已經有太多的講解,在此不再贅述〕
  • 矢量圖形的常見格式:PDF、EPS、emf、wmf、ps、SVG、Tiff;「注意,這里說的是矢量圖形的格式,並沒有說這些格式一定是矢量圖形,事實上,其中大部分圖形均支持位圖」

因此考慮將PDF中的矢量圖形「后文中的PDF如不加說明是指存儲矢量圖形的PDF,另外將該類PDF以圖像簡稱」轉換為TiKZ代碼。由於PDF中也是有一點的存儲規則,在實際閱讀時,由PDF閱讀器進行渲染「與位圖不同,位圖基本上是拷貝,當然會加上縮放、解壓縮等操作」。因此如果可以將PDF的語言翻譯為人類可理解的語言,后面就可以通過編程來完成。按照這個思路,在網上搜索,但是沒有找到相關的內容。並且我們直接以記事本(不是Windows自帶的記事本,而是Notepad++、Notepad2、Notepad3、Sublime、Emeditor、UltraEditor、EditPlus等文本編輯器)打開,可是看到里面的內容大都不可讀,如下:

所以,暫放棄將PDF轉換為TiKZ代碼。

因此嘗試其他格式的矢量圖形。在嘗試上面的矢量圖形之后,發形SVG的圖形是明碼「原諒我濫用術語,但是我認為很貼切」,所以將此內容轉換為對應的TiKZ是具有可行性的。

由於繼續在網上搜索,讓我找到了如下的內容:

於是,剩下的內容就簡單啦,下載InkScape,安裝插件inkscape2tikz或者是svg2tikz,「由於我裝了兩個,不知道是哪個起了作用,不想探究竟了」。插件安裝方法見:How do you install extensions on windows?,即將對應的*.inx及對應文件目錄下的所有文件「通常包含*.inx及另外的*.py文件,其中__init__.py是空文件,放心覆蓋。」全部復制到安裝目錄下的share/extensions文件夾下,重啟即可。安裝成功后可在【Extensions→Export】下發現【Export to TikZ path】。

接下來的事情就簡單了,打開對應的*.svg文件,導出為TiKZ路徑,在導出的時候可以參見下面的設置。

個人比較喜歡放到剪貼板,如果沒有勾選【Export to TikZ path】,則需要在下面的【Export to TikZ path】里填入文件名稱,需要包含路徑,不然的話,直接導出在插件所在的目錄。

PS;上文只說了有SVG及PDF等格式的文件,沒有說是如何轉換的。實際上很簡單,可以使用矢量圖形編輯軟件,如Adobe Illustrator/CorelDraw等軟件完成。通用步驟是:新建文檔,導入對應的文件「可拖拽完成」,另存為或者導出,在另存為或者導出的選項卡里選擇對應的格式即可。

PS:源代碼及試用文件見:鏈接: https://pan.baidu.com/s/1lGmB2CzczfAFP8y_J045cg 提取碼: fky4

轉載請保留作者及原網頁:矢量圖形(Vector Picture, SVG, PDF)轉TiKZ代碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM