2007年12月13日 星期四

LaTeX package - exam - part 2

第一部份
6.
6.1.
6.2.
6.3.

7. 更改頁面的邊界值
不管是什麼格式的紙張,exam 模式都會在頁面的四邊各留下 1 英吋的邊界。不過它有提供指令讓你去修改。
要改變本文區的寬度,你得使用 \extrawidth 這個指令。\extrawidth 這個指令利用一個參數來加大本文區的寬度。當他改本文區的寬度時,他們把這個區域維持在紙張的中央。如果參數是負值,那寬度反而會變小。
舉例來說,要把左右邊界都加大半英吋,你要用這個指令
\extrawidth{-1in}
當你下這個指令後,本文區會縮減一英吋,而多出來一英吋的空間會平均分配在左右邊界各半英吋。要縮減左右邊界為四分之三英吋,你要使用這個指令
\extrawidth{.5in}
當你下這個指令後,本文區會增加半英吋,而左右邊界則會各自減少四分之一英吋。
要改變本文區的高度,你必須決定要改變的是上邊界還是下邊界。這樣的指令是為了要讓頁首或是頁尾有更大的空間,所以指令名稱是 \extraheadheight 及 \extrafootheight,對於完整的指令說明請參考 8.4.。
你可以使用 \extraheadheight 把本文區的頂端往下移。這個指令使用一個參數並將頁首往下移動相對的量。想要把頁首的高度增加四分之三英吋(也就是把本文區的高度減少四分之三英吋),你可以下這樣的指令
\extraheadheight{.75in}
要把頁首的高度減少半英吋,你可以下這樣的指令
\extraheadheight{-.5in}
\extraheadheight 這個指令提供一個可選擇的參數來設定考卷第一頁的上界高度,而有別於其他頁的高度。在 8.4. 有詳細的解釋。
至於 \extrafootheight 除了它影響的是頁尾外,其它在使用上都和 \extraheadheight 相似。

8. 頁首(header)與頁尾(footer)
接 下來要解釋用來控制頁首與頁尾的指令。這裡有些東西要解釋,而你先跳過這一節先去看 8.10.1. 到 8.10.8. 的範例也許會覺得比較簡單一點。然後你可以往前參考有關技術細節不是很清楚的部份。在這一章裡所說明的所有指令都是要放在 \documentclass 和 \begin{document} 之間。
這對於如果你要使用 coverpages 模式也是很重要的,然後這裡所敘述到的指令只會對於考卷裡的主要部份發生作用,對於封面的部份是不會發生作用的。有些指令對於封面上的頁首與頁尾,對於這部份請參看 9.1.。
\pagestyle 這個指令是用來決定這份考卷是否有頁首、頁尾、兩者都有或是兩者全無。在 8.2. 到 8.5. 有詳述關於頁首於頁尾所使用的指令。但是 \pagestyle 這個指令決定你是否會在頁面上放置頁首或是頁尾。它必須被放置在 \documentclass 與 \begin{document} 兩個指令之間。
想要同時有頁首與頁尾,你必須下這個指令
\pagestyle{headandfoot}
如果你想要每頁都有頁首,但是不要用頁尾,那指令就是
\pagestyle{head}
反之若只想要有頁尾而不要頁尾,那就是
\pagestyle{foot}
最後,如果你既不要頁首也不要頁尾,那你就要這樣子的指令
\pagestyle{empty}
在 LaTeX 的本文區裡,你可以像這樣在頁面的某處下指令來改變單一頁面的設定
\thispagestyle{somestyle}
(這裡的 somewhere 是你所想要的頁面型式)這最常出現在你使用 \maketitle 這個指令時,...@_@ dunst 不會翻 ..~>_<~

8.2. 頁首的三個部份
頁首包涵了三個部份:
* 左邊的部份
* 中間的部份
* 右邊的部份
有 二種方法可以讓你去詳細指明頁首的三個部份。第一個方法是使用 \header 這個指令去寫下頁首的三個部份,或是可以利用 \firstpageheaer 及 \runningheader 這兩個指令分別寫出第一頁與其他頁的頁首(詳情見 8.2.1.)。第二個方法是利用 \lhead、\chead、以及 \rhead 把每個部份都寫清楚(詳情見 8.2.2.)。所有的指令都應該放在 \documentclass 與 \begin{document} 之間。

