diff options
Diffstat (limited to 'macros/latex/contrib/gradient-text/gradient-text.sty')
-rw-r--r-- | macros/latex/contrib/gradient-text/gradient-text.sty | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/macros/latex/contrib/gradient-text/gradient-text.sty b/macros/latex/contrib/gradient-text/gradient-text.sty new file mode 100644 index 0000000000..62494481f4 --- /dev/null +++ b/macros/latex/contrib/gradient-text/gradient-text.sty @@ -0,0 +1,31 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{gradient-text}[2022/12/24] +\ExplSyntaxOn +\clist_new:N\l_FirstRGB_int \clist_new:N\l_LastRGB_int +\int_new:N\l_MaxIndex\int_new:N\l_Ratio +\newcommand{\@radientR@B}[7]{ + \int_set:Nn\l_MaxIndex{\int_eval:n{\str_count:n{#1}}} + \int_step_inline:nnn{1}{\l_MaxIndex}{ + \exp_args:Ne\str_if_eq:nnTF{\str_item:Nn{#1}{##1}}{~}{}{ + \int_set:Nn\l_Ratio{\int_eval:n{\l_Ratio+1}} + } + \color_select:nn{RGB}{ + \int_eval:n{(\int_use:N\l_Ratio*#5+(\l_MaxIndex-##1)*#2)/\l_MaxIndex}, + \int_eval:n{(\int_use:N\l_Ratio*#6+(\l_MaxIndex-##1)*#3)/\l_MaxIndex}, + \int_eval:n{(\int_use:N\l_Ratio*#7+(\l_MaxIndex-##1)*#4)/\l_MaxIndex} + }\str_item:Nn{#1}{##1} + } +} + +\NewDocumentCommand\gradientRGB{mmm}{{ + \clist_set:Nn\l_FirstRGB_int #2 + \clist_set:Nn\l_LastRGB_int #3 + \@radientR@B{#1} + {\clist_item:Nn\l_FirstRGB_int{1}} + {\clist_item:Nn\l_FirstRGB_int{2}} + {\clist_item:Nn\l_FirstRGB_int{3}} + {\clist_item:Nn\l_LastRGB_int{1}} + {\clist_item:Nn\l_LastRGB_int{2}} + {\clist_item:Nn\l_LastRGB_int{3}} +}} +\ExplSyntaxOff
\ No newline at end of file |