This page looks best with JavaScript enabled
TeX 漢語字典模板
👨李梅亭 · · · 🔢 3616 words· ⏲️ 8 min read ·🏄 ... visitors ·👀 ... views

Full of Sadness in My Heart

這些天,一想到至死也不可能「獨立」「手工」「研編」出一部滿意的漢語辭書,便滿心傷悲。獨立者,不抄襲、不取藍本;手工者,較少依賴計算機輔助(實因未能掌握語料庫建設、語言處理等相關技能);研編者,字字歷史與邏輯統一地寫出來。照這種方式試寫詞條,揣摩拿捏、定義取例,一天竟寫不完一個字頭,且沈跡下流、文獻稀缺、功力不濟,索性放棄(實因一毛錢都掙不到)。

坊間至死未竟編書「大業」的,實在不是少數。若說日本電影《編舟記》裏主編松本朋佑書未竟人已亡的情節,算是影視文學「虛構」的故事。現實中此類故事也能信手拈來,但凡翻閱一部辭書的前言或後記,十有八九能看到「緬懷」某某主編、某某編輯的話,書前書後的編輯名單中加了方框的也不在少數。

我所了解的,如《王力古漢語字典》,作者王力醞釀四十多年,1984 年着手「寫」字典,兩年後去世,大概也沒寫多少頁。又過了二十年,2005 年纔由其弟子按其思路「寫」完出版。曾參加這本書寫作的張雙棣 2013 年 6 月出版了他獨自「撰寫」的《古漢語小字典》,前言第一句便自訴艱辛:

一個人寫一本古漢語字典,真不是一件容易的事。就這樣一本小字典,前後斷斷續續用了十五六年的時間。張雙棣

這本小字典大概寫了 8000 個字頭,花去十五六年時間,假定作者每天都在寫,按 16 年換算,每天約寫作 1.3 個字頭出來,效率實在不能算「高」。處北京大學廟堂之高、術業專攻的語言學專家尚且如是,草莽外行就趁早死了這份心吧。

After Giving Up

鑑於這慘淡的前景與「錢景」,索性把一年來課餘折騰的 LaTeX 字典模板放到 github 上供研討,也希求得版式細節改進意見。這份 LaTeX 漢語字典模板,以英屬哥倫比亞大學語言學博士 James A. Crippen 編寫 Encyclopedic Dictionary of Tlingit(《特林吉特語言百科辭典》)時製作的 LaTeX 源碼爲靈感,依照漢語辭書一般的版式增刪改定,幾易樣式,最終定稿爲下文模樣。

本來源碼就是在前人基礎上修改的,現在也有必要寫一份 documentation 說明此模板使用方法,也便於其他人在此基礎上修改出他自己滿意的樣式來。

Dic Page Style

經過一系列「手工」運作,源碼設定樣式後,便只需按既定樣式往裏面填充文字內容。下圖是以「字」的解釋爲例的一頁,文字內容抄自《漢語大詞典》

一頁樣例

頁面簡說

  • 字頭排序依據漢字「第六代倉頡碼」,實現漢字檢字輸入的統一。如漢字「寥」的倉頡碼是 JSSH(十尸尸的),它排在「字」(倉頡碼爲 JND(十弓木))之後,爲英文字典序。
  • 頁眉標記本頁起始漢字及其倉頡碼。不過照漢語辭書常規方式,一頁所有字頭均標記在該頁頁眉,本模板未能「研究」出如何把每個字頭都標記在頁眉。
  • 頁面分欄排版,欄數設置依據依據字號、紙型等調整。
  • 「常用字」字頭下沉三行排版,其餘漢字字頭下沉兩行排版。
  • 與常見英文字典類似,每頁均標記所屬「倉頡部首」,如本頁爲倉頡部首「十」(J)部,則本部首下每一頁均有此指示,以便於提升翻檢效率。

Dic Entry Style

字頭樣例

