summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-06-28 20:08:13 +0000
committerKarl Berry <karl@freefriends.org>2023-06-28 20:08:13 +0000
commitba1d3f2dec45587015339e50b08e665979aecd59 (patch)
tree9284e2cbeeac48b8a2c1a6c007fd7b4ac06acd04
parentc4d187d9cff85e416cdaa4849b45c850afab0b96 (diff)
exam-zh (28jun23)
git-svn-id: svn://tug.org/texlive/trunk@67505 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/xelatex/exam-zh/CHANGELOG.md7
-rw-r--r--Master/texmf-dist/doc/xelatex/exam-zh/doc/body/usage.tex6
-rw-r--r--Master/texmf-dist/doc/xelatex/exam-zh/doc/exam-zh-doc.pdfbin1595064 -> 1595273 bytes
-rw-r--r--Master/texmf-dist/doc/xelatex/exam-zh/doc/exam-zh-doc.tex3
-rw-r--r--Master/texmf-dist/doc/xelatex/exam-zh/examples/example-multiple.pdfbin160194 -> 160210 bytes
-rw-r--r--Master/texmf-dist/doc/xelatex/exam-zh/examples/example-single.pdfbin134479 -> 134928 bytes
-rw-r--r--Master/texmf-dist/tex/latex/exam-zh/exam-zh-chinese-english.sty2
-rw-r--r--Master/texmf-dist/tex/latex/exam-zh/exam-zh-choices.sty2
-rw-r--r--Master/texmf-dist/tex/latex/exam-zh/exam-zh-font.sty2
-rw-r--r--Master/texmf-dist/tex/latex/exam-zh/exam-zh-question.sty99
-rw-r--r--Master/texmf-dist/tex/latex/exam-zh/exam-zh-symbols.sty2
-rw-r--r--Master/texmf-dist/tex/latex/exam-zh/exam-zh-textfigure.sty2
-rw-r--r--Master/texmf-dist/tex/latex/exam-zh/exam-zh.cls24
13 files changed, 123 insertions, 26 deletions
diff --git a/Master/texmf-dist/doc/xelatex/exam-zh/CHANGELOG.md b/Master/texmf-dist/doc/xelatex/exam-zh/CHANGELOG.md
index 44002138a67..9fba646315c 100644
--- a/Master/texmf-dist/doc/xelatex/exam-zh/CHANGELOG.md
+++ b/Master/texmf-dist/doc/xelatex/exam-zh/CHANGELOG.md
@@ -5,6 +5,13 @@
格式参照 [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
并且此项目遵守 [Semantic Versioning](https://semver.org/spec/v2.0.0.html)。
+## [0.1.27] - 2023-06-27
+
+### Added
+
+- 完善 `enumerate` 环境的三层的间距控制
+
+
## [0.1.26] - 2023-06-22
diff --git a/Master/texmf-dist/doc/xelatex/exam-zh/doc/body/usage.tex b/Master/texmf-dist/doc/xelatex/exam-zh/doc/body/usage.tex
index 29adeaf5a2c..9d1191f76ba 100644
--- a/Master/texmf-dist/doc/xelatex/exam-zh/doc/body/usage.tex
+++ b/Master/texmf-dist/doc/xelatex/exam-zh/doc/body/usage.tex
@@ -308,7 +308,7 @@
<题干>
\end{question}
\end{ccnusyntax}
- 选择题和填空题题干环境。
+ 选择题和填空题题干环境。键值列表设置见~\ref{subsubsec:参数-题干} 节
\end{function}
\begin{function}{problem 环境}
@@ -317,7 +317,7 @@
<题干>
\end{problem}
\end{ccnusyntax}
- 解答题题干环境。
+ 解答题题干环境。键值列表设置见~\ref{subsubsec:参数-题干} 节
\end{function}
\cls{question} 和 \cls{problem} 环境的区别仅在于若 \kvopt{show-points}{true} (下面会介绍这个键值),则 \cls{question} 的题干会紧接在分数后而 \cls{problem} 的题干会在分数后新起一段后开始。
@@ -461,7 +461,7 @@
\fillin(*\oarg{键值列表}*)(*\oarg{答案}*)
\fillin*(*\oarg{键值列表}*)(*\oarg{答案}*)
\end{ccnusyntax}
- 填空(下划线或括号)。\meta{答案} 可以受~\ref{subsubsec:参数-题干} 节的 \cmd{question/show-answer} 键值控制隐藏。\meta{键值列表} 见~\ref{subsubsec:参数-填空题} 节。\tn{fillin} 不可换行,但是会自动根据内容深度提升基线(比如排版分数不会“压线”);\tn{fillin*} 可以自动换行但是没有前者的功能,且 \tn{fillin*} 的换行功能只适用于 \kvopt{fillin/type}{line}、\kvopt{fillin/type}{paren} 和 \kvopt{fillin/type}{blank}。
+ 填空(下划线或括号)。\meta{答案} 可以受~\ref{subsubsec:参数-题干} 节的 \cmd{question/show-answer} 键值控制隐藏。\meta{键值列表} 见~\ref{subsubsec:参数-填空题} 节。\tn{fillin} 不可换行,但是会自动根据内容深度提升基线(比如排版分数不会“压线”),但无法自动换行;\tn{fillin*} 可以自动换行但是没有前者的提升基线的功能,且 \tn{fillin*} 的换行功能只适用于 \kvopt{fillin/type}{line}、\kvopt{fillin/type}{paren} 和 \kvopt{fillin/type}{blank}。
\end{function}
注意,\tn{fillin} 命令经过处理,|\fillin[<1>]| 表示 |\fillin[<答案>]|(而不是通常定义两个可选参数命令,若只写一个的时候默认为第一个参数),而如果仅仅改变 \tn{fillin} 的类型(见下)而不输入答案,则需要使用 |\fillin[type=paren][]|。这样设计是考虑到:大部分时候都是无答案和输入答案两种情况,而单独改某一个 \tn{fillin} 的类型的情况很少,一般都是一些题目统一改,这个时候在需要修改的 \tn{fillin} 之前使用
diff --git a/Master/texmf-dist/doc/xelatex/exam-zh/doc/exam-zh-doc.pdf b/Master/texmf-dist/doc/xelatex/exam-zh/doc/exam-zh-doc.pdf
index 77c9d82abfa..513f8d06a0f 100644
--- a/Master/texmf-dist/doc/xelatex/exam-zh/doc/exam-zh-doc.pdf
+++ b/Master/texmf-dist/doc/xelatex/exam-zh/doc/exam-zh-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/xelatex/exam-zh/doc/exam-zh-doc.tex b/Master/texmf-dist/doc/xelatex/exam-zh/doc/exam-zh-doc.tex
index ad247296c18..b8eb07a3a68 100644
--- a/Master/texmf-dist/doc/xelatex/exam-zh/doc/exam-zh-doc.tex
+++ b/Master/texmf-dist/doc/xelatex/exam-zh/doc/exam-zh-doc.tex
@@ -1,7 +1,7 @@
\documentclass{xdyydoc}
\newcommand{\DocDate}{2022-10-4}
-\newcommand{\DocVersion}{v0.1.26}
+\newcommand{\DocVersion}{v0.1.27}
\input{exam-zh-doc-setup.tex}
\usepackage{amssymb}
@@ -94,6 +94,7 @@
\item 每个子包设置用户接口
\item 通过 \tn{CJKunderline} 的 \meta{hidden} 键实现 \tn{fillin} 的无答案的时候,长度是答案的长度
\item \env{poem} 环境的引用字体不是斜体
+ \item 用 meta 优化键值,比如统一的 show-answer
\end{itemize}
diff --git a/Master/texmf-dist/doc/xelatex/exam-zh/examples/example-multiple.pdf b/Master/texmf-dist/doc/xelatex/exam-zh/examples/example-multiple.pdf
index 76abecf4e99..e6b4c80c25d 100644
--- a/Master/texmf-dist/doc/xelatex/exam-zh/examples/example-multiple.pdf
+++ b/Master/texmf-dist/doc/xelatex/exam-zh/examples/example-multiple.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/xelatex/exam-zh/examples/example-single.pdf b/Master/texmf-dist/doc/xelatex/exam-zh/examples/example-single.pdf
index 69f8591c5e6..66c7da9b6ed 100644
--- a/Master/texmf-dist/doc/xelatex/exam-zh/examples/example-single.pdf
+++ b/Master/texmf-dist/doc/xelatex/exam-zh/examples/example-single.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/latex/exam-zh/exam-zh-chinese-english.sty b/Master/texmf-dist/tex/latex/exam-zh/exam-zh-chinese-english.sty
index e905af6f5ae..5099c6ca112 100644
--- a/Master/texmf-dist/tex/latex/exam-zh/exam-zh-chinese-english.sty
+++ b/Master/texmf-dist/tex/latex/exam-zh/exam-zh-chinese-english.sty
@@ -8,7 +8,7 @@
\RequirePackage{expl3}
-\ProvidesExplPackage {exam-zh-chinese-english} {2023-06-22} {v0.1.26}
+\ProvidesExplPackage {exam-zh-chinese-english} {2023-06-28} {v0.1.27}
{exam-zh chinese and english module}
\PassOptionsToPackage { tcolorbox } { most }
diff --git a/Master/texmf-dist/tex/latex/exam-zh/exam-zh-choices.sty b/Master/texmf-dist/tex/latex/exam-zh/exam-zh-choices.sty
index 57e8dd4ef21..47cbd287bc9 100644
--- a/Master/texmf-dist/tex/latex/exam-zh/exam-zh-choices.sty
+++ b/Master/texmf-dist/tex/latex/exam-zh/exam-zh-choices.sty
@@ -9,7 +9,7 @@
\RequirePackage{expl3}
\RequirePackage{xparse}
-\ProvidesExplPackage {exam-zh-choices} {2023-06-22} {v0.1.26}
+\ProvidesExplPackage {exam-zh-choices} {2023-06-28} {v0.1.27}
{exam-zh choices module}
\dim_new:N \l__examzh_choices_column_sep_dim
diff --git a/Master/texmf-dist/tex/latex/exam-zh/exam-zh-font.sty b/Master/texmf-dist/tex/latex/exam-zh/exam-zh-font.sty
index 91257434b72..9f0bb0171ff 100644
--- a/Master/texmf-dist/tex/latex/exam-zh/exam-zh-font.sty
+++ b/Master/texmf-dist/tex/latex/exam-zh/exam-zh-font.sty
@@ -9,7 +9,7 @@
\RequirePackage{expl3}
\RequirePackage{xparse}
-\ProvidesExplPackage {exam-zh-font} {2023-06-22} {v0.1.26}
+\ProvidesExplPackage {exam-zh-font} {2023-06-28} {v0.1.27}
{exam-zh font module}
\RequirePackage { unicode-math }
diff --git a/Master/texmf-dist/tex/latex/exam-zh/exam-zh-question.sty b/Master/texmf-dist/tex/latex/exam-zh/exam-zh-question.sty
index 4cb1c943fa4..f1de989e6e1 100644
--- a/Master/texmf-dist/tex/latex/exam-zh/exam-zh-question.sty
+++ b/Master/texmf-dist/tex/latex/exam-zh/exam-zh-question.sty
@@ -9,7 +9,7 @@
\RequirePackage{expl3}
\RequirePackage{xparse}
-\ProvidesExplPackage {exam-zh-question} {2023-06-22} {v0.1.26}
+\ProvidesExplPackage {exam-zh-question} {2023-06-28} {v0.1.27}
{exam-zh question module}
@@ -242,6 +242,77 @@
{ }
\prg_generate_conditional_variant:Nnn \int_compare:nNn { xNn } { T }
+
+% question 和 problem 环境的 list 间距设置
+\cs_new:Npn \__examzh_enumerate_set_question:
+ {
+ \setlist[enumerate, 1]
+ {
+ labelindent = \parindent,
+ labelsep = 2pt,
+ leftmargin = *,
+ % label = { \arabic * .}
+ label = {( \arabic * )},
+ }
+
+ \setlist[enumerate, 2]
+ {
+ % labelindent = *,
+ leftmargin = 2em,
+ widest = 0,
+ itemindent = 0em,
+ labelsep = 0pt,
+ % labelwidth = 2em,
+ listparindent = \parindent,
+ label = {( \alph * )},
+ }
+ \setlist[enumerate, 3]
+ {
+ % labelindent = *,
+ leftmargin = 2em,
+ widest = 0,
+ itemindent = 0em,
+ labelsep = 0pt,
+ % labelwidth = 2em,
+ listparindent = \parindent,
+ label = {( \roman * )},
+ }
+ }
+\cs_new:Npn \__examzh_enumerate_set_problem:
+ {
+ \setlist[enumerate, 1]
+ {
+ labelindent = 2em,
+ labelsep = 4pt,
+ leftmargin = *,
+ % label = { \arabic * .}
+ label = {( \arabic * )},
+ }
+
+ \setlist[enumerate, 2]
+ {
+ % labelindent = *,
+ leftmargin = 2em,
+ widest = 0,
+ itemindent = 0em,
+ labelsep = 0pt,
+ % labelwidth = 2em,
+ listparindent = \parindent,
+ label = {( \alph * )},
+ }
+ \setlist[enumerate, 3]
+ {
+ % labelindent = *,
+ leftmargin = 2em,
+ widest = 0,
+ itemindent = 0em,
+ labelsep = 0pt,
+ % labelwidth = 2em,
+ listparindent = \parindent,
+ label = {( \roman * )},
+ }
+ }
+
\cs_new:Npn \__examzh_question_begin:nn #1#2
{
\par
@@ -255,6 +326,8 @@
% 设置上方间距
% \addvspace { \l__examzh_question_top_sep_skip }
\vspace { \l__examzh_question_top_sep_skip }
+ % 设置 enumerate 环境间距
+ \__examzh_enumerate_set_question:
% 严格禁止孤行和寡行
\int_set:Nn \clubpenalty { 10000 }
\int_set:Nn \widowpenalty { 10000 }
@@ -264,7 +337,9 @@
% \@enumdepth 主要控制 enumerate 不同层级的编号
% 这样设置后,在 question 中使用 enumerate 会调用 level 2 的编号
% 也就是 question 中的 enumerate 环境直接从第二层开始
- \int_incr:N \@enumdepth
+
+ % \int_incr:N \@enumdepth
+
% 如果 show-points = auto 那么解答题显示分数,选择题和填空题不显示分数
% 这样设置考虑到选择题和填空题都是每道题一样的分数,在最开始的地方说明即可
% 而解答题不太一样
@@ -592,6 +667,8 @@
% 设置上方间距
% \addvspace { \l__examzh_question_top_sep_skip }
\vspace { \l__examzh_problem_top_sep_skip }
+ % 设置 enumerate 环境间距
+ \__examzh_enumerate_set_problem:
% 严格禁止孤行和寡行
\int_set:Nn \clubpenalty { 10000 }
\int_set:Nn \widowpenalty { 10000 }
@@ -601,7 +678,7 @@
% \@enumdepth 主要控制 enumerate 不同层级的编号
% 这样设置后,在 problem 中使用 enumerate 会调用 level 2 的编号
% 也就是 question 中的 enumerate 环境直接从第二层开始
- \int_incr:N \@enumdepth
+ % \int_incr:N \@enumdepth
% 如果 show-points = auto 那么解答题显示分数,选择题和填空题不显示分数
% 这样设置考虑到选择题和填空题都是每道题一样的分数,在最开始的地方说明即可
% 而解答题不太一样
@@ -1069,8 +1146,8 @@
{
% 不显示答案
\IfBooleanTF {#1}
- { \__examzh_fillin_no_answer_breakble_typeset: }
- { \__examzh_fillin_no_answer_unbreakble_typeset: }
+ { \__examzh_fillin_no_answer_breakable_typeset: }
+ { \__examzh_fillin_no_answer_unbreakable_typeset: }
}
}
{
@@ -1091,8 +1168,8 @@
{
% 不显示答案
\IfBooleanTF {#1}
- { \__examzh_fillin_no_answer_breakble_typeset: }
- { \__examzh_fillin_no_answer_unbreakble_typeset: }
+ { \__examzh_fillin_no_answer_breakable_typeset: }
+ { \__examzh_fillin_no_answer_unbreakable_typeset: }
}
}
\group_end:
@@ -1103,7 +1180,7 @@
There~is~no~such~noanswertype~named~#1!\\
Please~read~the~manual~carefully!
}
-\cs_new:Npn \__examzh_fillin_no_answer_unbreakble_typeset:
+\cs_new:Npn \__examzh_fillin_no_answer_unbreakable_typeset:
{
\str_case:VnF \l__examzh_fillin_no_answer_type_str
{
@@ -1116,7 +1193,7 @@
{ \l__examzh_fillin_no_answer_type_str }
}
}
-\cs_new:Npn \__examzh_fillin_no_answer_breakble_typeset:
+\cs_new:Npn \__examzh_fillin_no_answer_breakable_typeset:
{
\str_case:VnF \l__examzh_fillin_no_answer_type_str
{
@@ -1421,12 +1498,12 @@
\group_end:
\ignorespaces
}
-\cs_new:Npn \__examzh_fillin_blank_breakble_F:
+\cs_new:Npn \__examzh_fillin_blank_breakable_F:
{
% \hspace* { \l__examzh_fillin_F_width_dim }
\__examzh_fillin_breakable_hspace:NN \use:n \allowbreak
}
-\cs_new:Npn \__examzh_fillin_blank_unbreakble_F:
+\cs_new:Npn \__examzh_fillin_blank_unbreakable_F:
{
\hspace* { \l__examzh_fillin_F_width_dim }
% \__examzh_fillin_breakable_hspace:NN \use:n \allowbreak
diff --git a/Master/texmf-dist/tex/latex/exam-zh/exam-zh-symbols.sty b/Master/texmf-dist/tex/latex/exam-zh/exam-zh-symbols.sty
index 0ac2e1db4a5..3dc3c57c2a3 100644
--- a/Master/texmf-dist/tex/latex/exam-zh/exam-zh-symbols.sty
+++ b/Master/texmf-dist/tex/latex/exam-zh/exam-zh-symbols.sty
@@ -8,7 +8,7 @@
\RequirePackage{expl3}
-\ProvidesExplPackage {exam-zh-symbols} {2023-06-22} {v0.1.26}
+\ProvidesExplPackage {exam-zh-symbols} {2023-06-28} {v0.1.27}
{exam-zh symbols module}
\RequirePackage { tikz }
diff --git a/Master/texmf-dist/tex/latex/exam-zh/exam-zh-textfigure.sty b/Master/texmf-dist/tex/latex/exam-zh/exam-zh-textfigure.sty
index 5b21d1e2d35..bbc4bedac26 100644
--- a/Master/texmf-dist/tex/latex/exam-zh/exam-zh-textfigure.sty
+++ b/Master/texmf-dist/tex/latex/exam-zh/exam-zh-textfigure.sty
@@ -7,7 +7,7 @@
\RequirePackage{expl3}
-\ProvidesExplPackage {exam-zh-textfigure} {2023-06-22} {v0.1.26}
+\ProvidesExplPackage {exam-zh-textfigure} {2023-06-28} {v0.1.27}
{exam-zh text with figure module}
diff --git a/Master/texmf-dist/tex/latex/exam-zh/exam-zh.cls b/Master/texmf-dist/tex/latex/exam-zh/exam-zh.cls
index 818feeceb9b..e75c5f4d32c 100644
--- a/Master/texmf-dist/tex/latex/exam-zh/exam-zh.cls
+++ b/Master/texmf-dist/tex/latex/exam-zh/exam-zh.cls
@@ -6,7 +6,7 @@
\NeedsTeXFormat{LaTeX2e}[2017/04/15]
\RequirePackage{expl3}
-\ProvidesExplClass {exam-zh} {2023-06-22} {v0.1.26} {LaTeX template for Chinese exam}
+\ProvidesExplClass {exam-zh} {2023-06-28} {v0.1.27} {LaTeX template for Chinese exam}
% 检查 LaTeX2e kernel 版本
\msg_new:nnn { exam-zh } { latex-too-old }
@@ -533,7 +533,7 @@
\setlist{nosep}
\setlist
{
- labelsep = 4pt,
+ labelsep = 2pt,
}
\setlist[enumerate, 1]
@@ -541,19 +541,31 @@
labelindent = \parindent,
labelsep = 4pt,
leftmargin = *,
- label = { \arabic * .}
+ % label = { \arabic * .}
+ label = {( \arabic * )},
}
\setlist[enumerate, 2]
{
% labelindent = *,
- leftmargin = 0pt,
+ leftmargin = 2em,
widest = 0,
- itemindent = 4em,
+ itemindent = 0em,
labelsep = 0pt,
% labelwidth = 2em,
listparindent = \parindent,
- label = {( \arabic * )},
+ label = {( \alph * )},
+ }
+\setlist[enumerate, 3]
+ {
+ % labelindent = *,
+ leftmargin = 2em,
+ widest = 0,
+ itemindent = 0em,
+ labelsep = 0pt,
+ % labelwidth = 2em,
+ listparindent = \parindent,
+ label = {( \roman * )},
}
% 多种方法: method环境
\newlist{method}{enumerate}{1}