diff options
Diffstat (limited to 'macros/xetex/latex/exam-zh/doc/body')
-rw-r--r-- | macros/xetex/latex/exam-zh/doc/body/installation.tex | 5 | ||||
-rw-r--r-- | macros/xetex/latex/exam-zh/doc/body/usage.tex | 321 |
2 files changed, 307 insertions, 19 deletions
diff --git a/macros/xetex/latex/exam-zh/doc/body/installation.tex b/macros/xetex/latex/exam-zh/doc/body/installation.tex index 04c414caac..a632fa8059 100644 --- a/macros/xetex/latex/exam-zh/doc/body/installation.tex +++ b/macros/xetex/latex/exam-zh/doc/body/installation.tex @@ -21,10 +21,10 @@ 您也可以通过访问 gitee 项目主页的方式获取最新版本的 \cls{exam-zh}(通常情况下,gitee 的版本会大于等于CTAN 的版本(因为 CTAN 从上传到审核到用户可以下载需要一天左右))。主要以「下载发行版」的方式获取最新版本的 \cls{exam-zh}: \begin{enumerate} - \item 进入项目主页(\href{https://gitee.com/zepinglee/exam-zh}{gitee 项目主页} (界面见图~\ref{figure:gitee项目主页} ) + \item 进入项目主页(\href{https://gitee.com/xkwxdyy/exam-zh}{gitee 项目主页} (界面见图~\ref{figure:gitee项目主页} ) \item 在右侧一列有“发行版”(gitee),并且有一个标签图标并有“vx.x.x - 20xx-xx-xx”字样,表示最新的发行版版本和发布时间,点击即可查看相关信息(如果想查看历史所有发行版信息,可以点击“发行版”右侧的“全部”(gitee))。 - 发行版中一般由以下信息构成(\href{https://gitee.com/zepinglee/exam-zh/releases}{gitee 发行版} 界面见图~\ref{figure:gitee发行版}) + 发行版中一般由以下信息构成(\href{https://gitee.com/xkwxdyy/exam-zh/releases}{gitee 发行版} 界面见图~\ref{figure:gitee发行版}) \begin{itemize} \item 更新文件的特别说明。如果没有,则表明此次更新只需要更新 \file{exam-zh.cls} 文件至最新\footnote{“更新 \meta{文件} 至最新”目前表示在发行版中下载最新版本的模板,并用其中所需要更新的 \meta{文件} 去替换本地的旧 \meta{文件}} 即可 \item 更新日志。 主要为此次发行版与上次发行版的不同,一般为“Added”、“Changed”、“Fixed”等信息 @@ -76,6 +76,7 @@ \file{exam-zh-font.sty} & 模版的字体模块宏包\\ \file{exam-zh-symbols.sty} & 模版的符号模块宏包\\ \file{exam-zh-chinese-english.sty} & 模版的语文英语模块宏包\\ + \file{exam-zh-textfigure.sty} & 模版的图文排版模块宏包\\ \file{README.md} & 简要自述 \\ \file{CHANGELOG.md} & 模板更新日志 \\ \file{LICENSE} & 模版发布许可证 diff --git a/macros/xetex/latex/exam-zh/doc/body/usage.tex b/macros/xetex/latex/exam-zh/doc/body/usage.tex index 56e0f25739..71e57ad21f 100644 --- a/macros/xetex/latex/exam-zh/doc/body/usage.tex +++ b/macros/xetex/latex/exam-zh/doc/body/usage.tex @@ -684,7 +684,7 @@ \end{function} \begin{function}{\chapter} - 用于排一份的试卷标题。并可以用 \opt{page/show-chapter} 键值控制显示与否。 + 用于排一份的试卷标题。并可以用 \opt{page/show-chapter} 键值控制显示与否。新的 \tn{chapter} 下 \env{question} 环境计数器会重置。 \end{function} 其余的见~\ref{subsubsec:抬头} 节。 @@ -886,6 +886,113 @@ +\subsubsection{图文排版} + +图文排版模块为 \file{exam-zh-textfigure.sty},基于 xkwxdyy 的 \href{https://gitee.com/xkwxdyy/text-figure}{text-figure} 宏包优化而来,\pkg{text-figure} 宏包不再维护。 + +试卷中的图文排版主要有三种类型: +\begin{enumerate} + \item 多张图片并排,文字处于上方和下方; + \item 文字和图片左右或上下排版 + \item 文字绕排(主要基于李清的 \pkg{wrapstuff} 宏包(\file{exam-zh-textfigure.sty} 中已加载)) +\end{enumerate} + +其中,文字绕排一般用于语文英语等文字较多的情形。 + +\begin{function}[added = 2022-08-28]{multifigures 环境} + \begin{ccnusyntax}[emph={[2]multifigures}] + \begin{multifigures}(*\oarg{键值列表}*) + \item[标签1] (*\meta{内容1}*) + \item[标签2] (*\meta{内容2}*) + ... + \end{multifigures} + \end{ccnusyntax} + 多张图片(无超链接引用)排版环境。\meta{键值列表} 见~\ref{subsubsec:参数-图文排版}。 +\end{function} + +\begin{latexexample}{\env{multifigures} 环境示例1} + \begin{multifigures} + \item[题 9 图:勾股数] \includegraphics[width=3cm]{example-image.png} + \item[题 11 图:圆锥曲线] \includegraphics[width=3cm]{example-image.png} + \end{multifigures} +\end{latexexample} + +\begin{latexexample}{\env{multifigures} 环境示例2} + \begin{multifigures}[columns=2] + \item[题 9 图] \includegraphics[width=3cm]{example-image.png} + \item[题 10 图] \includegraphics[width=3cm]{example-image.png} + \item[题 11 图] \includegraphics[width=3cm]{example-image.png} + \item[题 12 图] \includegraphics[width=3cm]{example-image.png} + \end{multifigures} +\end{latexexample} + + +\begin{function}[added = 2022-08-28]{\textfigure} + \begin{ccnusyntax}[emph={[2]textfigure}] + \textfigure(*\oarg{参数列表}\marg{文本}\marg{图片}*) + \end{ccnusyntax} + 图文排版命令。\meta{键值列表} 见~\ref{subsubsec:参数-图文排版}。 +\end{function} + +\begin{latexexample}{\tn{textfigure} 命令示例1} + \textfigure{ + 江州司马平安否? 惠远东林住得无? \par + 湓浦曾闻似衣带,庐峰见说胜香炉。\par + 题诗岁晏离鸿断,望阙天遥病鹤孤。\par + 莫谩拘牵雨花社,青云依旧是前途。 + }{ + \includegraphics[width=3cm]{example-image.png} + } +\end{latexexample} + +\begin{latexexample}{\tn{textfigure} 命令示例2} + \textfigure[text-width=\columnwidth,fig-pos=bottom-flushright]{ + 如图,在三棱锥 $A$-$BCD$ 中,$\text{平面} ABD \perp \text{平面} BCD$, + $AB = AD$,$O$ 为 $BD$ 的重点。 + \begin{enumerate} + \item 证明:$OA \perp CD$; + \item 若 $\triangle OCD$ 是变长为 $1$ 的等边三角形,点 $E$ 在棱 $AD$ 上, + $DE = 2 EA$,且二面角 $E$-$BC$-$D$ 的大小为 $45^{\circ}$, + 求三棱锥 $A$-$BCD$ 的体积。 + \end{enumerate} + }{ + \includegraphics[width=3cm]{example-image.png} + } +\end{latexexample} + + +\begin{latexexample}{\tn{textfigure} 命令示例3} + \textfigure{ + \begin{question} + 双曲线 $C: \frac{x^{2}}{4}-\frac{y^{2}}{2}=1$ 的右焦点为 $F$, 为点 $P$ 在 $C$ 的一条渐近线上, $O$ 为坐标原点, 若 $|P O|=|P F|$, 则 $\triangle P F O$ 的面积为 \paren + \begin{choices} + \item $\frac{3 \sqrt{2}}{4}$ + \item $\frac{3 \sqrt{2}}{2}$ + \item $2 \sqrt{2}$ + \item $3 \sqrt{2}$ + \end{choices} + \end{question} + + \begin{question} + 设 $f(x)$ 是定义域为 $\mathbf{R}$ 的偶函数, 且在 $(0,+\infty)$ 单调递减, 则 + \begin{choices} + \item $f\left(\log _{3} \frac{1}{4}\right)>f\left(2^{-\frac{3}{2}}\right)>f\left(2^{-\frac{2}{3}}\right)$ + \item $f\left(\log _{3} \frac{1}{4}\right)>f\left(2^{-\frac{2}{3}}\right)>f\left(2^{-\frac{3}{2}}\right)$ + \item $f\left(2^{-\frac{3}{2}}\right)>f\left(2^{-\frac{2}{3}}\right)>f\left(\log _{3} \frac{1}{4}\right)$ + \item $f\left(2^{-\frac{2}{3}}\right)>f\left(2^{-\frac{3}{2}}\right)>f\left(\log _{3} \frac{1}{4}\right)$ + \end{choices} + \end{question} + }{ + \includegraphics[width = 2cm, height = 5cm]{example-image.png} \\ (第 9 题) + } +\end{latexexample} + + +\begin{function}{wrapstuff 环境} + \file{exam-zh-textfigure.sty} 模块默认加载 \pkg{wrapstuff} 宏包。具体 \env{wrapstuff} 环境使用请阅读手册。 +\end{function} + + \subsection{参数设置} \begin{function}{\examsetup} @@ -1826,6 +1933,27 @@ 选项的最大列数。排版选项时会优先尝试该列数,如果无法排下内容,依次将列数除以 2 并取整再进行尝试,直到可以排下全部选项。默认为 |4| 。 \end{function} +\begin{function}[added = 2022-08-28]{choices/top-sep} + \begin{ccnusyntax}[emph={[1]top-sep}] + top-sep = (*\meta{dimension}*) + \end{ccnusyntax} + \env{choices} 环境上方弹性间距。默认为 |0pt|。 +\end{function} + +\begin{function}[added = 2022-08-28]{choices/bottom-sep} + \begin{ccnusyntax}[emph={[1]bottom-sep}] + bottom-sep = (*\meta{dimension}*) + \end{ccnusyntax} + \env{choices} 环境下方弹性间距。默认为 |0pt|。 +\end{function} + +\begin{function}[added = 2022-08-28]{choices/linesep} + \begin{ccnusyntax}[emph={[1]linesep}] + linesep = (*\meta{dimension}*) + \end{ccnusyntax} + \env{choices} 环境的行数多于 1 时的行额外弹性间距。默认为 |0pt plus .5ex|。 +\end{function} + \begin{function}{paren} @@ -1912,6 +2040,7 @@ \end{function} + \subsubsection{填空题} \label{subsubsec:参数-填空题} @@ -2045,11 +2174,12 @@ \end{function} -\begin{function}[added = 2022-07-01]{solution/show-solution} - \begin{ccnusyntax}[emph={[1]show-solution}] +\begin{function}[added = 2022-07-01,updated = 2022-08-17]{solution/show-solution,solution/show-answer} + \begin{ccnusyntax}[emph={[1]show-solution,show-answer}] show-solution = (*\TTF*) + show-answer = (*\TTF*) \end{ccnusyntax} - 是否显示解答环境 \env{solution} 的内容。 + 是否显示解答环境 \env{solution} 的内容。\opt{show-solution} 和 \opt{show-answer} 两者等效。 \end{function} \begin{function}[added = 2022-07-20]{solution/parbreak} @@ -2181,19 +2311,6 @@ \env{solution} 环境内容的颜色。默认为 |black|。 \end{function} -\begin{function}[added = 2022-07-19]{solution/top-sep} - \begin{ccnusyntax}[emph={[1]top-sep}] - top-sep = (*\meta{dimension}*) - \end{ccnusyntax} - \env{solution} 环境上方间距。默认为 |.5em plus .5em minus .2em|。 -\end{function} - -\begin{function}[added = 2022-07-19]{solution/bottom-sep} - \begin{ccnusyntax}[emph={[1]bottom-sep}] - bottom-sep = (*\meta{dimension}*) - \end{ccnusyntax} - \env{solution} 环境下方间距。默认为 |.5em plus .5em minus .2em|。 -\end{function} \begin{function}[added = 2022-07-19]{solution/blank-type} \begin{ccnusyntax}[emph={[1]blank-type}] @@ -2635,4 +2752,174 @@ zhu-circlednumber-base = (*<tikz|(font)>*) \end{ccnusyntax} 在 \kvopt{poem/type}{chinese} 键值下,\tn{zhu} 的带圈数字的源。\opt{tikz} 表示此时带圈数字基于 \TikZ,\opt{font} 表示此时带圈数字基于字体。 +\end{function} + + +\subsubsection{图文排版} \label{subsubsec:参数-图文排版} + + +\begin{function}[updated = 2022-08-28]{multifigures} + \begin{ccnusyntax}[emph={[1]multifigures}] + multifigures = (*\marg{键值列表}*) + multifigures/(*\meta{key}*) = (*\meta{value}*) + \end{ccnusyntax} + 该选项包含多个子项目。用于设置 \env{multifigures} 环境。可以在 \tn{examsetup} 中使用,也可以在 \env{multifigures} 环境的可选参数中使用。 +\end{function} + +\begin{function}[added = 2022-08-28]{multifigures/columns} + \begin{ccnusyntax}[emph={[1]columns}] + columns = (*\meta{integer}*) + \end{ccnusyntax} + 每行多少项。默认为 |3|。 +\end{function} + +\begin{function}[added = 2022-08-28]{multifigures/fig-pos} + \begin{ccnusyntax}[emph={[1]fig-pos}] + fig-pos = (*<top|(above)|bottom|below|left|right>*) + \end{ccnusyntax} + 图片相对于标签的位置。\opt{top} 和 \opt{above} 同义、\opt{bottom} 和 \opt{below} 同义。 +\end{function} + +\begin{function}[added = 2022-08-28]{multifigures/top-sep} + \begin{ccnusyntax}[emph={[1]top-sep}] + top-sep = (*\meta{dimension}*) + \end{ccnusyntax} + \env{multifigures} 环境上方额外弹性间距。默认为 |1ex plus .5ex minus .5ex|。 +\end{function} + +\begin{function}[added = 2022-08-28]{multifigures/bottom-sep} + \begin{ccnusyntax}[emph={[1]bottom-sep}] + bottom-sep = (*\meta{dimension}*) + \end{ccnusyntax} + \env{multifigures} 环境下方额外弹性间距。默认为 |0pt|。 +\end{function} + +\begin{function}[added = 2022-08-28]{multifigures/align} + \begin{ccnusyntax}[emph={[1]align}] + align = (*<t|m|(b)>*) + \end{ccnusyntax} + 图片和标签的整体对齐方式。\opt{t} 表示顶部对齐、\opt{m} 表示居中对齐、\opt{b} 表示底部对齐。 +\end{function} + +\begin{function}[added = 2022-08-28]{multifigures/xshift,multifigures/hshift,multifigures/yshift,multifigures/vshift} + \begin{ccnusyntax}[emph={[1]xshift,hshift,yshift,vshift}] + xshift = (*\meta{dimension}*) + hshift = (*\meta{dimension}*) + yshift = (*\meta{dimension}*) + vshift = (*\meta{dimension}*) + \end{ccnusyntax} + 图片和标签整体的水平和垂直的偏移量。\opt{xshift} 和 \opt{hshift} 同义,表示水平;\opt{yshift} 和 \opt{vshift} 同义,表示垂直。 +\end{function} + +\begin{function}[added = 2022-08-28]{multifigures/label-xshift,multifigures/label-hshift,multifigures/label-yshift,multifigures/label-vshift} + \begin{ccnusyntax}[emph={[1]xshift,hshift,yshift,vshift}] + label-xshift = (*\meta{dimension}*) + label-hshift = (*\meta{dimension}*) + label-yshift = (*\meta{dimension}*) + label-vshift = (*\meta{dimension}*) + \end{ccnusyntax} + 标签相对图片的水平和垂直的偏移量。\opt{label-xshift} 和 \opt{label-hshift} 同义,表示水平;\opt{label-yshift} 和 \opt{label-vshift} 同义,表示垂直。 +\end{function} + + + + +\begin{function}[updated = 2022-08-28]{textfigure} + \begin{ccnusyntax}[emph={[1]textfigure}] + textfigure = (*\marg{键值列表}*) + textfigure/(*\meta{key}*) = (*\meta{value}*) + \end{ccnusyntax} + 该选项包含多个子项目。用于设置 \tn{textfigure} 命令。可以在 \tn{examsetup} 中使用,也可以在 \tn{textfigure} 命令的可选参数中使用。 +\end{function} + +\begin{function}[added = 2022-08-28]{textfigure/fig-pos} + \begin{ccnusyntax}[emph={[1]fig-pos}] + fig-pos = (*\meta{postion}*) + \end{ccnusyntax} + 图片相对于文本的方位。方位可选参数见下列表,默认为 \opt{right} +\end{function} +\begin{itemize} + \item \opt{top}:图片在文本上方 + \item \opt{bottom}:图片在文本下方 + \item \opt{left}:图片在文本左边,垂直中心对齐 + \item \opt{right}:图片在文本右边,垂直中心对齐 + \item \opt{top-left}:图片在文本的左上方 + \item \opt{top-center}:图片在文本的上方,位于整行的水平中心 + \item \opt{top-right}:图片在文本的右上方 + \item \opt{top-flushright}:图片在文本的右上方,位于水平末端 + \item \opt{bottom-left}:图片在文本的左下方 + \item \opt{bottom-center}:图片在文本的下方,位于整行的水平中心 + \item \opt{bottom-right}:图片在文本的右下方 + \item \opt{bottom-flushright}:图片在文本的右下方,位于水平末端 + \item \opt{left-top}:图片在文本左边,顶部对齐 + \item \opt{left-center}:等价于 \opt{left} + \item \opt{left-bottom}:图片在文本左边,底部对齐 + \item \opt{right-top}:图片在文本右边边,顶部对齐 + \item \opt{right-center}:等价于 \opt{right} + \item \opt{right-bottom}:图片在文本右边,底部对齐 +\end{itemize} + + +\begin{function}[added = 2022-08-28]{textfigure/xshift,textfigure/hshift,textfigure/yshift,textfigure/vshift} + \begin{ccnusyntax}[emph={[1]xshift,hshift,yshift,vshift}] + xshift = (*\meta{dimension}*) + hshift = (*\meta{dimension}*) + yshift = (*\meta{dimension}*) + vshift = (*\meta{dimension}*) + \end{ccnusyntax} + 图片和文本整体的水平和垂直的偏移量。\opt{xshift} 和 \opt{hshift} 同义,表示水平;\opt{yshift} 和 \opt{vshift} 同义,表示垂直。\opt{yshift} 的默认值为 |.5\baselineskip|。 +\end{function} + +\begin{function}[added = 2022-08-28]{textfigure/figure-xshift,textfigure/figure-hshift,textfigure/figure-yshift,textfigure/figure-vshift} + \begin{ccnusyntax}[emph={[1]xshift,hshift,yshift,vshift}] + figure-xshift = (*\meta{dimension}*) + figure-hshift = (*\meta{dimension}*) + figure-yshift = (*\meta{dimension}*) + figure-vshift = (*\meta{dimension}*) + \end{ccnusyntax} + 图片相对于文本的水平和垂直的偏移量。\opt{figure-xshift} 和 \opt{figure-hshift} 同义,表示水平;\opt{figure-yshift} 和 \opt{figure-vshift} 同义,表示垂直。 +\end{function} + + +\begin{function}[added = 2022-08-28]{textfigure/top-sep} + \begin{ccnusyntax}[emph={[1]top-sep}] + top-sep = (*\meta{dimension}*) + \end{ccnusyntax} + \tn{textfigure} 命令上方弹性间距。默认为 |0pt|。 +\end{function} + +\begin{function}[added = 2022-08-28]{textfigure/bottom-sep} + \begin{ccnusyntax}[emph={[1]bottom-sep}] + bottom-sep = (*\meta{dimension}*) + \end{ccnusyntax} + \tn{textfigure} 命令下方弹性间距。默认为 |1.5ex plus .5ex minus 0.5ex|。 +\end{function} + +\begin{function}[added = 2022-08-28]{textfigure/text-width} + \begin{ccnusyntax}[emph={[1]text-width}] + text-width = (*\meta{dimension}*) + \end{ccnusyntax} + 文本部分的 \env{varwidth} 宽度。默认为 |\columnwidth|。但有时需要手动输入 \kvopt{text-width}{\textbackslash columnwidth} 才会变成整行,比如解答题。 +\end{function} + +\begin{function}[added = 2022-08-28]{textfigure/figure-width} + \begin{ccnusyntax}[emph={[1]figure-width}] + figure-width = (*\meta{dimension}*) + \end{ccnusyntax} + 图片部分的 \env{varwidth} 宽度。默认为 |\columnwidth|。 +\end{function} + +\begin{function}[added = 2022-08-28]{textfigure/ratio,textfigure/text-ratio} + \begin{ccnusyntax}[emph={[1]ratio,text-ratio}] + ratio = (*\meta{比例}*) + text-ratio = (*\meta{比例}*) + \end{ccnusyntax} + 图片部分占比。默认为 |0.95|。有时 |1| 的效果并不是整行,这主要和使用了 \env{varwidth} 环境有关,此时建议改 \opt{text-width}。 +\end{function} + +\begin{function}[added = 2022-08-28]{textfigure/top} + \begin{ccnusyntax}[emph={[1]top}] + top = (*\meta{integer}*) + \end{ccnusyntax} + \kvopt{fig-pos}{left-top} 时,图片顶部从文本的第几行开始排,效果和 \pkg{wrapstuff} 宏包的 \opt{top} 键值效果类似。 \end{function}
\ No newline at end of file |