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.tex107
1 files changed, 85 insertions, 22 deletions
diff --git a/macros/latex/contrib/jnuexam/jnuexam.tex b/macros/latex/contrib/jnuexam/jnuexam.tex
index f41fb784f6..bfc98e0834 100644
--- a/macros/latex/contrib/jnuexam/jnuexam.tex
+++ b/macros/latex/contrib/jnuexam/jnuexam.tex
@@ -5,9 +5,7 @@
\usepackage[UTF8,noindent]{ctex}
\usepackage{arev}
-\usepackage{ragged2e}
-\usepackage{listings}
-\usepackage{tabu}
+\usefonttheme{professionalfonts}
\makeatletter
@@ -28,39 +26,45 @@
\setlength{\parskip}{7pt plus 1pt minus 1pt}
-\justifying
-\let\oldraggedright\raggedright
-\let\raggedright\justifying
-
-\lstset{
- basicstyle=\ttfamily\color{blue!50!red}
-}
-
-\lstnewenvironment{code}{}{}
-
\setbeamersize{text margin left=8mm,text margin right=8mm}
-\newenvironment{framex}{\begin{frame}[fragile=singleslide,environment=framex]}{\end{frame}}
+\setbeamercolor{normal text}{bg=gray!20}
\setbeamertemplate{frametitle}{\strut\insertframetitle\strut\par}
\setbeamertemplate{navigation symbols}{}
+\newcommand{\cdotfill}{\leavevmode\xleaders\hbox to 0.5em{\hss$\cdot$\hss}\hfill\kern0pt\relax}
+
+\usepackage{tabularx}
+
\newcommand{\ulinefill}[1]{\xleaders\hbox{\underline{\vphantom{#1}\kern1pt}}\hfill\kern0pt}
\newcommand{\fillbox}[1]{\ulinefill{#1}\underline{#1}\ulinefill{#1}}
-\setbeamercolor{normal text}{bg=gray!20}
-
\setbeamertemplate{title page}{%
\renewcommand{\arraystretch}{2}%
\usebeamerfont{title}
- \begin{tabu}{|X|}
+ \begin{tabularx}{\linewidth}{|X|}
\hline
模板名称:\fillbox{\usebeamercolor[fg]{title}\inserttitle} \\
模板作者:\fillbox{\insertauthor} \\
所在单位:\fillbox{\insertinstitute} \\
更新日期:\fillbox{\the\year}年\fillbox{\the\month}月\fillbox{\the\day}日\\
\hline
- \end{tabu}%
+ \end{tabularx}%
+}
+
+\usepackage{ragged2e}
+
+\justifying
+\let\oldraggedright\raggedright
+\let\raggedright\justifying
+
+\usepackage{fancyvrb}
+
+\newenvironment{framex}{\begin{frame}[fragile=singleslide,environment=framex]}{\end{frame}}
+
+\DefineVerbatimEnvironment{code}{Verbatim}{%
+ formatcom=\color{blue!50!red}%
}
\begin{document}
@@ -136,6 +140,22 @@
\end{framex}
\begin{framex}
+\frametitle{判断题目}
+\begin{code}
+\makepart{判断题}{题数分值}
+
+\begin{problem}
+第一道判断题描述。\true
+\end{problem}
+
+\begin{problem}
+第二道判断题描述。\false
+\end{problem}
+\end{code}
+其中 \verb!\true! 和 \verb!\false! 命令分别表示正确和错误。
+\end{framex}
+
+\begin{framex}
\frametitle{填空题目}
\begin{code}
\makepart{填空题}{题数分值}
@@ -243,6 +263,15 @@
\end{framex}
\begin{framex}
+\frametitle{解答名称}
+通过重新定义 \verb!\solutionname! 命令,可以改变 \verb!solution! 环境的名称。
+比如下面例子将“解答”二字改为“证明”:
+\begin{code}
+\renewcommand{\solutionname}{证明}
+\end{code}
+\end{framex}
+
+\begin{framex}
\frametitle{评分命令}
计算题和证明题等主观题的排版方法是完全一样的。在编写这些主观题的解答时,
可以用 \verb!\score! 命令给出各步骤得分。比如:
@@ -256,6 +285,40 @@ $2+2=4$ \score{8}
\end{framex}
\begin{framex}
+\frametitle{对齐命令}
+此文档类提供几个对齐命令,用于在不同行之间对齐。比如
+\vskip1em\hrule
+我们有$(a+b)^2 = (a+b)(a+b)$ \par
+\leavevmode\phantom{我们有$(a+b)^2$}${}= a^2 + 2ab + b^2$ \cdotfill 2分
+\vskip0.6em\hrule\vskip1em
+\begin{code}
+我们有$(a+b)^2 \? = (a+b)(a+b)$ \\
+ \+$= a^2+2ab+b^2$ \score{2}
+\end{code}
+第一个公式内部的 \verb!\?! 保存当前水平位置,
+而第二个公式前面的 \verb!\+! 表示跳到之前保存的位置。
+\par
+这两个对齐命令 \verb!\?! 和 \verb!\+! 需要编译两次才能生效。
+\end{framex}
+
+\begin{framex}
+\frametitle{对齐命令}
+此文档类提供几个对齐命令,用于在不同行的对齐。比如
+\vskip1em\hrule
+我们有$(a+b)^2 = (a+b)(a+b)$ \par
+\leavevmode\phantom{我们\,}${}= a^2 + 2ab + b^2$ \cdotfill 2分
+\vskip0.6em\hrule\vskip1em
+\begin{code}
+我们有 \? $(a+b)^2 = (a+b)(a+b)$ \\
+ \< $= a^2+2ab+b^2$ \score{2}
+\end{code}
+第一行公式前面的 \verb!\?! 保存当前水平位置,
+而第二行公式前面的 \verb!\<! 表示跳到之前保存位置的左侧(左移一个等号的宽度)。
+\par
+这两个对齐命令 \verb!\?! 和 \verb!\<! 需要编译两次才能生效。
+\end{framex}
+
+\begin{framex}
\frametitle{其它题型}
除了上述四种题型之外,其它题型可以用下面方式编写:
\begin{code}
@@ -308,7 +371,7 @@ $2+2=4$ \score{8}
\frametitle{竖直空白}
在试卷的各个小题后面,可以留下一些竖直空白。本文档类支持下列这些竖直空白命令:\par
\renewcommand{\arraystretch}{1.3}%
-\begin{tabu}{XX}
+\begin{tabularx}{\linewidth}{l<{\qquad}X}
\hline
\texttt{\string\smallskip} & 竖直小空白 \\
\hline
@@ -318,7 +381,7 @@ $2+2=4$ \score{8}
\hline
\texttt{\string\vfill} & 竖直填充 \\
\hline
-\end{tabu}
+\end{tabularx}\par
当然,竖直空白命令可以连续使用多个,以得到所需的空白。
\end{framex}
@@ -329,7 +392,7 @@ $2+2=4$ \score{8}
分别只对 A 卷和 B 卷有效。
\par
\renewcommand{\arraystretch}{1.3}%
-\begin{tabu}{XX[2]}
+\begin{tabularx}{\linewidth}{l<{\qquad}X}
\hline
\texttt{\string\newpage} & 分页,对A卷和B卷均有效 \\
\hline
@@ -337,7 +400,7 @@ $2+2=4$ \score{8}
\hline
\texttt{\string\newpageb} & 分页,仅对B卷有效 \\
\hline
-\end{tabu}
+\end{tabularx}\par
在试卷中\alert{不要}使用其他分页命令,比如 \verb!\clearpage! 等。
\end{framex}