字頭信息簡說

  • 字頭左上角總筆畫(stroke)信息,可製作全書總畫檢索。難點卻在總畫之確定,涉及新舊字形筆畫不一,「標準」各有差異,莫衷一是,字典正文極少使用總畫爲漢字排序依據。
  • 字頭左下角標記所屬《康熙字典》部首(radical,此部首不等於「倉頡部首」),標記部首可以生成傳統漢語辭書最常見的「部首檢字表」。部首與字理最相關,傳統字書多採部首排序正文字頭,然而,有些字部首歸屬難以確定,又涉及新舊字形,查檢不便,聚訟紛紛,本模板也未採用部首排序漢字。
  • 字頭樣式設計兩種,一種下沈三行,一種下沈兩行,以區別「常用字」與「非常用字」。然而,一字之是否常用,並無絕對、可靠的數據來確定,對具體的使用者而言,常用程度也不一樣。好在 big5 碼中的字大致可反映古今文獻的常用漢字,可資參考。近年來,古籍漢字字頻統計,也有不少單位、企業在做,如《古籍漢字字頻統計》之類,或可供參考。
  • 字頭右方依次爲本字頭的「第六代倉頡碼」(Cangjie Input Code)、「四角碼」(Sijiao or Four Corner Code)、當代國語讀音(mandarin pronunciation)、粵拼(Cantonese pronunciation)。當然,這些可以換成其他信息,如粵拼換成上古音信息之類,也可以修改源碼添加標記信息。
  • 第六代倉頡碼並未有「官方」版本,因第六代倉頡輸入法遲遲未公開發佈,外人只知其更便於「檢字」,甚至不惜更名「蒼頡檢字法」。
  • 本模板使用的倉頡碼是 LEO Yoon-Tsaw 爲 Rime 輸入法引擎所製蒼頡檢字法輸入方案源文件。此文件中大致有八萬多漢字的倉頡碼,「民間」版本,或與官方最終版本有差別,在 Rime 輸入法下倒不是問題。綜合考慮各種排序利弊,本模板最終採用第六代倉頡碼排序所有字頭。
  • 四角號碼檢字法或許風行過一段時間,目前一般讀者極少會用到它。一個例子如:《教育部異體字字典》附錄的四角碼檢字法介紹。但是一字四角碼之確定卻較爲麻煩,蓋此檢字法幾經變遷,存在幾個差別不大的版本,導致同一字在不同版本中的四角碼不一致,困擾翻檢者。本模板之所以仍標記漢字四角碼,皆因重要古籍出版物的附錄大多都附有漢字四角碼索引檢字。
  • 普通話讀音,每本漢語辭書都標記的信息。本模板預期所附漢字「國音索引」,只索引常用的大約一萬三千多字的讀音作「拼音檢字」用,大致參考 big5 碼收字狀況。
  • 本模板標記音純粹爲試驗,又因在斷斷續續寫完這個模板。拼似乎也存在好幾種方案,市面上的音辭書使用的拼方案也不一致。不過標記此信息,可以製作國讀音對照表與索引。同理音換成字頭的上古音、中古音、客家話讀音、語讀音都可以,同理也可以製作國語語讀音對照之類的索引。

