texlive[61366] Master/texmf-dist: xistercian (21dec21)

commits+karl at tug.org commits+karl at tug.org
Tue Dec 21 22:44:13 CET 2021


Revision: 61366
          http://tug.org/svn/texlive?view=revision&revision=61366
Author:   karl
Date:     2021-12-21 22:44:13 +0100 (Tue, 21 Dec 2021)
Log Message:
-----------
xistercian (21dec21)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/xistercian/README.md
    trunk/Master/texmf-dist/doc/latex/xistercian/xistercian.pdf
    trunk/Master/texmf-dist/source/latex/xistercian/xistercian.dtx
    trunk/Master/texmf-dist/tex/latex/xistercian/xistercian.sty

Modified: trunk/Master/texmf-dist/doc/latex/xistercian/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/xistercian/README.md	2021-12-21 03:39:10 UTC (rev 61365)
+++ trunk/Master/texmf-dist/doc/latex/xistercian/README.md	2021-12-21 21:44:13 UTC (rev 61366)
@@ -1,7 +1,7 @@
 -------------------------------------------------------------------------------
 # xistercian -- Cistercian numerals in LaTeX
 
-Version 2021-11-23 v1.1a
+Version 2021-12-20 v1.2
 
 Released under the LaTeX Project Public License v1.3c or later
 See http://www.latex-project.org/lppl.txt

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

Modified: trunk/Master/texmf-dist/source/latex/xistercian/xistercian.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/xistercian/xistercian.dtx	2021-12-21 03:39:10 UTC (rev 61365)
+++ trunk/Master/texmf-dist/source/latex/xistercian/xistercian.dtx	2021-12-21 21:44:13 UTC (rev 61366)
@@ -55,7 +55,7 @@
 \fi
 %
 \IfFileExists{xistercian.sty}{\RequirePackage[debug]{xistercian}}{}
-\ProvidesFile{xistercian.dtx}[2021-11-23 v1.1a Cistercian numerals in LaTeX]
+\ProvidesFile{xistercian.dtx}[2021-12-20 v1.2 Cistercian numerals in LaTeX]
 \PassOptionsToPackage{full}{textcomp}
 \documentclass{l3doc}
 \RequirePackage[fulloldstyle,nott]{kpfonts}
@@ -80,32 +80,38 @@
       \cisterciannum{#1}^^A
     \endgroup
   }
+\pagenumbering{cistercian}
+\ExplSyntaxOn
+\makeatletter
+\AddToHook{env/syntax/begin}{\let\myhfill\hfill}
+\let\myhfill\@empty
 \newcommand*\mydefault[1]
