texlive[67505] Master/texmf-dist: exam-zh (28jun23)

commits+karl at tug.org commits+karl at tug.org
Wed Jun 28 22:08:13 CEST 2023


Revision: 67505
          http://tug.org/svn/texlive?view=revision&revision=67505
Author:   karl
Date:     2023-06-28 22:08:13 +0200 (Wed, 28 Jun 2023)
Log Message:
-----------
exam-zh (28jun23)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/xelatex/exam-zh/CHANGELOG.md
    trunk/Master/texmf-dist/doc/xelatex/exam-zh/doc/body/usage.tex
    trunk/Master/texmf-dist/doc/xelatex/exam-zh/doc/exam-zh-doc.pdf
    trunk/Master/texmf-dist/doc/xelatex/exam-zh/doc/exam-zh-doc.tex
    trunk/Master/texmf-dist/doc/xelatex/exam-zh/examples/example-multiple.pdf
    trunk/Master/texmf-dist/doc/xelatex/exam-zh/examples/example-single.pdf
    trunk/Master/texmf-dist/tex/latex/exam-zh/exam-zh-chinese-english.sty
    trunk/Master/texmf-dist/tex/latex/exam-zh/exam-zh-choices.sty
    trunk/Master/texmf-dist/tex/latex/exam-zh/exam-zh-font.sty
    trunk/Master/texmf-dist/tex/latex/exam-zh/exam-zh-question.sty
    trunk/Master/texmf-dist/tex/latex/exam-zh/exam-zh-symbols.sty
    trunk/Master/texmf-dist/tex/latex/exam-zh/exam-zh-textfigure.sty
    trunk/Master/texmf-dist/tex/latex/exam-zh/exam-zh.cls

Modified: trunk/Master/texmf-dist/doc/xelatex/exam-zh/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/xelatex/exam-zh/CHANGELOG.md	2023-06-28 20:07:55 UTC (rev 67504)
+++ trunk/Master/texmf-dist/doc/xelatex/exam-zh/CHANGELOG.md	2023-06-28 20:08:13 UTC (rev 67505)
@@ -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
 
 

Modified: trunk/Master/texmf-dist/doc/xelatex/exam-zh/doc/body/usage.tex
===================================================================
--- trunk/Master/texmf-dist/doc/xelatex/exam-zh/doc/body/usage.tex	2023-06-28 20:07:55 UTC (rev 67504)
+++ trunk/Master/texmf-dist/doc/xelatex/exam-zh/doc/body/usage.tex	2023-06-28 20:08:13 UTC (rev 67505)
@@ -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} 之前使用

Modified: trunk/Master/texmf-dist/doc/xelatex/exam-zh/doc/exam-zh-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/xelatex/exam-zh/doc/exam-zh-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/xelatex/exam-zh/doc/exam-zh-doc.tex	2023-06-28 20:07:55 UTC (rev 67504)
+++ trunk/Master/texmf-dist/doc/xelatex/exam-zh/doc/exam-zh-doc.tex	2023-06-28 20:08:13 UTC (rev 67505)
@@ -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}
 
 

Modified: trunk/Master/texmf-dist/doc/xelatex/exam-zh/examples/example-multiple.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/xelatex/exam-zh/examples/example-single.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/tex/latex/exam-zh/exam-zh-chinese-english.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/exam-zh/exam-zh-chinese-english.sty	2023-06-28 20:07:55 UTC (rev 67504)
+++ trunk/Master/texmf-dist/tex/latex/exam-zh/exam-zh-chinese-english.sty	2023-06-28 20:08:13 UTC (rev 67505)
@@ -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 }

Modified: trunk/Master/texmf-dist/tex/latex/exam-zh/exam-zh-choices.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/exam-zh/exam-zh-choices.sty	2023-06-28 20:07:55 UTC (rev 67504)
+++ trunk/Master/texmf-dist/tex/latex/exam-zh/exam-zh-choices.sty	2023-06-28 20:08:13 UTC (rev 67505)
@@ -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

Modified: trunk/Master/texmf-dist/tex/latex/exam-zh/exam-zh-font.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/exam-zh/exam-zh-font.sty	2023-06-28 20:07:55 UTC (rev 67504)
+++ trunk/Master/texmf-dist/tex/latex/exam-zh/exam-zh-font.sty	2023-06-28 20:08:13 UTC (rev 67505)
@@ -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 }

Modified: trunk/Master/texmf-dist/tex/latex/exam-zh/exam-zh-question.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/exam-zh/exam-zh-question.sty	2023-06-28 20:07:55 UTC (rev 67504)
+++ trunk/Master/texmf-dist/tex/latex/exam-zh/exam-zh-question.sty	2023-06-28 20:08:13 UTC (rev 67505)
@@ -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

Modified: trunk/Master/texmf-dist/tex/latex/exam-zh/exam-zh-symbols.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/exam-zh/exam-zh-symbols.sty	2023-06-28 20:07:55 UTC (rev 67504)
+++ trunk/Master/texmf-dist/tex/latex/exam-zh/exam-zh-symbols.sty	2023-06-28 20:08:13 UTC (rev 67505)
@@ -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 }

Modified: trunk/Master/texmf-dist/tex/latex/exam-zh/exam-zh-textfigure.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/exam-zh/exam-zh-textfigure.sty	2023-06-28 20:07:55 UTC (rev 67504)
+++ trunk/Master/texmf-dist/tex/latex/exam-zh/exam-zh-textfigure.sty	2023-06-28 20:08:13 UTC (rev 67505)
@@ -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}
 
 

Modified: trunk/Master/texmf-dist/tex/latex/exam-zh/exam-zh.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/exam-zh/exam-zh.cls	2023-06-28 20:07:55 UTC (rev 67504)
+++ trunk/Master/texmf-dist/tex/latex/exam-zh/exam-zh.cls	2023-06-28 20:08:13 UTC (rev 67505)
@@ -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,20 +541,32 @@
     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}
 \setlist[method, 1]



More information about the tex-live-commits mailing list.