正如这里提到的:
我正在尝试以垂直方式生成中文数字,但我想知道如何使用 pdfLaTeX 来实现这一点(上面链接中的两个示例都是使用 XeLaTeX 完成的)。我的总体目标是使用 pdfLaTeX 以以下方式生成中文数字:
答案1
不使用 XeLaTeX 也不是不可能,但效果不是很好。你可以使用该CJKvert
软件包合并水平和垂直文本,但字距调整很糟糕,字符经常重叠(虽然bkai
看起来还不错)。
\documentclass{article}
\usepackage{CJKutf8}
\usepackage[usebaselinestretch]{CJKvert}
\usepackage{setspace,rotating}
\usepackage[usestackEOL]{stackengine}
\usepackage[encoding=UTF8]{zhnumber}
\def\nZH#1{{\scriptsize\bfseries#1} \zhnumber{#1}}
\begin{document}
\begin{CJK*}{UTF8}{bkai}\CJKhorz
\begin{minipage}[t]{8em}
\centering
Example: 5625
\rotatebox{-90}{
\CJKvert\zhnumber{5625}
}
\end{minipage}
\qquad
\belowbaseline{\Longstack[r]{
0 \zhnumber{0}\\
1 \zhnumber{1}\\
2 \zhnumber{2}\\
3 \zhnumber{3}\\
4 \zhnumber{4}\\
5 \zhnumber{5}\\
6 \zhnumber{6}\\
7 \zhnumber{7}\\
8 \zhnumber{8}\\
9 \zhnumber{9}\\
10 \zhnumber{10}\\
100 \zhnumber{100}\\
1000 \zhnumber{1000}\\
10000 \zhnumber{10000}\\
}
\qquad
\Longstack[r]{
\nZH{0}\\
\nZH{1}\\
\nZH{2}\\
\nZH{3}\\
\nZH{4}\\
\nZH{5}\\
\nZH{6}\\
\nZH{7}\\
\nZH{8}\\
\nZH{9}\\
\nZH{10}\\
\nZH{100}\\
\nZH{1000}\\
\nZH{10000}\\
}
\qquad
\Longstack[r]{
\zhdigits{0}\\
\zhdigits{1}\\
\zhdigits{2}\\
\zhdigits{3}\\
\zhdigits{4}\\
\zhdigits{5}\\
\zhdigits{6}\\
\zhdigits{7}\\
\zhdigits{8}\\
\zhdigits{9}\\
\zhdigits{10}\\
\zhdigits{100}\\
\zhdigits{1000}\\
\zhdigits{10000}\\
}
}
\end{CJK*}
\end{document}