summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/chinesechess/chinesechess.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/chinesechess/chinesechess.tex')
-rw-r--r--macros/latex/contrib/chinesechess/chinesechess.tex450
1 files changed, 275 insertions, 175 deletions
diff --git a/macros/latex/contrib/chinesechess/chinesechess.tex b/macros/latex/contrib/chinesechess/chinesechess.tex
index 60404db623..b77b6011e2 100644
--- a/macros/latex/contrib/chinesechess/chinesechess.tex
+++ b/macros/latex/contrib/chinesechess/chinesechess.tex
@@ -7,8 +7,8 @@
\usepackage{graphicx}
\usepackage{fontawesome5}
\usepackage{fancyvrb-ex}
-\usepackage{chinesechess}
-\cchessset{piecechar={C}{炮}}
+\usepackage[piecechar={C}{炮}]{chinesechess}
+% \usepackage[draft,piecechar={C}{炮}]{chinesechess}
\IndexPrologue
{
@@ -123,7 +123,7 @@
{ \__codedoc_cmd:no {#1} { #2 } }
\ExplSyntaxOff
-\def\vers{\texttt{v1.1.0} }
+\def\vers{\texttt{v1.2.0} }
\begin{document}
\title{
@@ -139,8 +139,24 @@
% \thanks{\url{https://github.com/registor/chinesechess}}
\thanks{\url{https://gitee.com/nwafu_nan/chinesechess}}
}
+
\maketitle
+\begin{abstract}
+ \pkg{chinesechess}是一个基于\pkg{l3draw}绘图宏包,用\pkg{Expl3}%
+ 开发的中国象棋排版宏包。它提供了\tn{cchessboard}(全棋盘)、%
+ \tn{cchessbord*}(空棋盘)和\tn{cchessman}(棋谱)排版命令。同时,
+ 该宏包还提供了用于打谱的排版环境\env{setcchessman},在该环境
+ 中,可以通过环境专用命令\tn{init}(初始化棋谱状态),\tn{set}(在
+ 指定位置布置棋子),\tn{del}(删除指定位置的棋子),\tn{mov}(实现
+ 棋子的移动)实现打谱操作,并在环境结束后排版最终状态棋谱。
+ 通过其星号环境\env{setcchessman*}可以记录打谱过程,并通过%
+ \tn{printman}利用交叉引用标签\oarg{label}选项对指定%
+ \env{setcchessman*}打谱环境记录的打谱文本在指定位置排版输出。
+ 棋子、棋盘、背景等外观可以通过命令、环境选项或\tn{cchessset}%
+ 命令进行设置。
+\end{abstract}
+
{\small
\tableofcontents
}
@@ -151,16 +167,12 @@
\section{引言}
\pkg{chinesechess}是一个基于\pkg{l3draw}绘图宏包,用\pkg{Expl3}%
-开发的中国象棋排版宏包。它提供了\tn{cchessboard}(全棋盘)、%
-\tn{cchessbord*}(空棋盘)和\tn{cchessman}(棋谱)排版命令。同时,
-该宏包还提供了用于打谱的排版环境\env{setcchessman},在该环境
-中,可以通过环境专用命令\tn{init}(初始化棋谱状态),\tn{set}(在
-指定位置布置棋子),\tn{del}(删除指定位置的棋子),\tn{mov}(实现
-棋子的移动),从而实现打谱操作,并在环境结束后以最终状态排版棋谱。
-另外,也可以通过星号环境\env{setcchessman*}实现棋谱文本输出。
+开发的中国象棋排版宏包。它利用\pkg{l3draw}的绘图功能,通过为红黑
+各7个棋子文字添加背景实现了棋子绘制,利用简单线条实现了棋盘绘制,
+并可以通过\pkg{graphicx}宏包可以为棋盘添加图片背景。
-棋子、棋盘、背景等外观可以通过命令、环境选项或\tn{cchessset}%
-命令进行设置。
+该宏包的目的是实现\textsf{不依赖于字体文件}或\textsf{字体宏包}的
+中国象棋棋谱排版,由于需要大量绘制操作,因此,其编译速度较低。
\section{用户接口}
@@ -181,14 +193,14 @@
通过\oarg{外观选项}设置的外观参数仅对当前命令局部有效,
- 其星号版本命令用于无棋子棋盘。
+ 其星号版本命令用于无棋子棋盘排版。
\begin{SideBySideExample}[frame=single,numbers=left,
- xrightmargin=.68\linewidth,gobble=2]
+ xrightmargin=.60\linewidth,gobble=2]
\centering
% 为便排版,进行缩放
- \cchessset{resize=real,
- height=4.8cm}
+ \cchessset{resize/type=real,
+ resize/height=4.0cm}
\cchessboard\quad
\cchessboard*
\end{SideBySideExample}
@@ -201,18 +213,18 @@
\end{syntax}
\end{function}
- 按设置的\oarg{外观选项},将在\marg{棋子列表}中指定棋子排版于棋盘的
- 指定位置。
+ 按设置的\oarg{外观选项},将在\marg{棋子列表}中指定棋子布置于棋盘的
+ 指定位置并排版输出。
- \marg{棋子列表}中各个棋子用大括号分组后用英文逗号进行分隔,每个棋子
- 由用大括号括起来的棋子位置与棋子编码组成。
+ \marg{棋子列表}中各个棋子用大括号分组后再用英文逗号进行分隔,每个棋子
+ 是由大括号括起来的\textsf{棋子位置}与\textsf{棋子编码}组成的。
棋子位置由英文逗号分隔的纵横坐标确定,其中,纵向坐标用英文小写字母
a--j或阿拉伯数字0--9分别表示棋盘纵向10个交点;横向坐标用英文小写字母
a--i或阿拉伯数字0--8分别表示棋盘横向的9个交点。
- \textbf{\textsf{注意: }}可以混合使用棋子坐标表示方法,但强烈建议使用
- 单一字母法或数字表示棋子坐标。
+ \textbf{\textsf{注意: }}可以混合使用字母和数字棋子坐标表示方法,但强烈
+ 建议使用单一字母法或数字法表示棋子坐标。
棋子编码采用大写字母表示红棋,小写字母表示黑棋,具体如表%
\ref{tab-piececode}所示。
@@ -246,8 +258,8 @@
xrightmargin=.50\linewidth,gobble=2]
\centering
% 为便排版,进行缩放
- \cchessset{resize=real,
- width=.90\linewidth}
+ \cchessset{resize/type=real,
+ resize/width=.90\linewidth}
\cchessman{ {{4,0}{K}}, {{2,2}{p}},
{{1,7}{C}}, {{4,9}{k}}
}
@@ -266,19 +278,20 @@
\end{syntax}
\end{function}
- 按设置的\oarg{外观选项}对打谱结果进行排版。
+ 按设置的\oarg{外观选项}排版打谱结果。
- 在打谱排版环境\env{setcchessman}中,可以通过专用命令\tn{init}%
- 初始化棋谱状态(残局),\tn{set}在指定位置布置棋子,\tn{del}删除
- 指定位置的棋子,\tn{mov}实现棋子的移动,从而实现打谱操作。
+ 在\env{setcchessman}环境中,可以通过专用命令\tn{init}%
+ (初始化棋谱状态)(残局),\tn{set}(在指定位置布置棋子),\tn{del}(删除
+ 指定位置的棋子),\tn{mov}(棋子移动)实现打谱操作。
在环境结束后以最终打谱状态排版棋谱。
- 星号环境\env{setcchessman*}用于记录排版棋谱的文本描述(如:车一进二等)。
- 可在在\env{setcchessman*}环境中用label选项进行标记,然后用\tn{printman}%
- 输出该棋谱。
+ 星号环境\env{setcchessman*}用于同时记录打谱过程的文本描述(如:车一进二等)。
+ 在\env{setcchessman*}环境中可以用\oarg{label}选项设置引用标签,
+ 再用\tn{printman}命令通过引用标签输出对应打谱过程文本描述。
在\oarg{外观选项}中可以通过key-value的方式设置棋子、棋盘的颜色、
- 字体、字号、线宽等外观。
+ 字体、字号、线宽等外观。对于\env{setcchessman*}星号环境,%
+ \oarg{外观选项}中的棋子与棋盘相关外观选项设置无效。
通过\oarg{外观选项}设置的外观参数仅对当前命令局部有效,
@@ -286,8 +299,8 @@
xrightmargin=.48\linewidth,gobble=2]
\centering
% 为便排版,进行缩放
- \cchessset{resize=real,
- width=.90\linewidth}
+ \cchessset{resize/type=real,
+ resize/width=.90\linewidth}
\begin{setcchessman}
% 残局初始化
\init{ {{4,0}{K}}, {{2,2}{p}},
@@ -313,7 +326,7 @@
\end{syntax}
\end{function}
- 用于将在\marg{棋子列表}中指定的所有棋子布置于棋盘的指定位置。
+ 用于将\marg{棋子列表}中指定的所有棋子布置于棋盘的指定位置。
\marg{棋子列表}中的棋子表示方法与第\ref{subsec-cchessman}小节
中的说明相同。
@@ -328,7 +341,7 @@
\end{syntax}
\end{function}
- 用于将在\marg{棋子}中指定的棋子布置于棋盘的指定位置。
+ 用于将指定\marg{棋子}布置于棋盘的指定位置。
\marg{棋子}中的棋子表示方法与第\ref{subsec-cchessman}小节
中的说明相同。
@@ -359,7 +372,8 @@
\end{function}
用于将\marg{棋子编码}中指定的棋子从\marg{原棋盘坐标}移动到%
- \marg{新棋盘坐标}。
+ \marg{新棋盘坐标}。若\marg{新棋盘坐标}处有棋子,则会被无条件
+ ``吃''掉(替换)。
\marg{棋子编码}、\marg{原棋盘坐标}和\marg{新棋盘坐标}中采用
棋子与棋盘坐标表示方法与第\ref{subsec-cchessman}小节中的说明相同。
@@ -370,11 +384,15 @@
\begin{function}{\printman}
\begin{syntax}
- \cs{printman} \marg{\env{setcchessman*}环境的label标签}
+ \cs{printman} \oarg{每行步数} \marg{label标签}
\end{syntax}
\end{function}
- 输出由label标签指定的\env{setcchessman*}打谱环境生成的棋谱。
+ 输出由label标签指定的\env{setcchessman*}打谱环境生成的棋谱文本描述。
+ \footnote{棋谱文本描述文件以\tn{jobname}+label+索引编号命名,
+ 并以``.man''为后缀名,是一个纯文本文件。}
+
+ \oarg{每行步数}选项用于指定每行中输出的棋谱步数。
\subsection{\tn{getpiece}输出棋子命令}
@@ -386,7 +404,7 @@
按\oarg{棋子字号}指定的字号将用\marg{棋子编码}指定的棋子在当前位置输出。
- \marg{棋子编码}中的编码详见表表\ref{tab-piececode}。
+ \marg{棋子编码}中的编码详见表\ref{tab-piececode}。
\begin{SideBySideExample}[frame=single,numbers=left,
xrightmargin=.28\linewidth,gobble=2]
@@ -408,7 +426,7 @@
用于将\marg{棋子编码}指定的棋子字符设置为指定的\marg{棋子字符}。
- \marg{棋子编码}中的编码详见表表\ref{tab-piececode}。
+ \marg{棋子编码}中的编码详见表\ref{tab-piececode}。
\textbf{\textsf{说明: }}该功能也可以通过|piecechar|外观选项实现。
@@ -422,7 +440,7 @@
将棋子字符复位到默认字符。
-\subsection{\tn{cchessset}外观设置命令}
+\subsection{\tn{cchessset}选项设置命令}
\begin{function}{\cchessset}
\begin{syntax}
@@ -431,18 +449,76 @@
\end{function}
通过\marg{外观选项}中的key-value方式设置棋子、棋盘的文字、
- 字体、颜色、线宽、背景等排版外观。
+ 字体、颜色、线宽等外观参数。
+
+ % \textbf{\textsf{说明: }}执行该命令时,仅有\textbf{\textsf{除}}%
+ % 棋子与棋盘外观的\textbf{\textsf{其它参数}}有效,棋子与棋盘外观
+ % 参数的设置会在执行下一次命令或环境参数时起效。
通过\cs{cchessset}\marg{外观选项}设置的外观参数对后续所有
- 棋谱排版命令有效,
+ 棋谱排版命令有效。
+
+ \textbf{\textsf{注意: }}由于\pkg{chinesechess}宏包涉及大量
+ 绘图操作,因此建议尽量减少在命令或环境中使用\oarg{外观选项}设置%
+ 以节约编译时间。如需要更改棋子或棋盘外观,可以在引用宏包时,
+ 通过为宏包添加选项实现,也可以执行\tn{cchessset}命令进行必要的
+ 全局设置或在一定范围内进行统一设置。
+
+ % \oarg{外观选项}中的棋子与棋盘相关外观选项设置无效。
-\section{外观选项}
+% \section{宏包选项}
+
+\section{宏包选项}
在\pkg{chinesechess}宏包中,棋子与棋盘的文本、字体、颜色、背景等
-外观可以通过不同\oarg{外观选项}进行设置。\oarg{外观选项}可以在
-命令或环境的可选项中进行局部设置,也可以通过\cs{cchessset}命令
+外观可以可以在引入宏包时通过\oarg{宏包选项}进行设置,也可以在
+命令或环境的\oarg{外观选项}中进行局部设置,还可以通过\cs{cchessset}命令
进行全局设置。
+强烈建议在引用宏包时通过\oarg{宏包选项}为一个文档统一全局设置棋子与
+棋盘外观,以节约编译时间。应避免频繁在命令和环境中使用\oarg{宏包选项}或
+使用\cs{cchessset}命令设置棋子与棋盘外面。
+
+\pkg{chinesechess}宏包的选项是一组由(英文)逗号分隔的选项列表,列表中的
+选项通常是\marg{key}|=|\marg{value}形式。部分选项的\marg{value}可以省略。
+对于同一选项,后续设置会覆盖以前的设置。
+
+\pkg{chinesechess}采用\LaTeX3风格的键值设置,支持不同类型以及多种层次的
+选项设定。键值列表中,``|=|''左右的空格不影响设置。但需注意,参数列表中%
+\textsf{不可以出现空行}。
+
+布尔型的参数\marg{选项}|=true|中的``|=true|''可以省略。
+
+对于``|resize|''缩放和``|man|''子选项,只能用于命令与环境选项中,或通过
+\tn{cchessset}命令进行设置。
+
+\textbf{\textsf{注意: }}为提高编译速度,\pkg{chinesechess}宏包会分别根据%
+\tn{cchessset}命令或棋谱排版命令与环境的可选项中的棋盘与棋子相关参数决定
+是否对棋盘或棋子进行重新绘制,因此,前一次的棋盘与棋子外观选项会影响至下
+一次新的外观选项出现。如果需要改变前一次外观选项的影响,可以使用一次棋盘
+或棋子外观相关选项。
+
+\subsection{草稿选项}
+
+\begin{option}{ opt = draft, desc = {= \meta{草稿选项}}, init=false }
+ 设置草稿选项。
+\end{option}
+
+ \oarg{draft}选项将删除所有效果设置,所有棋子仅显示文本,
+ 棋盘仅带有九宫格对角线。从而加快编译速度。
+
+ \textbf{\textsf{注意: }}在草稿模式下,命令与环境中与棋子与棋盘外观
+ 相关的选项都将失效,因此,可能与最终排版结果会有出入。
+
+\begin{SideBySideExample}[frame=single,numbers=left,
+ xrightmargin=.53\linewidth,gobble=2]
+ % \usepackage[draft]{chinesechess}
+ \centering
+ % 为便排版,进行缩放
+ \cchessset{resize/type=real,
+ resize/width=.90\linewidth}
+ \cchessboard[draft]
+\end{SideBySideExample}
\subsection{棋盘}
\subsubsection{单元格尺寸}
@@ -451,13 +527,17 @@
设置棋盘单元格尺寸。
\end{option}
+ \textbf{\textsf{说明: }}由于在前一个示例中使用了|[draft]|%
+ 参数,为恢复棋子外观,需要执行一次棋子相关设置参数。
+
\begin{SideBySideExample}[frame=single,numbers=left,
xrightmargin=.60\linewidth,gobble=2]
\centering
% 为便排版,进行缩放
- \cchessset{resize=real,
- width=.90\linewidth}
- \cchessboard[gridsize=15mm]
+ \cchessset{resize/type=real,
+ resize/width=.90\linewidth}
+ \cchessboard[gridsize=15mm,
+ piecetype=ooo]
\end{SideBySideExample}
\bigskip
@@ -480,8 +560,8 @@
xrightmargin=.54\linewidth,gobble=2]
\centering
% 为便排版,进行缩放
- \cchessset{resize=real,
- width=.35\linewidth}
+ \cchessset{resize/type=real,
+ resize/width=.35\linewidth}
\cchessboard*[boardtype=x]\quad
\cchessboard*[boardtype=x+]\\
\cchessboard*[boardtype=x+t]\quad
@@ -501,8 +581,8 @@
xrightmargin=.56\linewidth,gobble=2]
\centering
% 为便排版,进行缩放
- \cchessset{resize=real,
- width=.90\linewidth}
+ \cchessset{resize/type=real,
+ resize/width=.90\linewidth}
\cchessboard*[boardlinewd=1.0pt]
\end{SideBySideExample}
@@ -518,8 +598,8 @@
xrightmargin=.55\linewidth,gobble=2]
\centering
% 为便排版,进行缩放
- \cchessset{resize=real,
- width=.90\linewidth}
+ \cchessset{resize/type=real,
+ resize/width=.90\linewidth}
\cchessboard*[boardlinecolor=red]
\end{SideBySideExample}
@@ -537,92 +617,14 @@
xrightmargin=.55\linewidth,gobble=2]
\centering
% 为便排版,进行缩放
- \cchessset{resize=real,
- width=.35\linewidth}
+ \cchessset{resize/type=real,
+ resize/width=.35\linewidth}
\cchessboard*[boardbg=bg01]\quad
\cchessboard*[boardbg=bg02]
\end{SideBySideExample}
\bigskip
-\subsection{棋谱缩放}
-
-\subsubsection{缩放方式}
-
-\begin{option}{ opt = resize, desc = {= \meta{棋谱缩放方式}}, init=none }
- 设置最终棋谱输出时的整体缩放方式,目前支持:
-\end{option}
-
- \begin{Description}[a]
- \item |none|---无缩放。
- \item |real|---按指定的width、height、xscale或yscale进行缩放。
- \end{Description}
-
-\bigskip
-
-\subsubsection{横向缩放因子}
-
-\begin{option}{ opt = xscale, desc = {= \meta{x方向缩放系数}}, init=1 }
- 设置x方向缩放系数,需要配合|resize|缩放方式参数一起使用。
-\end{option}
-
-\begin{SideBySideExample}[frame=single,numbers=left,
- xrightmargin=.48\linewidth,gobble=2]
- \centering
- \cchessboard[resize=real, xscale=0.5]
-\end{SideBySideExample}
-
-
-\bigskip
-
-\subsubsection{纵向缩放因子}
-
-\begin{option}{ opt = yscale, desc = {= \meta{y方向缩放系数}}, init=1 }
- 设置y方向缩放系数,需要配合|resize|缩放方式参数一起使用。
-\end{option}
-
-\begin{SideBySideExample}[frame=single,numbers=left,
- xrightmargin=.70\linewidth,gobble=2]
- \centering
- \cchessboard[%
- resize=real,
- yscale=0.5]
-\end{SideBySideExample}
-
-\bigskip
-
-\subsubsection{横向尺寸}
-
-\begin{option}{ opt = width, desc = {= \meta{宽度}}, init=init-none }
- 设置输出宽度,需要配合|resize|缩放方式参数一起使用。
-\end{option}
-
-\begin{SideBySideExample}[frame=single,numbers=left,
- xrightmargin=.65\linewidth,gobble=2]
- \centering
- \cchessboard[resize=real,
- width=7cm]
-\end{SideBySideExample}
-
-\bigskip
-
-\subsubsection{纵向尺寸}
-
-\begin{option}{ opt = height, desc = {= \meta{高度}}, init=init-none }
- 设置输出高度,需要配合|resize|缩放方式参数一起使用。
-\end{option}
-
-\begin{SideBySideExample}[frame=single,numbers=left,
- xrightmargin=.65\linewidth,gobble=2]
- \centering
- \cchessboard[resize=real,
- height=6cm]
-\end{SideBySideExample}
-
- \textbf{\textsf{说明: }}缩放纵/横参数可以混合使用。
-
-\bigskip
-
\subsection{棋子}
\subsubsection{字符}
@@ -641,9 +643,8 @@
%\usepackage{fontawesome5}
\centering
% 为便排版,进行缩放
- \cchessset{resize=real,
- % gridsize=10mm,
- width=.90\linewidth}
+ \cchessset{resize/type=real,
+ resize/width=.90\linewidth}
\cchessboard[%
piecechar={K}{\faChessKing},
piecechar={A}{\faShield*},
@@ -667,18 +668,18 @@
\resetpiece
\cchessset{piecechar={C}{炮}}
-\subsubsection{颜色}
+\subsubsection{字体}
\begin{option}{ opt = piecefont, desc = {= \meta{棋子字符字体}}, init=\cs{kaishu} }
设置棋子字符字体。
\end{option}
\begin{SideBySideExample}[frame=single,numbers=left,
- xrightmargin=.55\linewidth,gobble=2]
+ xrightmargin=.54\linewidth,gobble=2]
\centering
% 为便排版,进行缩放
- \cchessset{resize=real,
- width=.90\linewidth}
+ \cchessset{resize/type=real,
+ resize/width=.90\linewidth}
\cchessboard[piecefont=\sffamily]
\end{SideBySideExample}
@@ -700,8 +701,8 @@
xrightmargin=.55\linewidth,gobble=2]
\centering
% 为便排版,进行缩放
- \cchessset{resize=real,
- width=.40\linewidth}
+ \cchessset{resize/type=real,
+ resize/width=.40\linewidth}
\cchessboard[piecetype=o]\quad
\cchessboard[piecetype=oo]\\
\cchessboard[piecetype=ooo]
@@ -719,8 +720,8 @@
xrightmargin=.60\linewidth,gobble=2]
\centering
% 为便排版,进行缩放
- \cchessset{resize=real,
- width=.95\linewidth}
+ \cchessset{resize/type=real,
+ resize/width=.95\linewidth}
\cchessboard[boxlinewd=0.8pt]
\end{SideBySideExample}
@@ -736,14 +737,14 @@
xrightmargin=.60\linewidth,gobble=2]
\centering
% 为便排版,进行缩放
- \cchessset{resize=real,
- width=.95\linewidth}
+ \cchessset{resize/type=real,
+ resize/width=.95\linewidth}
\cchessboard[boxcolor=white]
\end{SideBySideExample}
\bigskip
-\subsubsection{红棋颜色}
+\subsubsection{红棋字符颜色}
\begin{option}{ opt = redpiece, desc = {= \meta{红棋棋子字符颜色}}, init=red }
设置红棋棋子字符颜色。
@@ -753,14 +754,14 @@
xrightmargin=.60\linewidth,gobble=2]
\centering
% 为便排版,进行缩放
- \cchessset{resize=real,
- width=.95\linewidth}
+ \cchessset{resize/type=real,
+ resize/width=.95\linewidth}
\cchessboard[redpiece=white]
\end{SideBySideExample}
\bigskip
-\subsubsection{黑棋颜色}
+\subsubsection{黑棋字符颜色}
\begin{option}{ opt = blkpiece, desc = {= \meta{黑棋棋子字符颜色}}, init=black }
设置黑棋棋子字符颜色。
@@ -770,8 +771,8 @@
xrightmargin=.60\linewidth,gobble=2]
\centering
% 为便排版,进行缩放
- \cchessset{resize=real,
- width=.95\linewidth}
+ \cchessset{resize/type=real,
+ resize/width=.95\linewidth}
\cchessboard[blkpiece=white]
\end{SideBySideExample}
@@ -787,8 +788,8 @@
xrightmargin=.60\linewidth,gobble=2]
\centering
% 为便排版,进行缩放
- \cchessset{resize=real,
- width=.95\linewidth}
+ \cchessset{resize/type=real,
+ resize/width=.95\linewidth}
\cchessboard[lower=black]
\end{SideBySideExample}
@@ -804,8 +805,8 @@
xrightmargin=.60\linewidth,gobble=2]
\centering
% 为便排版,进行缩放
- \cchessset{resize=real,
- width=.95\linewidth}
+ \cchessset{resize/type=real,
+ resize/width=.95\linewidth}
\cchessboard[donut=red]
\end{SideBySideExample}
@@ -821,8 +822,8 @@
xrightmargin=.60\linewidth,gobble=2]
\centering
% 为便排版,进行缩放
- \cchessset{resize=real,
- width=.95\linewidth}
+ \cchessset{resize/type=real,
+ resize/width=.95\linewidth}
\cchessboard[redupper=red,
redpiece=white]
\end{SideBySideExample}
@@ -839,8 +840,8 @@
xrightmargin=.60\linewidth,gobble=2]
\centering
% 为便排版,进行缩放
- \cchessset{resize=real,
- width=.95\linewidth}
+ \cchessset{resize/type=real,
+ resize/width=.95\linewidth}
\cchessboard[blkupper=black,
blkpiece=white]
\end{SideBySideExample}
@@ -857,8 +858,8 @@
xrightmargin=.60\linewidth,gobble=2]
\centering
% 为便排版,进行缩放
- \cchessset{resize=real,
- width=.95\linewidth}
+ \cchessset{resize/type=real,
+ resize/width=.95\linewidth}
\cchessboard[shadow=red!80]
\end{SideBySideExample}
@@ -871,7 +872,7 @@
\end{option}
\begin{Description}[a]
- \item |none|---原字体默认笔划。
+ \item |none|---默认笔划。
\item |solid|---实线笔划轮廓,笔划内部透明,颜色使用字符颜色。
\item |white|---实线白色笔划轮廓,笔划内部用白色填充。
\item |bold|---加粗笔划,颜色使用字符颜色。
@@ -882,8 +883,8 @@
xrightmargin=.58\linewidth,gobble=2]
\centering
% 为便排版,进行缩放
- \cchessset{resize=real,
- width=.95\linewidth}
+ \cchessset{resize/type=real,
+ resize/width=.95\linewidth}
\cchessboard[charstroke=white,
redupper=red,blkupper=black]
\end{SideBySideExample}
@@ -892,29 +893,40 @@
\subsection{打谱}
+打谱参数位于|man|子选项中,可以使用|man={label=test}|或
+|man/label=test|两种形式进行设置。
+
\subsubsection{label标签}
\begin{option}{ opt = label, desc = {= \meta{棋谱标签}}, init=init-none }
设置\env{setcchessman*}打谱环境交叉引用标签。
\end{option}
+ 该选项目前仅支持\env{setcchessman*}打谱环境。
+
\subsubsection{每行棋谱步数}
-\begin{option}{ opt = mansperline, desc = {= \meta{每行棋谱步数}}, init=2 }
+\begin{option}{ opt = nums, desc = {= \meta{每行棋谱步数}}, init=2 }
设置\tn{printman}输出棋谱时,每行输出棋谱的步数。
\end{option}
+ 该选项只在\tn{printman}命令中起作用。
+
+ \textbf{\textsf{说明: }}由于在前一个示例中使用了|[charstroke=white]|%
+ 参数,为恢复棋子外观,需要执行一次棋子相关设置参数。
+
+ 但要注意的是|setcchessman*|星号环境并不执行棋子棋盘重构,因此,此处
+ 需要在\tn{cchessset}命令中重新设置棋子笔划类型。
+
\begin{SideBySideExample}[frame=single,numbers=left,
xrightmargin=.45\linewidth,gobble=2]
\centering
\printman{test}
-
- \bigskip
-
% 为便排版,进行缩放
- \cchessset{resize=real,
- width=0.90\linewidth}
- \begin{setcchessman*}[label=test]
+ \cchessset{charstroke=bold,
+ resize/type=real,
+ resize/width=0.90\linewidth}
+ \begin{setcchessman*}[man/label=test]
% 残局初始化
\init{ {{4,0}{K}}, {{2,2}{p}},
{{1,7}{C}}, {{4,9}{k}} }
@@ -927,8 +939,96 @@
\mov{K}{4,0}{4,1} \mov{h}{8,6}{6,7}
\mov{K}{4,1}{3,1} \mov{h}{6,7}{5,5}
\end{setcchessman*}
+ \begin{flushleft}
+ \small
+ \printman[man/nums=4]{test}
+ \end{flushleft}
\end{SideBySideExample}
+\subsection{棋谱缩放}
+
+缩放方式位于|resize|子选项中,可以使用|resize={type=real}|或
+|resize/xscale=0.5|两种形式进行设置。
+
+\subsubsection{缩放方式}
+
+\begin{option}{ opt = type, desc = {= \meta{棋谱缩放方式}}, init=none }
+ 设置最终棋谱输出时的整体缩放方式,目前支持:
+\end{option}
+
+ \begin{Description}[a]
+ \item |none|---无缩放。
+ \item |real|---按指定的width、height、xscale或yscale进行缩放。
+ \end{Description}
+
+\bigskip
+
+\subsubsection{横向缩放因子}
+
+\begin{option}{ opt = xscale, desc = {= \meta{x方向缩放系数}}, init=1 }
+ 设置x方向缩放系数,需要配合|resize|缩放方式参数一起使用。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,
+ xrightmargin=.48\linewidth,gobble=2]
+ \centering
+ \cchessboard[resize/type=real,
+ resize/xscale=0.5]
+\end{SideBySideExample}
+
+
+\bigskip
+
+\subsubsection{纵向缩放因子}
+
+\begin{option}{ opt = yscale, desc = {= \meta{y方向缩放系数}}, init=1 }
+ 设置y方向缩放系数,需要配合|resize|缩放方式参数一起使用。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,
+ xrightmargin=.70\linewidth,gobble=2]
+ \centering
+ \cchessboard[%
+ resize/type=real,
+ resize/yscale=0.5]
+\end{SideBySideExample}
+
+\bigskip
+
+\subsubsection{横向尺寸}
+
+\begin{option}{ opt = width, desc = {= \meta{宽度}}, init=init-none }
+ 设置输出宽度,需要配合|resize|缩放方式参数一起使用。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,
+ xrightmargin=.65\linewidth,gobble=2]
+ \centering
+ \cchessboard[%
+ resize/type=real,
+ resize/width=7cm]
+\end{SideBySideExample}
+
+\bigskip
+
+\subsubsection{纵向尺寸}
+
+\begin{option}{ opt = height, desc = {= \meta{高度}}, init=init-none }
+ 设置输出高度,需要配合|resize|缩放方式参数一起使用。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,
+ xrightmargin=.65\linewidth,gobble=2]
+ \centering
+ \cchessboard[%
+ resize/type=real,
+ resize/height=6cm]
+\end{SideBySideExample}
+
+ \textbf{\textsf{说明: }}缩放纵/横参数可以混合使用。
+
+\bigskip
+
% \bigskip
% \title{