排版巴比伦数字?

排版巴比伦数字?

这个问题导致了一个新的方案的出现:
babyloniannum

我想排版巴比伦数字,例如维基百科。理想情况下,我希望有一个命令,我可以在其中输入类似的内容$\babylonian{42}$并让它产生适当的符号,但如果有一个字体或其他东西,我可以获得符号然后自己将它们堆叠在一起,我也会很高兴。

是否已实施了相关措施?

巴比伦数字的例子

答案1

有一种古巴比伦字体在本页。使用fontspecXeTeX 或 LuaTex 之类的工具\char"1240D,您可以轻松排版您需要的内容。

这是 XeTeX 的一个简单示例。

笔记:事实证明字体文档是错误的(啊!如果他们使用 TeX 来生成它……)并且 9 实际上被映射到1240E,这很合乎逻辑。此外,20 似乎缺失了,而 30 出于某种原因被映射了几次,所以我用 2 个“10”字形和一些字距调整来制作 20。我还调整了十位和个位之间的字距。

\documentclass[paper=a4]{minimal}

\usepackage{fontspec}
\usepackage{xunicode}

\usepackage{pgffor}
\usepackage{numname}

\newcommand{\babydisp}[1]{%
  \fontspec{Santakku}{\char"#1}}

\makeatletter
\newcommand{\babynum}[1]{%
\numdigits{#1}%
\ifcase\c@xsm@mctr
  \or
  \babydisp{1230B} %10
  \or
  \babydisp{1230B}\kern-1.5pt{}\babydisp{1230B} %20 -- unknown?
  \or
  \babydisp{1230D} %30
  \or
  \babydisp{1240F} %40
  \or
  \babydisp{12410} %50
\fi
\kern-4pt{}%
\ifcase\c@ism@mctr
  \or
  \babydisp{12079} %1
  \or
  \babydisp{1222B} %2
  \or
  \babydisp{12408} %3
  \or
  \babydisp{120FB} %4
  \or
  \babydisp{1240A} %5
  \or
  \babydisp{1240B} %6
  \or
  \babydisp{1240C} %7
  \or
  \babydisp{1240D} %8
  \or
  \babydisp{1240E} %9
\fi
}
\makeatother

\begin{document}

%\noindent\foreach \n in {1,...,59}{%
%\n\quad\babynum{\n}\\
%}

\begin{minipage}{0.2\textwidth}
\noindent\foreach \n in {1,...,20}{%
\n\quad\babynum{\n}\\
}
\end{minipage}
\begin{minipage}{0.2\textwidth}
\noindent\foreach \n in {21,...,40}{%
\n\quad\babynum{\n}\\
}
\end{minipage}
\begin{minipage}{0.2\textwidth}
\noindent\foreach \n in {41,...,59}{%
\n\quad\babynum{\n}\\
}
\end{minipage} \hfill

\end{document}

调整字距后的巴比伦语

编辑:现在有一个包在 CTAN,因此您可以按如下方式使用它:

\documentclass[paper=a4]{minimal}

\usepackage{pgffor}
\usepackage{babyloniannum}


\begin{document}

\begin{minipage}{0.2\textwidth}
\noindent\foreach \n in {1,...,20}{%
\n\quad\babyloniannum{\n}\\
}
\end{minipage}
\begin{minipage}{0.2\textwidth}
\noindent\foreach \n in {21,...,40}{%
\n\quad\babyloniannum{\n}\\
}
\end{minipage}
\begin{minipage}{0.2\textwidth}
\noindent\foreach \n in {41,...,59}{%
\n\quad\babyloniannum{\n}\\
}
\end{minipage} \hfill

\end{document}

编辑:该软件包的 0.4 版允许排版超过 59 的数字(理论上最多 60^9 = 1.0077696 × 10^16,尽管我认为 TeX 在此之前就会放弃)。

答案2

维基百科也将两个所需的符号作为 SVG 矢量图形:
http://en.wikipedia.org/wiki/File:Babylonian_1.svg
http://en.wikipedia.org/wiki/File:Babylonian_10.svg

您可以使用例如将它们轻松转换为 PDF inkscape --export-pdf=<pdf> <svg>。然后按照所示方式为 1-59 之间的所有数字定位它们。对于更大的数字,您需要添加一些循环。

您还可以制作自己的字体,如下所示从 SVG 符号创建符号字体

相关内容