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.