texlive[73726] Master: scaletextbullet (4feb25)

commits+karl at tug.org commits+karl at tug.org
Tue Feb 4 23:08:29 CET 2025


Revision: 73726
          https://tug.org/svn/texlive?view=revision&revision=73726
Author:   karl
Date:     2025-02-04 23:08:29 +0100 (Tue, 04 Feb 2025)
Log Message:
-----------
scaletextbullet (4feb25)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/scaletextbullet/CHANGELOG.md
    trunk/Master/texmf-dist/doc/latex/scaletextbullet/beery.cls
    trunk/Master/texmf-dist/doc/latex/scaletextbullet/scaletextbullet.pdf
    trunk/Master/texmf-dist/doc/latex/scaletextbullet/scaletextbullet.tex
    trunk/Master/texmf-dist/tex/latex/scaletextbullet/scaletextbullet.sty
    trunk/Master/tlpkg/libexec/ctan2tds

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/scaletextbullet/scaletextbullet-code.pdf
    trunk/Master/texmf-dist/doc/latex/scaletextbullet/scaletextbullet-code.tex

Modified: trunk/Master/texmf-dist/doc/latex/scaletextbullet/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/scaletextbullet/CHANGELOG.md	2025-02-04 13:14:23 UTC (rev 73725)
+++ trunk/Master/texmf-dist/doc/latex/scaletextbullet/CHANGELOG.md	2025-02-04 22:08:29 UTC (rev 73726)
@@ -7,6 +7,17 @@
 
 ## [Unreleased]
 
+## [v1.1.0] - 2025-02-03
+
+### Added
+- `scaletextbullet-code.tex`
+- `scaletextbullet-code.pdf`
+
+### Changed
+- `\ScaleTextBullet`, `\ScaleTextBullets`, and `\scaletextbulletdebug` now
+  issue a package error if used in math mode. (`\textbullet` is invalid in math
+  mode.)
+
 ## [v1.0.4] - 2025-01-03
 
 ### Changed

Modified: trunk/Master/texmf-dist/doc/latex/scaletextbullet/beery.cls
===================================================================
--- trunk/Master/texmf-dist/doc/latex/scaletextbullet/beery.cls	2025-02-04 13:14:23 UTC (rev 73725)
+++ trunk/Master/texmf-dist/doc/latex/scaletextbullet/beery.cls	2025-02-04 22:08:29 UTC (rev 73726)
@@ -1,17 +1,44 @@
-% Note: This class is designed ONLY for 'scaletextbullet.tex'. Compiled with LuaTeX.
+% Note: This class is designed ONLY for 'scaletextbullet.tex'. Compiled with
+% LuaTeX.
 
+% LOADING THE CLASS
+
 % LaTeX2e version 2023-11-01 added \IfExplAtLeastTF.
 \NeedsTeXFormat{LaTeX2e}[2023-11-01]
 \ProvidesExplClass
   {beery}
-  {2025-01-03}
+  {2025-02-03}
+  {0.0.0}
   {}
-  {}
 
+\prop_gput:Nnn \g_msg_module_type_prop { beery } { Class }
+
+% l3kernel version 2023-10-10 added many 'e'-variants.
+\IfExplAtLeastTF { 2023-10-10 } { }
+  {
+    \msg_new:nnn { beery } { expl3-out-of-date }
+      {
+        The~ beery~ class~ could~ not~ load.~
+        This~ class~ requires~
+        L3~ programming~ layer~ version~ 2023-10-10~ or~ newer.
+      }
+    \msg_critical:nn { beery } { expl3-out-of-date }
+  }
+
+\sys_if_engine_luatex:F
+  {
+    \msg_new:nnn { beery } { luatex-required }
+      { The~ beery~ class~ could~ not~ load.~ This~ class~ requires~ LuaTeX. }
+    \msg_critical:nn { beery } { luatex-required }
+  }
+
 \LoadClass { article }
 
-\box_new:N \l__beery_tmp_box
+% MESSAGES
 
+\msg_new:nnn { beery } { math-mode-error }
+  { '#1'~ cannot~ be~ used~ in~ math~ mode~ \msg_line_context:. }
+
 \RequirePackage { fontscale }
 \fontscalesetup { musical }
 \RequirePackage { siunitx }
@@ -39,60 +66,168 @@
     , breakable
   }
 
+% SOME VARIABLES
+
+\fp_const:Nn \c_beery_golden_ratio_fp { 1.6180 3398 8749 8948 }
+\tl_const:Nn \c_beery_alphabet_tl { abcdefghijklmnopqrstuvwxyz }
+\tl_const:Nn \c_beery_digits_tl { 0123456789 }
+
+\regex_const:Nn \c__beery_ends_in_letter_regex { ^.*[A-Za-z]$ }
+
+% Scratch variables
+\box_new:N \l__beery_tmp_box
+
 % CUSTOM MACROS
 
