diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/xetex/latex/babyloniannum |
Initial commit
Diffstat (limited to 'macros/xetex/latex/babyloniannum')
-rw-r--r-- | macros/xetex/latex/babyloniannum/README | 3 | ||||
-rw-r--r-- | macros/xetex/latex/babyloniannum/babylonian.pdf | bin | 0 -> 16845 bytes | |||
-rw-r--r-- | macros/xetex/latex/babyloniannum/babylonian.tex | 34 | ||||
-rw-r--r-- | macros/xetex/latex/babyloniannum/babyloniannum.dtx | 323 | ||||
-rw-r--r-- | macros/xetex/latex/babyloniannum/babyloniannum.ins | 57 | ||||
-rw-r--r-- | macros/xetex/latex/babyloniannum/babyloniannum.pdf | bin | 0 -> 77754 bytes |
6 files changed, 417 insertions, 0 deletions
diff --git a/macros/xetex/latex/babyloniannum/README b/macros/xetex/latex/babyloniannum/README new file mode 100644 index 0000000000..1f7d9432f1 --- /dev/null +++ b/macros/xetex/latex/babyloniannum/README @@ -0,0 +1,3 @@ +This package provides Babylonian numerals for XeTeX and LuaTeX, +using the Santakku font which can be downloaded +at http://www.hethport.uni-wuerzburg.de/cuneifont. diff --git a/macros/xetex/latex/babyloniannum/babylonian.pdf b/macros/xetex/latex/babyloniannum/babylonian.pdf Binary files differnew file mode 100644 index 0000000000..dd0f8e2d92 --- /dev/null +++ b/macros/xetex/latex/babyloniannum/babylonian.pdf diff --git a/macros/xetex/latex/babyloniannum/babylonian.tex b/macros/xetex/latex/babyloniannum/babylonian.tex new file mode 100644 index 0000000000..e362ee3145 --- /dev/null +++ b/macros/xetex/latex/babyloniannum/babylonian.tex @@ -0,0 +1,34 @@ +\documentclass[paper=a4]{minimal} + +\usepackage{pgffor} +\usepackage{babyloniannum} + + +\begin{document} + +\begin{minipage}{0.2\textwidth} +\noindent\foreach \n in {1,...,40}{% +\n\quad\babyloniannum{\n}\\ +} +\end{minipage} +\begin{minipage}{0.2\textwidth} +\noindent\foreach \n in {41,...,80}{% +\n\quad\babyloniannum{\n}\\ +} +\end{minipage} +\begin{minipage}{0.2\textwidth} +\noindent\foreach \n in {81,...,120}{% +\n\quad\babyloniannum{\n}\\ +} +\end{minipage} \hfill + + +424000 is \babyloniannum{424000} + +21609 is \babyloniannum{21609} + +123456789 is \babyloniannum{123456789} + +\end{document} + + diff --git a/macros/xetex/latex/babyloniannum/babyloniannum.dtx b/macros/xetex/latex/babyloniannum/babyloniannum.dtx new file mode 100644 index 0000000000..e652ef8072 --- /dev/null +++ b/macros/xetex/latex/babyloniannum/babyloniannum.dtx @@ -0,0 +1,323 @@ +% \iffalse meta-comment +% +% Copyright (C) 2011 by Raphaël Pinson <raphink@gmail.com> +% --------------------------------------------------------------------------- +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Raphaël Pinson. +% +% This work consists of the files babyloniannum.dtx and babyloniannum.ins +% and the derived filebase babyloniannum.sty. +% +% \fi +% +% \iffalse +%<*driver> +\ProvidesFile{babyloniannum.dtx} +%</driver> +%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01] +%<package>\ProvidesPackage{babyloniannum} +%<*package> + [2011/08/19 0.5 Typeset Babylonian numerals with XeTeX and LuaTeX] +%</package> +% +%<*driver> +\documentclass{ltxdoc} +\usepackage{babyloniannum}[2011/08/19] +\usepackage{metalogo} +\usepackage{pgffor} +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\begin{document} + \DocInput{babyloniannum.dtx} + \PrintChanges + \PrintIndex +\end{document} +%</driver> +% \fi +% +% \CheckSum{138} +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% +% \changes{0.5}{2011/08/19}{Fix documentation and kerning} +% \changes{0.4}{2011/08/18}{To infinity and beyond} +% \changes{0.3}{2011/08/17}{Add counter function} +% \changes{0.2}{2011/08/17}{Improved documentation} +% \changes{0.1}{2011/08/17}{Initial release} +% +% \DoNotIndex{\newcommand,\newenvironment} +% +% \providecommand*{\url}{\texttt} +% \GetFileInfo{babyloniannum.dtx} +% \title{The \textsf{babyloniannum} package} +% \author{Raphaël Pinson \\ \url{raphink@gmail.com}} +% \date{\fileversion~from \filedate} +% +% \renewcommand{\thesection}{\babylonian{section}} +% \renewcommand{\thesubsection}{\babylonian{section}.\babylonian{subsection}} +% +% \maketitle +% +% \section{Introduction} +% +% This package was created as an answer to a +% question\footnote{\url{http://tex.stackexchange.com/questions/25939/typesetting-babylonian-numerals/25947\#25947}} +% about typesetting Babylonian numerals asked on \url{http://tex.stackexchange.com}. +% +% This package allows to typeset Babylonian numerals using \XeTeX{} or \LuaTeX{}. +% It makes use of the \babylonianfont{} Paleo-Babylonian TrueType font +% which can be downloaded at \url{http://www.hethport.uni-wuerzburg.de/cuneifont/}. +% +% \section{Usage} +% +% +% \DescribeMacro{\babylonianfont} +% +% Set the font used. Currently, only the \babylonianfont{} font has been tested. +% Let me know if you get the package to work with other fonts. +% +% Example usage: \verb!\babyloninanfont{Santakku}! +% +% \DescribeMacro{\babyloniannum} +% +% This is the main macro of this package. It takes a number between 1 and 59 +% as argument and typesets it with Babylonian numerals. +% +% Example usage: +% +% \verb!\babyloninannum{424000}! is \babyloniannum{424000} (1,57,46,40 in base 60) +% +% \verb!\babyloninannum{21609}! is \babyloniannum{21609} (6,0,9 in base 60) +% +% \DescribeMacro{\babylonian} +% +% Like \verb!\arabic! or \verb!\roman!, this macro takes a counter +% name as argument and returns its Babylonian representation. +% +% For example, this documentation is typeset with: +% \begin{verbatim} +% \renewcommand{\thesection}{\babylonian{section}} +% \end{verbatim} +% +% \DescribeMacro{\unicodedisp} +% +% This macro lets you print characters using their unicode reference. +% It is used by \verb!\babyloniannum! to display Babylonian numbers. +% +% Example usage: \verb!\unicodedisp{1230B}! +% +% \pagebreak +% \section{Table of characters} +% +% Below is a sample list of Babylonian characters this package can typeset: +% +% \begin{minipage}{0.3\textwidth} +% \noindent\foreach \n in {1,...,40}{% +% \n~\babyloniannum{\n}\\ +% } +% \end{minipage} \hfill +% \begin{minipage}{0.3\textwidth} +% \noindent\foreach \n in {41,...,80}{% +% \n~\babyloniannum{\n}\\ +% } +% \end{minipage} \hfill +% \begin{minipage}{0.3\textwidth} +% \noindent\foreach \n in {81,...,120}{% +% \n~\babyloniannum{\n}\\ +% } +% \end{minipage} +% +% \section{Known issues} +% +% \subsection{Glyph for 20} +% +% The glyph for number 20 was not found in the \babylonianfont{} font. +% Therefore, it has been replaced by the combination of two 10 glyphs, +% with a kerning adjustment. +% +% \subsection{Glyph for 0} +% +% The Babylonian system has no glyph for 0, which is represented by a +% large space. In this package, 0 is implemented as a 0.5em kerning space. +% +% \subsection{Multiples of 60} +% +% The Babylonian numeral system is a sexagesimal system +% (a positional base 60 system), which does not feature a glyph for 0. +% Therefore, a number such as \babyloniannum{23} can stand for +% $23$, $23 \times 60$ or $23 \times 60 \times 60$ or even $23/60$. +% Only the context allows to decide which number is represented. +% +% \StopEventually{} +% +% \section{Implementation} +% +% \iffalse +%<*package> +% \fi +% +% \begin{macrocode} +\ProvidesPackage{babyloniannum} +\RequirePackage{fontspec} +\RequirePackage{xunicode} +\RequirePackage{numname} +% \end{macrocode} +% +% \begin{macro}{\babylonianfont} +% \begin{macrocode} +\newcommand{\babylonianfont}{Santakku} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\unicodedisp} +% \begin{macrocode} +\newcommand{\unicodedisp}[1]{\char"#1} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\babylonian} +% \begin{macrocode} +\newcommand{\babylonian}[1]{% + \protect\babyloniannum{\arabic{#1}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\babylonianglyph} +% \begin{macrocode} +\newcommand{\babylonianglyph}[1]{% +\ifnum #1 > \z@ % glyph is not zero + \chardef\m@mten=10 % cuts by units of 10 + \numdigits{#1} % parse number + \ifcase\c@xsm@mctr % + \relax % + \or + \unicodedisp{1230B} %10 + \or + \unicodedisp{1230B}\kern-0.15em{}\unicodedisp{1230B} %20 -- unknown? + \or + \unicodedisp{1230D} %30 + \or + \unicodedisp{1240F} %40 + \or + \unicodedisp{12410} %50 + \fi + \ifnum \c@ism@mctr > \z@ % + \ifnum \c@xsm@mctr > \z@ % + \kern-0.5em{} % make glyphs closer + \fi % + \fi % + \ifcase\c@ism@mctr % + \or + \unicodedisp{12079} %1 + \or + \unicodedisp{1222B} %2 + \or + \unicodedisp{12408} %3 + \or + \unicodedisp{120FB} %4 + \or + \unicodedisp{1240A} %5 + \or + \unicodedisp{1240B} %6 + \or + \unicodedisp{1240C} %7 + \or + \unicodedisp{1240D} %8 + \or + \unicodedisp{1240E} %9 + \fi + \addtocounter{baby@glyphs}{1}% +\else + \ifnum\c@baby@glyphs > \z@ % +\kern0.5em{}% empty space for zero + \fi +\fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\babylonian@setcounters} +% \begin{macrocode} +\newcounter{baby@ism@mctr} % "units" +\newcounter{baby@xsm@mctr} % "tens" +\newcounter{baby@csm@mctr} % "hundreds" +\newcounter{baby@ksm@mctr} % "thousands" +\newcounter{baby@xksm@mctr} % "ten thousands" +\newcounter{baby@cksm@mctr} % "hundred thousands" +\newcounter{baby@msm@mctr} % "millions" +\newcounter{baby@xmsm@mctr} % "ten millions" +\newcounter{baby@cmsm@mctr} % "hundred millions" +\newcounter{baby@bsm@mctr} % "billions" +\newcommand{\babylonian@setcounters}{% + \setcounter{baby@ism@mctr}{\c@ism@mctr}% + \setcounter{baby@xsm@mctr}{\c@xsm@mctr}% + \setcounter{baby@csm@mctr}{\c@csm@mctr}% + \setcounter{baby@ksm@mctr}{\c@ksm@mctr}% + \setcounter{baby@xksm@mctr}{\c@xksm@mctr}% + \setcounter{baby@cksm@mctr}{\c@cksm@mctr}% + \setcounter{baby@msm@mctr}{\c@msm@mctr}% + \setcounter{baby@xmsm@mctr}{\c@xmsm@mctr}% + \setcounter{baby@cmsm@mctr}{\c@cmsm@mctr}% + \setcounter{baby@bsm@mctr}{\c@bsm@mctr}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\babyloniannum} +% \begin{macrocode} +\newcounter{baby@glyphs}% +\newcommand{\babyloniannum}[1]{% + \chardef\m@mten=60 % Cut by units of 60 + \numdigits{#1} % Parse number + \babylonian@setcounters% + {\fontspec{\babylonianfont}% + \mbox{% + \setcounter{baby@glyphs}{0}% + \babylonianglyph{\c@baby@bsm@mctr}% + \babylonianglyph{\c@baby@cmsm@mctr}% + \babylonianglyph{\c@baby@xmsm@mctr}% + \babylonianglyph{\c@baby@msm@mctr}% + \babylonianglyph{\c@baby@cksm@mctr}% + \babylonianglyph{\c@baby@xksm@mctr}% + \babylonianglyph{\c@baby@ksm@mctr}% + \babylonianglyph{\c@baby@csm@mctr}% + \babylonianglyph{\c@baby@xsm@mctr}% + \babylonianglyph{\c@baby@ism@mctr}% + }} +} +% \end{macrocode} +% \end{macro} +% +% +% \iffalse +%</package> +% \fi +% +% \Finale +\endinput diff --git a/macros/xetex/latex/babyloniannum/babyloniannum.ins b/macros/xetex/latex/babyloniannum/babyloniannum.ins new file mode 100644 index 0000000000..f4d35398d4 --- /dev/null +++ b/macros/xetex/latex/babyloniannum/babyloniannum.ins @@ -0,0 +1,57 @@ +%% Copyright (C) 2011 by Raphaël Pinson <raphink@gmail.com> +%% -------------------------------------------------------------------------- +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Raphaël Pinson. +%% +%% This work consists of the files babyloniannum.dtx and babyloniannum.ins +%% and the derived filebase babyloniannum.sty. +%% + +\input docstrip.tex +\keepsilent + +\usedir{tex/latex/babyloniannum} + +\preamble + +This is a generated file. + +Copyright (C) 2011 by Raphaël Pinson <raphink@gmail.com> +-------------------------------------------------------------------------- +This work may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either version 1.3 +of this license or (at your option) any later version. +The latest version of this license is in + http://www.latex-project.org/lppl.txt +and version 1.3 or later is part of all distributions of LaTeX +version 2005/12/01 or later. + +\endpreamble + +\generate{\file{babyloniannum.sty}{\from{babyloniannum.dtx}{package}}} + +\obeyspaces +\Msg{*************************************************************} +\Msg{* *} +\Msg{* To finish the installation you have to move the following *} +\Msg{* file into a directory searched by TeX: *} +\Msg{* *} +\Msg{* babyloniannum.sty *} +\Msg{* *} +\Msg{* To produce the documentation run the file babyloniannum.dtx *} +\Msg{* through LaTeX. *} +\Msg{* *} +\Msg{* Happy TeXing! *} +\Msg{* *} +\Msg{*************************************************************} + +\endbatchfile diff --git a/macros/xetex/latex/babyloniannum/babyloniannum.pdf b/macros/xetex/latex/babyloniannum/babyloniannum.pdf Binary files differnew file mode 100644 index 0000000000..243a4cb06e --- /dev/null +++ b/macros/xetex/latex/babyloniannum/babyloniannum.pdf |