8.2.1. 使用 header, firstpageheader 及 runningheader
\header{Text 1}{Text 2}{Text 3} 這個指令把 Text 1、Text 2、Text 3 分別放在頁首的左邊、中間、與右邊。如果你想要第一頁與其他頁的頁首是不同的,那你應該使用 \firstpageheader 與 \runningheader 來分別設定第一頁的頁首與其他頁的頁首,而這兩個指令的用法和 \header 是相同的。舉例來說,你可以像這樣子設定
\header{Math 115}{Second Exam}{July 4, 1776}
如 此一來每頁的頁首的左側、中間、和右側就分別被設定完成。如果你想要第一頁的頁首不同於其他頁,你應該要使用 \firstpageheader 和 \runningheader 來取代 \header。舉例來說,你如果想要如上面的頁首放在第一頁,但是自第二頁起的頁首中間要改成 "Second Exam(Continued)",那你就可以這樣子做
\firstpageheader{Math 115}{Second Exam}{July 4, 1776}
\runningheader{Math 115}{Second Exam(Continued)}{July 4, 1776}
你也可以把其中一個部份或是兩個部份留白,例如
\firstpageheader{Math 115}{Second Exam}{July 4, 1776}
\runningheader{Math 115}{}{July 4, 1776}
或者是
\firstpageheader{Math 115}{Second Exam}{July 4, 1776}
\runningheader{Math 115}{}{Second Exam(Continued)}
頁首的三個部份中,每個部份都可以放複數列。你可以利用 \\ 來換行。例如
\header{\bf\large Math 115\\Professor Hillbert}%
{}%
{\bf\large First Exam\\July 1776}

8.2.2. 使用 lhead、chead、與 rhead
\lhead{Text} 這個指令會把 "Text" 放到每一頁頁首左邊的位置,而 \lhead[Text 1]{Text 2} 則會在第一頁頁首左邊放 "Text 1" 而在其他頁的頁首左邊放 "Text 2"。\chead 與 \rhead 也是相同的狀況,只是一個是放在頁首的中間,而另一個則是放在頁首的右邊。舉例來說
\lhead{Math 115}
\chead{Second Exam}
\rhead{July 4, 1776}
要讓第一頁的頁首和其他頁不一樣,你可以像這樣子做
\lhead{Math 115}
\chead[Second Exam]{Second Exam (Continued)}
\rhead{July 4, 1776}
如此一來在頁首中間的部份,第一頁是 "Second Exam" 而其他頁則是 "Second Exam (Continued)}。另外你也可以這樣做
\lhead{Math 115}
\chead[Second Exam]{}
\rhead[July 4, 1776]{Second Exam Continued}
或者是
\lhead{\bf\large Math 115\\Professor Hilbert}
\chead{}
\rhead\bf\large First Exam\\July 4, 1776}
這樣子就能讓頁首的部份出現複數列。至於效果如何你可以自己做看看。不過如果你要在頁首使用複數列,要記得留下足夠的空間,在 8.4. 有 \extraheadheight 這個指令的說明。

8.3 頁尾的三個部份
頁 尾的部份也是由三個所組成,完整的設定就跟 header 一樣(詳情可以參照 8.2.)。你也是有兩種不同的方式可以去詳述頁尾的三個部份。就像 header 一樣,第一種是 \footer 或是 \firstpagefooter 及 \runningfooter。第二種則是 \lfoot、\cfoot、及 \rfoot。也如同 header 的狀況一樣,這些指令應該要放在 \documentclass 與 \begin{document} 之間。

8.3.1.
8.3.2.
同 header 就不多寫了

8.4. 保留足夠的空間給複數列的頁首與頁尾
頁首
如 果你在頁首的任何部份寫超過兩列,你也許會想把頁首稍稍往下移,以免它印出來的內容超過紙張的頂端。這時候你會用到 \extraheadheight 這個指令。你也可以用 \extraheadheight 個指令去調整本文區的大小。這個指令不會去更動頁首與本文區的距離。
舉例來說,要把頁首和本文區都往下移動半英吋,你要這樣子下指令
\extraheadheight{.5in}
你也可以把 extraheadheight 指定為負數,這樣子就會使頁首往上移動而更拉近頂端。舉例來說
\extraheadheight{-.25in}
上面這個指令就會讓頁首往紙張的頂端更接近四分之一英吋。
如 果你想要對於第一頁和其它頁的 \extraheadheight 給予不同的值,你可以用和 \lhead、\chead、與 \rhead 相同的語法,加上一個可選擇性的參數給第一頁的頁首,而原先所設定在必要的參數就會是其它頁的 \extraheadheight。舉例來說
\extraheadheight[.5in]{.25in}
上面的指令就會讓第一頁的頁首往下移動半英吋,而讓其它頁的頁首往下移四分之一英吋。如果你是下這樣子的指令
\extraheadheight[.5in]{}
那麼除了第一頁的頁首往下移半英吋而其它頁的頁首則不會有任何變動。就等於下面的指令一樣的效果
\extraheadheight[.5in]{0in}
不過要注意,後面那個大括號是不可以省略的。
如果你要使用 \extraheadheight 這個指令,你應該要把他放在 \documentclass 與 \begin{document} 之間。\extraheadheight 這個指令也會改變本文區的大小。

