summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2024-10-08 20:00:25 +0000
committerKarl Berry <karl@freefriends.org>2024-10-08 20:00:25 +0000
commit8e824c88451f54c5120ffa2d2358ddb262688db5 (patch)
treea57083b4471e77e38edf750a6153527fc48a93d2
parent8dfd5f4d8c1eb156dcecf73186f51431377d04c6 (diff)
suanpan-l3 (8oct24)
git-svn-id: svn://tug.org/texlive/trunk@72496 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/suanpan-l3/suanpan-l3.pdfbin439455 -> 446706 bytes
-rw-r--r--Master/texmf-dist/doc/latex/suanpan-l3/suanpan-l3.tex52
-rw-r--r--Master/texmf-dist/tex/latex/suanpan-l3/suanpan-l3.sty59
3 files changed, 92 insertions, 19 deletions
diff --git a/Master/texmf-dist/doc/latex/suanpan-l3/suanpan-l3.pdf b/Master/texmf-dist/doc/latex/suanpan-l3/suanpan-l3.pdf
index f47e8edc2f9..88c05cd4d6e 100644
--- a/Master/texmf-dist/doc/latex/suanpan-l3/suanpan-l3.pdf
+++ b/Master/texmf-dist/doc/latex/suanpan-l3/suanpan-l3.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/suanpan-l3/suanpan-l3.tex b/Master/texmf-dist/doc/latex/suanpan-l3/suanpan-l3.tex
index 89cb17784df..e411d2bdd05 100644
--- a/Master/texmf-dist/doc/latex/suanpan-l3/suanpan-l3.tex
+++ b/Master/texmf-dist/doc/latex/suanpan-l3/suanpan-l3.tex
@@ -124,7 +124,7 @@
{ \__codedoc_cmd:no {#1} { #2 } }
\ExplSyntaxOff
-\def\vers{\texttt{v1.2.2} }
+\def\vers{\texttt{v1.2.3} }
\changes{v1.0.0}{2024/08/20}{first version.}
@@ -810,6 +810,33 @@
\end{suanpan}
\end{SideBySideExample}
+\changes{v1.2.3}{2024/09/10}{change bid's highlight to shading=ball
+ and add bidspot option to set the angle
+ of shading.}
+
+\subsection{高光位置(角度)}
+
+\begin{option}{ opt = bidspot, desc = {= \meta{高光位置}}, init=0 }
+ 设置算珠高光点的位置,用角度表示,逆时针为正。
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.45\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, bidspot = 180}
+ \begin{suanpan}
+ \rods{0, 0, 7, 11, 8, 19}
+ \bid{1}{1}{brown5}
+ \bid{2}{5}{brown5}
+ \bid{3}{6}{red5}
+ \bid{4}{7}{red5}
+ \bid{4}{8}{azure5}
+ \bid{4}{9}{yellow5}
+ \bid{5}{10}{violet5}
+ \bid{6}{4,5,6,11}{teal4}[magenta5]
+ \end{suanpan}
+\end{SideBySideExample}
+
\bigskip
\changes{v1.1.1}{2024/08/30}{add English documentation.}
@@ -1474,6 +1501,29 @@ The ``|=true|'' in the \marg{option}|=true| for Boolean types can be omitted.
\end{suanpan}
\end{SideBySideExample}
+\subsection{highlight pos/angle}
+
+\begin{option}{ opt = bidspot, desc = {= \meta{bidspot}}, init=0 }
+ The bid's highlight angle.
+\end{option}
+
+\begin{SideBySideExample}[frame=single,numbers=left,%
+ xrightmargin=.45\linewidth,gobble=2]
+ \centering
+ \suanpanset{scale = 0.65, bidspot = 180}
+ \begin{suanpan}
+ \rods{0, 0, 7, 11, 8, 19}
+ \bid{1}{1}{brown5}
+ \bid{2}{5}{brown5}
+ \bid{3}{6}{red5}
+ \bid{4}{7}{red5}
+ \bid{4}{8}{azure5}
+ \bid{4}{9}{yellow5}
+ \bid{5}{10}{violet5}
+ \bid{6}{4,5,6,11}{teal4}[magenta5]
+ \end{suanpan}
+\end{SideBySideExample}
+
\end{documentation}
\end{document}
diff --git a/Master/texmf-dist/tex/latex/suanpan-l3/suanpan-l3.sty b/Master/texmf-dist/tex/latex/suanpan-l3/suanpan-l3.sty
index ac30c79d740..bbe133bcd70 100644
--- a/Master/texmf-dist/tex/latex/suanpan-l3/suanpan-l3.sty
+++ b/Master/texmf-dist/tex/latex/suanpan-l3/suanpan-l3.sty
@@ -16,8 +16,10 @@
% \ProvidesExplPackage{suanpan-l3}{2024-09-04}{v1.2.0} % 添加\lab横梁文字标记命令
% \ProvidesExplPackage{suanpan-l3}{2024-09-05}{v1.2.1} % 将草稿模式所有算珠改为圆冒
% % 直线并取消所有高光特效
-\ProvidesExplPackage{suanpan-l3}{2024-09-07}{v1.2.2} % 为珠高、珠宽、档杆宽度和
- % 边框宽度添加设置选项
+% \ProvidesExplPackage{suanpan-l3}{2024-09-07}{v1.2.2} % 为珠高、珠宽、档杆宽度和
+% % 边框宽度添加设置选项
+\ProvidesExplPackage{suanpan-l3}{2024-09-07}{v1.2.3} % 将算珠高光改为ball类型,
+ % 并添加高光位置(角度)选项。
{draw suanpan(abacus) with LaTeX3}
\RequirePackage{l3keys2e}
@@ -25,6 +27,21 @@
\RequirePackage{l3draw}
\RequirePackage {tikz}
+% Expl3中载入tikz宏包库的补丁
+\ExplSyntaxOff
+\patchcmd
+{\pgfutil@InputIfFileExists}
+ {\input #1}
+ {%
+ \@pushfilename
+ \xdef\@currname{#1}%
+ \input #1 %
+ \@popfilename
+ }
+ {}{}
+\ExplSyntaxOn
+% 添加tikz宏包的库
+\usetikzlibrary{shadings}
\cs_new:Npn \__suanpan_error:n { \msg_error:nn { suanpan(abacus) } }
@@ -162,6 +179,7 @@
\tl_new:N \l__suanpan_bid_fill_color_tl
\tl_new:N \l__suanpan_scale_tl
\tl_new:N \l__suanpan_mark_font_tl
+\tl_new:N \l__suanpan_bid_spot_angle_tl
% 档位最大值
\int_new:N \l__suanpan_rod_max_int
@@ -454,11 +472,13 @@
innerfill .initial:n = black,
% 横梁标记字符格式
- font .code:n = {%
- \tl_gset:Nn \l__suanpan_mark_font_tl {#1}
- },
+ font .tl_set:N = \l__suanpan_mark_font_tl,
font .initial:n = \bfseries\Large,
+ % 算珠高光点位置(角度)
+ bidspot .tl_set:N = \l__suanpan_bid_spot_angle_tl,
+ bidspot .initial:n = 0,
+
unknown .code:n = { \msg_error:nn { suanpan } { unknown-option } }
}
@@ -486,9 +506,9 @@
{ \l__suanpan_bid_d_half_dim - \l__suanpan_bid_draw_h_half_dim }
\tikzset{bid/.style = {% 内珠高光填充样式
- inner~color = innerfillcolor!30,
- outer~color = innerfillcolor,
- draw = innerdrawcolor,
+ shading = ball,
+ ball~color = innerfillcolor,
+ shading~angle = \l__suanpan_bid_spot_angle_tl,
line~width = \l__suanpan_bid_linewidth_dim,
rounded~corners = \l__suanpan_bid_arc_dim,
},
@@ -528,9 +548,9 @@
{ \l__suanpan_bid_d_half_dim - \l__suanpan_bid_draw_h_half_dim }
\tikzset{bid/.style ={
- inner~color = outerfillcolor!30,
- outer~color = outerfillcolor,
- draw = outerdrawcolor,
+ shading = ball,
+ ball~color = outerfillcolor,
+ shading~angle = \l__suanpan_bid_spot_angle_tl,
line~width = \l__suanpan_bid_linewidth_dim,
rounded~corners = \l__suanpan_bid_arc_dim,
},
@@ -572,7 +592,12 @@
\dim_set:Nn \l_tmpa_dim
{ \l__suanpan_bid_d_half_dim - \l__suanpan_bid_draw_h_half_dim }
- \tikzset{bid/.style ={
+ \tikzset{bid/.style~args = { #1/#2 }{
+ draw = #1,
+ shading = ball,
+ ball~color = #2,
+ shading~angle = 0,
+ shading~angle = \l__suanpan_bid_spot_angle_tl,
line~width = \l__suanpan_bid_linewidth_dim,
rounded~corners = \l__suanpan_bid_arc_dim,
},
@@ -594,10 +619,7 @@
\end{tikzpicture}
}{
\begin{tikzpicture}
- \shadedraw[draw = #1,
- inner~color=#2!30,
- outer~color=#2,
- bid]%
+ \shadedraw[bid=#1/#2]
( -\l__suanpan_bid_d_half_dim, \l__suanpan_bid_lower_dim)
rectangle
( \l__suanpan_bid_d_half_dim, \l__suanpan_bid_upper_dim);
@@ -778,8 +800,9 @@
\bool_if:NT \l__suanpan_support_unit_bool
{
\shade[%
- inner~color=black!40,
- outer~color=black!80,
+ shading = ball,
+ ball~color = black,
+ shading~angle = \l__suanpan_bid_spot_angle_tl,
] (0pt, 0pt) circle
[radius = \l__suanpan_frame_unit_r_dim];
}