-  {^^A
+  {
     \begingroup
-      \color{darkgray}^^A
+      \color{darkgray}
       \myrestoredefaults
-      \hfill
+      \myhfill
       \texttt
-        {^^A
-          \detokenize\expandafter\expandafter\expandafter
-            {\csname xister@#1\endcsname}^^A
-          \unskip
-        }^^A
+        {
+          \expandafter\ifx\csname xister@#1\endcsname\@empty
+            \normalfont\emph{empty}
+          \else
+            \detokenize\expandafter\expandafter\expandafter
+              {\csname xister@#1\endcsname}
+            \unskip
+          \fi
+        }
     \endgroup
   }
 \newcommand*\mysdefault[1]
-  {^^A
+  {
     \begingroup
-      \color{darkgray}^^A
+      \color{darkgray}
       \myrestoredefaults
-      \hfill
-      \texttt{#1}^^A
+      \myhfill
+      \texttt { \str_if_eq:nnTF {#1} { empty } { \normalfont \emph{#1} } {#1} }
     \endgroup
   }
-\pagenumbering{cistercian}
-\ExplSyntaxOn
-\makeatletter
 \def\myrestoredefaults#1{\def\unexpanded{#1}{\unexpanded\expandafter{#1}}}
 \edef\myrestoredefaults
   {
@@ -117,6 +123,7 @@
     \myrestoredefaults\xister at th
     \myrestoredefaults\xister at tdu
     \myrestoredefaults\xister at tdd
+    \myrestoredefaults\xister at ts
     \myrestoredefaults\xister at font
   }
 \makeatother
@@ -135,11 +142,33 @@
   {\cisterciansetup{sv=.27ex,sdd=.27ex,sh=.12ex,sdu=.12ex,wd=.625em}}
 \AddToHook{mdseries}{\myrestoredefaults}
 \cisterciansetup{redraw+=series}
+\tl_new:N \l__xisterexample_digit_tl
+\newcommand*\showbb[1]
+  {
+    \begingroup
+      \cisterciansetup{#1}\cistercianredraw
+      \fboxrule=.5pt
+      \fboxsep=-.5\fboxrule
+      \leavevmode
+      \rlap
+        {
+          \textcolor{red}
+            {\fbox{\phantom{\cisterciannumE{\l__xisterexample_digit_tl}}}}
+        }
+      \kern.5\fboxrule
+      \cisterciannumE{\l__xisterexample_digit_tl}
+      \kern.5\fboxrule
+    \endgroup
+  }
+\newcommand*\exampledigits{\tl_set:Nn \l__xisterexample_digit_tl}
+\cistercianstyle{.ex}{sv=3pt,sdd=3pt,sh=2pt,sdu=2pt}
+\cistercianstyle{vex}{o=v,bx=,by=,wd=7mm,ht=14mm,.ex}
+\cistercianstyle{hex}{o=h,bx=,by=,ht=7mm,wd=14mm,.ex}
 \ExplSyntaxOff
 \begin{document}
   \title{The \pkg{xistercian} package}
   \author{Jonathan P. Spratte\thanks{\protect\randomize{jspratte at yahoo.de}}}
-  \date{2021-11-23 v1.1a}
+  \date{2021-12-20 v1.2}
   \DocInput{xistercian.dtx}
 \end{document}
 %</driver>^^A=<<
@@ -171,6 +200,13 @@
 % This package also supports that, in which case the numerals are rotated by
 % $90$ degrees counter-clockwise, see figure~\ref{fig:glyphs:h}.
 %
+% Moreover some glyphs have a different shape in some manuscripts. The shapes in
+% figures~\ref{fig:glyphs} and~\ref{fig:glyphs:h} are the most used ones
+% nowadays (most likely because those are the ones Wikipedia shows vector
+% graphics of). This package offers some (not all) alternative forms. Most
+% notably some historic documents have swapped shapes of digits. To not further
+% the confusion this package doesn't support swapping digit shapes.
+%
 % All glyphs have the same bounding box, are drawn using the \pkg{pgf}
 % package, and cached inside \TeX\ box registers. Therefore the performance is
 % quite well, at least well enough to actually consider using these numerals
@@ -219,7 +255,8 @@
 % The package tries to play nice on \pkg{hyperref} if it is loaded, but
 % bookmarks containing material that should've been a Cistercian numeral will
 % have a leading |CISTER| in front of the numeric value to give unique
-% strings compared to |\arabic|.
+% strings compared to |\arabic| (to my knowledge there are no Unicode points for
+% Cistercian numerals).
 %
 % Negative numbers just keep a leading~|-|, and numbers with an absolute number
 % greater than $9999$ are displayed with multiple Cistercian digits. For
@@ -227,7 +264,12 @@
 % that four consecutive digits are zeros they get displayed as that:
 % \cistexnum{10000} is $10000$.
 %
+% Full disclaimer: I'm neither a historian nor have I any authority on the
+% matter. I'm just a bloke who was fascinated by this numeral system and wanted
+% to provide \LaTeX\ support for it. Most of my knowledge about this stems from
+% Wikipedia and similar sources.
 %
+%
 % \subsection{Macros}
 %
 % \begin{function}{\cistercian}
@@ -282,16 +324,26 @@
 %
 % \begin{function}{\cistercianstyle}
 %   \begin{syntax}
-%     \cs{cistercianstyle}\marg{name}\marg{key=value,\ldots}
+%     \cs{cistercianstyle}\meta{*}\marg{name}\marg{key=value,\ldots}
 %   \end{syntax}
 %   With this macro you can define a key called \meta{name} that'll set the
 %   options in the \meta{key=value} list if used inside |\cisterciansetup|.
-%   Only new names are allowed.
+%   Only new names are allowed. If your style shouldn't take an argument (so is
+%   fixed) use the normal variant. If your style needs to take an argument use
+%   the variant with \meta{*}.
 % \end{function}
-% For example, the key |horizontal| is equivalently defined to
+% For example, the key |horizontal| is equivalently defined to and can be used
+% as
 % \begin{verbatim}
 % \cistercianstyle{horizontal}{o=h,wd=0.775em,ht=1.13ex}
+% \cisterciansetup{horizontal}
 % \end{verbatim}
+% And if you want to define a style that at the same time changes the stroke
+% widths for vertical and horizontal strokes you could use
+% \begin{verbatim}
+% \cistercianstyle*{sh+v}{sh={#1},sv={#1}}
+% \cisterciansetup{sh+v=.12ex}
+% \end{verbatim}
 %
 %
 % \subsection{Options}
@@ -303,10 +355,10 @@
 %
 % For the options |width| and |height|, and probably also the strokes, you
 % should use dimensions using |ex| or |em| to get sizes depending on the current
-% font size. For all three of those options the \meta{dimension expression} is
-% evaluated (using the setup specified in |font|) every time the font changed
-% according to the |redraw| option's feature list (by default only when the size
-% changed) since the last time they were drawn.
+% font size. A \meta{dimension expression} is evaluated (using the setup
+% specified in |font|) every time the font changed according to the |redraw|
+% option's feature list (by default only when the size changed) since the last
+% time they were drawn.
 %
 % Initial values if present are printed on the right. A small graphic explaining
 % most of the size related options is shown in figure~\ref{fig:size}.
@@ -392,7 +444,7 @@
 %
 % \begin{function}{bound-y,by}
 %   \begin{syntax}
-%     bound-y = \marg{float} \mysdefault{\normalfont\emph{empty}}
+%     bound-y = \marg{float} \mydefault{by}
 %   \end{syntax}
 %   Specifies the factor the bounding box in $y$-direction is bigger than the
 %   |height|. An empty \meta{float} is considered the same as $1$.
@@ -400,7 +452,7 @@
 %
 % \begin{function}{baseline,bs}
 %   \begin{syntax}
-%     baseline = \marg{float} \mysdefault{\normalfont\emph{empty}}
+%     baseline = \marg{float} \mydefault{bs}
 %   \end{syntax}
 %   Sets the baseline of the symbols in multiples of the negative height. $1$
 %   (or empty) results in the symbol starting on the surrounding baseline,
@@ -437,6 +489,15 @@
 %   right.
 % \end{function}
 %
+% \begin{function}{stroke-s,ss}
+%   \begin{syntax}
+%     stroke-s = \marg{dimension expression} \mydefault{ts}
+%   \end{syntax}
+%   Sets the stroke thickness of the zero stem. If this is set to an empty value
+%   the stroke thickness in vertical mode is that of |stroke-v| and in
+%   horizontal mode that of |stroke-h|.
+% \end{function}
+%
 % \begin{function}{strokes,s}
 %   \begin{syntax}
 %     stroke = \marg{dimension expression}
@@ -454,8 +515,8 @@
 %   right rectangle. The width of that rectangle is determined by |width|, and
 %   the upper border by |height|, and with this option you can set the lower
 %   border as a fraction of the |height|. You can either just give a factor as a
-%   \meta{float}, or just pass in a divisor as an \meta{integer}, or both. An
-%   empty \meta{float} equals $1$.
+%   \meta{float}, or just pass in a divisor as an \meta{integer} (with a leading
+%   slash), or both. An empty \meta{float} equals $1$.
 % \end{function}
 % Consider the following example (result on the right):\\[\bigskipamount]
 % \begin{minipage}[c]{.8\linewidth}
@@ -498,7 +559,7 @@
 %   \begin{syntax}
 %     alternate-5 = \marg{choice} \mysdefault{triangle}
 %   \end{syntax}
-%   There are alternative forms of the digit $5$, while the most often used one
+%   There are alternative forms of the digit $5$. While the most often used one
 %   nowadays seems to be the |triangle| form, this package also supports two
 %   other variants. Those are called |dot| and |dash|. While if you choose
 %   |triangle| you can't give an additional value, if your choice is |dot| or
@@ -507,12 +568,13 @@
 %   value if you changed the value at some point in time).
 %
 %   For |dot| you can also specify the radius as a dimension. The default is
-%   \mbox{\mydefault{five at dot}}.
+%   \mydefault{five at dot}.
 %
 %   For |dash| you can specify the length of the dash in multiples of the used
 %   stroke thickness (which might differ for the horizontal and vertical
 %   symbols), an empty value is considered the same as $1$. The default is
-%   \mbox{\mysdefault{\normalfont\emph{empty}}}.
+%   \mydefault{five at dash}. Please ensure that your readers can't confuse the
+%   results with the shape of $6$.
 %
 %   A comparison of the three alternate forms is shown in
 %   figure~\ref{fig:fives}.
@@ -529,34 +591,81 @@
 %
 % \begin{figure}
 %   \centering
-%   \def\showbb#1{^^A
-%       \begingroup
-%       \cisterciansetup{#1}\cistercianredraw
-%       \fboxrule=.5pt
-%       \fboxsep=-.5\fboxrule
-%       \leavevmode
-%       \rlap{\textcolor{red}{\fbox{\phantom{\cisterciannum{5555}}}}}^^A
-%       \kern.5\fboxrule\cisterciannum{5555}\kern.5\fboxrule^^A
-%       \endgroup
-%     }^^A
-%   \cisterciansetup{bx=1,by=1,wd=1cm,ht=2cm,sv=3pt,sdd=3pt,sh=2pt,sdu=2pt}
-%   \cistercianstyle{hexample}{o=h,ht=1cm,wd=2cm}
-%   \begin{tabular}{*5c}
-%     \texttt{triangle} &
-%     \texttt{dot=2pt}  & \texttt{dot=4pt} &
-%     \texttt{dash=1}   & \texttt{dash=3}  \\
-%     \showbb{5=triangle} &
-%     \showbb{5=dot=2pt}  & \showbb{5=dot=4pt} &
-%     \showbb{5=dash=1}   & \showbb{5=dash=3}  \\
-%     \showbb{5=triangle,hexample} &
-%     \showbb{5=dot=2pt,hexample}  & \showbb{5=dot=4pt,hexample} &
-%     \showbb{5=dash=1,hexample}   & \showbb{5=dash=3,hexample}
-%   \end{tabular}
+%   \exampledigits{5555}%
+%   \begingroup
+%     \cisterciansetup{vex}%
+%     \begin{tabular}{*5c}
+%       \texttt{triangle}        &
+%         \texttt{dot=2pt}       & \texttt{dot=4pt} &
+%         \texttt{dash=1}        & \texttt{dash=3}  \\
+%       \showbb{5=triangle}      &
+%         \showbb{5=dot=2pt}     & \showbb{5=dot=4pt} &
+%         \showbb{5=dash=1}      & \showbb{5=dash=3}  \\
+%       \showbb{5=triangle,hex}  &
+%         \showbb{5=dot=2pt,hex} & \showbb{5=dot=4pt,hex} &
+%         \showbb{5=dash=1, hex} & \showbb{5=dash=3, hex} \\
+%     \end{tabular}
+%   \endgroup
 %   \caption[Alternate forms of the digit $5$]
-%     {Alternate forms of the digit $5$. The tight bounding
-%      boxes using \texttt{bx=1,by=1} are drawn red.\label{fig:fives}}
+%     {Alternate forms of the digit $5$. The length of the \texttt{dash=3}
+%      variant is too long in the normal setup of this document, as the
+%      difference between {\cisterciansetup{5=dash=3,r!}\cisterciannum{5555}}
+%      and \cisterciannum{6666} is hard to notice. The tight bounding boxes
+%      using \texttt{bx=1,by=1} are drawn red.\label{fig:fives}}
 % \end{figure}
 %
+% \begin{function}{alternate-6,6}
+%   \begin{syntax}
+%     \cs{alternate-6} = \marg{choice} \mysdefault{stroke}
+%   \end{syntax}
+%   There are alternative forms of the digit $6$. While today the usual form is
+%   |stroke|, there are also historic documents showing the $6$ as two dots,
+%   which you can achieve using the |dot| choice, and to support squares or
+%   short dashes instead of round dots you can use the |dash| choice.
+%
+%   For |dot| you can also specify the radius as a dimension. The default is
+%   \mydefault{six at dot}. And for |dash| you can also specify the length in
+%   multiples of the used stroke thickness, an empty value is considered the
+%   same as $1$. The default is \mydefault{six at dash}. The |stroke| has always
+%   the full length and doesn't accept an additional specification.
+%
+%   A comparison of the alternate forms is shown in figure~\ref{fig:69}.
+% \end{function}
+%
+% \begin{function}{alternate-9,9}
+%   \begin{syntax}
+%     \cs{alternate-9} = \marg{choice} \mysdefault{rectangle}
+%   \end{syntax}
+%   Another digit having alternative forms is the $9$. For this two
+%   \meta{choice}s are available, |rectangle| and |triangle|. Neither of the two
+%   accept additional specifications.
+%
+%   A comparison of the alternate forms is shown in figure~\ref{fig:69}.
+% \end{function}
+%
+% \begin{figure}
+%   \centering
+%   \exampledigits{6666}%
+%   \cisterciansetup{vex}%
+%   \begin{tabular}{@{}*5c}
+%     \texttt{stroke}       & \texttt{dot=2pt}       & \texttt{dot=4pt}
+%                           & \texttt{dash=1}        & \texttt{dash=2}        \\
+%     \showbb{6=stroke}     & \showbb{6=dot=2pt}     & \showbb{6=dot=4pt}
+%                           & \showbb{6=dash=1}      & \showbb{6=dash=2}      \\
+%     \showbb{6=stroke,hex} & \showbb{6=dot=2pt,hex} & \showbb{6=dot=4pt,hex}
+%                           & \showbb{6=dash=1, hex} & \showbb{6=dash=2, hex} \\
+%   \end{tabular}\hfill
+%   \exampledigits{9999}%
+%   \begin{tabular}{*2c@{}}
+%     \texttt{rectangle}       & \texttt{triangle}       \\
+%     \showbb{9=rectangle}     & \showbb{9=triangle}     \\
+%     \showbb{9=rectangle,hex} & \showbb{9=triangle,hex} \\
+%   \end{tabular}
+%   \caption[Alternate forms of the digits $6$ and $9$]
+%     {Alternate forms of the digits $6$ (left) and $9$ (right). The tight
+%     bounding boxes using \texttt{bx=1,by=1} are drawn red.\label{fig:69}}
+% \end{figure}
+%
 % \begin{function}{font,f}
 %   \begin{syntax}
 %     font = \marg{font setup} \mydefault{font}
@@ -651,7 +760,7 @@
 % \gobbledocstriptag
 %<*pkg>
 %    \begin{macrocode}
-\ProvidesPackage{xistercian}[2021-11-23 v1.1a Cistercian numerals in LaTeX]
+\ProvidesPackage{xistercian}[2021-12-20 v1.2 Cistercian numerals in LaTeX]
 \RequirePackage{pgf,expkv-opt}
 %    \end{macrocode}
 %
@@ -665,6 +774,7 @@
 \newcommand*\xister at tv{.18ex}
 \newcommand*\xister at tdu{.1ex}
 \newcommand*\xister at tdd{.18ex}
+\newcommand*\xister at ts{}
 \newcommand*\xister at x{.5em}
 \newcommand*\xister at y{1.55ex}
 \newcommand*\xister at bx{1.2}
@@ -673,11 +783,16 @@
 \newcommand*\xister at font{\normalfont}
 \newcommand*\xister at five@dot{.09ex}
 \newcommand*\xister at five@dash{}
+\newcommand*\xister at six@dot{.09ex}
+\newcommand*\xister at six@dash{}
 \newcommand*\xister at share@div{/6}
 \newcommand*\xister at share@mul{}
 \newif\ifxister at dbg@
 \newif\ifxister at five@triangle@\xister at five@triangle at true
 \newif\ifxister at five@dot@
+\newif\ifxister at six@dot@
+\newif\ifxister at six@stroke@\xister at six@stroke at true
+\newif\ifxister at nine@triangle@
 \newdimen\xister at X
 \newdimen\xister at Y
 \newdimen\xister at XY@share
@@ -685,8 +800,11 @@
 \newdimen\xister at Tv
 \newdimen\xister at Tdu
 \newdimen\xister at Tdd
+\newdimen\xister at Ts
 \newdimen\xister at TMPA
 \newdimen\xister at TMPB
+\newdimen\xister at Five@dot
+\newdimen\xister at Six@dot
 %    \end{macrocode}
 %
 % We also need a bunch of box registers ($37$ of them to be precise). For the
@@ -888,6 +1006,9 @@
   }
 \xister at tmp{wd}{width}{\edef\xister at x{\unexpanded{#1}}\xister at dbg@dim{#1}}
 \xister at tmp{ht}{height}{\edef\xister at y{\unexpanded{#1}}\xister at dbg@dim{#1}}
+\xister at tmp{bx}{bound-x}{\edef\xister at bx{\unexpanded{#1}}\xister at dbg@float{#1}}
+\xister at tmp{by}{bound-y}{\edef\xister at by{\unexpanded{#1}}\xister at dbg@float{#1}}
+\xister at tmp{bs}{baseline}{\edef\xister at bs{\unexpanded{#1}}\xister at dbg@float{#1}}
 \xister at tmp{sv}{stroke-v}{\edef\xister at tv{\unexpanded{#1}}\xister at dbg@dim{#1}}
 \xister at tmp{sh}{stroke-h}{\edef\xister at th{\unexpanded{#1}}\xister at dbg@dim{#1}}
 \xister at tmp{sdu}{stroke-du}
@@ -894,9 +1015,11 @@
   {\edef\xister at tdu{\unexpanded{#1}}\xister at dbg@dim{#1}}
 \xister at tmp{sdd}{stroke-dd}
   {\edef\xister at tdd{\unexpanded{#1}}\xister at dbg@dim{#1}}
-\xister at tmp{bx}{bound-x}{\edef\xister at bx{\unexpanded{#1}}\xister at dbg@float{#1}}
-\xister at tmp{by}{bound-y}{\edef\xister at by{\unexpanded{#1}}\xister at dbg@float{#1}}
-\xister at tmp{bs}{baseline}{\edef\xister at bs{\unexpanded{#1}}\xister at dbg@float{#1}}
+\xister at tmp{ss}{stroke-s}
+  {%
+    \edef\xister at ts{\unexpanded{#1}}%
+    \unless\ifx\xister at ts\@empty\xister at dbg@dim{#1}\fi
+  }
 \xister at tmp{s}{strokes}
   {%
     \edef\xister at tv{\unexpanded{#1}}%
@@ -903,6 +1026,7 @@
     \let\xister at th\xister at tv
     \let\xister at tdu\xister at tv
     \let\xister at tdd\xister at tv
+    \let\xister at ts\xister at tv
     \xister at dbg@dim{#1}%
   }
 \xister at tmp{f}{font}{\edef\xister at font{\unexpanded{#1}}}
@@ -960,6 +1084,40 @@
 \ekvlet{xister}{5}\xister at five@set
 \ekvlet{xister}{alternate-5}\xister at five@set
 \let\xister at five@set\xister at undefined
+\protected\long\ekvdef{xister/6}{dot}
+  {%
+    \xister at six@stroke at false
+    \xister at six@dot at true
+    \edef\xister at six@dot{\unexpanded{#1}}%
+    \xister at dbg@dim{#1}%
+  }
+\protected\long\ekvdef{xister/6}{dash}
+  {%
+    \xister at six@stroke at false
+    \xister at six@dot at false
+    \edef\xister at six@dash{\unexpanded{#1}}%
+    \xister at dbg@float{#1}%
+  }
+\protected\ekvdefNoVal{xister/6}{stroke}{\xister at six@stroke at true}
+\protected\ekvdefNoVal{xister/6}{dot}
+  {%
+    \xister at six@stroke at false
+    \xister at six@dot at true
+  }
+\protected\ekvdefNoVal{xister/6}{dash}
+  {%
+    \xister at six@stroke at false
+    \xister at six@dot at false
+  }
+\protected\ekvsetdef\xister at six@set{xister/6}
+\ekvlet{xister}{6}\xister at six@set
+\ekvlet{xister}{alternate-6}\xister at six@set
+\let\xister at six@set\xister at undefined
+\protected\ekvdefNoVal{xister/9}{rectangle}{\xister at nine@triangle at false}
+\protected\ekvdefNoVal{xister/9}{triangle}{\xister at nine@triangle at true}
+\protected\ekvsetdef\xister at nine@set{xister/9}
+\ekvlet{xister}{9}\xister at nine@set
+\ekvlet{xister}{alternate-9}\xister at nine@set
 \protected\ekvdefNoVal{xister}{horizontal}
   {%
     \let\xister at build\xister at build@horizontal
@@ -1036,18 +1194,27 @@
 % \end{macro}
 %
 % \begin{macro}{\cistercianstyle}
+% \begin{macro}[internal]{\xister at style}
 %   We allow users to define a style they can call with a single key name inside
 %   |\cisterciansetup|. To achieve that we just define a |NoVal| key that'll
-%   call a nested |\cisterciansetup|.
+%   call a nested |\cisterciansetup|, or a normal key if their style needs to
+%   take a value.
 %    \begin{macrocode}
-\protected\long\def\cistercianstyle#1#2%
+\protected\def\cistercianstyle
   {%
-    \ekvifdefinedNoVal{xister}{#1}%
-      {\PackageError{xistercian}{Key `#1' already defined}{}}%
-      {\protected\ekvdefNoVal{xister}{#1}{\cisterciansetup{#2}}}%
+    \@ifstar
+      {\xister at style\ekvifdefined{\long\ekvdef}}%
+      {\xister at style\ekvifdefinedNoVal\ekvdefNoVal}%
   }
+\protected\long\def\xister at style#1#2#3#4%
+  {%
+    #1{xister}{#3}%
+      {\PackageError{xistercian}{Key `#3' already defined}{}}%
+      {\protected#2{xister}{#3}{\cisterciansetup{#4}}}%
+  }
 %    \end{macrocode}
 % \end{macro}
+% \end{macro}
 %
 % \begin{macro}{\cistercian}
 % \begin{macro}[internal]{\@cistercian}
@@ -1222,7 +1389,7 @@
 \newcommand*\xister at clip@v[1]
   {%
     \pgfpathrectanglecorners
-      {\pgfpoint{\dimexpr\ifdim\xister at X<\z at -\fi\xister at Tv\relax}{#1}}%
+      {\pgfpoint{\dimexpr\ifdim\xister at X<\z at -\fi\xister at Ts\relax}{#1}}%
       {\pgfpoint\xister at X\xister at Y}%
     \pgfusepath{clip}%
   }
@@ -1229,7 +1396,7 @@
 \newcommand*\xister at clip@h[1]
   {%
     \pgfpathrectanglecorners
-      {\pgfpoint{#1}{-\dimexpr\ifdim\xister at Y<\z at -\fi\xister at Th\relax}}%
+      {\pgfpoint{#1}{-\dimexpr\ifdim\xister at Y<\z at -\fi\xister at Ts\relax}}%
       {\pgfpoint{-\xister at X}\xister at Y}%
     \pgfusepath{clip}%
   }
@@ -1262,7 +1429,7 @@
       }%
     \xister at drawdigit{3#1}%
       {%
-        \xister at TMPB=#3\dimexpr\xister at Tv-\xister at Tdd\relax
+        \xister at TMPB=#3\dimexpr\xister at Ts-\xister at Tdd\relax
         \xister at clip@v\xister at XY@share
         \pgfsetlinewidth{2\xister at Tdd}%
         \pgfpathmoveto{\pgfpoint\xister at TMPB\xister at XY@share}%
@@ -1272,7 +1439,7 @@
     \xister at drawdigit{4#1}%
       {%
         \xister at clip@v\z@
-        \xister at TMPB=#3\dimexpr\xister at Tv-\xister at Tdu\relax
+        \xister at TMPB=#3\dimexpr\xister at Ts-\xister at Tdu\relax
         \pgfsetlinewidth{2\xister at Tdu}%
         \pgfpathmoveto{\pgfpoint\xister at TMPB\xister at Y}%
         \pgfpathlineto{\pgfpoint\xister at TMPB\xister at XY@share}%
@@ -1283,7 +1450,7 @@
         \ifxister at five@triangle@
           \xister at clip@v\z@
           \xister at TMPB=%
-            #3\dimexpr\xister at Tv-\xister at Tdu\relax
+            #3\dimexpr\xister at Ts-\xister at Tdu\relax
           \pgfsetlinewidth{2\xister at Tdu}%
           \pgfpathmoveto{\pgfpoint\xister at TMPB\xister at Y}%
           \pgfpathlineto{\pgfpoint\xister at TMPB\xister at XY@share}%
@@ -1295,9 +1462,9 @@
           \pgfpathlineto{\pgfpoint\xister at X\xister at TMPA}%
         \else\ifxister at five@dot@
           \pgfpathcircle
-            {\pgfpoint{\dimexpr\xister at X-#3\xister at five@dot\relax}%
-                      {\dimexpr\xister at Y-#2\xister at five@dot\relax}}%
-            {\xister at five@dot}%
+            {\pgfpoint{\dimexpr\xister at X-#3\xister at Five@dot\relax}%
+                      {\dimexpr\xister at Y-#2\xister at Five@dot\relax}}%
+            {\xister at Five@dot}%
           \pgfusepath{fill}%
         \else
           \xister at TMPB=\dimexpr\xister at X-#3\xister at Tv\relax
@@ -1328,12 +1495,60 @@
         \rlap{\copy\csname xister at digitbox@2#1\endcsname}%
         \copy\csname xister at digitbox@6#1\endcsname
       }%
-    \xister at superimpose{9#1}%
-      {%
-        \rlap{\copy\csname xister at digitbox@1#1\endcsname}%
-        \rlap{\copy\csname xister at digitbox@2#1\endcsname}%
-        \copy\csname xister at digitbox@6#1\endcsname
-      }%
+    \ifxister at nine@triangle@
+      \xister at drawdigit{9#1}%
+        {%
+          \xister at TMPA=.5\dimexpr\xister at XY@share+\xister at Y\relax
+          \xister at TMPB=#3\dimexpr\xister at Ts-\xister at Tdd\relax
+          \xister at clip@v\z@
+          \pgfsetlinewidth{2\xister at Tdd}%
+          \pgfpathmoveto{\pgfpoint\xister at TMPB\xister at XY@share}%
+          \pgfpathlineto{\pgfpoint\xister at TMPB\xister at Y}%
+          \pgfpathlineto{\pgfpoint\xister at X\xister at TMPA}%
+          \pgfusepath{stroke}%
+          \xister at TMPB=#3\dimexpr\xister at Ts-\xister at Tdu\relax
+          \pgfsetlinewidth{2\xister at Tdu}%
+          \pgfpathmoveto{\pgfpoint\xister at TMPB\xister at Y}%
+          \pgfpathlineto{\pgfpoint\xister at TMPB\xister at XY@share}%
+          \pgfpathlineto{\pgfpoint\xister at X\xister at TMPA}%
+        }%
+    \else
+      \xister at superimpose{9#1}%
+        {%
+          \rlap{\copy\csname xister at digitbox@1#1\endcsname}%
+          \rlap{\copy\csname xister at digitbox@2#1\endcsname}%
+          \copy\csname xister at digitbox@6#1\endcsname
+        }%
+    \fi
+    \unless\ifxister at six@stroke@
+      \xister at drawdigit{6#1}%
+        {%
+          \ifxister at six@dot@
+            \xister at TMPA=\dimexpr\xister at X-#3\xister at Six@dot\relax
+            \pgfpathcircle
+              {\pgfpoint\xister at TMPA
+                        {\dimexpr\xister at Y-#2\xister at Six@dot\relax}}%
+              {\xister at Six@dot}%
+            \pgfpathcircle
+              {\pgfpoint\xister at TMPA
+                        {\dimexpr\xister at XY@share+#2\xister at Six@dot\relax}}%
+              {\xister at Six@dot}%
+            \pgfusepath{fill}%
+          \else
+            \xister at TMPB=\dimexpr\xister at X-#3\xister at Tv\relax
+            \xister at TMPA=2\dimexpr#2\xister at six@dash\xister at Tv\relax
+            \pgfsetlinewidth{2\xister at Tv}%
+            \pgfpathmoveto{\pgfpoint\xister at TMPB\xister at Y}%
+            \pgfpathlineto
+              {\pgfpoint\xister at TMPB
+                        {\dimexpr\xister at Y-\xister at TMPA\relax}}%
+            \pgfpathmoveto{\pgfpoint\xister at TMPB\xister at XY@share}%
+            \pgfpathlineto
+              {\pgfpoint\xister at TMPB
+                        {\dimexpr\xister at XY@share+\xister at TMPA\relax}}%
+          \fi
+        }%
+    \fi
   }
 \newcommand\xister at drawdigits@horizontal[3]
   {%
@@ -1341,7 +1556,7 @@
     \xister at drawdigit{1#1}%
       {%
         \pgfsetlinewidth{2\xister at Tv}%
-        \xister at TMPA=-\dimexpr\xister at X-#3\xister at Tv\relax
+        \xister at TMPA=\dimexpr#3\xister at Tv-\xister at X\relax
         \pgfpathmoveto{\pgfpoint\xister at TMPA\z@}%
         \pgfpathlineto{\pgfpoint\xister at TMPA\xister at Y}%
       }%
@@ -1348,13 +1563,13 @@
     \xister at drawdigit{2#1}%
       {%
         \pgfsetlinewidth{2\xister at Tv}%
-        \xister at TMPA=-\dimexpr#3\xister at Tv-\xister at XY@share\relax
+        \xister at TMPA=\dimexpr\xister at XY@share-#3\xister at Tv\relax
         \pgfpathmoveto{\pgfpoint\xister at TMPA\z@}%
         \pgfpathlineto{\pgfpoint\xister at TMPA\xister at Y}%
       }%
     \xister at drawdigit{3#1}%
       {%
-        \xister at TMPB=#2\dimexpr\xister at Th-\xister at Tdu\relax
+        \xister at TMPB=#2\dimexpr\xister at Ts-\xister at Tdu\relax
         \xister at clip@h\xister at XY@share
         \pgfsetlinewidth{2\xister at Tdu}%
         \pgfpathmoveto{\pgfpoint\xister at XY@share\xister at TMPB}%
@@ -1364,7 +1579,7 @@
     \xister at drawdigit{4#1}%
       {%
         \xister at clip@h\z@
-        \xister at TMPB=#2\dimexpr\xister at Th-\xister at Tdd\relax
+        \xister at TMPB=#2\dimexpr\xister at Ts-\xister at Tdd\relax
         \pgfsetlinewidth{2\xister at Tdd}%
         \pgfpathmoveto{\pgfpoint\xister at X\xister at TMPB}%
         \pgfpathlineto{\pgfpoint\xister at XY@share\xister at TMPB}%
@@ -1374,7 +1589,7 @@
       {%
         \ifxister at five@triangle@
           \xister at clip@h\z@
-          \xister at TMPB=#2\dimexpr\xister at Th-\xister at Tdd\relax
+          \xister at TMPB=#2\dimexpr\xister at Ts-\xister at Tdd\relax
           \pgfsetlinewidth{2\xister at Tdd}%
           \pgfpathmoveto{\pgfpoint{-\xister at X}\xister at TMPB}%
           \pgfpathlineto{\pgfpoint\xister at XY@share\xister at TMPB}%
@@ -1381,14 +1596,14 @@
           \pgfpathlineto{\pgfpoint{-\xister at X}\xister at Y}%
           \pgfusepath{stroke,clip}%
           \pgfsetlinewidth{2\xister at Tv}%
-          \xister at TMPA=-\dimexpr\xister at X-#3\xister at Tv\relax
+          \xister at TMPA=\dimexpr#3\xister at Tv-\xister at X\relax
           \pgfpathmoveto{\pgfpoint\xister at TMPA\z@}%
           \pgfpathlineto{\pgfpoint\xister at TMPA\xister at Y}%
         \else\ifxister at five@dot@
           \pgfpathcircle
-            {\pgfpoint{-\dimexpr\xister at X-#3\xister at five@dot\relax}%
-                      {\dimexpr\xister at Y-#2\xister at five@dot\relax}}%
-            {\xister at five@dot}%
+            {\pgfpoint{\dimexpr#3\xister at Five@dot-\xister at X\relax}%
+                      {\dimexpr\xister at Y-#2\xister at Five@dot\relax}}%
+            {\xister at Five@dot}%
           \pgfusepath{fill}%
         \else
           \pgfsetlinewidth{2\xister at Th}%
@@ -1397,7 +1612,7 @@
           \pgfpathlineto
             {%
               \pgfpoint
-                {-\dimexpr\xister at X-#3\xister at five@dash\xister at Th*2\relax}%
+                {\dimexpr#3\xister at five@dash\xister at Th*2-\xister at X\relax}%
                 \xister at TMPB
             }%
         \fi\fi
@@ -1419,12 +1634,60 @@
         \rlap{\copy\csname xister at digitbox@2#1\endcsname}%
         \copy\csname xister at digitbox@6#1\endcsname
       }%
-    \xister at superimpose{9#1}%
-      {%
-        \rlap{\copy\csname xister at digitbox@1#1\endcsname}%
-        \rlap{\copy\csname xister at digitbox@2#1\endcsname}%
-        \copy\csname xister at digitbox@6#1\endcsname
-      }%
+    \ifxister at nine@triangle@
+      \xister at drawdigit{9#1}%
+        {%
+          \xister at TMPA=.5\dimexpr\xister at XY@share-\xister at X\relax
+          \xister at TMPB=#2\dimexpr\xister at Ts-\xister at Tdu\relax
+          \xister at clip@h\z@
+          \pgfsetlinewidth{2\xister at Tdu}%
+          \pgfpathmoveto{\pgfpoint\xister at XY@share\xister at TMPB}%
+          \pgfpathlineto{\pgfpoint{-\xister at X}\xister at TMPB}%
+          \pgfpathlineto{\pgfpoint\xister at TMPA\xister at Y}%
+          \pgfusepath{stroke}%
+          \xister at TMPB=#2\dimexpr\xister at Ts-\xister at Tdd\relax
+          \pgfsetlinewidth{2\xister at Tdd}%
+          \pgfpathmoveto{\pgfpoint\xister at X\xister at TMPB}%
+          \pgfpathlineto{\pgfpoint\xister at XY@share\xister at TMPB}%
+          \pgfpathlineto{\pgfpoint\xister at TMPA\xister at Y}%
+        }%
+    \else
+      \xister at superimpose{9#1}%
+        {%
+          \rlap{\copy\csname xister at digitbox@1#1\endcsname}%
+          \rlap{\copy\csname xister at digitbox@2#1\endcsname}%
+          \copy\csname xister at digitbox@6#1\endcsname
+        }%
+    \fi
+    \unless\ifxister at six@stroke@
+      \xister at drawdigit{6#1}%
+        {%
+          \ifxister at six@dot@
+            \xister at TMPA=\dimexpr\xister at Y-#2\xister at Six@dot\relax
+            \pgfpathcircle
+              {\pgfpoint{\dimexpr#3\xister at Six@dot-\xister at X\relax}%
+                        \xister at TMPA}%
+              {\xister at Six@dot}%
+            \pgfpathcircle
+              {\pgfpoint{\dimexpr\xister at XY@share-#3\xister at Six@dot\relax}%
+                        \xister at TMPA}%
+              {\xister at Six@dot}%
+            \pgfusepath{fill}%
+          \else
+            \pgfsetlinewidth{2\xister at Th}%
+            \xister at TMPB=\dimexpr\xister at Y-#2\xister at Th\relax
+            \xister at TMPA=2\dimexpr#3\xister at six@dash\xister at Th\relax
+            \pgfpathmoveto{\pgfpoint{-\xister at X}\xister at TMPB}%
+            \pgfpathlineto
+              {\pgfpoint{\dimexpr\xister at TMPA-\xister at X\relax}%
+                        \xister at TMPB}%
+            \pgfpathmoveto{\pgfpoint\xister at XY@share\xister at TMPB}%
+            \pgfpathlineto
+              {\pgfpoint{\dimexpr\xister at XY@share-\xister at TMPA\relax}%
+                        \xister at TMPB}%
+          \fi
+        }%
+    \fi
   }
 %    \end{macrocode}
 %   Each digit has the same bounding box and baseline which is specified here.
@@ -1456,7 +1719,7 @@
   {%
     \xister at drawdigit{0}%
       {%
-        \pgfsetlinewidth{2\xister at Tv}%
+        \pgfsetlinewidth{2\xister at Ts}%
         \pgfpathmoveto{\pgfpoint\z@{-\xister at Y}}%
         \pgfpathlineto{\pgfpoint\z@\xister at Y}%
       }%
@@ -1465,7 +1728,7 @@
   {%
     \xister at drawdigit{0}%
       {%
-        \pgfsetlinewidth{2\xister at Th}%
+        \pgfsetlinewidth{2\xister at Ts}%
         \pgfpathmoveto{\pgfpoint{-\xister at X}\z@}%
         \pgfpathlineto{\pgfpoint\xister at X\z@}%
       }%
@@ -1504,6 +1767,14 @@
           \xister at Tv=\the\dimexpr.5\dimexpr\xister at tv\relax\relax
           \xister at Tdu=\the\dimexpr.5\dimexpr\xister at tdu\relax\relax
           \xister at Tdd=\the\dimexpr.5\dimexpr\xister at tdd\relax\relax
+          \xister at Five@dot=\the\dimexpr\xister at five@dot\relax
+          \xister at Six@dot=\the\dimexpr\xister at six@dot\relax
+          \ifx\xister at ts\@empty
+            \xister at Ts=%
+              \ifx\xister at build\xister at build@h\xister at Th\else\xister at Tv\fi
+          \else
+            \xister at Ts=\the\dimexpr.5\dimexpr\xister at ts\relax\relax
+          \fi
         }%
     \xister at tmp
   }

Modified: trunk/Master/texmf-dist/tex/latex/xistercian/xistercian.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/xistercian/xistercian.sty	2021-12-21 03:39:10 UTC (rev 61365)
+++ trunk/Master/texmf-dist/tex/latex/xistercian/xistercian.sty	2021-12-21 21:44:13 UTC (rev 61366)
@@ -29,12 +29,13 @@
 %% and the derived files           xistercian.pdf
 %%                                 xistercian.sty
 %% 
-\ProvidesPackage{xistercian}[2021-11-23 v1.1a Cistercian numerals in LaTeX]
+\ProvidesPackage{xistercian}[2021-12-20 v1.2 Cistercian numerals in LaTeX]
 \RequirePackage{pgf,expkv-opt}
 \newcommand*\xister at th{.1ex}
 \newcommand*\xister at tv{.18ex}
 \newcommand*\xister at tdu{.1ex}
 \newcommand*\xister at tdd{.18ex}
+\newcommand*\xister at ts{}
 \newcommand*\xister at x{.5em}
 \newcommand*\xister at y{1.55ex}
 \newcommand*\xister at bx{1.2}
@@ -43,11 +44,16 @@
 \newcommand*\xister at font{\normalfont}
 \newcommand*\xister at five@dot{.09ex}
 \newcommand*\xister at five@dash{}
+\newcommand*\xister at six@dot{.09ex}
+\newcommand*\xister at six@dash{}
 \newcommand*\xister at share@div{/6}
 \newcommand*\xister at share@mul{}
 \newif\ifxister at dbg@
 \newif\ifxister at five@triangle@\xister at five@triangle at true
 \newif\ifxister at five@dot@
+\newif\ifxister at six@dot@
+\newif\ifxister at six@stroke@\xister at six@stroke at true
+\newif\ifxister at nine@triangle@
 \newdimen\xister at X
 \newdimen\xister at Y
 \newdimen\xister at XY@share
@@ -55,8 +61,11 @@
 \newdimen\xister at Tv
 \newdimen\xister at Tdu
 \newdimen\xister at Tdd
+\newdimen\xister at Ts
 \newdimen\xister at TMPA
 \newdimen\xister at TMPB
+\newdimen\xister at Five@dot
+\newdimen\xister at Six@dot
 \ExplSyntaxOn
 \int_step_inline:nn {9}
   {
@@ -178,6 +187,9 @@
   }
 \xister at tmp{wd}{width}{\edef\xister at x{\unexpanded{#1}}\xister at dbg@dim{#1}}
 \xister at tmp{ht}{height}{\edef\xister at y{\unexpanded{#1}}\xister at dbg@dim{#1}}
+\xister at tmp{bx}{bound-x}{\edef\xister at bx{\unexpanded{#1}}\xister at dbg@float{#1}}
+\xister at tmp{by}{bound-y}{\edef\xister at by{\unexpanded{#1}}\xister at dbg@float{#1}}
+\xister at tmp{bs}{baseline}{\edef\xister at bs{\unexpanded{#1}}\xister at dbg@float{#1}}
 \xister at tmp{sv}{stroke-v}{\edef\xister at tv{\unexpanded{#1}}\xister at dbg@dim{#1}}
 \xister at tmp{sh}{stroke-h}{\edef\xister at th{\unexpanded{#1}}\xister at dbg@dim{#1}}
 \xister at tmp{sdu}{stroke-du}
@@ -184,9 +196,11 @@
   {\edef\xister at tdu{\unexpanded{#1}}\xister at dbg@dim{#1}}
 \xister at tmp{sdd}{stroke-dd}
   {\edef\xister at tdd{\unexpanded{#1}}\xister at dbg@dim{#1}}
-\xister at tmp{bx}{bound-x}{\edef\xister at bx{\unexpanded{#1}}\xister at dbg@float{#1}}
-\xister at tmp{by}{bound-y}{\edef\xister at by{\unexpanded{#1}}\xister at dbg@float{#1}}
-\xister at tmp{bs}{baseline}{\edef\xister at bs{\unexpanded{#1}}\xister at dbg@float{#1}}
+\xister at tmp{ss}{stroke-s}
+  {%
+    \edef\xister at ts{\unexpanded{#1}}%
+    \unless\ifx\xister at ts\@empty\xister at dbg@dim{#1}\fi
+  }
 \xister at tmp{s}{strokes}
   {%
     \edef\xister at tv{\unexpanded{#1}}%
@@ -193,6 +207,7 @@
     \let\xister at th\xister at tv
     \let\xister at tdu\xister at tv
     \let\xister at tdd\xister at tv
+    \let\xister at ts\xister at tv
     \xister at dbg@dim{#1}%
   }
 \xister at tmp{f}{font}{\edef\xister at font{\unexpanded{#1}}}
@@ -250,6 +265,40 @@
 \ekvlet{xister}{5}\xister at five@set
 \ekvlet{xister}{alternate-5}\xister at five@set
 \let\xister at five@set\xister at undefined
+\protected\long\ekvdef{xister/6}{dot}
+  {%
+    \xister at six@stroke at false
+    \xister at six@dot at true
+    \edef\xister at six@dot{\unexpanded{#1}}%
+    \xister at dbg@dim{#1}%
+  }
+\protected\long\ekvdef{xister/6}{dash}
+  {%
+    \xister at six@stroke at false
+    \xister at six@dot at false
+    \edef\xister at six@dash{\unexpanded{#1}}%
+    \xister at dbg@float{#1}%
+  }
+\protected\ekvdefNoVal{xister/6}{stroke}{\xister at six@stroke at true}
+\protected\ekvdefNoVal{xister/6}{dot}
+  {%
+    \xister at six@stroke at false
+    \xister at six@dot at true
+  }
+\protected\ekvdefNoVal{xister/6}{dash}
+  {%
+    \xister at six@stroke at false
+    \xister at six@dot at false
+  }
+\protected\ekvsetdef\xister at six@set{xister/6}
+\ekvlet{xister}{6}\xister at six@set
+\ekvlet{xister}{alternate-6}\xister at six@set
+\let\xister at six@set\xister at undefined
+\protected\ekvdefNoVal{xister/9}{rectangle}{\xister at nine@triangle at false}
+\protected\ekvdefNoVal{xister/9}{triangle}{\xister at nine@triangle at true}
+\protected\ekvsetdef\xister at nine@set{xister/9}
+\ekvlet{xister}{9}\xister at nine@set
+\ekvlet{xister}{alternate-9}\xister at nine@set
 \protected\ekvdefNoVal{xister}{horizontal}
   {%
     \let\xister at build\xister at build@horizontal
@@ -298,12 +347,18 @@
 \ekvdefNoVal{xister}{debug}
   {\PackageError{xister}{`debug' is only available as a load time option}{}}
 \protected\ekvsetdef\cisterciansetup{xister}
-\protected\long\def\cistercianstyle#1#2%
+\protected\def\cistercianstyle
   {%
-    \ekvifdefinedNoVal{xister}{#1}%
-      {\PackageError{xistercian}{Key `#1' already defined}{}}%
-      {\protected\ekvdefNoVal{xister}{#1}{\cisterciansetup{#2}}}%
+    \@ifstar
+      {\xister at style\ekvifdefined{\long\ekvdef}}%
+      {\xister at style\ekvifdefinedNoVal\ekvdefNoVal}%
   }
+\protected\long\def\xister at style#1#2#3#4%
+  {%
+    #1{xister}{#3}%
+      {\PackageError{xistercian}{Key `#3' already defined}{}}%
+      {\protected#2{xister}{#3}{\cisterciansetup{#4}}}%
+  }
 \newcommand\cistercian[1]{\expandafter\@cistercian\csname c@#1\endcsname}
 \newcommand\@cistercian[1]{\expandafter\cisterciannum\expandafter{\the#1}}
 \edef\cisterciannum
@@ -390,7 +445,7 @@
 \newcommand*\xister at clip@v[1]
   {%
     \pgfpathrectanglecorners
-      {\pgfpoint{\dimexpr\ifdim\xister at X<\z at -\fi\xister at Tv\relax}{#1}}%
+      {\pgfpoint{\dimexpr\ifdim\xister at X<\z at -\fi\xister at Ts\relax}{#1}}%
       {\pgfpoint\xister at X\xister at Y}%
     \pgfusepath{clip}%
   }
@@ -397,7 +452,7 @@
 \newcommand*\xister at clip@h[1]
   {%
     \pgfpathrectanglecorners
-      {\pgfpoint{#1}{-\dimexpr\ifdim\xister at Y<\z at -\fi\xister at Th\relax}}%
+      {\pgfpoint{#1}{-\dimexpr\ifdim\xister at Y<\z at -\fi\xister at Ts\relax}}%
       {\pgfpoint{-\xister at X}\xister at Y}%
     \pgfusepath{clip}%
   }
@@ -420,7 +475,7 @@
       }%
     \xister at drawdigit{3#1}%
       {%
-        \xister at TMPB=#3\dimexpr\xister at Tv-\xister at Tdd\relax
+        \xister at TMPB=#3\dimexpr\xister at Ts-\xister at Tdd\relax
         \xister at clip@v\xister at XY@share
         \pgfsetlinewidth{2\xister at Tdd}%
         \pgfpathmoveto{\pgfpoint\xister at TMPB\xister at XY@share}%
@@ -430,7 +485,7 @@
     \xister at drawdigit{4#1}%
       {%
         \xister at clip@v\z@
-        \xister at TMPB=#3\dimexpr\xister at Tv-\xister at Tdu\relax
+        \xister at TMPB=#3\dimexpr\xister at Ts-\xister at Tdu\relax
         \pgfsetlinewidth{2\xister at Tdu}%
         \pgfpathmoveto{\pgfpoint\xister at TMPB\xister at Y}%
         \pgfpathlineto{\pgfpoint\xister at TMPB\xister at XY@share}%
@@ -441,7 +496,7 @@
         \ifxister at five@triangle@
           \xister at clip@v\z@
           \xister at TMPB=%
-            #3\dimexpr\xister at Tv-\xister at Tdu\relax
+            #3\dimexpr\xister at Ts-\xister at Tdu\relax
           \pgfsetlinewidth{2\xister at Tdu}%
           \pgfpathmoveto{\pgfpoint\xister at TMPB\xister at Y}%
           \pgfpathlineto{\pgfpoint\xister at TMPB\xister at XY@share}%
@@ -453,9 +508,9 @@
           \pgfpathlineto{\pgfpoint\xister at X\xister at TMPA}%
         \else\ifxister at five@dot@
           \pgfpathcircle
-            {\pgfpoint{\dimexpr\xister at X-#3\xister at five@dot\relax}%
-                      {\dimexpr\xister at Y-#2\xister at five@dot\relax}}%
-            {\xister at five@dot}%
+            {\pgfpoint{\dimexpr\xister at X-#3\xister at Five@dot\relax}%
+                      {\dimexpr\xister at Y-#2\xister at Five@dot\relax}}%
+            {\xister at Five@dot}%
           \pgfusepath{fill}%
         \else
           \xister at TMPB=\dimexpr\xister at X-#3\xister at Tv\relax
@@ -486,12 +541,60 @@
         \rlap{\copy\csname xister at digitbox@2#1\endcsname}%
         \copy\csname xister at digitbox@6#1\endcsname
       }%
-    \xister at superimpose{9#1}%
-      {%
-        \rlap{\copy\csname xister at digitbox@1#1\endcsname}%
-        \rlap{\copy\csname xister at digitbox@2#1\endcsname}%
-        \copy\csname xister at digitbox@6#1\endcsname
-      }%
+    \ifxister at nine@triangle@
+      \xister at drawdigit{9#1}%
+        {%
+          \xister at TMPA=.5\dimexpr\xister at XY@share+\xister at Y\relax
+          \xister at TMPB=#3\dimexpr\xister at Ts-\xister at Tdd\relax
+          \xister at clip@v\z@
+          \pgfsetlinewidth{2\xister at Tdd}%
+          \pgfpathmoveto{\pgfpoint\xister at TMPB\xister at XY@share}%
+          \pgfpathlineto{\pgfpoint\xister at TMPB\xister at Y}%
+          \pgfpathlineto{\pgfpoint\xister at X\xister at TMPA}%
+          \pgfusepath{stroke}%
+          \xister at TMPB=#3\dimexpr\xister at Ts-\xister at Tdu\relax
+          \pgfsetlinewidth{2\xister at Tdu}%
+          \pgfpathmoveto{\pgfpoint\xister at TMPB\xister at Y}%
+          \pgfpathlineto{\pgfpoint\xister at TMPB\xister at XY@share}%
+          \pgfpathlineto{\pgfpoint\xister at X\xister at TMPA}%
+        }%
+    \else
+      \xister at superimpose{9#1}%
+        {%
+          \rlap{\copy\csname xister at digitbox@1#1\endcsname}%
+          \rlap{\copy\csname xister at digitbox@2#1\endcsname}%
+          \copy\csname xister at digitbox@6#1\endcsname
+        }%
+    \fi
+    \unless\ifxister at six@stroke@
+      \xister at drawdigit{6#1}%
+        {%
+          \ifxister at six@dot@
+            \xister at TMPA=\dimexpr\xister at X-#3\xister at Six@dot\relax
+            \pgfpathcircle
+              {\pgfpoint\xister at TMPA
+                        {\dimexpr\xister at Y-#2\xister at Six@dot\relax}}%
+              {\xister at Six@dot}%
+            \pgfpathcircle
+              {\pgfpoint\xister at TMPA
+                        {\dimexpr\xister at XY@share+#2\xister at Six@dot\relax}}%
+              {\xister at Six@dot}%
+            \pgfusepath{fill}%
+          \else
+            \xister at TMPB=\dimexpr\xister at X-#3\xister at Tv\relax
+            \xister at TMPA=2\dimexpr#2\xister at six@dash\xister at Tv\relax
+            \pgfsetlinewidth{2\xister at Tv}%
+            \pgfpathmoveto{\pgfpoint\xister at TMPB\xister at Y}%
+            \pgfpathlineto
+              {\pgfpoint\xister at TMPB
+                        {\dimexpr\xister at Y-\xister at TMPA\relax}}%
+            \pgfpathmoveto{\pgfpoint\xister at TMPB\xister at XY@share}%
+            \pgfpathlineto
+              {\pgfpoint\xister at TMPB
+                        {\dimexpr\xister at XY@share+\xister at TMPA\relax}}%
+          \fi
+        }%
+    \fi
   }
 \newcommand\xister at drawdigits@horizontal[3]
   {%
@@ -499,7 +602,7 @@
     \xister at drawdigit{1#1}%
       {%
         \pgfsetlinewidth{2\xister at Tv}%
-        \xister at TMPA=-\dimexpr\xister at X-#3\xister at Tv\relax
+        \xister at TMPA=\dimexpr#3\xister at Tv-\xister at X\relax
         \pgfpathmoveto{\pgfpoint\xister at TMPA\z@}%
         \pgfpathlineto{\pgfpoint\xister at TMPA\xister at Y}%
       }%
@@ -506,13 +609,13 @@
     \xister at drawdigit{2#1}%
       {%
         \pgfsetlinewidth{2\xister at Tv}%
-        \xister at TMPA=-\dimexpr#3\xister at Tv-\xister at XY@share\relax
+        \xister at TMPA=\dimexpr\xister at XY@share-#3\xister at Tv\relax
         \pgfpathmoveto{\pgfpoint\xister at TMPA\z@}%
         \pgfpathlineto{\pgfpoint\xister at TMPA\xister at Y}%
       }%
     \xister at drawdigit{3#1}%
       {%
-        \xister at TMPB=#2\dimexpr\xister at Th-\xister at Tdu\relax
+        \xister at TMPB=#2\dimexpr\xister at Ts-\xister at Tdu\relax
         \xister at clip@h\xister at XY@share
         \pgfsetlinewidth{2\xister at Tdu}%
         \pgfpathmoveto{\pgfpoint\xister at XY@share\xister at TMPB}%
@@ -522,7 +625,7 @@
     \xister at drawdigit{4#1}%
       {%
         \xister at clip@h\z@
-        \xister at TMPB=#2\dimexpr\xister at Th-\xister at Tdd\relax
+        \xister at TMPB=#2\dimexpr\xister at Ts-\xister at Tdd\relax
         \pgfsetlinewidth{2\xister at Tdd}%
         \pgfpathmoveto{\pgfpoint\xister at X\xister at TMPB}%
         \pgfpathlineto{\pgfpoint\xister at XY@share\xister at TMPB}%
@@ -532,7 +635,7 @@
       {%
         \ifxister at five@triangle@
           \xister at clip@h\z@
-          \xister at TMPB=#2\dimexpr\xister at Th-\xister at Tdd\relax
+          \xister at TMPB=#2\dimexpr\xister at Ts-\xister at Tdd\relax
           \pgfsetlinewidth{2\xister at Tdd}%
           \pgfpathmoveto{\pgfpoint{-\xister at X}\xister at TMPB}%
           \pgfpathlineto{\pgfpoint\xister at XY@share\xister at TMPB}%
@@ -539,14 +642,14 @@
           \pgfpathlineto{\pgfpoint{-\xister at X}\xister at Y}%
           \pgfusepath{stroke,clip}%
           \pgfsetlinewidth{2\xister at Tv}%
-          \xister at TMPA=-\dimexpr\xister at X-#3\xister at Tv\relax
+          \xister at TMPA=\dimexpr#3\xister at Tv-\xister at X\relax
           \pgfpathmoveto{\pgfpoint\xister at TMPA\z@}%
           \pgfpathlineto{\pgfpoint\xister at TMPA\xister at Y}%
         \else\ifxister at five@dot@
           \pgfpathcircle
-            {\pgfpoint{-\dimexpr\xister at X-#3\xister at five@dot\relax}%
-                      {\dimexpr\xister at Y-#2\xister at five@dot\relax}}%
-            {\xister at five@dot}%
+            {\pgfpoint{\dimexpr#3\xister at Five@dot-\xister at X\relax}%
+                      {\dimexpr\xister at Y-#2\xister at Five@dot\relax}}%
+            {\xister at Five@dot}%
           \pgfusepath{fill}%
         \else
           \pgfsetlinewidth{2\xister at Th}%
@@ -555,7 +658,7 @@
           \pgfpathlineto
             {%
               \pgfpoint
-                {-\dimexpr\xister at X-#3\xister at five@dash\xister at Th*2\relax}%
+                {\dimexpr#3\xister at five@dash\xister at Th*2-\xister at X\relax}%
                 \xister at TMPB
             }%
         \fi\fi
@@ -577,12 +680,60 @@
         \rlap{\copy\csname xister at digitbox@2#1\endcsname}%
         \copy\csname xister at digitbox@6#1\endcsname
       }%
-    \xister at superimpose{9#1}%
-      {%
-        \rlap{\copy\csname xister at digitbox@1#1\endcsname}%
-        \rlap{\copy\csname xister at digitbox@2#1\endcsname}%
-        \copy\csname xister at digitbox@6#1\endcsname
-      }%
+    \ifxister at nine@triangle@
+      \xister at drawdigit{9#1}%
+        {%
+          \xister at TMPA=.5\dimexpr\xister at XY@share-\xister at X\relax
+          \xister at TMPB=#2\dimexpr\xister at Ts-\xister at Tdu\relax
+          \xister at clip@h\z@
+          \pgfsetlinewidth{2\xister at Tdu}%
+          \pgfpathmoveto{\pgfpoint\xister at XY@share\xister at TMPB}%
+          \pgfpathlineto{\pgfpoint{-\xister at X}\xister at TMPB}%
+          \pgfpathlineto{\pgfpoint\xister at TMPA\xister at Y}%
+          \pgfusepath{stroke}%
+          \xister at TMPB=#2\dimexpr\xister at Ts-\xister at Tdd\relax
+          \pgfsetlinewidth{2\xister at Tdd}%
+          \pgfpathmoveto{\pgfpoint\xister at X\xister at TMPB}%
+          \pgfpathlineto{\pgfpoint\xister at XY@share\xister at TMPB}%
+          \pgfpathlineto{\pgfpoint\xister at TMPA\xister at Y}%
+        }%
+    \else
+      \xister at superimpose{9#1}%
+        {%
+          \rlap{\copy\csname xister at digitbox@1#1\endcsname}%
+          \rlap{\copy\csname xister at digitbox@2#1\endcsname}%
+          \copy\csname xister at digitbox@6#1\endcsname
+        }%
+    \fi
+    \unless\ifxister at six@stroke@
+      \xister at drawdigit{6#1}%
+        {%
+          \ifxister at six@dot@
+            \xister at TMPA=\dimexpr\xister at Y-#2\xister at Six@dot\relax
+            \pgfpathcircle
+              {\pgfpoint{\dimexpr#3\xister at Six@dot-\xister at X\relax}%
+                        \xister at TMPA}%
+              {\xister at Six@dot}%
+            \pgfpathcircle
+              {\pgfpoint{\dimexpr\xister at XY@share-#3\xister at Six@dot\relax}%
+                        \xister at TMPA}%
+              {\xister at Six@dot}%
+            \pgfusepath{fill}%
+          \else
+            \pgfsetlinewidth{2\xister at Th}%
+            \xister at TMPB=\dimexpr\xister at Y-#2\xister at Th\relax
+            \xister at TMPA=2\dimexpr#3\xister at six@dash\xister at Th\relax
+            \pgfpathmoveto{\pgfpoint{-\xister at X}\xister at TMPB}%
+            \pgfpathlineto
+              {\pgfpoint{\dimexpr\xister at TMPA-\xister at X\relax}%
+                        \xister at TMPB}%
+            \pgfpathmoveto{\pgfpoint\xister at XY@share\xister at TMPB}%
+            \pgfpathlineto
+              {\pgfpoint{\dimexpr\xister at XY@share-\xister at TMPA\relax}%
+                        \xister at TMPB}%
+          \fi
+        }%
+    \fi
   }
 \newcommand\xister at drawdigit[2]
   {%
@@ -603,7 +754,7 @@
   {%
     \xister at drawdigit{0}%
       {%
-        \pgfsetlinewidth{2\xister at Tv}%
+        \pgfsetlinewidth{2\xister at Ts}%
         \pgfpathmoveto{\pgfpoint\z@{-\xister at Y}}%
         \pgfpathlineto{\pgfpoint\z@\xister at Y}%
       }%
@@ -612,7 +763,7 @@
   {%
     \xister at drawdigit{0}%
       {%
-        \pgfsetlinewidth{2\xister at Th}%
+        \pgfsetlinewidth{2\xister at Ts}%
         \pgfpathmoveto{\pgfpoint{-\xister at X}\z@}%
         \pgfpathlineto{\pgfpoint\xister at X\z@}%
       }%
@@ -632,6 +783,14 @@
           \xister at Tv=\the\dimexpr.5\dimexpr\xister at tv\relax\relax
           \xister at Tdu=\the\dimexpr.5\dimexpr\xister at tdu\relax\relax
           \xister at Tdd=\the\dimexpr.5\dimexpr\xister at tdd\relax\relax
+          \xister at Five@dot=\the\dimexpr\xister at five@dot\relax
+          \xister at Six@dot=\the\dimexpr\xister at six@dot\relax
+          \ifx\xister at ts\@empty
+            \xister at Ts=%
+              \ifx\xister at build\xister at build@h\xister at Th\else\xister at Tv\fi
+          \else
+            \xister at Ts=\the\dimexpr.5\dimexpr\xister at ts\relax\relax
+          \fi
         }%
     \xister at tmp
   }



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