LaTeX畫矢量圖相關(字體、箭頭位置、分組)?
01-22
我一直在琢磨一篇論文中的圖用latex怎麼繪製出來,問題標題不知如何取比較合適,但是我覺得畫該圖(鏈接見後文)需要解決的就是內容分組、設置箭頭問題、然後是設定字體。
http://sfault-image.b0.upaiyun.com/fd/b8/fdb8f1e6d1b691a16ca98b67596ee568_article
方法一:
這個可以直接用picture環境中的命令來畫,如果不嫌麻煩的話,比如line用來生成直線vector用來生成矢量,帶箭頭
circle用來生成圓圈等等曲線的話,可以用bezier來生成。詳細的可以去參考隨便一本LaTeX的文檔。舉個例子的話,可以這樣egin{center}egin{picture}(100,100)put(50,50){circle{10}}qbezier(80,80)(110,50)(80,20)put(95,50){1}qbezier(90,90)(130,50)(90,10)
put(110,50){2}qbezier(110,110)(170,50)(110,-10)put(140,50){3}end{picture}end{center}來畫一個原子……雖然有點簡陋:可以用egin{center}setlength{unitlength}{1mm}
egin{picture}(180,30)linethickness{1pt}put(170,20){vector(-1,0){150}}put(15,19){$vec E$}%put(-2,0){A}put(0,10){line(1,0){180}}%put(0,5){line(0,1){10}}%put(1,7){ iny Control}multiput(60,4)(0,3){4}{line(0,1){2}}put(30,7){ iny Accelerate}
put(58,0){C}multiput(110,4)(0,3){4}{line(0,1){2}}put(108,0){D}put(10,5){line(0,1){10}}put(8,0){B}multiput(160,4)(0,3){4}{line(0,1){2}}put(158,0){D}put(180,5){line(0,1){10}}put(178,0){E}end{picture}
end{center}來畫這個……綜合一下這些命令,當然可以畫出你提到的那種圖……但是,但是,畫完了要累死了……
方法二:
還有一種稍微簡單一點的方法是,使用minipage和盒子的功能,加上前面提到的這些畫線的方法,可以話出來,這樣簡化了那些列表的繪製,因為minipage或盒子裡面可以很方便的做這些。比如cases環境可以很方便的把大括弧的內容做好,然後放到mbox(或者fbox,minipage之類的)裡面,然後繪製帶箭頭的線條,就可以完整的複製出來了。方法三:
有一個簡便的方法,可以畫得更漂亮的圖又不花大力氣:直接調用Tikz包。關於這些可以看這個網站:http://www.texample.net/tikz/examples/
上面有各種漂亮的內容。以至於我顯得無聊就去畫幾個圖玩玩……比如你想要的這種樹形結構,可以看這些:http://www.texample.net/tikz/examples/feature/nodes-and-shapes/http://www.texample.net/tikz/examples/feature/node-positioning/http://www.texample.net/tikz/examples/feature/trees/如果想要完整的重現問題中提到的例子,可以看一文檔:下http://www.texample.net/media/pgf/builds/pgfmanualCVS2010-09-28.pdf
比如377頁有如何繪製帶複雜括弧的矩陣等等。重現這個圖應該只需要比較簡單的幾個功能吧。
關於設置字體的問題。可以用 XeTeX,使用specfont功能來設置字體,或者直接使用
ewfontfamilyheiti{"黑體"} 類似的方法重定義字體名字,然後
這樣的方式來自定義部分內容的字體。
不過,話說回來,為嘛非要用LaTeX來畫呢,這個用腦圖軟體應該是更方便吧~推薦閱讀:
※為何大多數 LaTeX 編輯器連中英文混排時的自動換行都不支持?
※如何推薦理工專業的同學使用LaTeX排版?
※如何評價「LaTeX 的編輯效率大幅低於 Word」的研究?
※側重於介紹公式編輯的LaTeX中文入門書有哪些?
※LaTeX 中圖和表如何並排?
TAG:LaTeX |