-\tl_const:Nn \c_beery_alphabet_tl { abcdefghijklmnopqrstuvwxyz }
 \NewExpandableDocumentCommand \alphabet { } { \c_beery_alphabet_tl }
+\NewExpandableDocumentCommand \digits { } { \c_beery_digits_tl }
+\NewExpandableDocumentCommand \pangram { }
+  { The~ quick~ brown~ fox~ jumps~ over~ the~ lazy~ dog. }
+
 \NewDocumentCommand \Key
   { >{ \TrimSpaces } m >{ \TrimSpaces } o >{ \TrimSpaces } o }
   {
     \mode_leave_vertical:
+    \IfNoValueTF {#2}
+      { \__beery_print_key:n {#1} }
+      {
+        \IfNoValueTF {#3}
+          { \__beery_print_key:nn {#1} {#2} }
+          { \__beery_print_key:nnn {#1} {#2} {#3} }
+      }
+  }
+\cs_new_protected:Npn \__beery_print_key:n #1 { \texttt {#1} }
+\cs_new_protected:Npn \__beery_print_key:nn #1#2
+  { \texttt { #1 \ensuremath { \,=\, } \allowbreak #2 } }
+\cs_new_protected:Npn \__beery_print_key:nnn #1#2#3
+  {
     \group_begin:
       \ttfamily
-      \IfNoValueTF {#3}
-        {
-          \IfNoValueTF {#2}
-            {#1}
-            { #1 $\,=\,$ \allowbreak #2 }
-        }
-        { #1 $\,=\,$ #2 \hspace* { \fill } \hbox:n { initial $\,=\,$ #3 } }
+      #1 \ensuremath { \,=\, } #2 \hspace* { \fill }
+      \hbox:n { initial \ensuremath { \,=\, } #3 }
     \group_end:
   }
-\NewDocumentCommand \Value { >{ \TrimSpaces } m } { \texttt {#1} }
-\NewDocumentCommand \cmd { >{ \TrimSpaces } m }
-  { \texttt { \token_to_str:N #1 } \@ }
+\NewDocumentCommand \Value { >{ \TrimSpaces } m }
+  {
+    \mode_if_math:TF
+      {
+        \msg_error:nne { beery } { math-mode-error }
+          { \token_to_str:N \Value }
+      }
+      { \__beery_print_value:n {#1} }
+  }
+\cs_new_protected:Npn \__beery_print_value:n #1 { \texttt {#1} \@ }
 \NewDocumentCommand \cs { >{ \TrimSpaces } m }
+  {
+    \mode_if_math:TF
+      { \msg_error:nne { beery } { math-mode-error } { \token_to_str:N \cs } }
+      { \__beery_print_cs:n {#1} }
+  }
+\cs_new_protected:Npn \__beery_print_cs:n #1
   { \texttt { \token_to_str:c {#1} } \@ }
 \NewDocumentCommand \marg { >{ \TrimSpaces } m }
+  { \__beery_print_m_arg:n {#1} }
+\cs_new_protected:Npn \__beery_print_m_arg:n #1
   {
     \allowbreak
     \texttt { \c_left_brace_str }
-    $\langle$
-    { \normalfont \itshape #1 }
-    $\rangle$
+    \ensuremath \langle
+    \group_begin:
+      \normalfont \itshape #1
+    \group_end:
+    \ensuremath \rangle
     \texttt { \c_right_brace_str }
   }
 \NewDocumentCommand \oarg { >{ \TrimSpaces } m }
+  { \__beery_print_o_arg:n {#1} }
+\cs_new_protected:Npn \__beery_print_o_arg:n #1
   {
     \allowbreak
     \texttt { [ }
-    $\langle$
-    { \normalfont \itshape #1 }
-    $\rangle$
+    \ensuremath \langle
+    \group_begin:
+      \normalfont \itshape #1
+    \group_end:
+    \ensuremath \rangle
     \texttt { ] }
   }
-\NewDocumentCommand \sarg { } { $\langle$ \texttt {*} $\rangle$ }
-\NewDocumentCommand \meta { >{ \TrimSpaces } m }
+\NewDocumentCommand \sarg { } { \__beery_print_s_arg: }
+\cs_new_protected:Npn \__beery_print_s_arg:
+  { \ensuremath \langle \texttt {*} \ensuremath \rangle }
+\NewDocumentCommand \meta { >{ \TrimSpaces } m } { \__beery_print_meta:n {#1} }
+\cs_new_protected:Npn \__beery_print_meta:n #1
   {
-    $\langle$
-    { \normalfont \itshape #1 }
-    $\rangle$
+    \ensuremath \langle
+    \group_begin:
+      \normalfont \itshape #1
+    \group_end:
+    \ensuremath \rangle
   }
-\NewDocumentCommand \cls { >{ \TrimSpaces } m } { \textsf {#1} }
-\NewDocumentCommand \env { >{ \TrimSpaces } m } { \texttt {#1} }
-\NewDocumentCommand \pkg { >{ \TrimSpaces } m } { \textsf {#1} }
-\NewDocumentCommand \latin { >{ \TrimSpaces } m } { \textit {#1} }
+\NewDocumentCommand \cls { >{ \TrimSpaces } m }
+  {
+    \mode_if_math:TF
+      { \msg_error:nne { beery } { math-mode-error } { \token_to_str:N \cls } }
+      { \__beery_print_cls:n {#1} }
+  }
+\cs_new_protected:Npn \__beery_print_cls:n #1 { \textsf {#1} \@ }
+\NewDocumentCommand \env { >{ \TrimSpaces } m }
+  {
+    \mode_if_math:TF
+      { \msg_error:nne { beery } { math-mode-error } { \token_to_str:N \env } }
+      { \__beery_print_env:n {#1} }
+  }
+\cs_new_protected:Npn \__beery_print_env:n #1 { \texttt {#1} \@ }
+\NewDocumentCommand \pkg { >{ \TrimSpaces } m }
+  {
+    \mode_if_math:TF
+      { \msg_error:nne { beery } { math-mode-error } { \token_to_str:N \pkg } }
+      { \__beery_print_pkg:n {#1} }
+  }
+\cs_new_protected:Npn \__beery_print_pkg:n #1 { \textsf {#1} \@ }
+\NewDocumentCommand \latin { >{ \TrimSpaces } m }
+  {
+    \mode_if_math:TF
+      {
+        \msg_error:nne { beery } { math-mode-error }
+          { \token_to_to_str:N \latin }
+      }
+      { \__beery_print_latin:n {#1} }
+  }
+\cs_new_protected:Npn \__beery_print_latin:n #1 { \textit {#1} }
 
+\NewDocumentCommand \AllCaps { O { 50 } >{ \TrimSpaces } m }
+  {
+    \mode_if_math:TF
+      {
+        \msg_error:nne { beery } { math-mode-error }
+          { \token_to_str:N \AllCaps }
+      }
+      { \__beery_text_all_caps:nn {#1} {#2} }
+  }
+\cs_new_protected:Npn \__beery_text_all_caps:nn #1#2
+  {
+    \textls [ \int_eval:n {#1} ] { \text_uppercase:n {#2} }
+    \regex_match:NnT \c__beery_ends_in_letter_regex {#2} { \@ }
+  }
+\NewDocumentCommand \AllSmallCaps
+  { >{ \ReverseBoolean } s O { 50 } >{ \TrimSpaces } m }
+  {
+    \mode_if_math:TF
+      {
+        \msg_error:nne { beery } { math-mode-error }
+          { \token_to_str:N \AllSmallCaps }
+      }
+      {
+        \IfBooleanTF #1
+          { \__beery_text_small_caps:nn {#2} {#3} }
+          { \__beery_text_lowercase_small_caps:nn {#2} {#3} }
+      }
+  }
+\cs_new_protected:Npn \__beery_text_small_caps:nn #1#2
+  { \textls [ \int_eval:n {#1} ] { \scshape #2 } }
+\cs_new_protected:Npn \__beery_text_lowercase_small_caps:nn #1#2
+  { \textls [ \int_eval:n {#1} ] { \scshape \text_lowercase:n {#2} } }
+
 % PAGE STYLE
 
 \hbox_set:Nn \l__beery_tmp_box { \c_beery_alphabet_tl }
@@ -123,33 +258,39 @@
 \skip_log:N \c_beery_medium_skip
 \skip_log:N \c_beery_small_skip
 
+% \flushbottom
 \raggedbottom
 \int_set:Nn \vbadness { 100 }
 
 \skip_set:Nn \topskip { \l_fontscale_normalsize_size_dim }
 \skip_set_eq:NN \splittopskip \topskip
+
 \RequirePackage { geometry }
+\dim_const:Nn \c_beery_textwidth_dim
+  { \fp_to_dim:n { \c_e_fp * \dim_to_fp:n { \c_beery_alphabet_dim } } }
+\dim_const:Nn \c_beery_textheight_dim
+  {
+    \fp_to_dim:n
+      { \c_beery_golden_ratio_fp * \dim_to_fp:n { \c_beery_textwidth_dim } }
+  }
+\dim_const:Nn \c_beery_footskip_dim
+  { \c_beery_big_dim + \l_fontscale_footnotesize_baselineskip_skip }
 \geometry
   {
       a4paper
-    , textwidth =
-        \fp_to_dim:n { \c_e_fp * \dim_to_fp:n { \c_beery_alphabet_dim } }
-    , textheight =
-        \fp_to_dim:n
-          { 1.6180 * \c_e_fp * \dim_to_fp:n { \c_beery_alphabet_dim } }
+    , textwidth = \c_beery_textwidth_dim
+    , textheight = \c_beery_textheight_dim
     , heightrounded
     , centering
     , headheight = \l_fontscale_footnotesize_baselineskip_skip
     , headsep = \c_beery_big_dim
-    , footskip =
-        \dim_eval:n
-          { \c_beery_big_dim + \l_fontscale_footnotesize_baselineskip_skip }
+    , footskip = \c_beery_footskip_dim
   }
 
 \RequirePackage { fancyhdr }
 \pagestyle { fancy }
 \fancyhf { }
-\renewcommand \headrulewidth { 0pt }
+\cs_set:Npn \headrulewidth { 0pt }
 \fancyfoot [ C ]
   { \footnotesize \thepage \c_space_tl of~ \pageref { LastPage } }
 
@@ -159,10 +300,13 @@
 \linespread { 1 }
 \RequirePackage [ skip = \c_beery_medium_skip ] { parskip }
 \RequirePackage [ raggedrightboxes ] { ragged2e }
-\skip_set:Nn \RaggedRightRightskip { 0pt plus 0.5 \linewidth }
+\skip_set:Nn \RaggedRightRightskip { \c_zero_dim plus \c_beery_alphabet_dim }
 \dim_zero:N \RaggedRightParindent
 \dim_set_eq:NN \JustifyingParindent \RaggedRightParindent
 \RaggedRight
+% \justifying
+\RequirePackage { microtype }
+\microtypesetup { protrusion = false , expansion = false }
 \int_set:Nn \pretolerance { -1 }
 \int_set:Nn \tolerance { 200 }
 \dim_zero:N \emergencystretch
@@ -169,6 +313,7 @@
 \int_set:Nn \widowpenalty { 10000 }
 \int_set_eq:NN \clubpenalty \widowpenalty
 \int_set_eq:NN \displaywidowpenalty \widowpenalty
+% hyphenation
 \int_set:Nn \hyphenpenalty { 99 }
 \int_set_eq:NN \exhyphenpenalty \hyphenpenalty
 
@@ -179,7 +324,7 @@
 \setcounter { tocdepth } { 2 }
 
 \titlespacing* \section % section
-  { 0pt } % indent
+  { \c_zero_dim } % indent
   {
     \c_beery_big_dim
     plus  \fp_to_dim:n { 1 / 2 * 4 * \dim_to_fp:n { \c_beery_big_dim } }
@@ -187,7 +332,7 @@
   } % before
   { \c_beery_medium_skip } % after
 \titlespacing* \subsection
-  { 0pt }
+  { \c_zero_dim }
   {
     \fp_to_dim:n { 4 / 3 * \dim_to_fp:n { \c_beery_medium_dim } }
     plus  \fp_to_dim:n { 1 / 2 * 4 * \dim_to_fp:n { \c_beery_medium_dim } }
@@ -219,36 +364,56 @@
       leftmargin = *
     , labelsep  = 0.5em
       % vertical spacing
-    , topsep    = 0pt
-    , partopsep = 0pt
+    , topsep    = \c_zero_skip
+    , partopsep = \c_zero_skip
     , parsep    = \c_beery_small_skip
-    , itemsep   = 0pt
+    , itemsep   = \c_zero_skip
   }
 \setlist [ itemize   , 1 ] { label = \textbullet }
 \setlist [ itemize   , 2 ] { label = \ScaleTextBullets { 2 } }
 \setlist [ itemize   , 3 ] { label = \ScaleTextBullets { 3 } }
+\setlist [ itemize   , 4 ] { label = \ScaleTextBullets { 4 } }
 \setlist [ enumerate , 1 ] { label = \arabic* . }
-\setlist [ enumerate , 2 ] { label = \theenumi  \arabic* . }
-\setlist [ enumerate , 3 ] { label = \theenumii \arabic* . }
+\setlist [ enumerate , 2 ] { label = \theenumi   \arabic* . }
+\setlist [ enumerate , 3 ] { label = \theenumii  \arabic* . }
+\setlist [ enumerate , 4 ] { label = \theenumiii \arabic* . }
 
 % list headings
 % https://tex.stackexchange.com/questions/2644/how-to-prevent-a-page-break-before-an-itemize-list
-\NewDocumentCommand \KeepNextPar { s }
+\NewDocumentCommand \KeepNextPar { > { \ReverseBoolean } s }
   {
-    \par
-    \IfBooleanTF #1
+    \mode_if_math:TF
       {
-        \int_compare:nNnT { \prevgraf } = { 1 }
-          { \nobreak \@afterheading }
+        \msg_error:nne { beery } { math-mode-error }
+          { \token_to_str:N \KeepNextPar }
       }
+      {
+        \IfBooleanTF #1
+          { \__beery_keep_next_par: }
+          { \__beery_keep_next_par_if_single_line: }
+      }
+  }
+\cs_new_protected:Npn \__beery_keep_next_par: { \nobreak \@afterheading }
+\cs_new_protected:Npn \__beery_keep_next_par_if_single_line:
+  {
+    \int_compare:nNnT \prevgraf = 1
       { \nobreak \@afterheading }
   }
 \NewDocumentCommand \listheading { m }
   {
+    \mode_if_math:TF
+      {
+        \msg_error:nne { beery } { math-mode-error }
+          { \token_to_str:N \listheading }
+      }
+      { \__beery_typeset_list_heading:n {#1} }
+  }
+\cs_new_protected:Npn \__beery_typeset_list_heading:n #1
+  {
     \par
     #1
     \par
-    \int_compare:nNnT { \prevgraf } = { 1 }
+    \int_compare:nNnT \prevgraf = 1
       { \nobreak \@afterheading }
     \vspace { \skip_eval:n { \c_beery_small_skip - \parskip } }
   }
@@ -255,15 +420,6 @@
 
 % TABLES
 
-\renewcommand \bottomfraction { 1 }
-\renewcommand \topfraction { 1 }
-\skip_set:Nn \textfloatsep
-  {
-    \c_beery_big_dim
-    plus \c_beery_big_dim
-    minus \fp_to_dim:n { \dim_to_fp:n { \c_beery_big_dim } / 3 }
-  }
-
 \RequirePackage { tabularray }
 \UseTblrLibrary { booktabs , siunitx }
 
@@ -270,7 +426,7 @@
 % FOOTNOTES
 
 \RequirePackage [ bottom ] { footmisc }
-\renewcommand \footnoterule { }
+\cs_set_protected:Npn \footnoterule { }
 % \setlength { \skip \footins } { \c_beery_big_skip }
 \dim_set:Nn \footnotesep { \f at linespread \footnotesep }
 \coffin_new:N \l__beery_footnote_coffin
@@ -280,11 +436,11 @@
   {
     \fp_to_dim:n
       {
-        ( 1.2 * \f at linespread - 1 )
-        * \dim_to_fp:n { \l_fontscale_footnotesize_size_dim }
+        ( 1.2 * \f at linespread - 1 ) *
+        \dim_to_fp:n { \l_fontscale_footnotesize_size_dim }
       }
   }
-\RenewDocumentCommand \@makefntext { +m }
+\cs_set_protected:Npn \@makefntext #1
   {
     \vcoffin_set:Nnn \l__beery_footnote_coffin { \textwidth }
       {
@@ -294,8 +450,8 @@
               {
                 \fp_to_dim:n
                   {
-                    ( 1 - \l_fontscale_footnotesize_scale_fp ) / 2
-                    * \dim_to_fp:n { \textwidth }
+                    ( 1 - \l_fontscale_footnotesize_scale_fp ) / 2 *
+                    \dim_to_fp:n { \textwidth }
                   }
               }
             \dim_set_eq:NN \rightmargin \leftmargin
@@ -306,7 +462,7 @@
         \item #1 \endlist
       }
     \coffin_typeset:Nnnnn \l__beery_footnote_coffin { l } { b }
-      { 0pt } { - \c_beery_footnote_baselineheight_dim }
+      { \c_zero_dim } { - \c_beery_footnote_baselineheight_dim }
   }
 
 % REFERENCES

Added: trunk/Master/texmf-dist/doc/latex/scaletextbullet/scaletextbullet-code.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/scaletextbullet/scaletextbullet-code.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/scaletextbullet/scaletextbullet-code.pdf	2025-02-04 13:14:23 UTC (rev 73725)
+++ trunk/Master/texmf-dist/doc/latex/scaletextbullet/scaletextbullet-code.pdf	2025-02-04 22:08:29 UTC (rev 73726)

Property changes on: trunk/Master/texmf-dist/doc/latex/scaletextbullet/scaletextbullet-code.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/scaletextbullet/scaletextbullet-code.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/scaletextbullet/scaletextbullet-code.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/scaletextbullet/scaletextbullet-code.tex	2025-02-04 22:08:29 UTC (rev 73726)
@@ -0,0 +1,29 @@
+\documentclass{article}
+
+
+\usepackage{parskip}
+\usepackage{geometry}
+\geometry{a4paper}
+\raggedbottom\raggedright
+
+\usepackage{codehigh}
+
+\usepackage{hyperref}
+\hypersetup{bookmarksnumbered}
+
+
+\begin{document}
+
+
+\section*{\Large The \textsf{scaletextbullet} package}
+
+Resize the \texttt{\textbackslash{}textbullet} without changing its vertical center
+
+Oliver Beery
+
+Version 1.1.0\quad{}3 February 2025
+
+\dochighinput[language=latex/latex3]{scaletextbullet.sty}%
+
+
+\end{document}
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/scaletextbullet/scaletextbullet-code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/scaletextbullet/scaletextbullet.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/scaletextbullet/scaletextbullet.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/scaletextbullet/scaletextbullet.tex	2025-02-04 13:14:23 UTC (rev 73725)
+++ trunk/Master/texmf-dist/doc/latex/scaletextbullet/scaletextbullet.tex	2025-02-04 22:08:29 UTC (rev 73726)
@@ -16,7 +16,7 @@
 
 Oliver Beery
 
-Version 1.0.4\quad{}3 January 2025
+Version 1.1.0\quad{}3 February 2025
 
 
 \section{Introduction}
@@ -29,7 +29,7 @@
 The \textbulletfactor{} is the ratio of the width of the \cs{textbullet}, excluding its empty space, to its width, including its empty space.
 One way of estimating the \textbulletfactor{} is by using \cs{scaletextbulletdebug}.
 
-This package provides a solution that works in text mode.
+This package provides a solution that works only in text mode.
 For a solution that works only in math mode, see the linked \TeX{} Stack Exchange thread.%
 \footnote{\url{https://tex.stackexchange.com/questions/119319/how-to-correctly-shrink-the-bullets-of-itemize}}
 
@@ -48,8 +48,7 @@
 \label{sec:commands}
 
 This package defines some commands whose argument takes a \meta{floating point expression} or \meta{integer expression}.
-This syntax has the same representation as the arguments to \cs{fpeval} and \cs{inteval}, documented in \pkg{usrguide}.%
-\footnote{\url{https://ctan.org/pkg/usrguide}}
+This syntax has the same representation as the arguments to \cs{fpeval} and \cs{inteval}, documented in \pkg{usrguide}.
 
 \begin{mydisplaycode}
   \cs{SetTextBulletFactor} \marg{floating point expression}
@@ -57,7 +56,7 @@
 
 Sets the \textbulletfactor{} to the result of computing the \meta{floating point expression}.
 The \textbulletfactor{} is the ratio of the width of the \cs{textbullet}, excluding its empty space, to its width, including its empty space.
-This change is local to the current group.
+The scope of the effect is local to the current group.
 The initial \textbulletfactor{} is \num{0.4}\---this matches the dimensions of the \cs{textbullet} of the Latin Modern font at size \qty{10}{pt}.
 \pagebreak%manual
 
@@ -67,6 +66,7 @@
 
 Prints a \cs{textbullet} with its size scaled by the result of computing the \meta{floating point expression}.
 The new \cs{textbullet} will be printed with the same vertical center only if the \textbulletfactor{} is set to the correct value.
+Cannot be used in math mode.
 
 \begin{mydisplaycode}
   \cs{ScaleTextBullets} \oarg{floating point expression} \marg{integer expression}
@@ -79,6 +79,7 @@
   }
 If the optional argument is used, the size of each \cs{textbullet} is instead scaled by the result of computing the \meta{floating point expression}.
 The new \cs{textbullet} will be printed with the same vertical center only if the \textbulletfactor{} is set to the correct value.
+Cannot be used in math mode.
 
 \begin{mydisplaycode}
   \cs{scaletextbulletdebug}
@@ -89,6 +90,7 @@
 The \cs{textbullet}s are followed by the original \cs{textbullet} inside a framed box.
 The framed box has width equal to the \textbulletfactor{} \texttimes{} the total width of the \cs{textbullet} (this includes its empty space).
 The \textbulletfactor{} is set to the correct value when the \num{15} consecutive \cs{textbullet}s have the same vertical center and the \cs{textbullet} fits nicely inside the framed box.
+Cannot be used in math mode.
 
 
 \section{Application}

Modified: trunk/Master/texmf-dist/tex/latex/scaletextbullet/scaletextbullet.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/scaletextbullet/scaletextbullet.sty	2025-02-04 13:14:23 UTC (rev 73725)
+++ trunk/Master/texmf-dist/tex/latex/scaletextbullet/scaletextbullet.sty	2025-02-04 22:08:29 UTC (rev 73726)
@@ -1,16 +1,18 @@
-% Package   : scaletextbullet -- Resize the \textbullet without changing its
-% vertical center
-% Copyright : 2024-2025 (c) Oliver Beery <beeryoliver at gmail.com>
-% CTAN      : https://ctan.org/pkg/scaletextbullet
-% Repository: https://github.com/beeryoliver/scaletextbullet
-% License   : The LaTeX Project Public License 1.3c
+%%% Package   : scaletextbullet -- Resize the \textbullet without changing its
+%%% vertical center
+%%% Copyright : 2024-2025 (c) Oliver Beery <beeryoliver at gmail.com>
+%%% CTAN      : https://ctan.org/pkg/scaletextbullet
+%%% Repository: https://github.com/beeryoliver/scaletextbullet
+%%% License   : The LaTeX Project Public License 1.3c
 
+%%> \section{Loading the package}
+
 % LaTeX2e version 2023-11-01 added \IfExplAtLeastTF.
 \NeedsTeXFormat{LaTeX2e}[2023-11-01]
 \ProvidesExplPackage
   {scaletextbullet}
-  {2025-01-03}
-  {1.0.4}
+  {2025-02-03}
+  {1.1.0}
   {Resize the \noexpand\textbullet without changing its vertical center.}
 
 % l3kernel version 2023-10-10 added many 'e'-variants.
@@ -27,19 +29,21 @@
 
 % This package does not require any other packages!
 
-% MESSAGES
+%%> \section{Messages}
 
+% \textbullet is invalid in math mode.
+\msg_new:nnn { scaletextbullet } { math-mode-error }
+  { '#1'~ cannot~ be~ used~ in~ math~ mode~ \msg_line_context:. }
 \msg_new:nnn { scaletextbullet } { factor-out-of-bounds }
   { Invalid~ \iow_char:N \\textbullet~ factor~ '#1'~ \msg_line_context:. }
 \msg_new:nnn { scaletextbullet } { scale-out-of-bounds }
   { Invalid~ scale~ factor~ '#1'~ \msg_line_context:. }
 \msg_new:nnn { scaletextbullet } { count-out-of-bounds }
-  {
-    Invalid~ number~ of~ \iow_char:N \\textbullet s~ '#1'~ \msg_line_context:.
-  }
+  { Invalid~ number~ of~ \iow_char:N \\textbullet~ '#1'~ \msg_line_context:. }
 
-% SOME VARIABLES
+%%> \section{Some variables}
 
+% The \textbullet factor
 \fp_new:N \l__scaletextbullet_factor_fp
 \fp_set:Nn \l__scaletextbullet_factor_fp { 0.4 }
 
@@ -53,10 +57,10 @@
 \fp_new:N  \l__scaletextbullet_tmp_fp
 \box_new:N \l__scaletextbullet_tmp_box
 
-% SOME FUNCTIONS
+%%> \section{Some functions}
 
 % Used to process user input. Sets an integer variable from an integer
-% expression and removes extra tokens.
+% expression and removes extra trailing tokens, if any.
 \cs_new_protected:Npn \__scaletextbullet_int_set_from_user:Nn #1#2
   {
     \afterassignment \use_none_delimit_by_q_stop:w
@@ -67,9 +71,9 @@
 \cs_new_protected:Npn \__scaletextbullet_arg_process_int:n #1
   {
     \group_begin:
-      \__scaletextbullet_int_set_from_user:Nn \l_tmpa_int {#1}
+      \__scaletextbullet_int_set_from_user:Nn \l__scaletextbullet_tmp_int {#1}
     \exp_args:NNNV \group_end:
-    \tl_set:Nn \ProcessedArgument \l_tmpa_int
+    \tl_set:Nn \ProcessedArgument \l__scaletextbullet_tmp_int
   }
 % Lowers the \textbullet to the baseline, scales it by a factor of #2, and
 % then raises it back to the vertical center.
@@ -82,8 +86,8 @@
     \hbox_set:Nn #1 { \textbullet }
     \dim_set:Nn \l__scaletextbullet_bottom_dim
       {
-        \box_ht:N #1
-        - \fp_to_dim:n
+        \box_ht:N #1 -
+        \fp_to_dim:n
           { \l__scaletextbullet_factor_fp * \dim_to_fp:n { \box_wd:N #1 } }
       }
     \dim_set:Nn \l__scaletextbullet_center_dim
@@ -90,8 +94,8 @@
       {
         \fp_to_dim:n
           {
-            \dim_to_fp:n { \box_ht:N #1 + \l__scaletextbullet_bottom_dim }
-            * \c__scaletextbullet_one_half_fp
+            \dim_to_fp:n { \box_ht:N #1 + \l__scaletextbullet_bottom_dim } *
+            \c__scaletextbullet_one_half_fp
           }
       }
     \hbox_set:Nn #1
@@ -103,8 +107,8 @@
       {
         \box_move_up:nn
           {
-            \l__scaletextbullet_center_dim
-            - \fp_to_dim:n
+            \l__scaletextbullet_center_dim -
+            \fp_to_dim:n
               {
                 \dim_to_fp:n { \box_ht:N #1 } * \c__scaletextbullet_one_half_fp
               }
@@ -113,7 +117,7 @@
       }
   }
 
-% DOCUMENT COMMANDS
+%%> \section{Document commands}
 
 \NewDocumentCommand \SetTextBulletFactor { m }
   { \__scaletextbullet_set_factor:n {#1} }
@@ -128,7 +132,15 @@
   }
 
 \NewDocumentCommand \ScaleTextBullet { m }
-  { \mode_leave_vertical: \__scaletextbullet_scaletextbullet:n {#1} }
+  {
+    \mode_leave_vertical:
+    \mode_if_math:TF
+      {
+        \msg_error:nne { scaletextbullet } { math-mode-error }
+          { \token_to_str:N \ScaleTextBullet }
+      }
+      { \__scaletextbullet_scaletextbullet:n {#1} }
+  }
 \cs_new_protected:Npn \__scaletextbullet_scaletextbullet:n #1
   {
     \fp_set:Nn \l__scaletextbullet_tmp_fp {#1}
@@ -151,9 +163,16 @@
   { o >{ \__scaletextbullet_arg_process_int:n } m }
   {
     \mode_leave_vertical:
-    \IfNoValueTF {#1}
-      { \__scaletextbullet_scaletextbullets:n {#2} }
-      { \__scaletextbullet_scaletextbullets:nn {#1} {#2} }
+    \mode_if_math:TF
+      {
+        \msg_error:nne { scaletextbullet } { math-mode-error }
+          { \token_to_str:N \ScaleTextBullets }
+      }
+      {
+        \IfNoValueTF {#1}
+          { \__scaletextbullet_scaletextbullets:n {#2} }
+          { \__scaletextbullet_scaletextbullets:nn {#1} {#2} }
+      }
   }
 \cs_new_protected:Npn \__scaletextbullet_scaletextbullets:n #1
   {
@@ -228,7 +247,15 @@
   }
 
 \NewDocumentCommand \scaletextbulletdebug { }
-  { \mode_leave_vertical: \__scaletextbullet_debug: }
+  {
+    \mode_leave_vertical:
+    \mode_if_math:TF
+      {
+        \msg_error:nne { scaletextbullet } { math-mode-error }
+          { \token_to_str:N \scaletextbulletdebug }
+      }
+      { \__scaletextbullet_debug: }
+  }
 % I have referenced code by the great egreg:
 % https://tex.stackexchange.com/questions/620507/how-to-resize-textbullet-without-the-bullet-moving-down
 \cs_new_protected:Npn \__scaletextbullet_debug:

Modified: trunk/Master/tlpkg/libexec/ctan2tds
===================================================================
--- trunk/Master/tlpkg/libexec/ctan2tds	2025-02-04 13:14:23 UTC (rev 73725)
+++ trunk/Master/tlpkg/libexec/ctan2tds	2025-02-04 22:08:29 UTC (rev 73726)
@@ -692,7 +692,8 @@
  'hilowres',    "die 'skipping, nonfree'",
  'hindmadurai',	"&MAKEflatten",
  'historische-zeitschrift', "&MAKEflatten",
- 'hitex-def',   "die 'skipping, martin does from build tree'",
+ 'hitex-def',   "die 'skipping, martin.r does from build tree'",
+ 'hittype',	"die 'skipping, nosell'",
  'hm-ftx',      "die 'skipping, use persian-hm-ftx'",
  'hm-xbs',      "die 'skipping, use persian-hm-xbs'",
  'html2latex',  "die 'skipping, no self-locating of Perl modules'",



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