From e00599b235e942382cf3b0f9abcac06a348ade45 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 1 Aug 2011 23:06:37 +0000 Subject: new latex package bhcexam (1aug11) git-svn-id: svn://tug.org/texlive/trunk@23304 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/latex/bhcexam/BHCexam.dtx | 908 +++++++++++++++++++++ 1 file changed, 908 insertions(+) create mode 100644 Master/texmf-dist/source/latex/bhcexam/BHCexam.dtx (limited to 'Master/texmf-dist/source/latex/bhcexam/BHCexam.dtx') diff --git a/Master/texmf-dist/source/latex/bhcexam/BHCexam.dtx b/Master/texmf-dist/source/latex/bhcexam/BHCexam.dtx new file mode 100644 index 00000000000..dd3233e8bc9 --- /dev/null +++ b/Master/texmf-dist/source/latex/bhcexam/BHCexam.dtx @@ -0,0 +1,908 @@ +% \iffalse meta-comment +% +% Copyright (C) 2011 by Charles Bao +% +% This file is part of the BHCexam package project. +% --------------------------------------------------- +% +% It may be distributed under the conditions of the LaTeX Project Public +% License, either version 1.2 of this license or (at your option) any +% later version. The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.2 or later is part of all distributions of LaTeX +% version 1999/12/01 or later. +% +%<*!(cfg|fd)> +% \fi +% +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +% +% \CheckSum{0} +% +% \iffalse meta-comment +% +% +%<*driver> +\ProvidesFile{BHCexam.dtx} +% +% +%\NeedsTeXFormat{LaTeX2e}[1995/12/01] +%\ProvidesClass{BHCexam} +%\ProvidesFile{BHCexam.cfg} + [2011/07/27 v0.2 BHCexam +% document class] +% configuration file] +% +%<*driver> + bundle source file] +% +% +%<*driver> +\documentclass[a4paper]{ltxdoc} +\usepackage{ctex} +\usepackage{hyperref} +\usepackage{amsmath,amssymb} + \topmargin 0.5 true cm + \oddsidemargin 1 true cm + \evensidemargin 1 true cm + \textheight 21 true cm + \textwidth 14 true cm +\EnableCrossrefs + %\DisableCrossrefs % Say \DisableCrossrefs if index is ready +\CodelineIndex +\RecordChanges % Gather update information + %\OnlyDescription % comment out for implementation details + %\OldMakeindex % use if your MakeIndex is pre-v2.9 +\hypersetup{colorlinks,linkcolor=blue,citecolor=blue} +\begin{document} + \DocInput{BHCexam.dtx} +\end{document} +% +% +% \fi +% +% +% \changes{v0.0}{2011/07/22}{Initial version} +% \changes{v0.1}{2011/07/23}{version 0.1} +% \changes{v0.2}{2011/07/27}{version 0.2} +% +% +% \DoNotIndex{\begin,\end,\begingroup,\endgroup} +% \DoNotIndex{\ifx,\ifdim,\ifnum,\ifcase,\else,\or,\fi} +% \DoNotIndex{\let,\def,\xdef,\newcommand,\renewcommand} +% \DoNotIndex{\expandafter,\csname,\endcsname,\relax,\protect} +% \DoNotIndex{\Huge,\huge,\LARGE,\Large,\large,\normalsize} +% \DoNotIndex{\small,\footnotesize,\scriptsize,\tiny} +% \DoNotIndex{\normalfont,\bfseries,\slshape,\interlinepenalty} +% \DoNotIndex{\hfil,\par,\vskip,\vspace,\quad} +% \DoNotIndex{\centering,\raggedright} +% \DoNotIndex{\c@secnumdepth,\@startsection,\@setfontsize} +% \DoNotIndex{\ ,\@plus,\@minus,\p@,\z@,\@m,\@M,\@ne,\m@ne} +% \DoNotIndex{\@@par} +% +% +% \GetFileInfo{BHCexam.dtx} +% +% +% \MakeShortVerb{\|} +% \setcounter{StandardModuleDepth}{1} +% +% +% \newcommand{\ctex}{\texttt{ctex}} +% \newcommand{\BHCexam}{\texttt{BHCexam}} +% \newcommand{\exam}{\texttt{exam}} +% \newcommand{\colin}{\texttt{colinexam}} +% +% +% \setlength{\parskip}{0.75ex plus .2ex minus .5ex} +% \renewcommand{\baselinestretch}{1.2} +% +% \newcommand{\rc}{\text{C}} +% \newcommand{\ri}{\text{i}} +% \newcommand{\ra}{\text{A}} +% \newcommand{\rd}{\text{d}} +% \renewcommand\m{\ensuremath{\text{m}}} +% \newcommand\tian{\ensuremath{\text{d}}} +% \newcommand\A{\ensuremath{\text{A}}} +% \newcommand\g{\ensuremath{\text{g}}} +% \newcommand\kg{\ensuremath{\text{kg}}} +% \newcommand\degree{\ensuremath{^\circ}} +% \newcommand\ssd{\ensuremath{\text{\textcelsius}}} +% \newcommand\rad{\ensuremath{\text{rad}}} +% \newcommand\N{\ensuremath{\text{N}}} +% \newcommand\Pa{\ensuremath{\text{Pa}}} +% \newcommand\J{\ensuremath{\text{J}}} +% \newcommand\W{\ensuremath{\text{W}}} +% \newcommand\ohm{\ensuremath{\Omega}} +% \newcommand\mol{\ensuremath{\text{mol}}} +% \newcommand\K{\ensuremath{\text{K}}} +% \newcommand\h{\ensuremath{\text{h}}} +% \newcommand\ton{\ensuremath{\text{t}}} +% \newcommand\squarem{\ensuremath{\text{m$^2$}}} +% \newcommand\cubicm{\ensuremath{\text{m$^3$}}} +% \newcommand\cm{\ensuremath{\text{cm}}} +% \newcommand\mm{\ensuremath{\text{mm}}} +% \newcommand\squarecm{\ensuremath{\text{cm$^2$}}} +% \newcommand\cubiccm{\ensuremath{\text{cm$^3$}}} +% \newcommand\squaremm{\ensuremath{\text{mm$^2$}}} +% \newcommand\cubicmm{\ensuremath{\text{mm$^3$}}} +% \newcommand\liter{\ensuremath{\text{L}}} +% \newcommand{\abs}[1]{\left|#1\right|} +% \newcommand\arccot{\mathop{\text{arccot}}} +% +% \makeatletter +% \def\parg#1{\mbox{$\langle${\it #1\/}$\rangle$}} +% \def\@smarg#1{{\tt\string{}\parg{#1}{\tt\string}}} +% \def\@marg#1{{\tt\string{}{\rm #1}{\tt\string}}} +% \def\marg{\@ifstar\@smarg\@marg} +% \def\@soarg#1{{\tt[}\parg{#1}{\tt]}} +% \def\@oarg#1{{\tt[}{\rm #1}{\tt]}} +% \def\oarg{\@ifstar\@soarg\@oarg} +% \makeatother +% +% +% \title{\bf \BHCexam~宏包说明\thanks +% {这是鲍宏昌发布的第一个~\LaTeX~宏包。本文件版本号为~\fileversion{},最后修改日期~\filedate{}。}} +% \author{\it 鲍宏昌\thanks{charley792@gmail.com}} +% \date{\small 打印日期:~\today} +% \maketitle +% +% \begin{abstract} +% \BHCexam~宏包提供了一个中学教学设计的~\LaTeX{}~文档类。 +% +% \BHCexam~主要文件包括~\texttt{BHCexam.cls}~文档类和配置文件 +% ~\texttt{BHCexam.cfg}。 +% +% \BHCexam~宏包由鲍宏昌制作并负责维护。 +% \end{abstract} +% +% \tableofcontents +% \newpage +% +% \section{简介} +% +% 本宏包以~\exam~为底层文档类,部分源代码来自于盖鹤麟开发的 +% ~\colin。不知道什么原因盖鹤麟自2004年就一直没有发布更新, +% ~\colin~仍然使用CCT实现中文支持,而缺乏对~XeTeX~的支持。2011年7月, +% 鲍宏昌在~\colin~的基础上改用~\ctex~实现中文支持,采用UTF8编码同时 +% 支持~XeLaTeX~和~pdfTeX~进行编译,并使用~\texttt{doc}~和 +% ~\texttt{docstrip}~工具编写了这个文档,增加了一些新的功能, +% 并把新的宏包命名为~\BHCexam。 +% +% 本宏包延续了~\colin~和~\exam~的特点,能让一个刚刚接触 +% ~\LaTeX~的初学者,也能轻松用它来排版试卷。希望~\BHCexam~能提高中学 +% 教师的工作效率,并把注意力放在试卷的内容上。 +% +% \BHCexam~由两个主要文件构成:文档类~\texttt{BHCexam.cls}~和配置文件 +% ~\texttt{BHCexam.cfg}~。后者定义了一些常用的参数。 +% +% {\kaishu +% 这两个文件可以通过用~XeLaTeX~编译~\texttt{BHCexam.ins}~文件来得到, +% 而这份说明文档可以通过用~XeLaTeX~编译~\texttt{BHCexam.dtx}~文件来得到。 +% 编译说明文档需要~\ctex{}~宏包,为了生成正确的索引和版本记录, +% 需要使用如下命令} +% \begin{verbatim} +% makeindex -s gind.ist -o BHCexam.ind BHCexam.idx +% makeindex -s gglo.ist -o BHCexam.gls BHCexam.glo +% \end{verbatim} +% +% \section{一个简单的例子} +% +% 用~\BHCexam~要排版一张基本的试卷其实很简单。如果你准备对试卷的排版进行 +% 更细致的设置,那么请参考~\exam~的文档。 +% +% \subsection{\texttt{documentclass} 命令} +% \label{sec:BasicDocumentclass} +% +% 要使用~\BHCexam~文档类,你的\verb"\documentclass" 命令应该是 +% \begin{verbatim} +% \documentclass{BHCexam} +% \end{verbatim} +% 如果,你想使用小四字体作为缺省字体大小,那么添加选项\verb"cs4size" +% \begin{verbatim} +% \documentclass[cs4size]{BHCexam} +% \end{verbatim} +% 更多的选项,请参考\ref{sec:Options}。 +% +% \subsection{打印标题和考试须知} +% \DescribeMacro{\maketitle} +% \DescribeMacro{\notice} +% 在试卷上打印标题和考试须知 +% \begin{verbatim} +% \maketitle +% \notice +% \end{verbatim} +% 关于标题和考试须知中变量的设置,请参考\ref{sec:Variable}。 +% +% \subsection{题目} +% \label{sec:Example} +% \DescribeMacro{\question} +% \DescribeMacro{\choice} +% \DescribeMacro{\part} +% \DescribeMacro{\tiankong} +% \DescribeMacro{\xuanze} +% \DescribeMacro{\jianda} +% 在\verb"questions"环境中用\verb"\question"输入题目。 +% 在\verb"choices"环境中用\verb"\choice"输入选项。 +% 在\verb"parts"环境中用\verb"\part"输入小问。 +% 在\verb"questions"环境中用\verb"\tiankong"、\verb"\xuanze" +% 和\verb"\jianda"分别显示填空题、选择题、简答题的提示语。 +% \begin{verbatim} +% \begin{questions} +% \tiankong +% \question 这是第1道填空题 +% \question 这是第2道填空题 +% \xuanze +% \question 问题3是一道选择题 +% \begin{choices} +% \choice 选项1 +% \choice 选项2 +% \choice 选项3 +% \choice 选项4 +% \begin{choices} +% \jianda +% \question 问题4是一道简答题 +% \begin{parts} +% \part 第1小问 +% \part 第2小问 +% \end{parts} +% \end{questions} +% \end{verbatim} +% 关于填空题、选择题、简答题的提示语中几个变量的设置,请参考\ref{sec:Variable}。 +% 关于题目的更多内容,请参考\ref{sec:Environment}。 +% +% \section{使用帮助} +% +% \subsection{选项} +% \label{sec:Options} +% +% \changes{v0.2}{2011/07/27}{增加UTF8选项以支持pdflatex} +% +% 宏包的选项用于改变一些缺省的设置。虽然缺省的设置基本能过满足一般用户的 +% 使用需要,但用户也可以根据自己的情况,使用这些选项。 +% +% \begin{description} +% \item[cs4size] 使用小四字号为缺省字体大小。 +% \item[c5size] 使用五号字为缺省字体大小(缺省选项)。 +% \item[answers] 在每一个问题后附上答案。 +% \item[marginline] 放置装订线。 +% \item[16kpaper] 使用16开纸张(缺省使用A4纸张)。 +% \item[noindent] 没有缩进。 +% \item[printbox] 显示评分框。 +% \item[UTF8] 用pdflatex编译时需要。 +% \end{description} +% +% \subsection{变量} +% \label{sec:Variable} +% \changes{v0.2}{2011/07/27}{试卷中改用英文标点符号} +% 本宏包在题量和分值等方面均以高考试卷为模板, +% 默认的变量值可以在\texttt{BHCexam.cfg}中设置,当然 +% 你也可以在使用相关命令之前使用以下命令进行更改。\\\\ +% \DescribeMacro{\biaoti} +% 设置标题信息。 +% \begin{quote} +% |\biaoti|\marg*{TEXT} +% \end{quote} +% \DescribeMacro{\kemu} +% 设置科目信息,他会显示在标题下方和页脚内。 +% \begin{quote} +% |\kemu|\marg*{TEXT} +% \end{quote} +% \DescribeMacro{\xinxi} +% 设置总分和考试时间信息,\parg{num1}为总分,\parg{num2}为考试时间。 +% \begin{quote} +% |\xinxi|\marg*{num1}\marg*{num2} +% \end{quote} +% \DescribeMacro{\settk} +% 设置填空题的总分、题量和小分信息,\parg{num1}为总分,\parg{num2}为题量, +% \parg{num3}为小分。 +% \begin{quote} +% |\settk|\marg*{num1}\marg*{num2}\marg*{num3} +% \end{quote} +% \DescribeMacro{\setxz} +% 设置选择题的总分、题量和小分信息,\parg{num1}为总分,\parg{num2}为题量, +% \parg{num3}为小分。 +% \begin{quote} +% |\setxz|\marg*{num1}\marg*{num2}\marg*{num3} +% \end{quote} +% \DescribeMacro{\setjd} +% 设置简答题的总分、题量和小分信息,\parg{num1}为总分,\parg{num2}为题量。 +% \begin{quote} +% |\setjd|\marg*{num1}\marg*{num2}\marg*{num3} +% \end{quote} + +% \subsection{环境} +% \label{sec:Environment} +% 经常使用的环境有\verb"questions"环境、\verb"choices"环境、\verb"parts"环境, +% 关于它们的简单介绍,请参考\ref{sec:Example},这里做一点补充说明, +% 更详细的介绍,请参考~\exam~文档。\\\\ +% 在排版简答题时需要用\verb"\part"命令输入各小问的分值,宏包会自动算出总分并显示在该简答题的第一行。 +% 当该道简答题没有小问时,则要用\verb"\question"命令输入该问题的分值。 +% +% \begin{verbatim} +% ... +% \jianda +% \question 这是一道简答题 +% \begin{parts}[ +% \part[3] 第1小问3分。 +% \part[3] 第2小问3分。 +% \part[3] 第3小问4分。 +% \end{parts} +% \question[12] 这是一道没有小问的简答题,这道题有12分 +% ... +% \end{verbatim} +% 在\verb"\question"后新建\verb"solution"环境,在其中输入该问题的解答, +% 在不显示答案的情况下,该问题后会预留答题空间。 +% \begin{verbatim} +% ... +% \jianda +% \question 这是一道简答题 +% \begin{solution} +% 这是解答,不显示答案的情况下则这个问题后预留答题空间。 +% \end{solution} +% ... +% \end{verbatim} +% +% \subsection{常用命令} +% +% \DescribeMacro{\newpage} +% 每道问题的间距是弹性设置的,你只要在想换页的地方输入\verb"\newpage"命令, +% 则上一页的各问题间距会自动调整到最美观的效果。\\ +% \DescribeMacro{\mininotice} +% 在一行内输出精简的考试注意事项。\\ +% \DescribeMacro{\printmalol} +% 在当前页为正面时,在左边插入装订线(仅在使用marginline选项时有效)。\\ +% \DescribeMacro{\printmalol} +% 在当前页为反面时,在左边插入装订线(仅在使用marginline选项时有效)。\\ + +% \subsection{数学符号} +% \begin{tabular}{ll} +% \hline +% \verb"\oneb" & 生成一条很小的供排版填空题空格用的横线\\\hline +% \verb"\twob" & 生成一条长一些的供排版填空题空格用的横线\\\hline +% \verb"\fourb" & 生成一长更长的供排版填空题空格用的横线\\\hline +% \verb"\sixb" & 生成一长较长的供排版填空题空格用的横线\\\hline +% \verb"\tenb" & 生成一条很长的供排版填空题空格用的横线\\\hline +% \verb"\rc" & 在数学模式下输入正体的~C(组合数符号)\\\hline +% \verb"\ra" & 在数学模式下输入正体的~A(排列数符号)\\\hline +% \verb"\ri" & 在数学模式下输入正体的~i(虚数单位)\\\hline +% \verb"\abs{...}" & 用以输入绝对值\\\hline +% \verb"\arccot" & 在数学模式下输入$\arccot$\\\hline +% \verb"\m" & 在文本模式和数学模式下均可使用,生成单位符号~\m\\\hline +% \verb"\W" & 在文本模式攻数学模式下均可使用,生成单位符号~\W\\\hline +% \verb"\A" & 在文本模式和数学模式下均可使用,生成单位符号~\A\\ \hline +% \verb"\g" & 在文本模式和数学模式下均可使用,生成单位符号~\g\\ \hline +% \verb"\kg" & 在文本模式和数学模式下均可使用,生成单位符号~\kg\\ \hline +% \verb"\degree" & 在文本模式和数学模式下均可使用,生成单位符号~\degree\\\hline +% \verb"\ssd" & 在文本模式和数学模式下均可使用,生成单位符号~\ssd\\\hline +% \verb"\rad" & 在文本模式和数学模式下均可使用,生成单位符号~\rad\\\hline +% \verb"\N" & 在文本模式和数学模式下均可使用,生成单位符号~\N\\\hline +% \verb"\Pa" & 在文本模式和数学模式下均可使用,生成单位符号~\Pa\\\hline +% \verb"\J" & 在文本模式和数学模式下均可使用,生成单位符号~\J\\\hline +% \verb"\ohm" & 在文本模式和数学模式下均可使用,生成单位符号~\ohm\\\hline +% \verb"\mol" & 在文本模式和数学模式下均可使用,生成单位符号~\mol\\\hline +% \verb"\K" & 在文本模式和数学模式下均可使用,生成单位符号~\K\\\hline +% \verb"\h" & 在文本模式和数学模式下均可使用,生成单位符号~\h\\\hline +% \verb"\ton" & 在文本模式和数学模式下均可使用,生成单位符号~\ton\\\hline +% \verb"\squarem" & 在文本模式和数学模式下均可使用,生成单位符号~\squarem\\\hline +% \verb"\cubicm" & 在文本模式和数学模式下均可使用,生成单位符号~\cubicm\\\hline +% \verb"\cm" & 在文本模式和数学模式下均可使用,生成单位符号~\cm\\\hline +% \verb"\mm" & 在文本模式和数学模式下均可使用,生成单位符号~\mm\\\hline +% \verb"\squarecm" & 在文本模式和数学模式下均可使用,生成单位符号~\squarecm\\\hline +% \verb"\cubiccm" & 在文本模式和数学模式下均可使用,生成单位符号~\cubiccm\\\hline +% \verb"\squaremm" & 在文本模式和数学模式下均可使用,生成单位符号~\squaremm\\\hline +% \verb"\cubicmm" & 在文本模式和数学模式下均可使用,生成单位符号~\cubicmm\\\hline +% \verb"\liter" & 在文本模式和数学模式下均可使用,生成单位符号~\liter\\\hline +% \end{tabular} +% +% \StopEventually{ +% } ^^A end StopEventually +% +% \section{源代码说明} +% +% \subsection{选项} +% +%\begin{macro}{\input} +% \changes{v0.2}{2011/07/27}{改用input语句导入ctex类文件} +% 导入ctex类的选项 +% \begin{macrocode} +%<*cls> +\input{ctex-common-opts.def} +\input{ctex-class-opts.def} +\input{ctex-caption-opts.def} +% +% \end{macrocode} +%\end{macro} +% +% 处理~\BHCexam~文档类的选项 +% +% \begin{macro}{\@sixteenkpaper} +% 16k纸张大小设置,缺省选项为a4paper +% \begin{macrocode} +%<*cls> +\newif\if@sixteenkpaper \@sixteenkpapertrue +\DeclareOption{16kpaper}{\@sixteenkpaperfalse} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@marginline} +% 是否有装订线 +% \begin{macrocode} +%<*cls> +\newif\if@marginline \@marginlinefalse +\DeclareOption{marginline}{\@marginlinetrue} +% +% \end{macrocode} +% \end{macro} +% +% 不缩进,缺省为缩进 +% \begin{macrocode} +%<*cls> +\newif\if@noindent \@noindentfalse +\DeclareOption{noindent}{\@noindenttrue} +% +% \end{macrocode} +% +% 显示答案的方式,缺省不显示答案 +% \begin{macrocode} +%\DeclareOption{answers}{\PassOptionsToClass{\CurrentOption}{exam}} +% \end{macrocode} + +% \begin{macro}{\@printbox} +% 显示计分框,缺省为不显示。 +% \begin{macrocode} +%<*cls> +\newif\if@printbox \@printboxfalse +\DeclareOption{printbox}{\@printboxtrue} +% +% \end{macrocode} +% \end{macro} +% +% +% 把没有定义的选项传递给缺省的文档类 +% \begin{macrocode} +%\DeclareOption*{\PassOptionsToClass{\CurrentOption}{exam}} +% \end{macrocode} +% +% 处理选项 +% \begin{macrocode} +%\ProcessOptions +% \end{macrocode} +% +% 装入缺省的文档类 +% \begin{macrocode} +%\LoadClass[addpoints]{exam} +% \end{macrocode} +% +% 导入ctex类的实现 +% \begin{macrocode} +%<*cls> +\input{ctex-common.def} +\input{ctex-caption.def} +\input{ctex-class.def} +% +% \end{macrocode} +% \subsection{宏包} +% +% \begin{macro}{\RequirePackage} +% 我们需要使用的一些宏包 +% \begin{macrocode} +%<*cls> +\RequirePackage{amsmath,amssymb,bm} +\RequirePackage{graphicx} +\RequirePackage{ifpdf,ifxetex} +% +% \end{macrocode} +% +% 用geometry宏包进行页面设置 +% \changes{v0.2}{2011/07/27}{改用geometry宏包实现纸张设置} +% \begin{macrocode} +%<*cls> +\if@marginline +\if@sixteenkpaper +\RequirePackage[papersize={184mm,260mm},hmargin={3cm,2cm}, +vmargin={2cm,2cm},marginparsep=0.5cm,hoffset=0cm,voffset=0cm, +footnotesep=0.5cm,headsep=0.5cm,twoside]{geometry} +\else +\RequirePackage[paper=a4paper,hmargin={3cm,2cm},vmargin={2cm,2cm}, +marginparsep=0.5cm,hoffset=0cm,voffset=0cm,footnotesep=0.5cm, +headsep=0.5cm,twoside]{geometry} +\fi +\else +\if@sixteenkpaper +\RequirePackage[papersize={184mm,260mm},hmargin={2cm,2cm}, +vmargin={2cm,2cm},marginparsep=0.5cm,hoffset=0cm,voffset=0cm, +footnotesep=0.5cm,headsep=0.5cm]{geometry} +\else +\RequirePackage[paper=a4paper,hmargin={2cm,2cm},vmargin={2cm,2cm}, +marginparsep=0.5cm,hoffset=0cm,voffset=0cm,footnotesep=0.5cm, +headsep=0.5cm]{geometry} +\fi +\fi +% +% \end{macrocode} +%\end{macro} +% +% \subsection{自定义设置} +%行距、页眉、页脚 +% \begin{macrocode} +%<*cls> +\renewcommand{\baselinestretch}{1.5} +\pagestyle{headandfoot} +%\runningheadrule +%\firstpageheadrule +%\runningfootrule +%\firstpagefootrule +\header{}{}{} +\footer{}{\small \kaishu{\@kemu}\quad 第~\thepage~页(共~\numpages~页)}{} +% +% \end{macrocode} +% +% 分值显示 +% \begin{macrocode} +%<*cls> +\pointname{分} +\pointformat{\kaishu (\thepoints)} +% +% \end{macrocode} +% +% 解的显示 +% \begin{macrocode} +%<*cls> +\renewcommand{\solutiontitle}{\noindent\heiti{解:}\noindent} +% +% \end{macrocode} +% +% 小问的显示 +% \begin{macrocode} +%<*cls> +\renewcommand{\thepartno}{\arabic{partno}} +\renewcommand{\partlabel}{(\thepartno)} +\renewcommand{\partshook}{ + \settowidth{\leftmargin}{(3).\hskip\labelsep} + \if@noindent \setlength\leftmargin{0pt} \fi +} +% +% \end{macrocode} +% +% 选项的显示 +% \begin{macrocode} +%<*cls> +\renewcommand{\choiceshook}{ + \settowidth{\leftmargin}{W.\hskip\labelsep} + \if@noindent \setlength\leftmargin{0pt} \fi +} +% +% \end{macrocode} +% +% 解答的显示 +% \begin{macrocode} +%<*cls> +\renewenvironment{solution}% + {% + \ifprintanswers + \begingroup + \Solution@Emphasis + \begin{TheSolution}% + \else + \ifcancelspace + % Do nothing + \else + \par + \penalty 0 + \vfill% + \if@printbox \if@houpinfen \houpinfen \fi \fi + \fi + \setbox\z@\vbox\bgroup + \fi + }{% + \ifprintanswers + \end{TheSolution}% + \endgroup + \else + \egroup + \fi + }% +% +% \end{macrocode} +% +% \subsection{新的命令和环境} +% +% \begin{macro}{\printmlor} +% \begin{macro}{\printmlol} +% \changes{v0.1}{2011/07/23}{支持在首页插入装订线} +% \changes{v0.2}{2011/07/27}{手动在指定页插入左(右)装订线} +% 装订线 +% \begin{macrocode} +%<*cls> +\if@marginline +\newsavebox{\zdxl} +\sbox{\zdxl}{ +\begin{minipage}{0.7\paperheight} +\begin{center} +\heiti 班级\underline{\hspace{15ex}} \quad +姓名 \underline{\hspace{15ex}} \quad +学号 \underline{\hspace{15ex}} \quad \\ +\vspace{3ex} +\dotfill 装 \dotfill 订 \dotfill 线 \dotfill +\end{center} +\end{minipage} +} +\newsavebox{\zdxr} +\sbox{\zdxr}{ +\begin{minipage}{0.7\paperheight} +\begin{center} +\heiti \hfill 请 \hfill 不 \hfill 要 \hfill 在 \hfill + 装 \hfill 订 \hfill 线 \hfill 内 \hfill 答 \hfill 题 \hfill \\ +\vspace{3ex} +\dotfill 装 \dotfill 订 \dotfill 线 \dotfill +\end{center} +\end{minipage} +} +\newcommand{\printmlol}{ +\marginpar{\rotatebox{90}{\usebox{\zdxl}}} +} +\newcommand{\printmlor}{ +\marginpar{\rotatebox{-90}{\usebox{\zdxr}}} +} +\reversemarginpar +\fi +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\biaoti} +% \begin{macro}{\kemu} +% 标题 +% \begin{macrocode} +%<*cfg> +\def\@biaoti{2011年全国普通高等学校招生统一考试(上海卷)} +\def\@kemu{数学(理科)} +% +%<*cls> +\newcommand\biaoti[1]{\def\@biaoti{#1}} +\newcommand\kemu[1]{\def\@kemu{#1}} +\renewcommand\maketitle{ + \begin{center}{\heiti \Large{\@biaoti}}\end{center} + \begin{center}{\heiti \Large{\@kemu}}\end{center} +} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\mininotice} +% \begin{macro}{\xinxi} +% 一行内显示考试时间和考试总分 +% \begin{macrocode}{\mininotice} +%<*cfg> +\def\@zongfen{150} +\def\@shijian{120} +% +%<*cls> +\newcommand\xinxi[2]{ + \def\@zongfen{#1} + \def\@shijian{#2} +} +\newcommand\mininotice{ + \begin{center}{ + \kaishu (本试卷满分~\@zongfen~分, 考试时间~\@shijian~分钟)} + \end{center} +} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\notice} +% 注意事项 +% \begin{macrocode} +%<*cls> +\newcommand{\notice}{ + \heiti 注意事项: \songti + \begin{enumerate} + \item 答卷前, 考生务必将姓名、高考准考证号、校验码等填写清楚. + \item 本试卷共~\numquestions{}~道试题, 满分~\@zongfen~分,考试时间~\@shijian~分钟. + \end{enumerate} +} +% +% \end{macrocode} +%\end{macro} +% +% \begin{macro}{\pingfen} +% 前评分框 +% \begin{macrocode} +%<*cls> +\newlength\@boxwidth +\setlength\@boxwidth{0ex} +\if@printbox \setlength\@boxwidth{18ex} \fi +\newcommand\pinfen{ + \heiti + \begin{minipage}{\@boxwidth} + \begin{tabular}{|c|c|} + \hline + 得分 & 评卷人\\ + \hline + & \\ + \hline + \end{tabular} + \end{minipage} +} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\houpinfen} +% 后评分框 +% \begin{macrocode} +%<*cls> +\newcommand{\houpinfen}{ + \hfill + \begin{tabular}{|l|l|} + \hline + 得分 & \hspace*{1.5cm}\\ + \hline + \end{tabular} + \bigskip +} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\oneb} +% \begin{macro}{\twob} +% \begin{macro}{\sixb} +% \begin{macro}{\tenb} +% 空格 +% \begin{macrocode} +%<*cls> +\newcommand\oneb{\underline{\hspace{1em}}\hspace{0.001em}} +\newcommand\twob{\oneb\oneb} +\newcommand{\sixb}{\twob\twob} +\newcommand\tenb{\twob\twob\twob\twob\twob} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% 填空题、选择题、简答题 +% \begin{macrocode} +%<*cfg> +\def\@tiankong@zongfen{56} +\def\@tiankong@tishu{14} +\def\@tiankong@fen{4} +\def\@xuanze@zongfen{16} +\def\@xuanze@tishu{4} +\def\@xuanze@fen{4} +\def\@jianda@zongfen{78} +\def\@jianda@tishu{5} +% +%<*cls> +\newcounter{@dati} +\newif\if@houpinfen \@houpinfenfalse +\newcommand\settk[3]{ + \def\@tiankong@zongfen{#1} + \def\@tiankong@tishu{#2} + \def\@tiankong@fen{#3} +} +\newcommand\tiankong{ + \@houpinfenfalse + \stepcounter{@dati} + \fullwidth{ + \if@printbox \pinfen \fi + \begin{minipage}{\textwidth-\@boxwidth} + \heiti \chinese{@dati}. 填空题(\kaishu 本大题满分~\@tiankong@zongfen~分) \heiti 本大题有~\@tiankong@tishu~题, 考生应在答题纸相应编号的空格内直接写结果, 每个空格填对得~\@tiankong@fen~分, 否则一律得零分. + \end{minipage} + } +} +\newcommand\setxz[3]{ + \def\@xuanze@zongfen{#1} + \def\@xuanze@tishu{#2} + \def\@xuanze@fen{#3} +} +\newcommand\xuanze{ + \@houpinfenfalse + \stepcounter{@dati} + \fullwidth{ + \if@printbox \pinfen \fi + \begin{minipage}{\textwidth-\@boxwidth} + \heiti \chinese{@dati}. 选择题(\kaishu 本大题满分~\@xuanze@zongfen~分) \heiti 本大题共有~\@xuanze@tishu~题, 每题有且只有一个正确答案, 考生应在答题纸的相应编号上, 将代表答案的小方格涂黑, 选对得~\@xuanze@fen~分, 否则一律得零分. + \end{minipage} + } +} +\newcommand\setjd[2]{ + \def\@jianda@zongfen{#1} + \def\@jianda@tishu{#2} +} +\newcommand\jianda{ + \@houpinfentrue + \qformat{\hskip\labelsep \kaishu \thequestion.~~(本题满分~\totalpoints~分)\hfill} + \stepcounter{@dati} + \fullwidth{ + \if@printbox \pinfen \fi + \begin{minipage}{\textwidth-\@boxwidth} + \heiti \chinese{@dati}. 简答题(\kaishu 本大题满分~\@jianda@zongfen~分)~\heiti 本大题共有~\@jianda@tishu~题, 解答下列各题必须在答题纸相应的编号规定区域内写出必要的步骤. + \end{minipage} + } +} +% +% \end{macrocode} +% +% 数学运算符号、单位 +% \begin{macrocode} +%<*cls> +\newcommand{\rc}{\text{C}} +\newcommand{\ri}{\text{i}} +\newcommand{\ra}{\text{A}} +\newcommand{\rd}{\text{d}} +\newcommand\tian{\ensuremath{\text{d}}} +\newcommand\A{\ensuremath{\text{A}}} +\def\m{\ensuremath{\text{m}}} +\newcommand\g{\ensuremath{\text{g}}} +\newcommand\kg{\ensuremath{\text{kg}}} +\newcommand\degree{\ensuremath{^\circ}} +\newcommand\ssd{\ensuremath{\text{\textcelsius}}} +\newcommand\rad{\ensuremath{\text{rad}}} +\newcommand\N{\ensuremath{\text{N}}} +\newcommand\Pa{\ensuremath{\text{Pa}}} +\newcommand\J{\ensuremath{\text{J}}} +\newcommand\W{\ensuremath{\text{W}}} +\newcommand\ohm{\ensuremath{\Omega}} +\newcommand\mol{\ensuremath{\text{mol}}} +\newcommand\K{\ensuremath{\text{K}}} +\newcommand\h{\ensuremath{\text{h}}} +\newcommand\ton{\ensuremath{\text{t}}} +\newcommand\squarem{\ensuremath{\text{m$^2$}}} +\newcommand\cubicm{\ensuremath{\text{m$^3$}}} +\newcommand\cm{\ensuremath{\text{cm}}} +\newcommand\mm{\ensuremath{\text{mm}}} +\newcommand\squarecm{\ensuremath{\text{cm$^2$}}} +\newcommand\cubiccm{\ensuremath{\text{cm$^3$}}} +\newcommand\squaremm{\ensuremath{\text{mm$^2$}}} +\newcommand\cubicmm{\ensuremath{\text{mm$^3$}}} +\newcommand\liter{\ensuremath{\text{L}}} +\newcommand{\abs}[1]{\left|#1\right|} +\newcommand\arccot{\mathop{\text{arccot}}} +\newcommand\pingxing{\parallel} +%<\cls> +% \end{macrocode} +% +% 读取配置文件 +% \begin{macrocode} +%<*cls> +\AtEndOfPackage{\makeatletter\input{BHCexam.cfg}\makeatother} +% +% \end{macrocode} +% +% + +% \Finale +% +% \setcounter{IndexColumns}{2} +% \IndexPrologue{\section*{索引}} +% +% \GlossaryPrologue{\section*{版本更新}} +% +% \PrintIndex \PrintChanges +\endinput + +\EnableCrossrefs -- cgit v1.2.3