summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/xistercian
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-12-21 21:44:13 +0000
committerKarl Berry <karl@freefriends.org>2021-12-21 21:44:13 +0000
commita4b86ae232d2d4570c0243c326638a7b33e423bf (patch)
tree9a4218373be6aa70d43f23bfde7b81b762f543fa /Master/texmf-dist/tex/latex/xistercian
parent9fb0f28c227b78ca3357f450bd6dcad6f65afaaf (diff)
xistercian (21dec21)
git-svn-id: svn://tug.org/texlive/trunk@61366 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/xistercian')
-rw-r--r--Master/texmf-dist/tex/latex/xistercian/xistercian.sty239
1 files changed, 199 insertions, 40 deletions
diff --git a/Master/texmf-dist/tex/latex/xistercian/xistercian.sty b/Master/texmf-dist/tex/latex/xistercian/xistercian.sty
index 05e818dba95..3d4cfd73980 100644
--- a/Master/texmf-dist/tex/latex/xistercian/xistercian.sty
+++ b/Master/texmf-dist/tex/latex/xistercian/xistercian.sty
@@ -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@th{.1ex}
\newcommand*\xister@tv{.18ex}
\newcommand*\xister@tdu{.1ex}
\newcommand*\xister@tdd{.18ex}
+\newcommand*\xister@ts{}
\newcommand*\xister@x{.5em}
\newcommand*\xister@y{1.55ex}
\newcommand*\xister@bx{1.2}
@@ -43,11 +44,16 @@
\newcommand*\xister@font{\normalfont}
\newcommand*\xister@five@dot{.09ex}
\newcommand*\xister@five@dash{}
+\newcommand*\xister@six@dot{.09ex}
+\newcommand*\xister@six@dash{}
\newcommand*\xister@share@div{/6}
\newcommand*\xister@share@mul{}
\newif\ifxister@dbg@
\newif\ifxister@five@triangle@\xister@five@triangle@true
\newif\ifxister@five@dot@
+\newif\ifxister@six@dot@
+\newif\ifxister@six@stroke@\xister@six@stroke@true
+\newif\ifxister@nine@triangle@
\newdimen\xister@X
\newdimen\xister@Y
\newdimen\xister@XY@share
@@ -55,8 +61,11 @@
\newdimen\xister@Tv
\newdimen\xister@Tdu
\newdimen\xister@Tdd
+\newdimen\xister@Ts
\newdimen\xister@TMPA
\newdimen\xister@TMPB
+\newdimen\xister@Five@dot
+\newdimen\xister@Six@dot
\ExplSyntaxOn
\int_step_inline:nn {9}
{
@@ -178,21 +187,27 @@
}
\xister@tmp{wd}{width}{\edef\xister@x{\unexpanded{#1}}\xister@dbg@dim{#1}}
\xister@tmp{ht}{height}{\edef\xister@y{\unexpanded{#1}}\xister@dbg@dim{#1}}
+\xister@tmp{bx}{bound-x}{\edef\xister@bx{\unexpanded{#1}}\xister@dbg@float{#1}}
+\xister@tmp{by}{bound-y}{\edef\xister@by{\unexpanded{#1}}\xister@dbg@float{#1}}
+\xister@tmp{bs}{baseline}{\edef\xister@bs{\unexpanded{#1}}\xister@dbg@float{#1}}
\xister@tmp{sv}{stroke-v}{\edef\xister@tv{\unexpanded{#1}}\xister@dbg@dim{#1}}
\xister@tmp{sh}{stroke-h}{\edef\xister@th{\unexpanded{#1}}\xister@dbg@dim{#1}}
\xister@tmp{sdu}{stroke-du}
{\edef\xister@tdu{\unexpanded{#1}}\xister@dbg@dim{#1}}
\xister@tmp{sdd}{stroke-dd}
{\edef\xister@tdd{\unexpanded{#1}}\xister@dbg@dim{#1}}
-\xister@tmp{bx}{bound-x}{\edef\xister@bx{\unexpanded{#1}}\xister@dbg@float{#1}}
-\xister@tmp{by}{bound-y}{\edef\xister@by{\unexpanded{#1}}\xister@dbg@float{#1}}
-\xister@tmp{bs}{baseline}{\edef\xister@bs{\unexpanded{#1}}\xister@dbg@float{#1}}
+\xister@tmp{ss}{stroke-s}
+ {%
+ \edef\xister@ts{\unexpanded{#1}}%
+ \unless\ifx\xister@ts\@empty\xister@dbg@dim{#1}\fi
+ }
\xister@tmp{s}{strokes}
{%
\edef\xister@tv{\unexpanded{#1}}%
\let\xister@th\xister@tv
\let\xister@tdu\xister@tv
\let\xister@tdd\xister@tv
+ \let\xister@ts\xister@tv
\xister@dbg@dim{#1}%
}
\xister@tmp{f}{font}{\edef\xister@font{\unexpanded{#1}}}
@@ -250,6 +265,40 @@
\ekvlet{xister}{5}\xister@five@set
\ekvlet{xister}{alternate-5}\xister@five@set
\let\xister@five@set\xister@undefined
+\protected\long\ekvdef{xister/6}{dot}
+ {%
+ \xister@six@stroke@false
+ \xister@six@dot@true
+ \edef\xister@six@dot{\unexpanded{#1}}%
+ \xister@dbg@dim{#1}%
+ }
+\protected\long\ekvdef{xister/6}{dash}
+ {%
+ \xister@six@stroke@false
+ \xister@six@dot@false
+ \edef\xister@six@dash{\unexpanded{#1}}%
+ \xister@dbg@float{#1}%
+ }
+\protected\ekvdefNoVal{xister/6}{stroke}{\xister@six@stroke@true}
+\protected\ekvdefNoVal{xister/6}{dot}
+ {%
+ \xister@six@stroke@false
+ \xister@six@dot@true
+ }
+\protected\ekvdefNoVal{xister/6}{dash}
+ {%
+ \xister@six@stroke@false
+ \xister@six@dot@false
+ }
+\protected\ekvsetdef\xister@six@set{xister/6}
+\ekvlet{xister}{6}\xister@six@set
+\ekvlet{xister}{alternate-6}\xister@six@set
+\let\xister@six@set\xister@undefined
+\protected\ekvdefNoVal{xister/9}{rectangle}{\xister@nine@triangle@false}
+\protected\ekvdefNoVal{xister/9}{triangle}{\xister@nine@triangle@true}
+\protected\ekvsetdef\xister@nine@set{xister/9}
+\ekvlet{xister}{9}\xister@nine@set
+\ekvlet{xister}{alternate-9}\xister@nine@set
\protected\ekvdefNoVal{xister}{horizontal}
{%
\let\xister@build\xister@build@horizontal
@@ -298,11 +347,17 @@
\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
+ {%
+ \@ifstar
+ {\xister@style\ekvifdefined{\long\ekvdef}}%
+ {\xister@style\ekvifdefinedNoVal\ekvdefNoVal}%
+ }
+\protected\long\def\xister@style#1#2#3#4%
{%
- \ekvifdefinedNoVal{xister}{#1}%
- {\PackageError{xistercian}{Key `#1' already defined}{}}%
- {\protected\ekvdefNoVal{xister}{#1}{\cisterciansetup{#2}}}%
+ #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}}
@@ -390,14 +445,14 @@
\newcommand*\xister@clip@v[1]
{%
\pgfpathrectanglecorners
- {\pgfpoint{\dimexpr\ifdim\xister@X<\z@-\fi\xister@Tv\relax}{#1}}%
+ {\pgfpoint{\dimexpr\ifdim\xister@X<\z@-\fi\xister@Ts\relax}{#1}}%
{\pgfpoint\xister@X\xister@Y}%
\pgfusepath{clip}%
}
\newcommand*\xister@clip@h[1]
{%
\pgfpathrectanglecorners
- {\pgfpoint{#1}{-\dimexpr\ifdim\xister@Y<\z@-\fi\xister@Th\relax}}%
+ {\pgfpoint{#1}{-\dimexpr\ifdim\xister@Y<\z@-\fi\xister@Ts\relax}}%
{\pgfpoint{-\xister@X}\xister@Y}%
\pgfusepath{clip}%
}
@@ -420,7 +475,7 @@
}%
\xister@drawdigit{3#1}%
{%
- \xister@TMPB=#3\dimexpr\xister@Tv-\xister@Tdd\relax
+ \xister@TMPB=#3\dimexpr\xister@Ts-\xister@Tdd\relax
\xister@clip@v\xister@XY@share
\pgfsetlinewidth{2\xister@Tdd}%
\pgfpathmoveto{\pgfpoint\xister@TMPB\xister@XY@share}%
@@ -430,7 +485,7 @@
\xister@drawdigit{4#1}%
{%
\xister@clip@v\z@
- \xister@TMPB=#3\dimexpr\xister@Tv-\xister@Tdu\relax
+ \xister@TMPB=#3\dimexpr\xister@Ts-\xister@Tdu\relax
\pgfsetlinewidth{2\xister@Tdu}%
\pgfpathmoveto{\pgfpoint\xister@TMPB\xister@Y}%
\pgfpathlineto{\pgfpoint\xister@TMPB\xister@XY@share}%
@@ -441,7 +496,7 @@
\ifxister@five@triangle@
\xister@clip@v\z@
\xister@TMPB=%
- #3\dimexpr\xister@Tv-\xister@Tdu\relax
+ #3\dimexpr\xister@Ts-\xister@Tdu\relax
\pgfsetlinewidth{2\xister@Tdu}%
\pgfpathmoveto{\pgfpoint\xister@TMPB\xister@Y}%
\pgfpathlineto{\pgfpoint\xister@TMPB\xister@XY@share}%
@@ -453,9 +508,9 @@
\pgfpathlineto{\pgfpoint\xister@X\xister@TMPA}%
\else\ifxister@five@dot@
\pgfpathcircle
- {\pgfpoint{\dimexpr\xister@X-#3\xister@five@dot\relax}%
- {\dimexpr\xister@Y-#2\xister@five@dot\relax}}%
- {\xister@five@dot}%
+ {\pgfpoint{\dimexpr\xister@X-#3\xister@Five@dot\relax}%
+ {\dimexpr\xister@Y-#2\xister@Five@dot\relax}}%
+ {\xister@Five@dot}%
\pgfusepath{fill}%
\else
\xister@TMPB=\dimexpr\xister@X-#3\xister@Tv\relax
@@ -486,12 +541,60 @@
\rlap{\copy\csname xister@digitbox@2#1\endcsname}%
\copy\csname xister@digitbox@6#1\endcsname
}%
- \xister@superimpose{9#1}%
- {%
- \rlap{\copy\csname xister@digitbox@1#1\endcsname}%
- \rlap{\copy\csname xister@digitbox@2#1\endcsname}%
- \copy\csname xister@digitbox@6#1\endcsname
- }%
+ \ifxister@nine@triangle@
+ \xister@drawdigit{9#1}%
+ {%
+ \xister@TMPA=.5\dimexpr\xister@XY@share+\xister@Y\relax
+ \xister@TMPB=#3\dimexpr\xister@Ts-\xister@Tdd\relax
+ \xister@clip@v\z@
+ \pgfsetlinewidth{2\xister@Tdd}%
+ \pgfpathmoveto{\pgfpoint\xister@TMPB\xister@XY@share}%
+ \pgfpathlineto{\pgfpoint\xister@TMPB\xister@Y}%
+ \pgfpathlineto{\pgfpoint\xister@X\xister@TMPA}%
+ \pgfusepath{stroke}%
+ \xister@TMPB=#3\dimexpr\xister@Ts-\xister@Tdu\relax
+ \pgfsetlinewidth{2\xister@Tdu}%
+ \pgfpathmoveto{\pgfpoint\xister@TMPB\xister@Y}%
+ \pgfpathlineto{\pgfpoint\xister@TMPB\xister@XY@share}%
+ \pgfpathlineto{\pgfpoint\xister@X\xister@TMPA}%
+ }%
+ \else
+ \xister@superimpose{9#1}%
+ {%
+ \rlap{\copy\csname xister@digitbox@1#1\endcsname}%
+ \rlap{\copy\csname xister@digitbox@2#1\endcsname}%
+ \copy\csname xister@digitbox@6#1\endcsname
+ }%
+ \fi
+ \unless\ifxister@six@stroke@
+ \xister@drawdigit{6#1}%
+ {%
+ \ifxister@six@dot@
+ \xister@TMPA=\dimexpr\xister@X-#3\xister@Six@dot\relax
+ \pgfpathcircle
+ {\pgfpoint\xister@TMPA
+ {\dimexpr\xister@Y-#2\xister@Six@dot\relax}}%
+ {\xister@Six@dot}%
+ \pgfpathcircle
+ {\pgfpoint\xister@TMPA
+ {\dimexpr\xister@XY@share+#2\xister@Six@dot\relax}}%
+ {\xister@Six@dot}%
+ \pgfusepath{fill}%
+ \else
+ \xister@TMPB=\dimexpr\xister@X-#3\xister@Tv\relax
+ \xister@TMPA=2\dimexpr#2\xister@six@dash\xister@Tv\relax
+ \pgfsetlinewidth{2\xister@Tv}%
+ \pgfpathmoveto{\pgfpoint\xister@TMPB\xister@Y}%
+ \pgfpathlineto
+ {\pgfpoint\xister@TMPB
+ {\dimexpr\xister@Y-\xister@TMPA\relax}}%
+ \pgfpathmoveto{\pgfpoint\xister@TMPB\xister@XY@share}%
+ \pgfpathlineto
+ {\pgfpoint\xister@TMPB
+ {\dimexpr\xister@XY@share+\xister@TMPA\relax}}%
+ \fi
+ }%
+ \fi
}
\newcommand\xister@drawdigits@horizontal[3]
{%
@@ -499,20 +602,20 @@
\xister@drawdigit{1#1}%
{%
\pgfsetlinewidth{2\xister@Tv}%
- \xister@TMPA=-\dimexpr\xister@X-#3\xister@Tv\relax
+ \xister@TMPA=\dimexpr#3\xister@Tv-\xister@X\relax
\pgfpathmoveto{\pgfpoint\xister@TMPA\z@}%
\pgfpathlineto{\pgfpoint\xister@TMPA\xister@Y}%
}%
\xister@drawdigit{2#1}%
{%
\pgfsetlinewidth{2\xister@Tv}%
- \xister@TMPA=-\dimexpr#3\xister@Tv-\xister@XY@share\relax
+ \xister@TMPA=\dimexpr\xister@XY@share-#3\xister@Tv\relax
\pgfpathmoveto{\pgfpoint\xister@TMPA\z@}%
\pgfpathlineto{\pgfpoint\xister@TMPA\xister@Y}%
}%
\xister@drawdigit{3#1}%
{%
- \xister@TMPB=#2\dimexpr\xister@Th-\xister@Tdu\relax
+ \xister@TMPB=#2\dimexpr\xister@Ts-\xister@Tdu\relax
\xister@clip@h\xister@XY@share
\pgfsetlinewidth{2\xister@Tdu}%
\pgfpathmoveto{\pgfpoint\xister@XY@share\xister@TMPB}%
@@ -522,7 +625,7 @@
\xister@drawdigit{4#1}%
{%
\xister@clip@h\z@
- \xister@TMPB=#2\dimexpr\xister@Th-\xister@Tdd\relax
+ \xister@TMPB=#2\dimexpr\xister@Ts-\xister@Tdd\relax
\pgfsetlinewidth{2\xister@Tdd}%
\pgfpathmoveto{\pgfpoint\xister@X\xister@TMPB}%
\pgfpathlineto{\pgfpoint\xister@XY@share\xister@TMPB}%
@@ -532,21 +635,21 @@
{%
\ifxister@five@triangle@
\xister@clip@h\z@
- \xister@TMPB=#2\dimexpr\xister@Th-\xister@Tdd\relax
+ \xister@TMPB=#2\dimexpr\xister@Ts-\xister@Tdd\relax
\pgfsetlinewidth{2\xister@Tdd}%
\pgfpathmoveto{\pgfpoint{-\xister@X}\xister@TMPB}%
\pgfpathlineto{\pgfpoint\xister@XY@share\xister@TMPB}%
\pgfpathlineto{\pgfpoint{-\xister@X}\xister@Y}%
\pgfusepath{stroke,clip}%
\pgfsetlinewidth{2\xister@Tv}%
- \xister@TMPA=-\dimexpr\xister@X-#3\xister@Tv\relax
+ \xister@TMPA=\dimexpr#3\xister@Tv-\xister@X\relax
\pgfpathmoveto{\pgfpoint\xister@TMPA\z@}%
\pgfpathlineto{\pgfpoint\xister@TMPA\xister@Y}%
\else\ifxister@five@dot@
\pgfpathcircle
- {\pgfpoint{-\dimexpr\xister@X-#3\xister@five@dot\relax}%
- {\dimexpr\xister@Y-#2\xister@five@dot\relax}}%
- {\xister@five@dot}%
+ {\pgfpoint{\dimexpr#3\xister@Five@dot-\xister@X\relax}%
+ {\dimexpr\xister@Y-#2\xister@Five@dot\relax}}%
+ {\xister@Five@dot}%
\pgfusepath{fill}%
\else
\pgfsetlinewidth{2\xister@Th}%
@@ -555,7 +658,7 @@
\pgfpathlineto
{%
\pgfpoint
- {-\dimexpr\xister@X-#3\xister@five@dash\xister@Th*2\relax}%
+ {\dimexpr#3\xister@five@dash\xister@Th*2-\xister@X\relax}%
\xister@TMPB
}%
\fi\fi
@@ -577,12 +680,60 @@
\rlap{\copy\csname xister@digitbox@2#1\endcsname}%
\copy\csname xister@digitbox@6#1\endcsname
}%
- \xister@superimpose{9#1}%
- {%
- \rlap{\copy\csname xister@digitbox@1#1\endcsname}%
- \rlap{\copy\csname xister@digitbox@2#1\endcsname}%
- \copy\csname xister@digitbox@6#1\endcsname
- }%
+ \ifxister@nine@triangle@
+ \xister@drawdigit{9#1}%
+ {%
+ \xister@TMPA=.5\dimexpr\xister@XY@share-\xister@X\relax
+ \xister@TMPB=#2\dimexpr\xister@Ts-\xister@Tdu\relax
+ \xister@clip@h\z@
+ \pgfsetlinewidth{2\xister@Tdu}%
+ \pgfpathmoveto{\pgfpoint\xister@XY@share\xister@TMPB}%
+ \pgfpathlineto{\pgfpoint{-\xister@X}\xister@TMPB}%
+ \pgfpathlineto{\pgfpoint\xister@TMPA\xister@Y}%
+ \pgfusepath{stroke}%
+ \xister@TMPB=#2\dimexpr\xister@Ts-\xister@Tdd\relax
+ \pgfsetlinewidth{2\xister@Tdd}%
+ \pgfpathmoveto{\pgfpoint\xister@X\xister@TMPB}%
+ \pgfpathlineto{\pgfpoint\xister@XY@share\xister@TMPB}%
+ \pgfpathlineto{\pgfpoint\xister@TMPA\xister@Y}%
+ }%
+ \else
+ \xister@superimpose{9#1}%
+ {%
+ \rlap{\copy\csname xister@digitbox@1#1\endcsname}%
+ \rlap{\copy\csname xister@digitbox@2#1\endcsname}%
+ \copy\csname xister@digitbox@6#1\endcsname
+ }%
+ \fi
+ \unless\ifxister@six@stroke@
+ \xister@drawdigit{6#1}%
+ {%
+ \ifxister@six@dot@
+ \xister@TMPA=\dimexpr\xister@Y-#2\xister@Six@dot\relax
+ \pgfpathcircle
+ {\pgfpoint{\dimexpr#3\xister@Six@dot-\xister@X\relax}%
+ \xister@TMPA}%
+ {\xister@Six@dot}%
+ \pgfpathcircle
+ {\pgfpoint{\dimexpr\xister@XY@share-#3\xister@Six@dot\relax}%
+ \xister@TMPA}%
+ {\xister@Six@dot}%
+ \pgfusepath{fill}%
+ \else
+ \pgfsetlinewidth{2\xister@Th}%
+ \xister@TMPB=\dimexpr\xister@Y-#2\xister@Th\relax
+ \xister@TMPA=2\dimexpr#3\xister@six@dash\xister@Th\relax
+ \pgfpathmoveto{\pgfpoint{-\xister@X}\xister@TMPB}%
+ \pgfpathlineto
+ {\pgfpoint{\dimexpr\xister@TMPA-\xister@X\relax}%
+ \xister@TMPB}%
+ \pgfpathmoveto{\pgfpoint\xister@XY@share\xister@TMPB}%
+ \pgfpathlineto
+ {\pgfpoint{\dimexpr\xister@XY@share-\xister@TMPA\relax}%
+ \xister@TMPB}%
+ \fi
+ }%
+ \fi
}
\newcommand\xister@drawdigit[2]
{%
@@ -603,7 +754,7 @@
{%
\xister@drawdigit{0}%
{%
- \pgfsetlinewidth{2\xister@Tv}%
+ \pgfsetlinewidth{2\xister@Ts}%
\pgfpathmoveto{\pgfpoint\z@{-\xister@Y}}%
\pgfpathlineto{\pgfpoint\z@\xister@Y}%
}%
@@ -612,7 +763,7 @@
{%
\xister@drawdigit{0}%
{%
- \pgfsetlinewidth{2\xister@Th}%
+ \pgfsetlinewidth{2\xister@Ts}%
\pgfpathmoveto{\pgfpoint{-\xister@X}\z@}%
\pgfpathlineto{\pgfpoint\xister@X\z@}%
}%
@@ -632,6 +783,14 @@
\xister@Tv=\the\dimexpr.5\dimexpr\xister@tv\relax\relax
\xister@Tdu=\the\dimexpr.5\dimexpr\xister@tdu\relax\relax
\xister@Tdd=\the\dimexpr.5\dimexpr\xister@tdd\relax\relax
+ \xister@Five@dot=\the\dimexpr\xister@five@dot\relax
+ \xister@Six@dot=\the\dimexpr\xister@six@dot\relax
+ \ifx\xister@ts\@empty
+ \xister@Ts=%
+ \ifx\xister@build\xister@build@h\xister@Th\else\xister@Tv\fi
+ \else
+ \xister@Ts=\the\dimexpr.5\dimexpr\xister@ts\relax\relax
+ \fi
}%
\xister@tmp
}