summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/jnuexam/jnuexam.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/jnuexam/jnuexam.tex')
-rw-r--r--macros/latex/contrib/jnuexam/jnuexam.tex154
1 files changed, 85 insertions, 69 deletions
diff --git a/macros/latex/contrib/jnuexam/jnuexam.tex b/macros/latex/contrib/jnuexam/jnuexam.tex
index 891c0663ee..e19f1416b6 100644
--- a/macros/latex/contrib/jnuexam/jnuexam.tex
+++ b/macros/latex/contrib/jnuexam/jnuexam.tex
@@ -106,12 +106,13 @@
\frametitle{试卷结构}
下面是 \verb!jnuexam! 试卷文档的基本结构:
\begin{code}
-\documentclass{jnuexam}
+\documentclass[chinese]{jnuexam}
% 导言区
\begin{document}
% 正文区
\end{document}
\end{code}
+试卷包含中文和英文两种模板,必须在文档开头指明。\par
导言区用于设定装订线和草稿纸等等选项。\par
正文区用于填写试卷表头和输入试卷内容。
\end{framex}
@@ -120,7 +121,7 @@
\frametitle{装订草稿}
在文档的导言区可以设定装订线和草稿纸。比如:
\begin{code}
-\setexam{
+\SetExamOption{
binding = 2, % 装订线
scratch = 1, % 草稿纸
}
@@ -137,17 +138,17 @@
\documentclass{jnuexam}
\begin{document}
......
-\makehead %生成试卷表头
+\examtitle{...} %生成试卷表头,见下页
......
-\makepart{填空题}{题数分值}
+\exampart{填空题}[题数分值]
......
-\makepart{单选题}{题数分值}
+\exampart{单选题}[题数分值]
......
-\makepart{计算题}{题数分值}
+\exampart{计算题}[题数分值]
......
-\makepart{证明题}{题数分值}
+\exampart{证明题}[题数分值]
......
-\makedata{可能用到的数据} %附录数据
+\examdata{可能用到的数据} %附录数据
......
\end{document}
\end{code}
@@ -156,34 +157,48 @@
\begin{framex}
\frametitle{试卷表头}
\begin{code}
-\renewcommand{\niandu}{2010--2011}
-\renewcommand{\xueqi}{2}
-\renewcommand{\kecheng}{大学数学}
-\renewcommand{\zhuanye}{理工4学分}
-\renewcommand{\jiaoshi}{某某某}
-\renewcommand{\shijian}{2011年07月08日}
-\renewcommand{\bixiu}{1} % 1为必修,0为选修
-\renewcommand{\bijuan}{1} % 1为闭卷,0为开卷
-\renewcommand{\shijuan}{A} % A/B/C卷
-\renewcommand{\neizhao}{1} % 1打勾,0不勾
-\renewcommand{\waizhao}{0} % 1打勾,0不勾
-\makehead %生成试卷表头
+\examtitle{
+ niandu = 2017--2018,
+ xueqi = 2,
+ kecheng = 大学数学,
+ zhuanye = 理工四学分, % 可以为空白
+ jiaoshi = {张三,李四}, % 教师姓名
+ shijian = 2018年6月28日,
+ bixiu = 1, % 1 为必修,0 为选修
+ bijuan = 1, % 1 为闭卷,0 为开卷
+ shijuan = A, % A 或 B 或 C 卷
+ neizhao = 1, % 1 打勾,0 不勾
+ waizhao = 0, % 1 打勾,0 不勾
+}
+\end{code}
+其中 \verb!zhuanye! 和 \verb!shijian! 选项的内容可以为空。
+\end{framex}
+
+\begin{framex}
+\frametitle{评分表格}
+在 \verb!\examtitle! 后面,可以用 \verb!\gradetable! 命令生成空白的评分表格。比如:
+\begin{code}
+\gradetable[total=6,strut=2em]
\end{code}
-其中 \verb!\zhuanye! 和 \verb!\shijian! 命令的内容可以为空。
+其中 \verb!\gradetable! 命令的各个参数含义如下:
+\begin{description}
+ \item[total] 表示试卷总共有多少部分,默认是 \verb!6!。
+ \item[strut] 表示空白单元格的支架高度,默认是 \verb!2.5em!。
+\end{description}
\end{framex}
\begin{framex}
\frametitle{判断题目}
\begin{code}
-\makepart{判断题}{题数分值}
+\exampart{判断题}[题数分值]
-\begin{problem}
+\begin{question}
第一道判断题描述。\tickout{t}
-\end{problem}
+\end{question}
-\begin{problem}
+\begin{question}
第二道判断题描述。\tickout{f}
-\end{problem}
+\end{question}
\end{code}
其中 \verb!\tickout{t}! 和 \verb!\tickout{f}!
分别表示打勾(\textcolor{blue}{$\checkmark$})和打叉(\textcolor{blue}{\large$\times$})。
@@ -196,15 +211,15 @@
\begin{framex}
\frametitle{填空题目}
\begin{code}
-\makepart{填空题}{题数分值}
+\exampart{填空题}[题数分值]
-\begin{problem}
+\begin{question}
第一道填空题描述\fillout{答案}。
-\end{problem}
+\end{question}
-\begin{problem}
+\begin{question}
第二道填空题描述\fillout{答案}。
-\end{problem}
+\end{question}
\end{code}
\verb!\fillout! 命令将用下划线填满整行。另有个 \verb!\fillin! 命令,只留下最小宽度的下划线。
\par
@@ -214,15 +229,15 @@
\begin{framex}
\frametitle{选择题目}
\begin{code}
-\makepart{单选题}{题数分值}
+\exampart{单选题}[题数分值]
-\begin{problem}
+\begin{question}
第一道单选题描述\pickout{答案}。
-\end{problem}
+\end{question}
-\begin{problem}
+\begin{question}
第二道单选题描述\pickout{答案}。
-\end{problem}
+\end{question}
\end{code}
\verb!\pickout! 命令将把选择圆括号放在本行最右边。另外有个 \verb!\pickin! 命令,将选择圆括号放在当前位置。
\par
@@ -248,31 +263,32 @@
\frametitle{答题表格}
在填空题和选择题前面,还可以用 \verb!\answertable! 命令生成空白答题栏。比如:
\begin{code}
-\answertable[3em]{6}{3}
+\answertable[total=6,column=3,strut=3em]
\end{code}
-其中 \verb!\answertable! 命令的三个参数含义如下:
-\begin{itemize}
- \item 第一个可选参数表示空白单元格的高度,默认是 \verb!1em!。
- \item 第二个必选参数表示总共有多少个题目。
- \item 第三个必选参数表示每行排版几个题目。
-\end{itemize}
+其中 \verb!\answertable! 命令的各个参数含义如下:
+\begin{description}
+ \item[total] 表示总共有多少个题目。
+ \item[column] 表示每行排版几个题目。
+ \item[strut] 表示空白单元格的高度,默认是 \verb!1em!。
+ \item[notice] 表示答题表格前面提示文本的内容。
+\end{description}
\end{framex}
\begin{framex}
\frametitle{计算题目}
\begin{code}
-\makepart{计算题}{题数分值}
+\exampart{计算题}[题数分值]
-\begin{problem}
+\begin{question}
第一道计算题描述。
-\end{problem}
+\end{question}
\begin{solution}
第一道计算题答案。
\end{solution}
-\begin{problem}
+\begin{question}
第二道计算题描述。
-\end{problem}
+\end{question}
\begin{solution}
第二道计算题答案。
\end{solution}
@@ -282,18 +298,18 @@
\begin{framex}
\frametitle{证明题目}
\begin{code}
-\makepart{证明题}{题数分值}
+\exampart{证明题}[题数分值]
-\begin{problem}
+\begin{question}
第一道证明题描述。
-\end{problem}
+\end{question}
\begin{solution}
第一道证明题答案。
\end{solution}
-\begin{problem}
+\begin{question}
第二道证明题描述。
-\end{problem}
+\end{question}
\begin{solution}
第二道证明题答案。
\end{solution}
@@ -302,10 +318,10 @@
\begin{framex}
\frametitle{解答名称}
-通过重新定义 \verb!\solutionname! 命令,可以改变 \verb!solution! 环境的名称。
-比如下面例子将“解答”二字改为“证明”:
+通过重定义关键词的翻译,可以改变 \verb!solution! 环境的显示名称。
+比如下面例子将“解”改为“证”:
\begin{code}
-\renewcommand{\solutionname}{证明}
+\SetExamTranslation{solution-Solution = 证}
\end{code}
\end{framex}
@@ -360,15 +376,15 @@ $2+2=4$ \points{8}
\frametitle{其它题型}
除了上述四种题型之外,其它题型可以用下面方式编写:
\begin{code}
-\makepart{某题型}{题数分值}
+\exampart{某题型}[题数分值]
-\begin{problem}
+\begin{question}
第一题描述。\answer{第一题答案}
-\end{problem}
+\end{question}
-\begin{problem}
+\begin{question}
第二题描述。\answer{第二题答案}
-\end{problem}
+\end{question}
\end{code}
其中题目答案必须放在 \verb!\answer! 命令里面;这样才能在生成空白试卷时隐藏它。
\end{framex}
@@ -377,17 +393,17 @@ $2+2=4$ \points{8}
\frametitle{附录数据}
在试卷最后,可以用下面命令增加附录数据部分:
\begin{code}
-\makedata{可能用到的数据} %附录数据
+\examdata{可能用到的数据} %附录数据
......
\end{code}
-附录数据必须放在 \verb!\makedata! 命令后面;否则在从A卷生成B卷时会出问题。
+附录数据必须放在 \verb!\examdata! 命令后面;否则在从A卷生成B卷时会出问题。
\end{framex}
\section{模板选项}
\begin{framex}
\frametitle{空白试卷}
-假设 \verb!exam-a-answer.tex! 是含答案的试卷。新建一个包含以下内容的 \verb!exam-a-empty.tex! 文档,
+假设 \verb!exam-a-answer.tex! 是含答案的试卷。新建一个包含以下内容的 \verb!exam-a-blank.tex! 文档,
编译后将得到不含答案的空白试卷。
\begin{code}
\PassOptionsToClass{noanswer}{jnuexam}
@@ -431,26 +447,26 @@ $2+2=4$ \points{8}
\begin{framex}
\frametitle{双栏试卷}
-假设 \verb!exam-a-empty.tex! 是原来试卷的 TeX 文件。新建一个包含以下内容的文档,
+假设 \verb!exam-a-blank.tex! 是原来试卷的 TeX 文件。新建一个包含以下内容的文档,
编译后将得到的 A3 纸张的试卷。
\begin{code}
\PassOptionsToClass{a3paper}{jnuexam}
-\input{exam-a-empty}
+\input{exam-a-blank}
\end{code}
也就是说,给 \verb!jnuexam! 文档类加上 \verb!a3paper! 选项后,编译时将会按照 A3 纸张排版出双栏试卷。
\end{framex}
\begin{framex}
\frametitle{双栏试卷}
-假设 \verb!exam-a-empty.pdf! 是原来试卷的 PDF 文件。新建一个包含以下内容的文档,
+假设 \verb!exam-a-blank.pdf! 是原来试卷的 PDF 文件。新建一个包含以下内容的文档,
编译后将得到的 A3 纸张的试卷。
\begin{code}
\documentclass[a3input]{jnuexam}
\begin{document}
-\includepdf[pages=-,nup=2x1]{exam-a-empty}
+\includepdf[pages=-,nup=2x1]{exam-a-blank}
\end{document}
\end{code}
-%\includepdf[pages=-,nup=2x1,offset=0 0,delta=0 0]{exam-a-empty}
+%\includepdf[pages=-,nup=2x1,offset=0 0,delta=0 0]{exam-a-blank}
这种用法直接读入 A4 试卷的 PDF 文件,生成双栏的 A3 试卷,适合没有 TeX 文件时使用。
\end{framex}