字体 - 水平中文数字

字体 - 水平中文数字

页面在这里

使用类似于 \Roman 和 \Arabic 的中文数字

展示了如何生成中文数字,但根据 Howard Eves 的数学史教科书,这些数字应该垂直显示。如何实现呢?我知道这里提出了一个关于玛雅数字的类似问题(并已解决):

水平玛雅数字 (mathabx)

如何才能在中文数字方面实现同样的效果?为了直观地说明我的意思,请参见 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

相关内容