texlive[72496] Master/texmf-dist: suanpan-l3 (8oct24)

commits+karl at tug.org commits+karl at tug.org
Tue Oct 8 22:00:25 CEST 2024


Revision: 72496
          https://tug.org/svn/texlive?view=revision&revision=72496
Author:   karl
Date:     2024-10-08 22:00:25 +0200 (Tue, 08 Oct 2024)
Log Message:
-----------
suanpan-l3 (8oct24)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/suanpan-l3/suanpan-l3.pdf
    trunk/Master/texmf-dist/doc/latex/suanpan-l3/suanpan-l3.tex
    trunk/Master/texmf-dist/tex/latex/suanpan-l3/suanpan-l3.sty

Modified: trunk/Master/texmf-dist/doc/latex/suanpan-l3/suanpan-l3.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/suanpan-l3/suanpan-l3.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/suanpan-l3/suanpan-l3.tex	2024-10-08 20:00:16 UTC (rev 72495)
+++ trunk/Master/texmf-dist/doc/latex/suanpan-l3/suanpan-l3.tex	2024-10-08 20:00:25 UTC (rev 72496)
@@ -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 @@
   \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}

Modified: trunk/Master/texmf-dist/tex/latex/suanpan-l3/suanpan-l3.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/suanpan-l3/suanpan-l3.sty	2024-10-08 20:00:16 UTC (rev 72495)
+++ trunk/Master/texmf-dist/tex/latex/suanpan-l3/suanpan-l3.sty	2024-10-08 20:00:25 UTC (rev 72496)
@@ -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 at 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];
                   }



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