summaryrefslogtreecommitdiff
path: root/macros/xetex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-06-02 03:06:11 +0000
committerNorbert Preining <norbert@preining.info>2023-06-02 03:06:11 +0000
commitde88ff1738cd9e29da5d2ce94b53d9035d9be6a4 (patch)
tree907849d1a17b946138ab60883a675935df27b427 /macros/xetex
parenta378d2379e220fa1022ae052bcd1aed6bf0d2c41 (diff)
CTAN sync 202306020305
Diffstat (limited to 'macros/xetex')
-rw-r--r--macros/xetex/latex/exam-zh/CHANGELOG.md34
-rw-r--r--macros/xetex/latex/exam-zh/README.md2
-rw-r--r--macros/xetex/latex/exam-zh/doc/back/main-changelog.tex1
-rw-r--r--macros/xetex/latex/exam-zh/doc/back/package.tex2
-rw-r--r--macros/xetex/latex/exam-zh/doc/body/introduction.tex8
-rw-r--r--macros/xetex/latex/exam-zh/doc/body/usage.tex24
-rw-r--r--macros/xetex/latex/exam-zh/doc/exam-zh-doc-setup.tex7
-rw-r--r--macros/xetex/latex/exam-zh/doc/exam-zh-doc.pdfbin1149933 -> 1595118 bytes
-rw-r--r--macros/xetex/latex/exam-zh/doc/exam-zh-doc.tex18
-rw-r--r--macros/xetex/latex/exam-zh/doc/figures/xdyy-qrcode.pngbin0 -> 457054 bytes
-rw-r--r--macros/xetex/latex/exam-zh/examples/example-multiple.pdfbin169880 -> 160183 bytes
-rw-r--r--macros/xetex/latex/exam-zh/examples/example-single.pdfbin144619 -> 134468 bytes
-rw-r--r--macros/xetex/latex/exam-zh/examples/example-single.tex2
-rw-r--r--macros/xetex/latex/exam-zh/tex/exam-zh-chinese-english.sty2
-rw-r--r--macros/xetex/latex/exam-zh/tex/exam-zh-choices.sty4
-rw-r--r--macros/xetex/latex/exam-zh/tex/exam-zh-font.sty2
-rw-r--r--macros/xetex/latex/exam-zh/tex/exam-zh-question.sty185
-rw-r--r--macros/xetex/latex/exam-zh/tex/exam-zh-symbols.sty4
-rw-r--r--macros/xetex/latex/exam-zh/tex/exam-zh-textfigure.sty6
-rw-r--r--macros/xetex/latex/exam-zh/tex/exam-zh.cls26
20 files changed, 268 insertions, 59 deletions
diff --git a/macros/xetex/latex/exam-zh/CHANGELOG.md b/macros/xetex/latex/exam-zh/CHANGELOG.md
index 1fb88d27ec..384d067eb5 100644
--- a/macros/xetex/latex/exam-zh/CHANGELOG.md
+++ b/macros/xetex/latex/exam-zh/CHANGELOG.md
@@ -5,6 +5,40 @@
格式参照 [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
并且此项目遵守 [Semantic Versioning](https://semver.org/spec/v2.0.0.html)。
+
+## [0.1.25] - 2023-06-01
+
+### Changed
+
+- 修改 `\sim*` 的效果为原来的 `\sim`(I6Z0MD)
+
+
+## [0.1.24] - 2023-05-11
+
+### Fixed
+
+- 修复 TeXLive2023 造成的师生两版编译失效问题
+
+## [0.1.23] - 2022-12-20
+
+### Changed
+
+- `\paren` 默认更改为 `show`
+
+
+## [0.1.22] - 2022-09-30
+
+### Fixed
+
+- 修复 `foot-content` 中无法使用命令的问题(#I5NNR8)
+
+## [0.1.21] - 2022-09-24
+
+### Fixed
+
+- 修复 `question` 环境结合 `\fillin` 的 label 对齐问题
+
+
## [0.1.20] - 2022-09-18
### Added
diff --git a/macros/xetex/latex/exam-zh/README.md b/macros/xetex/latex/exam-zh/README.md
index 786d845d0c..9fdc5f820c 100644
--- a/macros/xetex/latex/exam-zh/README.md
+++ b/macros/xetex/latex/exam-zh/README.md
@@ -11,6 +11,7 @@ In exam-zh, you can
- 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
@@ -24,6 +25,7 @@ Issues and pull requests are welcome: [issues]( https://gitee.com/xkwxdyy/exam-z
- 作者:Zeping Lee
- 维护者:Kangwei Xia, Lijun Guo
- 授权:[LaTeX Project Public License 1.3c](https://www.latex-project.org/lppl.txt)
+- QQ 用户交流群:652500180
本项目提供了一个中国高考试卷样式的 LaTeX 模板,旨在帮助中小学教师更方便地使用 LaTeX。模板具有以下特性:
diff --git a/macros/xetex/latex/exam-zh/doc/back/main-changelog.tex b/macros/xetex/latex/exam-zh/doc/back/main-changelog.tex
index 381bbf0b13..f3a51e79e1 100644
--- a/macros/xetex/latex/exam-zh/doc/back/main-changelog.tex
+++ b/macros/xetex/latex/exam-zh/doc/back/main-changelog.tex
@@ -7,4 +7,5 @@
\item 2022.4 开发字体模块
\item 2022.6 开发密封线、草稿纸、评分框
\item 2022.7 增加语文英语题型
+ \item 2022.8 开发图文排版模版
\end{itemize} \ No newline at end of file
diff --git a/macros/xetex/latex/exam-zh/doc/back/package.tex b/macros/xetex/latex/exam-zh/doc/back/package.tex
index d12f085d58..109b44244d 100644
--- a/macros/xetex/latex/exam-zh/doc/back/package.tex
+++ b/macros/xetex/latex/exam-zh/doc/back/package.tex
@@ -28,7 +28,7 @@
\file{exam-zh-textfigure.sty} 的宏包依赖:
\begin{itemize}
- \item \pkg{wrapstuff}:图文混排
+ \item \pkg{wrapstuff}:图文混排(会自动检测,本地无此宏包则不会加载)
\item \pkg{tabularray}:表格
\item \pkg{varwidth}:“弹性”的 \env{minipage}
\item \pkg{graphicx}:插图
diff --git a/macros/xetex/latex/exam-zh/doc/body/introduction.tex b/macros/xetex/latex/exam-zh/doc/body/introduction.tex
index e072c02f8b..c843772466 100644
--- a/macros/xetex/latex/exam-zh/doc/body/introduction.tex
+++ b/macros/xetex/latex/exam-zh/doc/body/introduction.tex
@@ -18,4 +18,10 @@
但是上述前人所做的工作值得参考,比如 \cls{exam-zh} 的 A4 和 A3 页面切换就参考了 \href{https://www.ctan.org/pkg/jnuexam}{jnuexam} 项目。
-本模板将借鉴前辈经验,重新设计,并使用 \LaTeX3 编写,以适应 \TeX 技术发展潮流; 同时还将构建一套简洁的接口,方便用户使用。 \ No newline at end of file
+本模板将借鉴前辈经验,重新设计,并使用 \LaTeX3 编写,以适应 \TeX 技术发展潮流; 同时还将构建一套简洁的接口,方便用户使用。
+
+如果您觉得 \cls{exam-zh} 对您有帮助,也欢迎进行打赏,这会激励维护者更好地维护和开发 \cls{exam-zh}。
+
+\begin{center}
+ \includegraphics[width = 0.7\textwidth]{xdyy-qrcode.png}
+\end{center} \ No newline at end of file
diff --git a/macros/xetex/latex/exam-zh/doc/body/usage.tex b/macros/xetex/latex/exam-zh/doc/body/usage.tex
index f796821936..29adeaf5a2 100644
--- a/macros/xetex/latex/exam-zh/doc/body/usage.tex
+++ b/macros/xetex/latex/exam-zh/doc/body/usage.tex
@@ -505,7 +505,7 @@
fillin/type = paren,
paren/show-paren = true
}
- \newcommand{\true}{$\surd$}
+ \newcommand{\true}{$\checkmark$}
\newcommand{\false}{$\times$}
\begin{question}
@@ -992,6 +992,20 @@
\end{function}
+
+\subsubsection{页面设置}
+
+\cls{exam-zh} 根据是 |a3paper| 还是 |a4paper| 有不同页面设置,而为了能够实现用户接口,将页面设置部分放在了 \tn{AtEndPreamble} 命令中,所以用户如果想要修改页面设置,也需要在导言区使用
+
+\begin{latexcode}
+ \AtEndPreamble{%
+ \geometry{
+ ...
+ }
+ }
+\end{latexcode}
+将用户设置放在 \cls{exam-zh} 的默认设置后从而使其产生作用。
+
\subsection{参数设置}
\begin{function}{\examsetup}
@@ -1156,8 +1170,8 @@
\end{function}
\begin{function}[added = 2022-09-12]{page/head-content}
- \begin{ccnusyntax}[emph={[1]foot-content}]
- foot-content = (*\meta{页眉格式}*)
+ \begin{ccnusyntax}[emph={[1]head-content}]
+ head-content = (*\meta{页眉格式}*)
\end{ccnusyntax}
页眉内容设置。内容为 \pkg{fancyhdr} 宏包的页眉命令,比如
\begin{latexcode}
@@ -2011,9 +2025,9 @@
控制 \tn{paren} 答案的显示与否。注意和 \opt{question/show-answer} 的先后顺序可能会影响结果。
\end{function}
-\begin{function}[added = 2022-07-15]{paren/show-paren}
+\begin{function}[added = 2022-07-15,updated = 2022-12-25]{paren/show-paren}
\begin{ccnusyntax}[emph={[1]show-paren}]
- show-paren = (*\TFF*)
+ show-paren = (*\TTF*)
\end{ccnusyntax}
是否显示 \tn{paren} 命令的括号。
\end{function}
diff --git a/macros/xetex/latex/exam-zh/doc/exam-zh-doc-setup.tex b/macros/xetex/latex/exam-zh/doc/exam-zh-doc-setup.tex
index d44f20d8a6..9a1f2a6844 100644
--- a/macros/xetex/latex/exam-zh/doc/exam-zh-doc-setup.tex
+++ b/macros/xetex/latex/exam-zh/doc/exam-zh-doc-setup.tex
@@ -20,7 +20,7 @@
\graphicspath{{figures}}
\hypersetup{
- pdftitle = {exam-zh: 高考试卷 LaTeX 模板},
+ pdftitle = {exam-zh: 中国试卷 LaTeX 模板},
pdfauthor = {夏康玮}
}
% 全角标点放在引号中,需要改成半角式,否则间距过大,不好看
@@ -31,11 +31,12 @@
\title{\textcolor{MaterialIndigo800}{%
- \textbf{exam-zh: 高考试卷 \LaTeX \xpinyin[font=\sffamily,format=\color{MaterialIndigo800}]{模}{mu2}板}}}
+ \textbf{exam-zh: 中国试卷 \LaTeX \xpinyin[font=\sffamily,format=\color{MaterialIndigo800}]{模}{mu2}板}}}
\author{李泽平,夏康玮,郭李军}
\date{\DocDate\quad \DocVersion%
\thanks{%
- \url{https://gitee.com/xkwxdyy/exam-zh}
+ \url{https://gitee.com/xkwxdyy/exam-zh} \\
+ \hspace*{1.5em} QQ 用户交流群:652500180
}
}
diff --git a/macros/xetex/latex/exam-zh/doc/exam-zh-doc.pdf b/macros/xetex/latex/exam-zh/doc/exam-zh-doc.pdf
index 9eea3d0481..2ae39ae7a5 100644
--- a/macros/xetex/latex/exam-zh/doc/exam-zh-doc.pdf
+++ b/macros/xetex/latex/exam-zh/doc/exam-zh-doc.pdf
Binary files differ
diff --git a/macros/xetex/latex/exam-zh/doc/exam-zh-doc.tex b/macros/xetex/latex/exam-zh/doc/exam-zh-doc.tex
index e9362101e3..8a5b804084 100644
--- a/macros/xetex/latex/exam-zh/doc/exam-zh-doc.tex
+++ b/macros/xetex/latex/exam-zh/doc/exam-zh-doc.tex
@@ -1,7 +1,7 @@
\documentclass{xdyydoc}
-\newcommand{\DocDate}{2022-9-18}
-\newcommand{\DocVersion}{v0.1.20}
+\newcommand{\DocDate}{2022-10-4}
+\newcommand{\DocVersion}{v0.1.25}
\input{exam-zh-doc-setup.tex}
\usepackage{amssymb}
@@ -60,7 +60,7 @@
\section{\cls{exam-zh}:TODO}
\begin{itemize}
- \item 增加试卷范例(语文,英语)
+ % \item 增加试卷范例(语文,英语)
\item 答案控制
\begin{itemize}
\item 选择题
@@ -82,8 +82,18 @@
\end{itemize}
\end{itemize}
\item 选择题答案标记
- \item 图文排版(参考 xkwxdyy 的 \pkg{text-figure} 宏包和 qinglee 的 \pkg{wrapstuff} 宏包)
+ \item \env{choices} 环境“均分”效果
+ % \item 图文排版(参考 xkwxdyy 的 \pkg{text-figure} 宏包和 qinglee 的 \pkg{wrapstuff} 宏包)
\item 测试兼容性
+ \item \env{question} 环境的引用
+ \item \tn{fillin} 的进一步优化
+ \begin{itemize}
+ \item 根据答案的宽度留白
+ \item \tn{fillin*} 的基线能否自动调整
+ \end{itemize}
+ \item 每个子包设置用户接口
+ \item 通过 \tn{CJKunderline} 的 \meta{hidden} 键实现 \tn{fillin} 的无答案的时候,长度是答案的长度
+ \item \env{poem} 环境的引用字体不是斜体
\end{itemize}
diff --git a/macros/xetex/latex/exam-zh/doc/figures/xdyy-qrcode.png b/macros/xetex/latex/exam-zh/doc/figures/xdyy-qrcode.png
new file mode 100644
index 0000000000..38737c8a3b
--- /dev/null
+++ b/macros/xetex/latex/exam-zh/doc/figures/xdyy-qrcode.png
Binary files differ
diff --git a/macros/xetex/latex/exam-zh/examples/example-multiple.pdf b/macros/xetex/latex/exam-zh/examples/example-multiple.pdf
index 36f483c744..967799ad5f 100644
--- a/macros/xetex/latex/exam-zh/examples/example-multiple.pdf
+++ b/macros/xetex/latex/exam-zh/examples/example-multiple.pdf
Binary files differ
diff --git a/macros/xetex/latex/exam-zh/examples/example-single.pdf b/macros/xetex/latex/exam-zh/examples/example-single.pdf
index a49160b31e..dd0226e183 100644
--- a/macros/xetex/latex/exam-zh/examples/example-single.pdf
+++ b/macros/xetex/latex/exam-zh/examples/example-single.pdf
Binary files differ
diff --git a/macros/xetex/latex/exam-zh/examples/example-single.tex b/macros/xetex/latex/exam-zh/examples/example-single.tex
index f57cd8d346..4a9e7e3033 100644
--- a/macros/xetex/latex/exam-zh/examples/example-single.tex
+++ b/macros/xetex/latex/exam-zh/examples/example-single.tex
@@ -4,7 +4,7 @@
\examsetup{
page/size=a4paper,
paren/show-paren=true,
- paren/show-answer=false,
+ paren/show-answer=true,
fillin/show-answer=false,
solution/show-solution=false
}
diff --git a/macros/xetex/latex/exam-zh/tex/exam-zh-chinese-english.sty b/macros/xetex/latex/exam-zh/tex/exam-zh-chinese-english.sty
index 5ac358950d..2e84afa5c6 100644
--- a/macros/xetex/latex/exam-zh/tex/exam-zh-chinese-english.sty
+++ b/macros/xetex/latex/exam-zh/tex/exam-zh-chinese-english.sty
@@ -8,7 +8,7 @@
\RequirePackage{expl3}
-\ProvidesExplPackage {exam-zh-chinese-english} {2022-9-18} {v0.1.20}
+\ProvidesExplPackage {exam-zh-chinese-english} {2023-06-01} {v0.1.25}
{exam-zh chinese and english module}
\PassOptionsToPackage { tcolorbox } { most }
diff --git a/macros/xetex/latex/exam-zh/tex/exam-zh-choices.sty b/macros/xetex/latex/exam-zh/tex/exam-zh-choices.sty
index 07a4f106ae..f564fdff66 100644
--- a/macros/xetex/latex/exam-zh/tex/exam-zh-choices.sty
+++ b/macros/xetex/latex/exam-zh/tex/exam-zh-choices.sty
@@ -1,7 +1,7 @@
%
% Copyright (c) 2022 Zeping Lee
% Released under the LaTeX Project Public License v1.3c License.
-% Repository: https://gitee.com/zepinglee/exam-zh
+% Repository: https://gitee.com/xkwxdyy/exam-zh
%
\NeedsTeXFormat{LaTeX2e}
@@ -9,7 +9,7 @@
\RequirePackage{expl3}
\RequirePackage{xparse}
-\ProvidesExplPackage {exam-zh-choices} {2022-9-18} {v0.1.20}
+\ProvidesExplPackage {exam-zh-choices} {2023-06-01} {v0.1.25}
{exam-zh choices module}
\dim_new:N \l__examzh_choices_column_sep_dim
diff --git a/macros/xetex/latex/exam-zh/tex/exam-zh-font.sty b/macros/xetex/latex/exam-zh/tex/exam-zh-font.sty
index a63484a7df..71320f5305 100644
--- a/macros/xetex/latex/exam-zh/tex/exam-zh-font.sty
+++ b/macros/xetex/latex/exam-zh/tex/exam-zh-font.sty
@@ -9,7 +9,7 @@
\RequirePackage{expl3}
\RequirePackage{xparse}
-\ProvidesExplPackage {exam-zh-font} {2022-9-18} {v0.1.20}
+\ProvidesExplPackage {exam-zh-font} {2023-06-01} {v0.1.25}
{exam-zh font module}
\RequirePackage { unicode-math }
diff --git a/macros/xetex/latex/exam-zh/tex/exam-zh-question.sty b/macros/xetex/latex/exam-zh/tex/exam-zh-question.sty
index dd9d76609e..40dde06024 100644
--- a/macros/xetex/latex/exam-zh/tex/exam-zh-question.sty
+++ b/macros/xetex/latex/exam-zh/tex/exam-zh-question.sty
@@ -9,7 +9,7 @@
\RequirePackage{expl3}
\RequirePackage{xparse}
-\ProvidesExplPackage {exam-zh-question} {2022-9-18} {v0.1.20}
+\ProvidesExplPackage {exam-zh-question} {2023-06-01} {v0.1.25}
{exam-zh question module}
@@ -19,6 +19,7 @@
{ \RequirePackage [ most ] { tcolorbox } }
% \RequirePackage { zref-savepos }
\RequirePackage { xeCJKfntef }
+\RequirePackage { enumitem }
% https://github.com/CTeX-org/forum/issues/264#issuecomment-1200087776
\disable@package@load { etex }
@@ -45,6 +46,11 @@
% ulem 宏包重定义了 \emph,使用 \normalem 恢复
\normalem
+\setlist{nosep}
+\setlist
+ {
+ labelsep = 4pt,
+ }
% question 环境相关变量
@@ -70,6 +76,7 @@
\skip_new:N \l__examzh_question_bottom_sep_skip
% label 的对齐
\tl_new:N \l__examzh_question_label_align_tl
+\tl_new:N \l__examzh_problem_label_align_tl
\keys_define:nn { exam-zh }
@@ -188,7 +195,7 @@
label .tl_set:N = \l__examzh_question_label_tl,
label-align .choices:nn =
{ left, center, right }
- { \tl_set_eq:NN \l__examzh_question_label_align_tl \l_keys_choice_tl },
+ { \tl_set_eq:NN \l__examzh_problem_label_align_tl \l_keys_choice_tl },
points-prelabel .tl_set:N = \l__examzh_problem_points_prelabel_tl,
points-postlabel .tl_set:N = \l__examzh_problem_points_postlabel_tl,
}
@@ -215,18 +222,24 @@
% 选择题和填空题的题干
\NewDocumentEnvironment { question } { O { } +b }
{
- \bool_set_false:N \l__examzh_question_problem_style_bool
- \__examzh_question_begin:nn {#1}{#2}
+ % \bool_set_false:N \l__examzh_question_problem_style_bool
+ \group_begin:
+ \__examzh_question_begin:nn {#1}{#2}
+ \__examzh_question_end:nn {#1}{#2}
+ \group_end:
}
- { \__examzh_question_end:nn {#1}{#2} }
+ {}
% 解答题
\NewDocumentEnvironment { problem } { O { } +b }
{
- \bool_set_true:N \l__examzh_question_problem_style_bool
- \__examzh_problem_begin:nn {#1}{#2}
+ % \bool_set_true:N \l__examzh_question_problem_style_bool
+ \group_begin:
+ \__examzh_problem_begin:nn {#1}{#2}
+ \__examzh_problem_end:nn {#1}{#2}
+ \group_end:
}
- { \__examzh_problem_end:nn {#1}{#2} }
+ { }
\prg_generate_conditional_variant:Nnn \int_compare:nNn { xNn } { T }
\cs_new:Npn \__examzh_question_begin:nn #1#2
@@ -263,11 +276,14 @@
\list
{
% \int_use:N \g__examzh_question_index_int .
- \__examzh_question_make_label:n
+ \bool_if:NTF \l__examzh_question_combine_fillin_bool
{
- \bool_if:NT \l__examzh_question_combine_fillin_bool
+ % \framebox[6em]
+ % \fbox
+ % {
+ \__examzh_question_make_label:n
{
- \tl_if_blank:VTF \l__examzh_question_combine_fillin_args_tl
+ \tl_if_blank:VTF \l__examzh_question_combine_fillin_args_tl
{ \fillin }
{
\use:x
@@ -275,18 +291,43 @@
\exp_not:N \fillin \l__examzh_question_combine_fillin_args_tl
}
}
+ \__examzh_question_the_label:
}
- \int_compare:xNnT { \g__examzh_question_index_int } < { 11 }
- { \phantom {1} }
- \__examzh_question_the_label:
+ % }
}
+ {
+ \__examzh_question_make_label:n
+ {
+ \__examzh_question_the_label:
+ }
+ }
+ % \__examzh_question_make_label:n
+ % {
+ % \bool_if:NT \l__examzh_question_combine_fillin_bool
+ % {
+ % % \makebox
+ % % {
+ % \tl_if_blank:VTF \l__examzh_question_combine_fillin_args_tl
+ % { \fillin }
+ % {
+ % \use:x
+ % {
+ % \exp_not:N \fillin \l__examzh_question_combine_fillin_args_tl
+ % }
+ % }
+ % % }
+ % }
+ % \int_compare:xNnT { \g__examzh_question_index_int } < { 11 }
+ % { \phantom {1} }
+ % \__examzh_question_the_label:
+ % }
}
{
% 用 group 是为了防止 combine-fillin 的 type 影响了环境里面的 fillin 的type
\group_begin:
\dim_gset:Nn \topsep { 0pt }
\dim_gset:Nn \partopsep { 0pt }
- \dim_gset:Nn \itemsep { 0pt }
+ \dim_gset:Nn \itemsep { 0em }
\dim_gset:Nn \parsep { 0pt }
% \group_begin:
% 上面 \fillin 里面的设置是局部的,这样的问题是 question 的可选参数改 type 的时候不会影响 \l__examzh_fillin_type_str 的值
@@ -371,6 +412,27 @@
\keys_set:nx { exam-zh / fillin } { \seq_use:Nn \l_tmpa_seq {,} }
}
}
+\cs_new:Npn \__examzh_problem_begin_labelsep_labelwidth_set:
+ {
+ \str_case:Vn \l__examzh_problem_label_align_tl
+ {
+ { left }
+ {
+ \dim_gset:Nn \labelsep { .7em }
+ \dim_gset:Nn \labelwidth { 1.8em }
+ }
+ { center }
+ {
+ \dim_gset:Nn \labelsep { .7em }
+ \dim_gset:Nn \labelwidth { 1.3em }
+ }
+ { right }
+ {
+ \dim_gset:Nn \labelsep { .7em }
+ \dim_gset:Nn \labelwidth { 1.3em }
+ }
+ }
+ }
\cs_new:Npn \__examzh_question_begin_labelsep_labelwidth_set:
{
\bool_if:NTF \l__examzh_question_combine_fillin_bool
@@ -384,14 +446,32 @@
{ paren }
{
% combin-left-paren
- \dim_gset:Nn \labelsep { 2.8em }
- \dim_gset:Nn \labelwidth { 4.2em }
+ \bool_if:NTF \l__examzh_question_show_fillin_answer_bool
+ {
+ % 显示答案
+ \dim_gset:Nn \labelsep { 2.6em }
+ \dim_gset:Nn \labelwidth { 3.8em }
+ }
+ {
+ % 不显示答案
+ \dim_gset:Nn \labelsep { 4.5em }
+ \dim_gset:Nn \labelwidth { 3.8em }
+ }
}
{ line }
{
% combin-left-line
- \dim_gset:Nn \labelsep { 2.4em }
- \dim_gset:Nn \labelwidth { 3.8em }
+ \bool_if:NTF \l__examzh_question_show_fillin_answer_bool
+ {
+ % 显示答案
+ \dim_gset:Nn \labelsep { 2.2em }
+ \dim_gset:Nn \labelwidth { 3.8em }
+ }
+ {
+ % 不显示答案
+ \dim_gset:Nn \labelsep { 3.8em }
+ \dim_gset:Nn \labelwidth { 3.8em }
+ }
}
}
{
@@ -425,8 +505,44 @@
}
{ right }
{
- \dim_gset:Nn \labelsep { .7em }
- \dim_gset:Nn \labelwidth { 1.3em }
+ \str_case:VnF \l__examzh_fillin_type_str
+ {
+ { paren }
+ {
+ % combin-left-paren
+ \bool_if:NTF \l__examzh_question_show_fillin_answer_bool
+ {
+ % 显示答案
+ \dim_gset:Nn \labelsep { 3.8em }
+ \dim_gset:Nn \labelwidth { 2em }
+ }
+ {
+ % 不显示答案
+ \dim_gset:Nn \labelsep { 5.8em }
+ \dim_gset:Nn \labelwidth { 2em }
+ }
+ }
+ { line }
+ {
+ % combin-left-line
+ \bool_if:NTF \l__examzh_question_show_fillin_answer_bool
+ {
+ % 显示答案
+ \dim_gset:Nn \labelsep { 0.7em }
+ \dim_gset:Nn \labelwidth { 1.3em }
+ }
+ {
+ % 不显示答案
+ \dim_gset:Nn \labelsep { 5.2em }
+ \dim_gset:Nn \labelwidth { 2em }
+ }
+ }
+ }
+ {
+ % combin-left-paren/line 外的
+ \dim_gset:Nn \labelsep { 2.8em }
+ \dim_gset:Nn \labelwidth { 1.3em }
+ }
}
}
}
@@ -497,7 +613,7 @@
\list
{
% \int_use:N \g__examzh_question_index_int .
- \__examzh_question_make_label:n
+ \__examzh_problem_make_label:n
{
\__examzh_question_the_label:
}
@@ -509,12 +625,7 @@
\dim_gset:Nn \partopsep { 0pt }
\dim_gset:Nn \itemsep { 0pt }
\dim_gset:Nn \parsep { 0pt }
- % \group_begin:
- % 上面 \fillin 里面的设置是局部的,这样的问题是 question 的可选参数改 type 的时候不会影响 \l__examzh_fillin_type_str 的值
- % 所以要把 \l__examzh_question_combine_fillin_args_tl 里关于 type 的选取出来
- \__examzh_question_begin_fillin_type_set:
- \__examzh_question_begin_labelsep_labelwidth_set:
- % \group_end:
+ \__examzh_problem_begin_labelsep_labelwidth_set:
\dim_gset:Nn \leftmargin { 0pt }
\dim_gset:Nn \itemindent { 2em }
\dim_gset_eq:NN \listparindent \itemindent
@@ -565,6 +676,15 @@
{ right } { \hss \llap { #1 } }
}
}
+\cs_new:Npn \__examzh_problem_make_label:n #1
+ {
+ \str_case:Vn \l__examzh_problem_label_align_tl
+ {
+ { left } { \rlap { #1 } \hss }
+ { center } { \hss \clap { #1 } \hss }
+ { right } { \hss \llap { #1 } }
+ }
+ }
\NewDocumentCommand \AddQuestionCounter { m m }
{
% 生成用户层命令
@@ -801,7 +921,7 @@
{
show-answer = false,
text-color = black,
- show-paren = false,
+ show-paren = true,
type = hfill
}
\keys_define:nn { exam-zh }
@@ -872,6 +992,9 @@
% no-answer-type = counter 的计数器
\int_new:N \g__examzh_fillin_no_answer_counter_int
+% 控制fillin 没答案的时候的长度由内容长度决定
+\bool_new:N \l__examzh_fillin_width_type_hidden_bool
+
\keys_define:nn { exam-zh / fillin }
{
type .code:n =
@@ -888,7 +1011,7 @@
color .tl_set:N = \l__examzh_fillin_color_tl,
text-color .tl_set:N = \l__examzh_fillin_text_color_tl,
no-answer-type .choices:nn =
- { blacktriangle, counter, none }
+ { blacktriangle, counter, none, hidden }
{ \str_set:Nx \l__examzh_fillin_no_answer_type_str { \l_keys_choice_tl } },
no-answer-counter-index .int_gset:N = \g__examzh_fillin_no_answer_counter_int,
no-answer-counter-label .tl_set:N = \l__examzh_fillin_label_tl,
@@ -1488,8 +1611,8 @@
\NewDocumentEnvironment { solution } { O{ } +b }
{
% \addvspace { \l__examzh_solution_top_sep_skip }
- \vspace { \l__examzh_solution_top_sep_skip }
\keys_set:nn { exam-zh / solution } {#1}
+ \vspace { \l__examzh_solution_top_sep_skip }
% 放在这是使得 \examsetup 设置 qedsymbol 可以放在正文区
\cs_set_eq:NN \qedsymbol \l__examzh_solution_qedsymbol_tl
\bool_if:NTF \l__examzh_solution_show_bool
diff --git a/macros/xetex/latex/exam-zh/tex/exam-zh-symbols.sty b/macros/xetex/latex/exam-zh/tex/exam-zh-symbols.sty
index 8d46aa977f..4997a0d292 100644
--- a/macros/xetex/latex/exam-zh/tex/exam-zh-symbols.sty
+++ b/macros/xetex/latex/exam-zh/tex/exam-zh-symbols.sty
@@ -8,7 +8,7 @@
\RequirePackage{expl3}
-\ProvidesExplPackage {exam-zh-symbols} {2022-9-18} {v0.1.20}
+\ProvidesExplPackage {exam-zh-symbols} {2023-06-01} {v0.1.25}
{exam-zh symbols module}
\RequirePackage { tikz }
@@ -1086,7 +1086,7 @@
}
\AtBeginDocument
{
- \cs_set_eq:NN \__examzh_symbols_old_sim: \backsim
+ \cs_set_eq:NN \__examzh_symbols_old_sim: \sim
\RenewDocumentCommand { \sim } { s }
{
\IfBooleanTF {#1}
diff --git a/macros/xetex/latex/exam-zh/tex/exam-zh-textfigure.sty b/macros/xetex/latex/exam-zh/tex/exam-zh-textfigure.sty
index f42e3ec739..ccefefae71 100644
--- a/macros/xetex/latex/exam-zh/tex/exam-zh-textfigure.sty
+++ b/macros/xetex/latex/exam-zh/tex/exam-zh-textfigure.sty
@@ -7,7 +7,7 @@
\RequirePackage{expl3}
-\ProvidesExplPackage {exam-zh-textfigure} {2022-9-18} {v0.1.20}
+\ProvidesExplPackage {exam-zh-textfigure} {2023-06-01} {v0.1.25}
{exam-zh text with figure module}
@@ -654,4 +654,6 @@
#2 { t } { l }
{ 0pt + \l__examzh_textfigure_figure_xshift_dim }
{ -1em + \l__examzh_textfigure_figure_yshift_dim }
- } \ No newline at end of file
+ }
+
+\endinput \ No newline at end of file
diff --git a/macros/xetex/latex/exam-zh/tex/exam-zh.cls b/macros/xetex/latex/exam-zh/tex/exam-zh.cls
index 12e450141d..2959abe67f 100644
--- a/macros/xetex/latex/exam-zh/tex/exam-zh.cls
+++ b/macros/xetex/latex/exam-zh/tex/exam-zh.cls
@@ -6,7 +6,7 @@
\NeedsTeXFormat{LaTeX2e}[2017/04/15]
\RequirePackage{expl3}
-\ProvidesExplClass {exam-zh} {2022-9-18} {v0.1.20} {LaTeX template for Chinese exam}
+\ProvidesExplClass {exam-zh} {2023-06-01} {v0.1.25} {LaTeX template for Chinese exam}
% 检查 LaTeX2e kernel 版本
\msg_new:nnn { exam-zh } { latex-too-old }
@@ -531,10 +531,15 @@
{ list .meta:nn = { exam-zh / list } {#1} }
\setlist{nosep}
+\setlist
+ {
+ labelsep = 4pt,
+ }
\setlist[enumerate, 1]
{
labelindent = \parindent,
+ labelsep = 4pt,
leftmargin = *,
label = { \arabic * .}
}
@@ -550,7 +555,6 @@
listparindent = \parindent,
label = {( \arabic * )},
}
-
% 多种方法: method环境
\newlist{method}{enumerate}{1}
\setlist[method, 1]
@@ -1597,7 +1601,7 @@
\tl_new:N \l__examzh_foot_content_before_page_tl
\tl_new:N \l__examzh_foot_content_after_page_tl
\tl_new:N \l__examzh_foot_content_after_lastpage_tl
-\cs_generate_variant:Nn \regex_count:nnN { nxN }
+\cs_generate_variant:Nn \regex_count:nnN { nxN, noN }
\cs_new:Npn \__examzh_foot_content_only_page_input:ww #1 ; #2 \q_stop
{
@@ -1662,9 +1666,19 @@
\l__examzh_foot_content_after_lastpage_tl
}
\cs_new_nopar:Npn \__examzh_relax: { \relax }
+% \cs_new:Npn \__examzh_foot_lastpage_tmp_set:
+% {
+% \cs_if_eq:NNTF \lastpage@lastpage \__examzh_relax:
+% { \int_set:Nn \l__examzh_tmp_int { 0 } }
+% { \int_set:Nn \l__examzh_tmp_int { \lastpage@lastpage } }
+% }
+
+% https://gitee.com/xkwxdyy/exam-zh/issues/I6B7MU#note_17945353_link
\cs_new:Npn \__examzh_foot_lastpage_tmp_set:
{
- \cs_if_eq:NNTF \lastpage@lastpage \__examzh_relax:
+ \bool_lazy_or:nnTF
+ { \cs_if_eq_p:NN \lastpage@lastpage \__examzh_relax: }
+ { \str_if_eq_p:ee \lastpage@lastpage {??} }
{ \int_set:Nn \l__examzh_tmp_int { 0 } }
{ \int_set:Nn \l__examzh_tmp_int { \lastpage@lastpage } }
}
@@ -1675,7 +1689,9 @@
\cs_new:cpn { __examzh_foot_content_a4paper_output: }
{
% 检测输入有多少个 ;
- \regex_count:nxN { ; }
+ % \regex_count:nxN { ; }
+ % https://gitee.com/xkwxdyy/exam-zh/issues/I5NNR8#note_13447684_link
+ \regex_count:noN { ; }
{ \l__examzh_foot_content_format_tl }
\l__examzh_foot_content_count_semicolon_int
\int_case:nnF { \l__examzh_foot_content_count_semicolon_int }