页面在这里
展示了如何生成中文数字,但根据 Howard Eves 的数学史教科书,这些数字应该垂直显示。如何实现呢?我知道这里提出了一个关于玛雅数字的类似问题(并已解决):
如何才能在中文数字方面实现同样的效果?为了直观地说明我的意思,请参见 Eves 书中的一个例子:https://i.stack.imgur.com/V0bpi.jpg
答案1
使用 XeLaTeX 编译。
\documentclass{article}
\usepackage{xeCJK}
\usepackage[usestackEOL]{stackengine}
\setCJKmainfont{SimSun}
\usepackage{zhnumber}
\newcounter{Zhnum}
\def\ZH#1{\setcounter{Zhnum}{#1}{\normalsize\zhnum{Zhnum}}}
\def\nZH#1{{\scriptsize\bfseries#1} \ZH{#1}}
\begin{document}
\Longstack{
1 \ZH{1}\\
2 \ZH{2}\\
3 \ZH{3}\\
4 \ZH{4}\\
5 \ZH{5}\\
6 \ZH{6}\\
7 \ZH{7}\\
8 \ZH{8}\\
9 \ZH{9}
}
~~~or maybe this~~~
\Longstack{
\nZH{1}\\
\nZH{2}\\
\nZH{3}\\
\nZH{4}\\
\nZH{5}\\
\nZH{6}\\
\nZH{7}\\
\nZH{8}\\
\nZH{9}
}
\end{document}
答案2
使用 XeLaTeX:
\documentclass{article}
\usepackage{xeCJK}
\usepackage{CJKnumb}
\setCJKmainfont{Apple LiSung} % or any other Chinese font
\newcommand{\VZH}[2][c]{%
\begin{tabular}[#1]{@{}c@{}}
\ZHvertdigit#2\ZHvertdigit
\end{tabular}%
}
\makeatletter
\def\ZHvertdigit#1#2\ZHvertdigit{%
\CJKnumber{#1}%
\if\relax\detokenize{#2}\relax
\expandafter\@gobble
\else
\expandafter\@firstofone
\fi
{\\\ZHvertdigit#2\ZHvertdigit}%
}
\begin{document}
\VZH{123} \VZH{5468} x \VZH[t]{987}
\end{document}
可选参数\VZH
指定 的垂直对齐方式tabular
。