放假有了一點點時間,試驗了一下LaTeX弄一套自己使用的練習(xí)題集?!狶aTeX常規(guī)使用是很容易的,但是我并不是太熟悉它的定制。
題集的要求:
1、純文本格式。這是未來用于搜索關(guān)鍵詞時,可以搜索到文件內(nèi)部去,doc或docx格式顯然不能滿足這個條件。設(shè)想有一天,我們要搜索一批題目,都是研究“汽車”的,那我們就可以探索文件內(nèi)容,符合條件的,都檢索出來。
2、使用LaTeX里面最最最簡單的功能,不能隨便定制。因為那會使移植性變差,例如使用minipage,當(dāng)頁面尺寸變化時,很容易出問題,例如圖文混排,只使用簡單的居中對齊。
3、題目的序號和答案的序號會自動計算。這是LaTeX最容易實現(xiàn)的。因為我們使用的練習(xí),會經(jīng)常根據(jù)實際教學(xué)情況和新的發(fā)現(xiàn)而調(diào)整次序,序號的自動計算就顯得重要。
4、教師版和解答版簡便的切換。
LaTeX里面的實現(xiàn):
LaTeX里面定義了兩個變量,兩個命令,試驗了4個小節(jié),用起來很方便。好像有專門這方面的宏包,不過很多LaTeX文章其實不大建議使用過多的外來package。
最終的效果:
其實本質(zhì)上就是弄了兩個“開關(guān)”來“控制”三件事,一份文稿可以根據(jù)三種需求生成三種內(nèi)容和樣式,而編輯的時候,只是舒服的一份。
⑴教師版和解答版同時出現(xiàn)——
揭開“真相”,LaTeX里面蠢蠢的片斷:
\newif\iftec\tecfalse
%定義教師,\tectrue生成題目,\tecfalse不生成題目
\newif\ifstu\stutrue
%定義學(xué)生,\stutrue生成答案,\tecfalse不生成答案
%定義題號,用\xt{題目}\par\da{答案}表示一個“單位”題
\newcounter{tihao}
\setcounter{tihao}{0}
%以下定義題號,每次使用,自動編排題序
\newcommand{\xt}[1]{
\iftec
\stepcounter{tihao}
{\CJKfamily{hei} 題\thesection .\thetihao} \hspace{1em}#1
\fi
}
%以下定義答案,每次使用,自動編排題序
\newcommand{\da}[1]{
\ifstu
\stepcounter{tihao}
題\thesection .\thetihao \hspace{1em}#1
\fi
}
%以上結(jié)構(gòu)用于最終生成文稿
%定義一個只用于編寫的command,在生成打印文稿時,注釋掉即可。
%此命令只用于同時生成題目和題目本身的答案時,即呈示答案,但不增加題序
%正常來說,沒人這么用吧?
%\renewcommand{\da}[1]{\ifstu 答案:#1\fi}
這應(yīng)該是一個很大的工程吧?