1. 程式人生 > >Latex中的插圖心得

Latex中的插圖心得


要對latex插圖仔細研究,推薦Latex插圖指南一文(一般CTEX安裝目錄下help資料夾graphics.pdf就是了),下邊用雙引號括起來的都引自此書。PS:本文中程式碼裡的圖片檔名在編譯時請換成你的電腦裡實際有的圖片,這個大家應該都懂的。


1、        我用慣word的結果是覺得Latex的圖片浮動格式很不習慣,然後我聽到這樣一段話,覺得有醍醐之感:“


一、不要使用依賴於圖形放置位置的文字。使用如“ 這幅圖...” 或“ 下面的圖形...” 等短語要求所指的圖形需在固定位置。而像“ 圖5...” 這樣的短語則允許圖形出現在任意位置。


二、放鬆。一些使用者在發現圖形沒有十分準確的出現在他們所想要的位置時,往往非常著急。這沒有必要,圖形的放置是LATEX 的工作,最好放鬆一些。”


為什麼Latex不推薦我們讓圖形準確出現在放置的位置呢?“因為那會導致糟糕的分頁,將大片的空白留在頁面下方。為得到專家級的排版效果,作者不得不手工調整圖形的位置。這種工作是非常乏味的,尤其是幾乎每次修改文件都得這樣做一次。”

Knuth同學當年做tex時,目的就是讓我們將注意力集中在文章的內容,而不是排版上。尤其是在做長文章或書時,用word每次修改時插入新的文字都要重新調整圖片,很不方便。(其實還好啦,我們的文章都短的像兔子尾巴就覺得word也挺好的)

2、        浮動格式

一個典型的插圖語句

\begin{figure}[htbp]

\centering

\includegraphics[width=6.5cm]{graph.eps}

\caption{This is an inserted EPS graphic} \label{fig:graph}

\end{figure}

其中[htbp]就是浮動格式

“h 當前位置。將圖形放置在正文文字中給出該圖形環境的地方。如果本頁所剩的頁面不夠,這一引數將不起作用。

t 頂部。將圖形放置在頁面的頂部。

b 底部。將圖形放置在頁面的底部。

p 浮動頁。將圖形放置在一隻允許有浮動物件的頁面上。”

我一般使用[htb]這樣的組合,只用[h]是沒有用的(原因請讀者思考)。這樣組合的意思就是latex會盡量滿足排在前面的浮動格式,就是h-t-b這個順序,讓排版的效果儘量好。反正記住,放輕鬆。

3、        如果你就是要插在你想插的位置怎麼辦?

我會這樣做:如果tex不讓你插在你想插的位置,說明你的圖片太大了,你可以試試調整[width=6.5cm]中的大小,讓它能夠插得下,其實我們在word中也是這樣做的。推薦使用\textwidth這個單位。但還是那句話,不要太勉強。

4、        一些圖片的並排

如果想要這樣的效果,要兩張圖並列,或幾張圖排在一起。可以試試下面的模板,效果請自己執行


模板一


\begin{figure}[htbp]
\centering
\subfigure[sin1]{\label{fig:fft:a}
\begin{minipage}[c]{0.5\textwidth}
\centering
\includegraphics[width=6.5cm]{sin1.eps}
\end{minipage}%
}%注意這個”%”絕對不能省,可以試試不打%的效果
\subfigure[sin2]{
\begin{minipage}[c]{0.5\textwidth}
\centering
\includegraphics[width=6.5cm]{sin2.eps}
\end{minipage}
}
\caption{fft}\label{fig:fft}
\end{figure}


模板二

\begin{figure}[htbp]
\centering
\begin{minipage}[c]{0.5\textwidth}
\centering
\includegraphics[width=6.5cm]{sin1.eps}
\end{minipage}%
}%注意這個”%”絕對不能省,可以試試不打%的效果
\begin{minipage}[c]{0.5\textwidth}
\centering
\includegraphics[width=6.5cm]{sin2.eps}
\end{minipage}
}
\caption{fft}\label{fig:fft}
\end{figure}

5、        其他細節可以詳見開頭說的那本書。還有關於圖片的格式,如果用Latex編譯的話只能用eps格式的圖片,matlab就存為eps,其他用軟體轉吧,但是如果用Latex2pdf編譯的話好像就能用jpg,eps反而不可以。但推薦使用eps,我試驗下來matlab的圖eps質量好,但好像不太支援中文,其實也有辦法解決,我所知道的方法是用Psfrag巨集包,詳細方法還是參見那本書,但是我覺得用英文就行了嘛。

6、        其實真正的高手latex畫圖是這樣畫的,下面一段程式碼引自Arnold的一篇論文,可以執行一下,看看什麼效果。

\begin{picture}(6,6)
\thicklines
 \put(0,0){\line(1,1){6}}
 \put(0,6){\line(1,-1){3}}
\put(1,1){\circle*{0.2}}
  \put(1,5){\circle*{0.2}}
  \put(5,5){\circle*{0.2}}
  \thinlines
  \multiput(1,1)(0,0.2){20}{\line(0,1){0.1}}
  \multiput(1,5)(0.2,0){20}{\line(1,0){0.1}}
  \put(1,5.2){\mbox{$A$}}
  \put(1,0.5){\mbox{$C$}}
  \put(4.5,5.2){\mbox{$B$}}
\end{picture}