diff options
-rw-r--r-- | Master/texmf-dist/doc/xelatex/exam-zh/CHANGELOG.md | 7 | ||||
-rw-r--r-- | Master/texmf-dist/doc/xelatex/exam-zh/doc/body/usage.tex | 6 | ||||
-rw-r--r-- | Master/texmf-dist/doc/xelatex/exam-zh/doc/exam-zh-doc.pdf | bin | 1595064 -> 1595273 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/xelatex/exam-zh/doc/exam-zh-doc.tex | 3 | ||||
-rw-r--r-- | Master/texmf-dist/doc/xelatex/exam-zh/examples/example-multiple.pdf | bin | 160194 -> 160210 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/xelatex/exam-zh/examples/example-single.pdf | bin | 134479 -> 134928 bytes | |||
-rw-r--r-- | Master/texmf-dist/tex/latex/exam-zh/exam-zh-chinese-english.sty | 2 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/exam-zh/exam-zh-choices.sty | 2 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/exam-zh/exam-zh-font.sty | 2 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/exam-zh/exam-zh-question.sty | 99 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/exam-zh/exam-zh-symbols.sty | 2 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/exam-zh/exam-zh-textfigure.sty | 2 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/exam-zh/exam-zh.cls | 24 |
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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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} |