26 Star 102 Fork 29

xkwxdyy / exam-zh

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
LPPL-1.3c

exam-zh: LaTeX template for Chinese exam

Provides a class exam-zh.cls and its several module packages like exam-zh-question.sty and exam-zh-choices.sty, where these module packages can be used individually.

Although there are several excellent exam packages or classes uploaded before like exam and bhcexam , they don't fit the chinese style very well or they cannot be customized easily for chinese exam of all types like exams in primary school, junior high school, senior high school and even college. Those are the main reason why exam-zh was created.

In exam-zh, you can

  • seperate the format and the content very well;
  • use choices environment to typeset choice items easily and automatically;
  • design the sealline easily;
  • use it in Windows, macOS and Linux;
  • ... (for more that you can do with it, please read the manual(in Chinese): exam-zh-doc.pdf
  • QQ group: 652500180

Repository: https://gitee.com/xkwxdyy/exam-zh Author: Zeping Lee Maintainer: Kangwei Xia, Lijun Guo Issues and pull requests are welcome: issues and pulls

exam-zh:中国试卷 LaTeX 模板

本项目提供了一个中国高考试卷样式的 LaTeX 模板,旨在帮助中小学教师更方便地使用 LaTeX。模板具有以下特性:

  1. 样式与内容尽可能分离;
  2. 选择题选项可以自动排版成合适的列数;
  3. 通过用户接口可以方便更改密封线样式;
  4. 在 Windows, macOS 和 Linux 跨平台编译。

使用前请仔细阅读 发行版 的用户手册 exam-zh-doc.pdf

示例(simple example)

\section{选择题:本题共 8 小题,每小题 5 分,共 40 分。}

\begin{question}
  设集合 $A = \{x \mid -1 < x < 4\}$$B = \{2, 3, 4, 5\}$,则 $A \cap B = $ \paren
  \begin{choices}
    \item $\{2\}$
    \item $\{2, 3\}$
    \item $\{3, 4\}$
    \item $\{2, 3, 4\}$
  \end{choices}
\end{question}

\section{填空题:本题共 4 小题,每小题 5 分,共 20 分。}

\begin{question}
  已知函数 $f(x) = x^3 (a \cdot 2^x - 2^{-x})$ 是偶函数,则 $a = $ \fillin
\end{question}

\section{解答题:本题共 6 小题,共 70 分。解答应写出文字说明、证明过程或者演算步骤。}

\begin{problem}[points = 12]
  已知函数 $f(x) = x (1 - \ln x)$。讨论 $f(x)$ 的单调性。
$a$$b$ 为两个不相等的正数,且 $b \ln a - a \ln b = a - b$
  证明:$2 < \frac{1}{a} + \frac{1}{b} < \eu$
\end{problem}

使用方法

下面简要叙述 exam-zh 的使用方法,更多使用细节请阅读手册 exam-zh-doc.pdf

西文和数学字体

模板中可以设置西文和数学的字体。

\examsetup{
  font      = times,
  math-font = xits,
}

西文字体 font 有以下选项:

  • newcm(默认)New Computer Modern
  • lm Latin Modern
  • times Times New Roman
  • termes TeX Gyre Termes
  • stix STIX Two
  • xits XITS
  • libertinus Libertinus

数学字体 math-font 有以下选项:

  • newcm(默认)New Computer Modern Math
  • lm Latin Modern Math
  • termes TeX Gyre Termes Math
  • stix STIX Two Math
  • xits XITS Math
  • libertinus Libertinus Math
  • cambria Cambria Math

注意数学字体使用了 unicode-math 宏包进行配置。

题目环境 questionproblem

选择题和填空题使用 question 环境,解答题使用 problem 环境。两者的内容对齐方式不同。

questionproblem 环境还接受一个可选参数,其中可以使用以下 key—value 进行设置。

  • answer-color 答案的颜色(默认:black)。
  • index 题号。
  • points 题目的分数(默认:0)。
  • show-paren 是否显示选择题的括号(默认 false)。
  • show-points 是否显示题目的分数(默认 auto:选择题和填空题默认 false,解答题默认 true)。
  • show-answer 是否显示答案(默认:false)。
  • top-sep 题目上方垂直方向的空白距离(默认:.5em plus .5em minus .2em)。
  • bottom-sep 题目下方垂直方向的空白距离,与 top-sep 不叠加(默认:.5em plus .5em minus .2em)。

其中 indexshow-pointsshow-answertop-sepbottom-sep 可以使用 \examsetup 命令的 choices 层级进行全局设置。比如设置同一层级的多个选项:

\examsetup{
  choices = {
    show-points = true,
    show-answer = true,
  },
}

也可以用斜线“/”表示层级并设置单项。

\examsetup{
  question/show-points = true,
  question/show-answer = true,
}

选择题的括号 \paren 和填空 \fillin

\paren\fillin 命令分别生成选择题的括号和填空题的横线。这两个命令还分别接受一个可选参数作为题目的答案,如 \paren[B]\fillin[foo]。当 show-answer = true 时则将答案显示在其中。

需要注意的是,如果 \fillin 的参数中含有不配对的中括号时会报错,如 \fillin[$(−\infty, 1]$]。这时需要使用大括号将内容保护起来:\fillin[{$(−\infty, 1]$}]

\fillin 提供了样式的切换(目前就是下划线和括号两种):

\examsetup{
  fillin = {
    type = paren    % 括号风格 
    % type = line    % 下划线风格
  }
}

也可以局部更改单个 \fillin 的样式:\fill[type = paren][foo](有答案)或\fill[type = paren][](无答案)

选项环境 choices

选择题的选项使用 choices 环境排版,可以自动根据内容的长度选择合适的列数并对齐。该环境的设计主要参考了 @xkwxdyy 的 choices-l3xchoices 项目。

\begin{choices}[label-pos = top-left]
  \item $\{2\}$
  \item $\{2, 3\}$
  \item $\{3, 4\}$
  \item $\{2, 3, 4\}$
\end{choices}

其中的可选参数使用 key–value 的方式进行设置,除了 label-pos 外还包括以下选项。

  • index 第一个选项标签的计数器的数字值(默认为 1)。
  • column-sep 选项列之间的最小间隔(默认 1em)。
  • columns 强制按照该列数排版选项,如果为 0 则自动选择合适的列数(默认 0)。
  • label-align(可选:left, center, right;默认 right)标签内容的对齐方式。
  • label 标签的格式,类似 enumitem 可以在 \Roman 等命令后加 * 生成数字(默认 \Alph*.)。
  • label-pos 标签相对于选项内容的位置;auto 表示自动选择:如果内容高度超过两行时(通常是图片)标签位于左居中 left,否则位于左上角跟首行文字对齐(top-left)(可选:auto, top-left, left, bottom;默认 auto)。
  • label-align 标签内部的对齐方式。(可选:left, center, right;默认 right
  • label-sep 标签与选项之间的距离(默认 0.5em)。
  • label-width 标签的宽度;如果宽度不足会自动调整为最长标签的宽度(默认 0pt)。
  • max-columns 选项的最大列数;排版选项时会优先尝试该列数,如果无法排下内容,依次将列数除以 2 并取整再进行尝试,直到可以排下全部选项(默认 4)。

这些选项可以使用 \examsetup 命令的 choices 层级进行全局设置,类似 question

exam-zh-choices 模块还提供了 \circlednumber 命令调用中文字体生成带圈数字,该命令既可以接受 LaTeX2e 计数器的名字(如 section)作为参数,也可以接受数值表达式,比如 \circlednumber{7},但仅限 0~50 的整数。而且有的字体可能没有提供 10 以上的字形,建议只对 10 以内的值使用。

如果用户需要使用其他形式的数字作为 choices 的标签,需要使用 \AddChoicesCounter 命令将其添加进 label 选项的识别范围内(类似 enumitem\AddEnumerateCounter)。它的格式是 \AddChoicesCounter{⟨LaTeX command⟩}{⟨internal command⟩}{⟨widest label⟩},其中 ⟨LaTeX command⟩ 是在 label 选项中的形式,⟨internal command⟩ 是内部的实现,⟨widest label⟩ 是最宽的标签。比如带圈数字的添加方法:\AddChoicesCounter{\circlednumber}{\__examzh_choices_circled_number:n}{1}

解答环境 solution 和分数命令 \score

\begin{solution}
  函数的定义域为 $(0, +\infty)$,
\[f^{\prime}(x) = 1 - \ln x-1 = -\ln x, \score{2}\]
$x \in(0, 1)$ 时, $f^{\prime}(x) > 0$, 当 $x \in(1, +\infty)$ 时, $f^{\prime}(x) < 0$,
$f(x)$ 的递增区间为 $(0,1)$, 递减区间为 $(1, +\infty)$.
\end{solution}

用于解答题的解答环境,以及 \score 命令输出给分点,具体使用和相关键值请阅读手册。

正体的数学常数

按照国标,数学常数应使用正体。模板中提供了命令 \eu\iu 分别表示自然对数的底“e”和虚数单位“i”。\eu 可以理解为 “e upright” 的缩写或者 “Euler's number” 的首字母,\iu 可以理解为 “i upright” 或 “imaginary unit” 的缩写,这样更方便记忆。圆周率“π”直接使用 \uppi 命令。

密封线

  \examsetup{
    sealline = {
      show        = true,
      % scope        = firstpage,
      % scope        = oddpage,
      scope        = everypage,
      line-thickness       = 1pt,
      line-xshift          = 8mm,
      line-yshift          = 0mm,
      line-type            = densely-dashed,
      text                 = 密封线内不得答题,
      text-xshift          = 11mm,
      text-yshift          = 30mm,
      circle-show          = true,
      circle-start         = 0.07,
      circle-end           = 0.92,
      circle-step          = 3.5em,
      circle-diameter      = 3mm,
      circle-xshift        = 8mm,
      odd-info-content     = {
        {\kaishu 姓名}{\underline{\hspace*{8em}}},
        {\kaishu 准考证号}{\underline{\hspace*{8em}}},
        {\kaishu 考场号}{\underline{\hspace*{8em}}},
        {\kaishu 座位号}{\underline{\hspace*{8em}}},
      },
      odd-info-seperator   = \hspace*{3em},
      odd-info-align       = center,
      odd-info-xshift      = 20mm,
      odd-info-yshift      = 0mm
    }
  }

具体密封线参数含义从参数名称基本可以知道,具体的可以看手册 exam-zh-doc.pdf

反馈

欢迎反馈项目的问题或者改进建议。推荐使用发 issue 的形式,并且附上相关的代码和截图。

使用授权

本项目以 LaTeX Project Public License v1.3 协议发布。

相关项目

The LaTeX Project Public License =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- LPPL Version 1.3c 2008-05-04 Copyright 1999 2002-2008 LaTeX3 Project Everyone is allowed to distribute verbatim copies of this license document, but modification of it is not allowed. PREAMBLE ======== The LaTeX Project Public License (LPPL) is the primary license under which the LaTeX kernel and the base LaTeX packages are distributed. You may use this license for any work of which you hold the copyright and which you wish to distribute. This license may be particularly suitable if your work is TeX-related (such as a LaTeX package), but it is written in such a way that you can use it even if your work is unrelated to TeX. The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE', below, gives instructions, examples, and recommendations for authors who are considering distributing their works under this license. This license gives conditions under which a work may be distributed and modified, as well as conditions under which modified versions of that work may be distributed. We, the LaTeX3 Project, believe that the conditions below give you the freedom to make and distribute modified versions of your work that conform with whatever technical specifications you wish while maintaining the availability, integrity, and reliability of that work. If you do not see how to achieve your goal while meeting these conditions, then read the document `cfgguide.tex' and `modguide.tex' in the base LaTeX distribution for suggestions. DEFINITIONS =========== In this license document the following terms are used: `Work' Any work being distributed under this License. `Derived Work' Any work that under any applicable law is derived from the Work. `Modification' Any procedure that produces a Derived Work under any applicable law -- for example, the production of a file containing an original file associated with the Work or a significant portion of such a file, either verbatim or with modifications and/or translated into another language. `Modify' To apply any procedure that produces a Derived Work under any applicable law. `Distribution' Making copies of the Work available from one person to another, in whole or in part. Distribution includes (but is not limited to) making any electronic components of the Work accessible by file transfer protocols such as FTP or HTTP or by shared file systems such as Sun's Network File System (NFS). `Compiled Work' A version of the Work that has been processed into a form where it is directly usable on a computer system. This processing may include using installation facilities provided by the Work, transformations of the Work, copying of components of the Work, or other activities. Note that modification of any installation facilities provided by the Work constitutes modification of the Work. `Current Maintainer' A person or persons nominated as such within the Work. If there is no such explicit nomination then it is the `Copyright Holder' under any applicable law. `Base Interpreter' A program or process that is normally needed for running or interpreting a part or the whole of the Work. A Base Interpreter may depend on external components but these are not considered part of the Base Interpreter provided that each external component clearly identifies itself whenever it is used interactively. Unless explicitly specified when applying the license to the Work, the only applicable Base Interpreter is a `LaTeX-Format' or in the case of files belonging to the `LaTeX-format' a program implementing the `TeX language'. CONDITIONS ON DISTRIBUTION AND MODIFICATION =========================================== 1. Activities other than distribution and/or modification of the Work are not covered by this license; they are outside its scope. In particular, the act of running the Work is not restricted and no requirements are made concerning any offers of support for the Work. 2. You may distribute a complete, unmodified copy of the Work as you received it. Distribution of only part of the Work is considered modification of the Work, and no right to distribute such a Derived Work may be assumed under the terms of this clause. 3. You may distribute a Compiled Work that has been generated from a complete, unmodified copy of the Work as distributed under Clause 2 above, as long as that Compiled Work is distributed in such a way that the recipients may install the Compiled Work on their system exactly as it would have been installed if they generated a Compiled Work directly from the Work. 4. If you are the Current Maintainer of the Work, you may, without restriction, modify the Work, thus creating a Derived Work. You may also distribute the Derived Work without restriction, including Compiled Works generated from the Derived Work. Derived Works distributed in this manner by the Current Maintainer are considered to be updated versions of the Work. 5. If you are not the Current Maintainer of the Work, you may modify your copy of the Work, thus creating a Derived Work based on the Work, and compile this Derived Work, thus creating a Compiled Work based on the Derived Work. 6. If you are not the Current Maintainer of the Work, you may distribute a Derived Work provided the following conditions are met for every component of the Work unless that component clearly states in the copyright notice that it is exempt from that condition. Only the Current Maintainer is allowed to add such statements of exemption to a component of the Work. a. If a component of this Derived Work can be a direct replacement for a component of the Work when that component is used with the Base Interpreter, then, wherever this component of the Work identifies itself to the user when used interactively with that Base Interpreter, the replacement component of this Derived Work clearly and unambiguously identifies itself as a modified version of this component to the user when used interactively with that Base Interpreter. b. Every component of the Derived Work contains prominent notices detailing the nature of the changes to that component, or a prominent reference to another file that is distributed as part of the Derived Work and that contains a complete and accurate log of the changes. c. No information in the Derived Work implies that any persons, including (but not limited to) the authors of the original version of the Work, provide any support, including (but not limited to) the reporting and handling of errors, to recipients of the Derived Work unless those persons have stated explicitly that they do provide such support for the Derived Work. d. You distribute at least one of the following with the Derived Work: 1. A complete, unmodified copy of the Work; if your distribution of a modified component is made by offering access to copy the modified component from a designated place, then offering equivalent access to copy the Work from the same or some similar place meets this condition, even though third parties are not compelled to copy the Work along with the modified component; 2. Information that is sufficient to obtain a complete, unmodified copy of the Work. 7. If you are not the Current Maintainer of the Work, you may distribute a Compiled Work generated from a Derived Work, as long as the Derived Work is distributed to all recipients of the Compiled Work, and as long as the conditions of Clause 6, above, are met with regard to the Derived Work. 8. The conditions above are not intended to prohibit, and hence do not apply to, the modification, by any method, of any component so that it becomes identical to an updated version of that component of the Work as it is distributed by the Current Maintainer under Clause 4, above. 9. Distribution of the Work or any Derived Work in an alternative format, where the Work or that Derived Work (in whole or in part) is then produced by applying some process to that format, does not relax or nullify any sections of this license as they pertain to the results of applying that process. 10. a. A Derived Work may be distributed under a different license provided that license itself honors the conditions listed in Clause 6 above, in regard to the Work, though it does not have to honor the rest of the conditions in this license. b. If a Derived Work is distributed under a different license, that Derived Work must provide sufficient documentation as part of itself to allow each recipient of that Derived Work to honor the restrictions in Clause 6 above, concerning changes from the Work. 11. This license places no restrictions on works that are unrelated to the Work, nor does this license place any restrictions on aggregating such works with the Work by any means. 12. Nothing in this license is intended to, or may be used to, prevent complete compliance by all parties with all applicable laws. NO WARRANTY =========== There is no warranty for the Work. Except when otherwise stated in writing, the Copyright Holder provides the Work `as is', without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The entire risk as to the quality and performance of the Work is with you. Should the Work prove defective, you assume the cost of all necessary servicing, repair, or correction. In no event unless required by applicable law or agreed to in writing will The Copyright Holder, or any author named in the components of the Work, or any other party who may distribute and/or modify the Work as permitted above, be liable to you for damages, including any general, special, incidental or consequential damages arising out of any use of the Work or out of inability to use the Work (including, but not limited to, loss of data, data being rendered inaccurate, or losses sustained by anyone as a result of any failure of the Work to operate with any other programs), even if the Copyright Holder or said author or said other party has been advised of the possibility of such damages. MAINTENANCE OF THE WORK ======================= The Work has the status `author-maintained' if the Copyright Holder explicitly and prominently states near the primary copyright notice in the Work that the Work can only be maintained by the Copyright Holder or simply that it is `author-maintained'. The Work has the status `maintained' if there is a Current Maintainer who has indicated in the Work that they are willing to receive error reports for the Work (for example, by supplying a valid e-mail address). It is not required for the Current Maintainer to acknowledge or act upon these error reports. The Work changes from status `maintained' to `unmaintained' if there is no Current Maintainer, or the person stated to be Current Maintainer of the work cannot be reached through the indicated means of communication for a period of six months, and there are no other significant signs of active maintenance. You can become the Current Maintainer of the Work by agreement with any existing Current Maintainer to take over this role. If the Work is unmaintained, you can become the Current Maintainer of the Work through the following steps: 1. Make a reasonable attempt to trace the Current Maintainer (and the Copyright Holder, if the two differ) through the means of an Internet or similar search. 2. If this search is successful, then enquire whether the Work is still maintained. a. If it is being maintained, then ask the Current Maintainer to update their communication data within one month. b. If the search is unsuccessful or no action to resume active maintenance is taken by the Current Maintainer, then announce within the pertinent community your intention to take over maintenance. (If the Work is a LaTeX work, this could be done, for example, by posting to comp.text.tex.) 3a. If the Current Maintainer is reachable and agrees to pass maintenance of the Work to you, then this takes effect immediately upon announcement. b. If the Current Maintainer is not reachable and the Copyright Holder agrees that maintenance of the Work be passed to you, then this takes effect immediately upon announcement. 4. If you make an `intention announcement' as described in 2b. above and after three months your intention is challenged neither by the Current Maintainer nor by the Copyright Holder nor by other people, then you may arrange for the Work to be changed so as to name you as the (new) Current Maintainer. 5. If the previously unreachable Current Maintainer becomes reachable once more within three months of a change completed under the terms of 3b) or 4), then that Current Maintainer must become or remain the Current Maintainer upon request provided they then update their communication data within one month. A change in the Current Maintainer does not, of itself, alter the fact that the Work is distributed under the LPPL license. If you become the Current Maintainer of the Work, you should immediately provide, within the Work, a prominent and unambiguous statement of your status as Current Maintainer. You should also announce your new status to the same pertinent community as in 2b) above. WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE ====================================================== This section contains important instructions, examples, and recommendations for authors who are considering distributing their works under this license. These authors are addressed as `you' in this section. Choosing This License or Another License ---------------------------------------- If for any part of your work you want or need to use *distribution* conditions that differ significantly from those in this license, then do not refer to this license anywhere in your work but, instead, distribute your work under a different license. You may use the text of this license as a model for your own license, but your license should not refer to the LPPL or otherwise give the impression that your work is distributed under the LPPL. The document `modguide.tex' in the base LaTeX distribution explains the motivation behind the conditions of this license. It explains, for example, why distributing LaTeX under the GNU General Public License (GPL) was considered inappropriate. Even if your work is unrelated to LaTeX, the discussion in `modguide.tex' may still be relevant, and authors intending to distribute their works under any license are encouraged to read it. A Recommendation on Modification Without Distribution ----------------------------------------------------- It is wise never to modify a component of the Work, even for your own personal use, without also meeting the above conditions for distributing the modified component. While you might intend that such modifications will never be distributed, often this will happen by accident -- you may forget that you have modified that component; or it may not occur to you when allowing others to access the modified version that you are thus distributing it and violating the conditions of this license in ways that could have legal implications and, worse, cause problems for the community. It is therefore usually in your best interest to keep your copy of the Work identical with the public one. Many works provide ways to control the behavior of that work without altering any of its licensed components. How to Use This License ----------------------- To use this license, place in each of the components of your work both an explicit copyright notice including your name and the year the work was authored and/or last substantially modified. Include also a statement that the distribution and/or modification of that component is constrained by the conditions in this license. Here is an example of such a notice and statement: %% pig.dtx %% Copyright 2005 M. Y. Name % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 % 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.3 or later is part of all distributions of LaTeX % version 2005/12/01 or later. % % This work has the LPPL maintenance status `maintained'. % % The Current Maintainer of this work is M. Y. Name. % % This work consists of the files pig.dtx and pig.ins % and the derived file pig.sty. Given such a notice and statement in a file, the conditions given in this license document would apply, with the `Work' referring to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being generated from `pig.dtx' using `pig.ins'), the `Base Interpreter' referring to any `LaTeX-Format', and both `Copyright Holder' and `Current Maintainer' referring to the person `M. Y. Name'. If you do not want the Maintenance section of LPPL to apply to your Work, change `maintained' above into `author-maintained'. However, we recommend that you use `maintained', as the Maintenance section was added in order to ensure that your Work remains useful to the community even when you can no longer maintain and support it yourself. Derived Works That Are Not Replacements --------------------------------------- Several clauses of the LPPL specify means to provide reliability and stability for the user community. They therefore concern themselves with the case that a Derived Work is intended to be used as a (compatible or incompatible) replacement of the original Work. If this is not the case (e.g., if a few lines of code are reused for a completely different task), then clauses 6b and 6d shall not apply. Important Recommendations ------------------------- Defining What Constitutes the Work The LPPL requires that distributions of the Work contain all the files of the Work. It is therefore important that you provide a way for the licensee to determine which files constitute the Work. This could, for example, be achieved by explicitly listing all the files of the Work near the copyright notice of each file or by using a line such as: % This work consists of all files listed in manifest.txt. in that place. In the absence of an unequivocal list it might be impossible for the licensee to determine what is considered by you to comprise the Work and, in such a case, the licensee would be entitled to make reasonable conjectures as to which files comprise the Work.

简介

高考试卷 LaTeX 模板 展开 收起
TeX/LaTeX 等 5 种语言
LPPL-1.3c
取消

发行版 (24)

全部

贡献者

全部

近期动态

加载更多
不能加载更多了
TeX/LaTeX
1
https://gitee.com/xkwxdyy/exam-zh.git
git@gitee.com:xkwxdyy/exam-zh.git
xkwxdyy
exam-zh
exam-zh
main

搜索帮助