第一部份
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. 封面
2007年12月13日 星期四
LaTeX package - exam - part 1
第二部份
1. 簡介
簡單的說,exam 這種文件格式就是設計用來出考卷的。
3. documentclass 指令
要使用 exam 這種格式,你得在 \documentclass 做設定。舉例來說,如果你要使用 12pt 大小的字型,那你的 documentclass 指令應該是像這樣子
\documentclass[12pt]{exam}
如果你還要用上 amsmath 這個 package,那你的指令就應該是
\documentclass[12pt]{exam}
\usepackage{amsmath}
如果你在考卷上有附上解答,而你想把他在 LaTeX 裡印出來,那你還得加上 answer 這個選項,像是這樣子
\documentclass[answer]{exam}
或者是像這樣子
\documentclass[12pt,answer]{exam}
不過這是可選擇的,你也可以利用 \printanswers 這個指令來達到同樣的效果。
3. 學生的姓名
你可以利用下面的方式來印出卷首的部份,寫下注意事項以及要學生寫下姓名
\begin{center}
\fbox{\fbox{\parbox{5.5in}{\centering
Answer the questions in the spaces provided on the
question sheets. If you run out of room for an answer,
continue on the back of the page.}}}
\end{center}
\vspace{0.1in}
\hbox to \textwidth{Name and section:\enspace\hrulefill}
\vspace{0.2in}
\hbox to \textwidth{Instructor’s name:\enspace\hrulefill}
5. 題目 - questions
要開始寫考卷,你得使用 questions 模式,而每題題目前面都要加上 \question 這個指令,這樣子一來每題題目前面都會自動加上題號。舉例來說
\begin{questions}
\question
Why is there air?
\question
How much wood would a woodchuck chuck if a woodchuck could chuck wood?
\question
Compute $\displaystyle\int_0^1 x^2 \, dx$.
\end{questions}
5.1. 題目中的子題 - parts、subparts、subsubparts
如果你要在題目裡面還要有子題,那你就要在 questions 模式裡再進入 parts 模式,例如
\begin{questions}
\question
Why is there air?
\question
What if there were no air?
\begin{parts}
\part
Describe the effect on the balloon industry.
\part
Describe the effect on the aircraft industry.
\end{parts}
\question
\begin{parts}
\part
Define the universe. Give three examples.
\part
If the universe were to end, how would you know?
\end{parts}
\end{questions}
上面的例子說明了幾件事
* 子題必須放在 parts 模式下
* 如果題目一開始就進入 parts 模式,那第一題的子題會緊接在題目的題號後面
* 你可以在 \part 指今前或後加上空行,不過它們會被忽略
如果在子題下還有子題,甚至還有更下一層的子題,那你就要使用 \subparts 模式甚至是 \subsubparts 模式,那它就會如你所期望的運作。例如
\begin{questions}
\question
\begin{parts}
\part
What do you do with a drunken sailor?
\part
Is your answer different if it is before noon?
\end{parts}
\question
This is the second question.
\begin{parts}
\part
This is a part.
\part
This is also a part.
\begin{subparts}
\subpart
This is a subpart.
\subpart
This is a periscope.
\subpart
This is a pair of diving planes.
\subpart
\begin{subsubparts}
\subsubpart
This is a subsubpart.
\subsubpart
The lower surface of a diving plane?
\subsubpart
The ocean floor, perhaps?
\end{subsubparts}
\end{subparts}
\part
It’s sad to be apart.
\end{parts}
\question
\begin{parts}
\part
\begin{subparts}
\subpart
This is a subpart.
\subpart
This is another subpart.
\end{subparts}
\part
This is another part.
\end{parts}
\end{questions}
5.2. 題目的配分
每 個 \question, \part, \subpart, \subsubpart 指令都可以加上一個選項,就是題目的配分(在預設中,題目的配分會以括弧框起來,但是也可以用方括號或是方格來替代,這部份的說明要參考 5.2.2.)。而預設中,分數的位置將會放在題目或是子題一開始的位置,不過
* 使用 \pointsinmargin 這個指令可以把他放在左邊界的位置
* 使用 \pointsinrightmargin 這個指令可以把他放在右邊界的位置
* \nopointsinmargin 和 \nopointsinrightmargin 這兩個指令是相同的,都是把配分的
位置放回原本預設的位置
所以的配分都是放在題目的最前面,但是在 5.2.6. 有介紹怎麼把他放在題目的最後一行。而配分的使用方式,舉例如下
\begin{questions}
\question[20]
Why is there air?
\question
What if there were no air?
\begin{parts}
\part[10]
Describe the effect on the balloon industry.
\part[10]
Describe the effect on the aircraft industry.
\end{parts}
\end{questions}
你也可以在這個例子的第一行前面加上 \pointsinmargin 或是 \pointsinrightmargin 這行指令,你就會看到不同的結果。
使用配分時,如果你又要使用中文時,有可能因為編碼的緣故,而變成亂碼,有個應急的方式,就是在題目前加上一個 {~},把中文字和配分隔開,就可以避免亂碼。
5.2.1. 半分
在 歐分考卷的配分上會出現所謂 1/2 分的配分方式,相當於台灣常見的 0.5 分,要印出這樣子的配分,你可以利用 \half 這個指令。直接使用 \half 印出來的會像是電腦一般印出來的"分數"方式,如果你要改成像一般手寫的"分數"寫法,你要在前面加上 \usehorizontalhalf 這個指令。而此時如果又想回復回原來的方式,你可以利用 \uselantedhalf 回復。
5.2.2. 利用括弧(小括號)、方括號(中括號)、或是方框框住配分
如果你比較偏好用方括號來框住分數,而不是預設的括弧,你可以在前面加上 \bracketedpoints 這個指令。或者你也可以用 \boxedpoints 來要求 LaTeX 以方框來框住配分。下面就是一個使用 \backetedpoints 的例子。
\begin{questions}
\backetedpoints
\question[20]
Why is there air?
\question
What if there were no air?
\begin{parts}
\part[10]
Describe the effect on the balloon industry.
\part[10]
Describethe effect on the aircraft industry.
\end{parts}
\end{questions}
當然,\pointsinmargin 或 \pointsinrightmargin 也還是會發生作用的。
正如許多指令都是成對的發揮作用或是取消作用回復原始值一樣,\backetedpoints 與 \boxedpoints 也有取消作用的對應指令,分別是 \nobracketedpoints 與 \noboxedpoints。
5.2.3. 使用"point"的取代字
因為這個 exam 是外國人寫的,所以預設配分的單位是 point,為了要給不同用途的人使用,所以他也提供了改變配分單位的指令,讓你可以把 point 改成你要的字,例如台灣老師常用的"分"。相關的指令如下
* \points 這是用來印出預設的配分單位,這個單位會隨著配分而有單複數(point/points
)的改變
* \pointname{...} 改變配分的單位,例如 \pointname{分} 會把配分的單位變成"分",
以適合台灣老師的使用,而 \pointname{ \points} 會把配分單位改回預設值
* \pointpoints{單數}{複數} 這個指令功能和 \pointname 一樣,只是他有分單複數
* \marksnotpoints 相當於 \pointpoints{mark}{marks}
* \marginpointname{...} 相當於 \pointname{...} 的功能,但是只會對
\pointsinmargin 和 \pointsinrightmargin 發生作用
5.2.4. 使用 marginpointname 與加大邊界
預定的邊界並不大,所以你如果使用 marginpointname 時極有可能會超出邊界,這時候你就會需要利用 \extrawidth 來加大邊界。
dunst: 不過看起來只會縮減左邊的配分的位置
5.2.5. 題目一開始就緊接著子題時的配分方式
要 注意一件事,每行只能有一個配分而且只會印出最後的那個配分。這種事只會出現在 \question 後面緊接著 \begin{parts}、\part 後面緊接著 \begin{subparts}、\subpart 或後面緊接著 \begin{subsubparts}。這是因為像這種狀況,\question 的題和 \part 的題號會出現在同一列。舉例來說
\begin{questions}
\question[10]
\begin{parts}
\part[5]
Who put the ‘‘bop’’ in the ‘‘bop, sh-bop sh-bop’’?
\part[5]
Who put the ‘‘ram’’ in the ‘‘rama, rama ding-dong’’?
\end{parts}
\end{questions}
\question 裡的那個 10 分並不會出現,因為緊接著的那個子題 \part 裡的 5 分是後出現的,所以只會出現那個 5 分。這種狀況對於 \pointsinmargin、\pointsinrightmargin 以及 \nopointsinmargin 的設定下都一樣。但是要注意的是在 \addpoints(詳情見 5.3.) 下,總分卻是 20 分,包括 \question 的 10 分以及兩個子題 \part 的 5 分。雖然 \question 的那 10 分並沒印出來。
5.2.6.
5.2.7.
5.2.8. 當你使用 pointsinmargin 與 pointsinrightmargin 的邊界大小
* 當你使用 \pointsinmargin 時,你可以調整 \marginpointssep 來改變題號與題目左邊 界的距離,預設的距離(5 pt)。指令如下
\setlength{\marginpointssep}{5pt}
* 當你使用 \pointsinrightmargin,你可以調整 \rightpointsmargin 來改變題號左端與 紙張右邊界的距離,預設的距離是(1 cm)。指令如下
\setlength{\rightpointsmargin}{1cm}
5.2.9. 自訂題號
5.2.10.
5.3.
5.4. 利用題號引用特定的題目
其實就是在考卷上常見的"承上題",你可以使用標準的 LaTeX 指令 \label 與 \ref 來引用題目(或子題)。如下面的例子
The first question is question number~\ref{ques:first}.
Question number~\ref{ques:second} has both a good part
(part~\ref{part:good}) and a bad part (part~\ref{part:bad}).
\begin{questions}
\question
\label{ques:first}
This is the first question.
\question
\label{ques:second}
\begin{parts}
\part
\label{part:good}
This is the good part.
\part
\label{part:bad}
This is the \emph{bad} part.
\end{parts}
\question
Is there a question?
\end{questions}
不過,要記得的是,如果你有用到 \ref 及 \label,那你必須要編譯兩次你的文稿,這樣子,你的文件才會正確的指向它所引用的題號。
5.5. 題組裡的特殊結構
這裡的特殊結構就是類似插在題目與題目之間的說明,例如學測的題目中曾出現,因為某兩題是一組的,所以在前面就出現一個說明,並且安插了一個圖表,這時候的說明與圖表並不屬於那一題的內容,此時就要利用這裡的特殊結構。
這 裡有兩個指令可以用來達到我們所要的效果,分別是 \uplevel 與 \fullwidth。這兩個指令讓你設定左邊縮排的範圍。舉例來說,如果你在"子題(parts)"模式下,而你希望在下幾題子題開始前給一些引導,這 些引導的文字應該是獨立出來,和題目有同樣的縮排位置,換句話說,就是要高一"級"。你可以這樣子做
\begin{questions}
\question
Why did you come to Casablanca?
\question
\begin{parts}
\part
Why, Oh why, Oh why, Oh; why did I ever leave Ohio?
\uplevel{The following two parts should be answered in classical
Greek:}
\part
Why do birds sing?
\part
Why do fools fall in love?
\end{parts}
\end{questions}
你會發現 \uplevel{...} 裡的文字會往上跳一級,但是, 如果你不止是要跳一級,而是要直接印一列縮排是接到最左邊的說明,你就要用 \fullwidth{...}。
5.6 當考卷很大張時,為各個部份命名
也 就是說,當你的考卷的題目很多時,你會希望把他切割成幾個部份,並為他命名,讓考卷看起來不要那麼長,也讓寫考卷的人知道自己寫的是那一個部分。此時你有 兩種方法可以達到目的,一個是使用 \fullwidth{...} 和 \uplevel{...}。另一個方法是利用 \part 和 \section 這兩個指令。
5.6.1. 使用 fullwidth 及 uplevel
在考卷上放置段落的名稱,就用 \fullwidth(詳情見 5.5.) 和改變裡面字型的指令就能達到你想要的結果。例如
\begin{questions}
\question
Is there, is there balm in Gilead?
\fullwidth{\Large\bf Essay questions}
\question
Explain how the cooling of matter in the centuries following the big
bang has influenced the British parliamentary system of government.
\fullwidth{\Large\bf Laboratory questions}
\question
In the cabinet below your laboratory bench you will find a single
edged razor blade, several C-clamps, and a bottle of whiskey. Remove
your appendix. Do not suture until your work has been inspected.
\end{questions}
5.6.2. 使用標準的分段指令
5.7.
5.7.1.
5.7.2.
5.7.3.
5.8. 選擇題
有兩種模式可以用在選擇題上:
* choices 模式
* oneparchoices 模式,它會把選項都列在一個段落裡(除非你在模式一開始就留下空位,
不然他會緊連著上一個段落。)
這兩種模式都用大寫的字母(換句話說,就是"A"、"B"、"C"、...)來當做選項的代號,在 5.10. 裡有告訴你要怎麼改變它。
5.8.1. choices 模式
舉例來說
\begin{questions}
\question
One of these things is not like the others; one of these things is not
the same. Which one is different?
\begin{choices}
\choice
John
\choice
Paul
\choice
George
\choice
Ringo
\choice
Socrates
\end{choices}
\end{questions}
5.8.2. Oneparchoices 模式
將 5.8.1. 例子裡的 choices 模式改為 oneparchoices,你會發現原本每個選項佔一列的選擇題會變成所有選項都在同一列。但是要注意的是,在 \begin{oneparchoices} 前有空一行的話,選項才不會緊連著題目。
5.9.
5.9.1
5.9.2
5.9.3
5.10. 自訂題號代號與選擇題的選項代號
要改變題號的代號與選擇題的選項代號,你得要重新定義下面的指令
\thequestion
\thepartno
\thesubpart
\thesubsubpart
\thechoice
(請注意:上表上第二個指令用於 \part 的是 \thepartno 而不是 \thepart,因為 \thepart 這個指令是用於計算 \part 的計數器。)
而這些代號可以使用下列的指令
\arabic 標準的整數代號
\alph 小寫英文字母
\Alph 大寫英文字母
\roman 小寫羅馬數字
\Roman 大寫羅馬數字
\greeknum 希臘字母
這些都可以用於 question、partno、subpart、subsubpart、及 choice。(\greeknum 這個指令被定義於 exam 的文件上,而不是標準的 LaTeX 指令)
舉例來說,題號要用大寫羅馬數字,而子題要用大寫英文字母,你可以這樣下指令
\renewcommand\thequestion{\Roman{question}}
\renewcommand\thepartno{\Alph{partno}}
幫代號做修飾(例如說加上日期、用括弧括起來、或是其它)是可以用下面的指令來決定
\questionlabel
\partlabel
\subpartlabel
\subsubpartlabel
\choicelabel
他們的預設值是這樣子定義的
\newcommand\questionlabel{\thequestion.}
\newcommand\partlabel{(thepartno).}
\newcommand\subpartlabel{\thesubpart.}
\newcommand\subsubpartlabel{\thesubsubpart)}
\newcommand\choicelabel{\thechoice.}
你可以利用 \recommand 重新去定義它。例如你想把選擇題的選項代號改成 (A)、(B)、...,你可以像這樣子定義
\renewcommand\choicelabel{(\thechoice)}
1. 簡介
簡單的說,exam 這種文件格式就是設計用來出考卷的。
3. documentclass 指令
要使用 exam 這種格式,你得在 \documentclass 做設定。舉例來說,如果你要使用 12pt 大小的字型,那你的 documentclass 指令應該是像這樣子
\documentclass[12pt]{exam}
如果你還要用上 amsmath 這個 package,那你的指令就應該是
\documentclass[12pt]{exam}
\usepackage{amsmath}
如果你在考卷上有附上解答,而你想把他在 LaTeX 裡印出來,那你還得加上 answer 這個選項,像是這樣子
\documentclass[answer]{exam}
或者是像這樣子
\documentclass[12pt,answer]{exam}
不過這是可選擇的,你也可以利用 \printanswers 這個指令來達到同樣的效果。
3. 學生的姓名
你可以利用下面的方式來印出卷首的部份,寫下注意事項以及要學生寫下姓名
\begin{center}
\fbox{\fbox{\parbox{5.5in}{\centering
Answer the questions in the spaces provided on the
question sheets. If you run out of room for an answer,
continue on the back of the page.}}}
\end{center}
\vspace{0.1in}
\hbox to \textwidth{Name and section:\enspace\hrulefill}
\vspace{0.2in}
\hbox to \textwidth{Instructor’s name:\enspace\hrulefill}
5. 題目 - questions
要開始寫考卷,你得使用 questions 模式,而每題題目前面都要加上 \question 這個指令,這樣子一來每題題目前面都會自動加上題號。舉例來說
\begin{questions}
\question
Why is there air?
\question
How much wood would a woodchuck chuck if a woodchuck could chuck wood?
\question
Compute $\displaystyle\int_0^1 x^2 \, dx$.
\end{questions}
5.1. 題目中的子題 - parts、subparts、subsubparts
如果你要在題目裡面還要有子題,那你就要在 questions 模式裡再進入 parts 模式,例如
\begin{questions}
\question
Why is there air?
\question
What if there were no air?
\begin{parts}
\part
Describe the effect on the balloon industry.
\part
Describe the effect on the aircraft industry.
\end{parts}
\question
\begin{parts}
\part
Define the universe. Give three examples.
\part
If the universe were to end, how would you know?
\end{parts}
\end{questions}
上面的例子說明了幾件事
* 子題必須放在 parts 模式下
* 如果題目一開始就進入 parts 模式,那第一題的子題會緊接在題目的題號後面
* 你可以在 \part 指今前或後加上空行,不過它們會被忽略
如果在子題下還有子題,甚至還有更下一層的子題,那你就要使用 \subparts 模式甚至是 \subsubparts 模式,那它就會如你所期望的運作。例如
\begin{questions}
\question
\begin{parts}
\part
What do you do with a drunken sailor?
\part
Is your answer different if it is before noon?
\end{parts}
\question
This is the second question.
\begin{parts}
\part
This is a part.
\part
This is also a part.
\begin{subparts}
\subpart
This is a subpart.
\subpart
This is a periscope.
\subpart
This is a pair of diving planes.
\subpart
\begin{subsubparts}
\subsubpart
This is a subsubpart.
\subsubpart
The lower surface of a diving plane?
\subsubpart
The ocean floor, perhaps?
\end{subsubparts}
\end{subparts}
\part
It’s sad to be apart.
\end{parts}
\question
\begin{parts}
\part
\begin{subparts}
\subpart
This is a subpart.
\subpart
This is another subpart.
\end{subparts}
\part
This is another part.
\end{parts}
\end{questions}
5.2. 題目的配分
每 個 \question, \part, \subpart, \subsubpart 指令都可以加上一個選項,就是題目的配分(在預設中,題目的配分會以括弧框起來,但是也可以用方括號或是方格來替代,這部份的說明要參考 5.2.2.)。而預設中,分數的位置將會放在題目或是子題一開始的位置,不過
* 使用 \pointsinmargin 這個指令可以把他放在左邊界的位置
* 使用 \pointsinrightmargin 這個指令可以把他放在右邊界的位置
* \nopointsinmargin 和 \nopointsinrightmargin 這兩個指令是相同的,都是把配分的
位置放回原本預設的位置
所以的配分都是放在題目的最前面,但是在 5.2.6. 有介紹怎麼把他放在題目的最後一行。而配分的使用方式,舉例如下
\begin{questions}
\question[20]
Why is there air?
\question
What if there were no air?
\begin{parts}
\part[10]
Describe the effect on the balloon industry.
\part[10]
Describe the effect on the aircraft industry.
\end{parts}
\end{questions}
你也可以在這個例子的第一行前面加上 \pointsinmargin 或是 \pointsinrightmargin 這行指令,你就會看到不同的結果。
使用配分時,如果你又要使用中文時,有可能因為編碼的緣故,而變成亂碼,有個應急的方式,就是在題目前加上一個 {~},把中文字和配分隔開,就可以避免亂碼。
5.2.1. 半分
在 歐分考卷的配分上會出現所謂 1/2 分的配分方式,相當於台灣常見的 0.5 分,要印出這樣子的配分,你可以利用 \half 這個指令。直接使用 \half 印出來的會像是電腦一般印出來的"分數"方式,如果你要改成像一般手寫的"分數"寫法,你要在前面加上 \usehorizontalhalf 這個指令。而此時如果又想回復回原來的方式,你可以利用 \uselantedhalf 回復。
5.2.2. 利用括弧(小括號)、方括號(中括號)、或是方框框住配分
如果你比較偏好用方括號來框住分數,而不是預設的括弧,你可以在前面加上 \bracketedpoints 這個指令。或者你也可以用 \boxedpoints 來要求 LaTeX 以方框來框住配分。下面就是一個使用 \backetedpoints 的例子。
\begin{questions}
\backetedpoints
\question[20]
Why is there air?
\question
What if there were no air?
\begin{parts}
\part[10]
Describe the effect on the balloon industry.
\part[10]
Describethe effect on the aircraft industry.
\end{parts}
\end{questions}
當然,\pointsinmargin 或 \pointsinrightmargin 也還是會發生作用的。
正如許多指令都是成對的發揮作用或是取消作用回復原始值一樣,\backetedpoints 與 \boxedpoints 也有取消作用的對應指令,分別是 \nobracketedpoints 與 \noboxedpoints。
5.2.3. 使用"point"的取代字
因為這個 exam 是外國人寫的,所以預設配分的單位是 point,為了要給不同用途的人使用,所以他也提供了改變配分單位的指令,讓你可以把 point 改成你要的字,例如台灣老師常用的"分"。相關的指令如下
* \points 這是用來印出預設的配分單位,這個單位會隨著配分而有單複數(point/points
)的改變
* \pointname{...} 改變配分的單位,例如 \pointname{分} 會把配分的單位變成"分",
以適合台灣老師的使用,而 \pointname{ \points} 會把配分單位改回預設值
* \pointpoints{單數}{複數} 這個指令功能和 \pointname 一樣,只是他有分單複數
* \marksnotpoints 相當於 \pointpoints{mark}{marks}
* \marginpointname{...} 相當於 \pointname{...} 的功能,但是只會對
\pointsinmargin 和 \pointsinrightmargin 發生作用
5.2.4. 使用 marginpointname 與加大邊界
預定的邊界並不大,所以你如果使用 marginpointname 時極有可能會超出邊界,這時候你就會需要利用 \extrawidth 來加大邊界。
dunst: 不過看起來只會縮減左邊的配分的位置
5.2.5. 題目一開始就緊接著子題時的配分方式
要 注意一件事,每行只能有一個配分而且只會印出最後的那個配分。這種事只會出現在 \question 後面緊接著 \begin{parts}、\part 後面緊接著 \begin{subparts}、\subpart 或後面緊接著 \begin{subsubparts}。這是因為像這種狀況,\question 的題和 \part 的題號會出現在同一列。舉例來說
\begin{questions}
\question[10]
\begin{parts}
\part[5]
Who put the ‘‘bop’’ in the ‘‘bop, sh-bop sh-bop’’?
\part[5]
Who put the ‘‘ram’’ in the ‘‘rama, rama ding-dong’’?
\end{parts}
\end{questions}
\question 裡的那個 10 分並不會出現,因為緊接著的那個子題 \part 裡的 5 分是後出現的,所以只會出現那個 5 分。這種狀況對於 \pointsinmargin、\pointsinrightmargin 以及 \nopointsinmargin 的設定下都一樣。但是要注意的是在 \addpoints(詳情見 5.3.) 下,總分卻是 20 分,包括 \question 的 10 分以及兩個子題 \part 的 5 分。雖然 \question 的那 10 分並沒印出來。
5.2.6.
5.2.7.
5.2.8. 當你使用 pointsinmargin 與 pointsinrightmargin 的邊界大小
* 當你使用 \pointsinmargin 時,你可以調整 \marginpointssep 來改變題號與題目左邊 界的距離,預設的距離(5 pt)。指令如下
\setlength{\marginpointssep}{5pt}
* 當你使用 \pointsinrightmargin,你可以調整 \rightpointsmargin 來改變題號左端與 紙張右邊界的距離,預設的距離是(1 cm)。指令如下
\setlength{\rightpointsmargin}{1cm}
5.2.9. 自訂題號
5.2.10.
5.3.
5.4. 利用題號引用特定的題目
其實就是在考卷上常見的"承上題",你可以使用標準的 LaTeX 指令 \label 與 \ref 來引用題目(或子題)。如下面的例子
The first question is question number~\ref{ques:first}.
Question number~\ref{ques:second} has both a good part
(part~\ref{part:good}) and a bad part (part~\ref{part:bad}).
\begin{questions}
\question
\label{ques:first}
This is the first question.
\question
\label{ques:second}
\begin{parts}
\part
\label{part:good}
This is the good part.
\part
\label{part:bad}
This is the \emph{bad} part.
\end{parts}
\question
Is there a question?
\end{questions}
不過,要記得的是,如果你有用到 \ref 及 \label,那你必須要編譯兩次你的文稿,這樣子,你的文件才會正確的指向它所引用的題號。
5.5. 題組裡的特殊結構
這裡的特殊結構就是類似插在題目與題目之間的說明,例如學測的題目中曾出現,因為某兩題是一組的,所以在前面就出現一個說明,並且安插了一個圖表,這時候的說明與圖表並不屬於那一題的內容,此時就要利用這裡的特殊結構。
這 裡有兩個指令可以用來達到我們所要的效果,分別是 \uplevel 與 \fullwidth。這兩個指令讓你設定左邊縮排的範圍。舉例來說,如果你在"子題(parts)"模式下,而你希望在下幾題子題開始前給一些引導,這 些引導的文字應該是獨立出來,和題目有同樣的縮排位置,換句話說,就是要高一"級"。你可以這樣子做
\begin{questions}
\question
Why did you come to Casablanca?
\question
\begin{parts}
\part
Why, Oh why, Oh why, Oh; why did I ever leave Ohio?
\uplevel{The following two parts should be answered in classical
Greek:}
\part
Why do birds sing?
\part
Why do fools fall in love?
\end{parts}
\end{questions}
你會發現 \uplevel{...} 裡的文字會往上跳一級,但是, 如果你不止是要跳一級,而是要直接印一列縮排是接到最左邊的說明,你就要用 \fullwidth{...}。
5.6 當考卷很大張時,為各個部份命名
也 就是說,當你的考卷的題目很多時,你會希望把他切割成幾個部份,並為他命名,讓考卷看起來不要那麼長,也讓寫考卷的人知道自己寫的是那一個部分。此時你有 兩種方法可以達到目的,一個是使用 \fullwidth{...} 和 \uplevel{...}。另一個方法是利用 \part 和 \section 這兩個指令。
5.6.1. 使用 fullwidth 及 uplevel
在考卷上放置段落的名稱,就用 \fullwidth(詳情見 5.5.) 和改變裡面字型的指令就能達到你想要的結果。例如
\begin{questions}
\question
Is there, is there balm in Gilead?
\fullwidth{\Large\bf Essay questions}
\question
Explain how the cooling of matter in the centuries following the big
bang has influenced the British parliamentary system of government.
\fullwidth{\Large\bf Laboratory questions}
\question
In the cabinet below your laboratory bench you will find a single
edged razor blade, several C-clamps, and a bottle of whiskey. Remove
your appendix. Do not suture until your work has been inspected.
\end{questions}
5.6.2. 使用標準的分段指令
5.7.
5.7.1.
5.7.2.
5.7.3.
5.8. 選擇題
有兩種模式可以用在選擇題上:
* choices 模式
* oneparchoices 模式,它會把選項都列在一個段落裡(除非你在模式一開始就留下空位,
不然他會緊連著上一個段落。)
這兩種模式都用大寫的字母(換句話說,就是"A"、"B"、"C"、...)來當做選項的代號,在 5.10. 裡有告訴你要怎麼改變它。
5.8.1. choices 模式
舉例來說
\begin{questions}
\question
One of these things is not like the others; one of these things is not
the same. Which one is different?
\begin{choices}
\choice
John
\choice
Paul
\choice
George
\choice
Ringo
\choice
Socrates
\end{choices}
\end{questions}
5.8.2. Oneparchoices 模式
將 5.8.1. 例子裡的 choices 模式改為 oneparchoices,你會發現原本每個選項佔一列的選擇題會變成所有選項都在同一列。但是要注意的是,在 \begin{oneparchoices} 前有空一行的話,選項才不會緊連著題目。
5.9.
5.9.1
5.9.2
5.9.3
5.10. 自訂題號代號與選擇題的選項代號
要改變題號的代號與選擇題的選項代號,你得要重新定義下面的指令
\thequestion
\thepartno
\thesubpart
\thesubsubpart
\thechoice
(請注意:上表上第二個指令用於 \part 的是 \thepartno 而不是 \thepart,因為 \thepart 這個指令是用於計算 \part 的計數器。)
而這些代號可以使用下列的指令
\arabic 標準的整數代號
\alph 小寫英文字母
\Alph 大寫英文字母
\roman 小寫羅馬數字
\Roman 大寫羅馬數字
\greeknum 希臘字母
這些都可以用於 question、partno、subpart、subsubpart、及 choice。(\greeknum 這個指令被定義於 exam 的文件上,而不是標準的 LaTeX 指令)
舉例來說,題號要用大寫羅馬數字,而子題要用大寫英文字母,你可以這樣下指令
\renewcommand\thequestion{\Roman{question}}
\renewcommand\thepartno{\Alph{partno}}
幫代號做修飾(例如說加上日期、用括弧括起來、或是其它)是可以用下面的指令來決定
\questionlabel
\partlabel
\subpartlabel
\subsubpartlabel
\choicelabel
他們的預設值是這樣子定義的
\newcommand\questionlabel{\thequestion.}
\newcommand\partlabel{(thepartno).}
\newcommand\subpartlabel{\thesubpart.}
\newcommand\subsubpartlabel{\thesubsubpart)}
\newcommand\choicelabel{\thechoice.}
你可以利用 \recommand 重新去定義它。例如你想把選擇題的選項代號改成 (A)、(B)、...,你可以像這樣子定義
\renewcommand\choicelabel{(\thechoice)}
LaTeX package - exam - part 0
這是一個用來編寫考卷的套件, 不過由於是外國學校的編寫習慣, 所以在考卷的長相上和我們平時習慣的長相有點出入。所以我在翻譯的時候有把一些名詞做一些修正。不過大致上是和原來的說明文件相符。有些地方我覺得我真的 用不到或是我自認為翻不出來, 我就會空著, 以維持章節的完整性.
因為 udn 和 LaTeX 的 tag 有衝突, 所以就不特別去修正了
中文翻譯的第二部份
原稿可以在 google 上找 "exam.pdf" 就可以找到
另外, 我的英文不是很好, 所以在翻譯時若有翻錯, 還請不吝指教。
2007年12月9日 星期日
老師好強 vs 老師教得好簡單 --- 我選擇後者
曾有一個小故事是這樣說的:
「
有個年輕的小姐,同時受到兩位男士邀她共進晚餐。
第一位是十九世紀英國外交官暨首相格萊斯頓(W.E.Gladstone)。她和首相共進晚餐回到家後,有人問她那天晚上的約會如何?她說:“格萊斯頓是全英國最聰明的男人。”
當她跟另一位也是名聲卓著,後來亦擔任英首相的迪斯雷利(B. Disraeli)約會返家後,又有人問她同樣的問題。她想了想,回答道:“迪斯雷裏讓我覺得,我是全英國最聰明的女人。”
」
講 述這個故事的人,本意是要說明格萊斯頓是個行銷高手,而迪斯雷利則是個很棒的傾聽者。然而我想說的是老師的教學。前幾個星期,有個曾找我上家教,後來為了 要補理化所以只好去補習班補習的學生,在月考之前臨時找我救命。在上完課之後,我習慣性的關心問他,補習班的老師教得如何?他的回答居然是老師教得很棒, 可惜我聽不太懂。當下我突然覺得有些錯愕,一個教得很棒的老師,卻讓學生聽不懂?那為什麼會讓學生覺得他很厲害?
回想到這學期初,手上的 學生問的一個問題,那是難得我沒法子當場回答的授課內容。主要是學校的老師教他利用槓桿原理解三角形的比例關係。這個解題的技巧當下我知道是對的,卻找不 到如何對國中生解釋的說法,所以在一個星期的找尋後,從 bbs 上,板友的分享裡找到相關的資料,最後發現,這根本就不適合國中學生的使用。一個沒頭沒尾的解題方式,對學生來說,的確很迅速而正確,然而卻極難讓學生在 不用學習額外的內容下,學會這樣的解題方式難度太高,尤其是在學校的課程內幾乎是不太可能的事。也許學生在看到老師"輕輕鬆鬆"解決他們的難題會很崇拜, 然而這樣子對學生來說真的有幫助嗎?即便是學會如何使用的學生,又真的是了解他們自己在做什麼嗎?
自己的備課總是在想法子讓學生可以很輕鬆的聽懂,所以自己也很享受學生在上課時,赫然發現原來自己所課的難題並不難,因而表現的反應。對我來說,學生帶給我最大的享受大概是就是那句:"啊~~原來這麼簡單喔。"只是,而達到這樣子的效果,得要付出很大的努力就是了。
「
有個年輕的小姐,同時受到兩位男士邀她共進晚餐。
第一位是十九世紀英國外交官暨首相格萊斯頓(W.E.Gladstone)。她和首相共進晚餐回到家後,有人問她那天晚上的約會如何?她說:“格萊斯頓是全英國最聰明的男人。”
當她跟另一位也是名聲卓著,後來亦擔任英首相的迪斯雷利(B. Disraeli)約會返家後,又有人問她同樣的問題。她想了想,回答道:“迪斯雷裏讓我覺得,我是全英國最聰明的女人。”
」
講 述這個故事的人,本意是要說明格萊斯頓是個行銷高手,而迪斯雷利則是個很棒的傾聽者。然而我想說的是老師的教學。前幾個星期,有個曾找我上家教,後來為了 要補理化所以只好去補習班補習的學生,在月考之前臨時找我救命。在上完課之後,我習慣性的關心問他,補習班的老師教得如何?他的回答居然是老師教得很棒, 可惜我聽不太懂。當下我突然覺得有些錯愕,一個教得很棒的老師,卻讓學生聽不懂?那為什麼會讓學生覺得他很厲害?
回想到這學期初,手上的 學生問的一個問題,那是難得我沒法子當場回答的授課內容。主要是學校的老師教他利用槓桿原理解三角形的比例關係。這個解題的技巧當下我知道是對的,卻找不 到如何對國中生解釋的說法,所以在一個星期的找尋後,從 bbs 上,板友的分享裡找到相關的資料,最後發現,這根本就不適合國中學生的使用。一個沒頭沒尾的解題方式,對學生來說,的確很迅速而正確,然而卻極難讓學生在 不用學習額外的內容下,學會這樣的解題方式難度太高,尤其是在學校的課程內幾乎是不太可能的事。也許學生在看到老師"輕輕鬆鬆"解決他們的難題會很崇拜, 然而這樣子對學生來說真的有幫助嗎?即便是學會如何使用的學生,又真的是了解他們自己在做什麼嗎?
自己的備課總是在想法子讓學生可以很輕鬆的聽懂,所以自己也很享受學生在上課時,赫然發現原來自己所課的難題並不難,因而表現的反應。對我來說,學生帶給我最大的享受大概是就是那句:"啊~~原來這麼簡單喔。"只是,而達到這樣子的效果,得要付出很大的努力就是了。
訂閱:
文章 (Atom)