頁尾
頁尾的語法與注意事項就和頁首一樣,所以就不多寫了。

8.5. 水平線
exam 格式的文件可以很輕易的在頁首下方與頁尾上方畫出一條水平線,而要跳過第一頁不畫也是很容易的事。
* \runningheadrule 這個指令是在第一頁外的每頁頁首下方畫一條水平線
* \firstpageheadrule 是只在第一頁的頁首下方畫一條水平線
* \headrule 則是在每頁的頁首下方都畫一條水平線
* \runningfootrule 這個指令是在第一頁外的每頁頁尾上方畫一條水平線
* \firstpagefootrule 是只在第一頁的頁尾上方畫一條水平線
* \footrule 則是在每頁的頁尾上方都畫一條水平線

8.6. 在考卷上印出頁碼
exam 格式的文件定義了 \numpages 這個指令,它可以在考卷上印出頁碼。例如你如果想在頁尾印出
Page 53 of 66
你就得這樣子下指令
\lfoot{}
\cfoot{Page \thepage of \numpages}
\rhead{}
至於 \lfoot、\cfoot、與 \rfoot 的詳細說明請參照 8.3.。
在 LaTeX 裡,你使用所有交叉參考的指令時,你都必須編輯兩次 LaTeX,才能使 \numpages 的結果是正確的。

8.7. 以不同的方式處理最後一頁
如果你想要讓考卷最後一頁的頁首或是頁尾呈現不同的狀況,你應該要使用 \iflastpage 這個指令。這個指令的格式是
\iflastpage{Text 1}{Text 2}
它會把 "Text 1" 印在最後一頁,而 "Text 2" 則會出現在其它頁。例如,如果你想讓最後一頁前的每頁頁尾中間都印出
Please go on to the next page...
而最後一頁的頁尾中間則印出
End of Exam
那你就該這樣子下指令
\lfoot{}
\cfoot{\iflastpage{End of Exam}{Please go on to the next page\ldots}}
\rfoot{}
對於如何使用 \lfoot、\cfoot、與 \rfoot 請參考 8.3.。
而 \iflastpage 也是交叉參考的指令,所以有使用到它時,請記得要在 LaTeX 編輯兩次才出現正確的結果。


8.8. 以不同的方式處理奇數頁與偶數頁
如果你想要讓奇數頁與偶數頁是不同的處理方式(也許是因為你想要把他印成雙面的考卷。),你應該要使用 \oddeven 這個指令。
\oddeven 這個指令會要求兩個參數,如果目前的頁面是奇數,它會使用第一個參數,若是偶數頁,它就會使用第二個參數。
舉例來說,下面的指令會使得奇數頁的頁碼出現在頁首右邊,而偶數頁的頁碼則會出現在頁首的左邊。
\rhead{\oddeven{\thepage}{}}
\chead{}
\lhead{\oddeven{}{\thepage}}
如果你想讓偶數頁的頁尾空白,而讓奇數頁頁尾的中間區域印上 "Please continue...",而最後一頁不管它是奇數頁或是偶數頁都要空白,那你應該這樣子下指令
\lfoot{}
\cfoot{\oddeven{\iflastpage{}{Please continue\ldots}}{}}
\rfoot{}
\iflastpage 這個指令的詳細說明請參考 8.7.。
雖然 \oddeven 這個指令可以用在文件的任何地方(換句話說,不一定要放在頁首或是頁尾,但是他的確是只會被放在頁首或是頁尾。dunst ...不會翻..

8.9. 跨頁的題目
exam 格式提供像這樣的指令 \ifcontinuation、\ContinueQuestion、\ifcomplete 及 \IncompleteQuestion 來...

8.10. 一堆例子

9. 封面

沒有留言: