LGJ Notes

蒙古大夫 2.0。 這裡紀錄的都不是我的專業,我的專業就是不專業。別傻了,什麼是專業?

« FreeBSD + GNU/Linux 聯合大作戰(二) | Main | 許功蓋:中文字的替換 »

圈數字
2006/08/05,15:03 :: 點閱次數 (6982)
所謂圈數字,就是除了數字本身外,他的外圍有個圓圈圈住,有些人喜歡使用這種圈數字,顯得比較顯眼。


在專業的排版系統中,我們可以使用符號組合的方式來達成這樣子的目的,例如 TeX/LaTeX 中可以使用:

$\bigcirc\hspace{-0.31cm}\mbox{\fontsize{7}{2pt}\selectfont 29}$
來達成『㉙』這個圈數字。當然,要實用的話,要自行寫成一個巨集來取用,而且要經過大小的微調,才能和本文的字的大小相配合。

那麼,有沒有現成的這樣子的圈數字呢?這和字型有關,在 LaTeX 有個 Dingbats 的字型,有這樣子的圈數字,可經由 pifont package 來取用,但他只有 1-10 的數字而已。在 Unicode 的話,目前亦有收錄這樣子的 圈數字,但也只有 1-50 而已。另外有些字型,含有這些額外的圈數字,但仍然是在有限的數字才會有,而且,它們是自行編碼的,除了要使用特殊的方式取字外,在其他系統可能會無法使用。

所以,理想上,我們應該是要由組合的方式來表達這些圈數字,才可以達到無限延伸的目的,而且在 50 以內的數字,盡量和 Unicode 的編碼相符,這樣在其他系統才可以順利的顯示出來。

FontSite 網站上有一套圈數字的專用字型:CombiNumerals,正好可以達成我們的需求。這個字型,你可以買他們出的 CD,也可以只下載 free use 的單獨字型:

http://www.fontsite.com/Pages/FFDownloads.html

如果只是想使用圈數字,那麼使用 free use 的版本就行了:

http://www.fontsite.com/bonusfonts

他裡頭有個 PDF 說明檔,有說明要如何在一般文書處理軟體上打出這些圈數字。如果是想用在 TeX/LaTeX,那麼最好是下載 Type 1 的版本,他的 TeX/LaTeX macro 可以在此下載:

fs500tex-1.1_cd03.tgz

我們需要的只是其中的 combinum.styu5cn.fd 這兩個檔。這裡我們就來看看要如何用在 TeX/LaTeX 系統。以下直接寫我個人置放的目錄,請自行建立這些目錄,我使用的作業系統是 FreeBSD:

  • 字型置放處(字型檔案名稱請自行修改為小寫):
    $HOME/texmf/fonts/type1/cnfree/cnfree__.pfb
    $HOME/texmf/fonts/type1/cnfree/cnfreebd.pfb
    
  • tfm 檔的處理:
    afm2tfm cnfree__.afm 5cnr7z.tfm
    afm2tfm cnfreebd.afm 5cnb7z.tfm
    置放處:
    $HOME/texmf/fonts/tfm/cnfree/5cnb7z.tfm
    $HOME/texmf/fonts/tfm/cnfree/5cnr7z.tfm
    
  • map 檔的處理:
    [edt1023]$ cat cnfree.map
    5cnb7z CombiNumerals-Bold "" ﹤cnfreebd.pfb
    5cnr7z  CombiNumerals     "" ﹤cnfree__.pfb
    置放處:
    $HOME/texmf/fonts/map/dvips/cnfree/cnfree.map
    
  • macro 的置放處:
    $HOME/texmf/tex/latex/cnfree/combinum.sty
    $HOME/texmf/tex/latex/cnfree/u5cn.fd
    
  • 最後處理:
    texhash
    updmap --enable Map=cnfree.map
    
這樣就完成了安裝。我們看一個使用例子:

% vim:ts=2 sw=2 et
% combinum-t.tex
% Edward G.J. Lee (08/05/06)
\documentclass[12pt,a4paper]{article}
\usepackage{combinum}
\renewcommand{\labelenumi}{\combinum{enumi}}
\renewcommand{\labelenumii}{\Combinum{enumii}}
\pagenumbering{combinum}
\begin{document}
\section{section 1}
This is a test
\section{section 2}
This is a test
\begin{enumerate}
  \item one
  \item two
    \begin{enumerate}
      \item One
      \item Two
      \item Three
    \end{enumerate}
  \item three
  \item four
  \item five
  \item six
  \item seven
\end{enumerate}
\section{section 3}
This is a test
\end{document}
以 Xpdf 閱覽的快照:

cnfree circled number

當然,這些字型所產生的 PDF 檔,copy&paste 時會出問題,因為他的編碼並不是按照 Unicode 的標準。但 pdf/ps 檔在顯示及印表機列印上是沒有問題。而且只有兩種圈數字,而沒有雙圈數字,又只有 sans serif 的 style。



[註]:
(1) Free use 的字型無法組合三位數以上的圈數字。
(2) 文中的小於符號是使用全型的,請自行修改為半型小於符號。

迴響

 
Accessible and Valid XHTML 1.0 Strict and CSS Powered by BS2 Blog