Unicode 中的象形文字——以一种相当简单的方式

Unicode 中的象形文字——以一种相当简单的方式

我需要将以下 roman,arabic,babyloniannum 序列扩展为 象形文字。LaTeX 的解决方案已经给出别处 但非常麻烦。而且它不能对同一类的数字进行分组。

\renewcommand{\theenumi}{\roman{enumi}--\arabic{enumi}--\!\!\!\!\!\babyloniannum{\value{enumi}}\!\!\!}

我正在寻找一个使用 XeTeX 版本的 Unicode,它应该非常简单。最多是**普通的5 行代码。**

编辑这个问题不是重复的这个问题 完全没有。答案就在那里不使用 Unicode我期望使用这里。该答案的作者实际上已经声明,他无法针对我的问题写出 Unicode 答案。

更准确地说,我需要使用 Unicode 中为埃及数字预制的字形。例如,6,000 是 U+131C1。XeTeX 可以将它们与 一起使用fontspec我不知道如何在文件 ideje.tex 中创建这个 U+131C1。我希望现在情况更清楚了?

在此处输入图片描述

答案1

在此处输入图片描述

我必须猜测一些 unicode 映射,只需看一下

https://www.unicode.org/charts/PDF/U13000.pdf

\documentclass{article}
\usepackage{fontspec}
\newfontfamily\hg{Segoe UI Historic}

\def\hgunits#1{\ifcase#1\relax\or
^^^^^^0133fa\or
^^^^^^0133fb\or
^^^^^^0133fc\or
^^^^^^0133fd\or
^^^^^^0133fe\or
^^^^^^0133ff\or
^^^^^^013400\or
^^^^^^013401\or
^^^^^^013402\else
?\fi}

\def\hgtens#1{\ifcase#1\relax\or
^^^^^^013386\or
^^^^^^013387\or
^^^^^^013388\or
^^^^^^013389\or
^^^^^^01338a\or
^^^^^^01338b\or
^^^^^^01338c\or
^^^^^^01338d\or
^^^^^^01338e\else
?\fi}

\def\hghundreds#1{\ifcase#1\relax\or
^^^^^^013362\or
^^^^^^013363\or
^^^^^^013364\or
^^^^^^013365\or
^^^^^^013366\or
^^^^^^013367\or
^^^^^^013368\or
^^^^^^013369\or
^^^^^^01336a\else
?\fi}

\def\hgthousands#1{\ifcase#1\relax\or
^^^^^^0131bc\or
^^^^^^0131bd\or
^^^^^^0131be\or
^^^^^^0131bf\or
^^^^^^0131c0\or
^^^^^^0131c1\or
^^^^^^0131c2\or
^^^^^^0131c3\or
^^^^^^0131c4\else
?\fi}

\def\hgtenthousands#1{\ifcase#1\relax\or
^^^^^^0130ad\or
^^^^^^0130ae\or
^^^^^^0130af\or
^^^^^^0130b0\or
^^^^^^0130b1\or
^^^^^^0130b2\or
^^^^^^0130b3\or
^^^^^^0130b4\or
^^^^^^0130b5\else
?\fi}

\def\hghundredthousands#1{\ifcase#1\relax\or
^^^^^^013190\or
^^^^^^013190^^^^^^013190\or
^^^^^^013190^^^^^^013190^^^^^^013190\or
^^^^^^013190^^^^^^013190^^^^^^013190^^^^^^013190\or
^^^^^^013190^^^^^^013190^^^^^^013190^^^^^^013190^^^^^^013190\else
?\fi}

\def\hgnum#1{{\hg\expandafter\hgnumx\the\numexpr10000000+#1\relax}}
\def\hgnumx#1#2#3#4#5#6#7#8{%
\hghundredthousands{#3}%
\hgtenthousands{#4}%
\hgthousands{#5}%
\hghundreds{#6}%
\hgtens{#7}%
\hgunits{#8}%
}
\begin{document}


152123

{\hg
\hghundredthousands{1}%
\hgtenthousands{5}%
\hgthousands{2}%
\hghundreds{1}%
\hgtens{2}%
\hgunits{3}%
}

\hgnum{152123}

\end{document}

答案2

我会转发我的答案使用Unicode。 它并不像要求的那样简洁,因为它使用了 expl3,但 David Carslisle 的答案也不是那么简洁。

这是一个使用fontspec和 的解决方案expl3。它不是很紧凑,但在我看来,它比传统解决方案更具可读性。

\documentclass{article}
\RequirePackage{expl3}
\usepackage{fontspec}

% These fonts are available at: http://users.teilar.gr/~g1951d/
\newfontfamily\hieroglyphfont{Aegyptus}[Scale = MatchUppercase, Script={Egyptian Hieroglyphs}]
\newfontfamily\emojifont{Symbola}[Scale = MatchUppercase] % The modern equivalent.

\newcommand\shrug{{{\emojifont\symbol{"1F937}}}}
\newcommand\EgyptianShrug{{\hieroglyphfont 

相关内容