推 muto52:感激感激! 受教了..我再試試~ 04/21 05:04
很久沒有用 Matlab 產生 eps 圖檔了,手邊也沒有 Matlab 可以測試,不過
就我以前寫論文的印象,大概說一下,希望有幫助。
※ 引述《muto52.bbs@ptt.cc (邁向 Cornell)》之銘言:
> 恩,不好意思來請教各位高手
> 我的問題是因為 Latex 所需是 eps圖檔
> 所以基本上我現在的圖形都是用 Matlab 繪圖然後存成 eps
> 恩 問題來了,
> \begin{figure}[th]% \vspace*{1pt}
> \centerline{\psfig{file=test.eps,width=5.0in,height=1.5in,scale=1.0}}
> \caption{This is the test fig}
> \end{figure}
> 我發現如果用比較小的 size,
> ex:
> 假設 Matlab 所輸出的字體大小為 12
> width=5.0in,height=5.0in,scale=1.0....... (兩軸是比例為 square)
> (1) 我發現那個圖形的字在 tex 下面會變的比較小,也許是比例問題
> 不知道各位高手有沒處理這問題的經驗?
我幾乎沒有用過 \psfig 來載入 eps 圖檔,通常我都使用 graphicx
的 \includegraphics 來載入圖檔。不過你會覺得字體比較小的可能
原因在於,你指定了該 eps 圖的長和寬,因此即使你設定 scale=1.0,
實際上該圖形可能還是被縮小了,由於 Matlab 產生的 eps 是向量圖,
因此在圖被縮小的同時,字體也被等比例縮小了。
> 圖形不想太大,但座標軸或 label 的字體希望能跟 tex 的文字相同
> 是不是應該放大 Matlab 輸出時候的圖形,例如 放大成 20 ,
> 讓它在 tex 中看起來比較大一點(在比較小的圖下)
應該放大的不是圖的大小,應該是圖所使用的字體的大小。
> (2) 可是如果改變成
> width=6.0in,height=3.0in,scale=1.0....(兩軸是比例不為 square)
> 那圖形經過變形後似乎字形會改變,就是不是原本的那個樣子了
這是因為你指定的長寬比例不是 1:1,導致圖形被『壓扁』,字體也跟著
被壓扁了。
你的這個問題說複雜可以很複雜,但說簡單也蠻簡單的。如果不改變輸出
的圖形格式的話,那有幾個辦法,但要看 Matlab 是怎樣把字放進圖形裡
面的,就我的印象,Matlab 並沒有把字轉換成向量圖,那麼你就有幾種
選擇:
1. 使用文字編輯器,或者支援 eps 格式的圖形處理軟體,去把字體大小改大
2. 在 Matlab 裡面要輸出圖形成 eps 前,使用 GUI 編輯字體大小
3. 在 Matlab 的 command window 下,使用 set 指令修改圖形的字型大小
的性質,然後再輸出成 eps
2 和 3 基本上差不多,差別在於你怎樣產生你的圖形。我以前的作法是
寫了幾個 m-file,在跑完數據以後,用 set 修改要修改的一些性質,然後
批次輸出成 eps 圖。不過這樣的作法會有一些根本上的問題:
1. label, title, legend 等的字體終究還是不見得會和 LaTeX 文稿中的
完全一樣
2. 有可能需要調整數次才會找到比較適合的大小
因此,如果覺得字體還是差太多,另外的作法則是把數據輸出以後,使用
gnuplot 繪製圖形,並輸出成 LaTeX 繪圖巨集的格式。印象中以前 Matlab
5/6 就已經也有輸出成 LaTeX 格式的能力,但畫出來的結果當時沒有比
用 gnuplot 畫的好看,現在不知道有沒有比較好?這樣做的好處是字體會
比較統一,調整字體大小也比較容易,但缺點是可能出來的圖形會和你在
Matlab 裡面看到的有一點差異。
--
※ Origin: SayYA 資訊站 <bbs.sayya.org>
◆ From: adsl-070-155-125-254.sip.asm.bellsouth.net