字頭源碼

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
%古籍常用漢字
\NewDocumentCommand \centrya {o o m o o m m} %主樣式
{\subsectionmark{[{\ubufontc#4}]{\PFTL#3}}%標記字頭顯示在頁眉
\phantomsection\addcontentsline{toc}{subsection}{#4\textbf{#3}}%目錄與PDF mark
\index[SJM]{{\ubufont\color{red}\Large#5}![{\ubufontc#4}]{\PFTL#3}} %漢字四角碼索引 
\index[GY]{{\ubufont\color{red}\Large #6}!{\ubufontc#4}{\PFTL#3}[{\ubufontc#7}]} %國音索引
\index[YY]{{\ubufont\color{red}\Large#7}!{\ubufontc#4}{\PFTL#3}[{\ubufontc#6}]} %粵音索引
\index[CJ]{{\ubufontc #4}{\PFTL #3}} %倉頡索引
\index[BH]{{\color{red}\fontsizec{0.7cm}\ncircds{#1}}![{\ubufontc#4}]{\PFTL#3}}%總筆畫數索引
%%字頭樣式製作%字頭共記錄筆畫、部首、倉頡碼、國音等 7 種信息以製作索引
\thelemmasign{\hypertarget{#3}{\lettrine[lines=3,lhang=0.39,loversize=-0.2]{\hspace{0.15cm}\SPSB{\buttonleftsupera{#1}}{\buttonleftsuba{#2}}\hspace{-0.33cm}\color{myred}\IBMP #3}{} }} {{\color{myred}{\ubufontc #4}{\ubufontc #5}{\ubufontc #6}{\ubufontc #7}}}} 

編寫示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
  \begin{Lemma} %
    \centry[總畫][所屬康熙部首]{字頭}[倉頡碼][四角碼]{國音\SP{音調}}{粵拼\SP{音調}}
      \pro{韻書讀法}
    %%======================
    \begin{mainenum}%義項採 enumerate 自動編號
       \mitem 義項 \en{英文釋義}
       \E{\e 用例一\e 用例二 ……}
    %%======================
    \mitem  \en{}
    \E{\e \e \e }
    %%======================
    \mitem  \en{}
    \E{\e \e \e }
    %%======================
    ……
  \end{mainenum}
\end{Lemma}

Dic Index Style

索引程序

對讀者而言,無論辭書或一般圖書,索引都是極其實用的工具。索引能讓讀者知曉某一字、概念、人物、地名之類在全書的哪些地方、哪些主題之下出現過。

本模板自去年暑假開始折騰出草稿樣式,遲遲未能解決漢字索引項的排序問題,字母或數字排序則沒什麼難點。漢字 index entry 的順序,必須有一定依據,好在有了 zhmakeindex 工具,使得索引漢字可選「拼音」、「總畫」、「部首」三種方式排序,極便於查檢。索引製作詳參這篇博文下圖便是按照漢語拼音方案排序的索引項:

索引簡說

  • 英漢索引(English-Chinese Index)。釋義時可附帶釋以英文(其他語文索引同理),以生成「極其簡易」的英漢辭典。
  • 類辭索引(Thesaurus Index)。如「愛」字出現在「字」的某一義項釋義中,則這兩個字之間或爲同義詞(synonym)、或爲反義詞(antonym)、或爲相關詞(related word),本模板悉歸入 Thesaurus 中。本索引設計索引項漢字排序問題解決方案,採用劉海洋開發的 zhmakeindex——面向中文排序的 makeindex 程序(A Program for Index Entry Order of Chinese Characters)。
  • 四角碼索引 (Four Corner Index),依漢字四角碼大小排序檢字,對本模板設計而言,用處似乎不大。
  • 總畫索引 (Han Stroke Index),依漢字總筆畫多寡排序檢字。
  • 倉頡碼索引 (Cangjie Input Code Index),依據漢字倉頡碼排序檢字,也是正文字頭排序的方案。
  • 粵音索引 (Cantonese Index),常用字音檢字表,也是簡易的國讀音對照表——從音查國音。
  • 國音索引 (Mandarin Index),常用字普通話讀音檢字表,也是簡易的國讀音對照表——從國音查音。之所以限於常用字,乃考慮篇幅與實際使用情況而定。一萬三千字以外的非常用字,若需查檢,查檢者大多不識其音而採其他檢字法查檢,故無必要索引非常用字的讀音,以節省篇幅。

Conclusion

上文簡單列舉了 Cangjie Chinese-English Dictionary 幾個關鍵設計樣例。此外還有許多細節源碼,以及許多 package 依賴關係,都可在這裏查看、下載、改進。使用、修正本模板時有任何問題,也可聯繫作者:logos@duoyu.ren

The article was recently updated on Monday, October 23, 2023, 13:38:47 by 👩 高松年.


李梅亭
支持作者

🤑乞討碼🤑