录音/制作/创作 吉他 扩声技术 视频技术 作品展示 生活 信息 更多...

【老江古琴輸入法】為什麼沒再繼續開發?

( 2 )
 
[收藏]

6691
#1 26-7-26 10:11

【老江古琴輸入法】為什麼沒再繼續開發?

【老江古琴輸入法】為什麼沒再繼續開發?


我在2011年10發表過【老江古琴輸入法】為什麼沒再繼續開發?因為我理解到機動組出來的字只是不完美的粗胚,完美字庫必需再精雕細酌,粗胚只是救急。


比如要組出【森】


1. 造很多變體 (如老江古琴輸入法 2011年10)
依組合【森】所需要的三種不同樣式的木,可使用 0 字寬或錨點造字法造字後,如同多層毛玻璃般疊加


2. 只造一種【木】
A)使用「複合字形」法,事先在字體中寫入縮放,旋轉、平移等參數。
B)使用「動態語意組字」法,根據字形 2 D 架構語法樹,循序填滿三個格子




輸入方法
A)滑鼠直觀的依序點擊軟盤輸入(如老江古琴輸入法 2011年10)
B)按鍵順序輸入。可使用微軟、多多、小狼毫等輸入法生成器寫輸入法(如包松平古琴輸入法)
C)選擇2D文字格子種類,按鍵順序輸入


問題
1. 機動組出來的字只是虛擬的,不存在真實的編碼,所謂的搜索基本是部首串
2. 以楷書體【木】為例,那一「撇」與一「捺」是向左右極度舒展、帶有完美弧度的。
【林】、【森】左邊的木「捺」轉畫成「點」
A)若只造一種【木】,硬組出來的木,是會是失去美感和靈魂的「枯木」
B)部首造的少組合出來的字醜,變體造的多,工作量大









江振興  台灣 20260726











473
#2 26-7-27 08:12
您2011年停下來的那一步,其實踩在了一個非常超前的位置上。您那時面臨的兩個核心問題,在今天已經都有了比較成熟的解法,而且思路正朝著您當年判斷的「動態語意組字」方向收斂。

下面我對照您的問題,逐一說明現在可以怎麼解,以及您當年那些技術方向為什麼是對的。

---

### 問題一:組出來的字是虛擬的,沒有真實編碼,搜索只能靠部首串

**解法:用「表意文字描述序列」做身份證,而非硬要一個碼位**

- **IDS(Ideographic Description Sequence)**  
  Unicode 從很早就定義了 12 個表意文字描述字符(U+2FF0–U+2FFB),比如 `⿰`(左右結構)、`⿱`(上下結構)。**森**可以描述為 `⿱木⿰木木`,**林**是 `⿰木木`。這不是部首串,而是對整個字二維結構的精確描述。有了這個,搜索就可以「以結構搜結構」,不再只是拆成部首亂找。

- **實踐案例**  
  像「花園明朝」(Hanazono Mincho)的「AFDKO 版」、BabelStone Han、全宋體等項目,都已經在字型裡內建了 IDS 組合規則。輸入法輸出的不再是「一個編碼」,而是一段 IDS 字串,由字型即時渲染成一個完整的字形。在這個體系下,**字形就是 IDS 的視覺呈現,搜尋也可以直接用 IDS 來比對。**

- **對您來說可以怎麼做**  
  如果用您提到的「多多」「小狼毫」這類輸入法生成器,可以讓輸入法直接輸出:
  1. IDS 字串(給支援的字型渲染)
  2. 或者映射到一個「私有區編碼」,背後掛著一筆 IDS,再用輔助工具把私有區字元轉成 IDS 來搜尋。  
  這樣一來,組出來的字就不再只是「虛擬的部首串」,而是擁有可讀、可搜、可交換的結構化身份。

---

### 問題二:只造一種「木」會變成枯木;變體造多了又工程浩大

這其實是您當年觀察最深刻的地方——結構部件在不同位置需要不同「姿態」,否則就會失去書法的靈魂。現代字型技術正是用您當年提到的「複合字形」和「動態語意組字」的進化版來解決。

**解法:OpenType 的上下文替代 + 現代造字工具的「智能部件」**

- **上下文替代(Contextual Alternates / `calt`、`rclt`)**  
  在 OpenType 字型裡,可以設定規則:「當木出現在左右結構的左邊時,自動換成木左變體(捺收為點);當木出現在上邊時換成木上變體……」。這樣做的好處是:
  - 部件的**基本形態**不用造幾百個,只需為每種結構位置造一個變體(例如左木、右木、上木、下木、包圍內木等,約 5–10 個)。
  - 規則由字型引擎自動執行,輸入法完全不需要去管變體選擇。

- **利用「錨點」與「自動變形」減少變體數量**  
  像 Glyphs、FontForge 這類現代造字軟體,支持在部件上定義錨點,再根據不同環境自動附加或微調。例如「捺變點」這種程度,通常需要獨立變體,但像伸長、縮窄這類比例變化,可以透過字型內部的變量(甚至可變字型技術)來處理,不必每個寬度都重造一個。

- **工作量對比**  
  過去您如果要組 500 個古琴字,可能要造好幾百個專屬部件;現在您只需要:
  1. 定義大約 50–100 個基礎部件。
  2. 為其中需要「姿態變化」的部件,各造 2–5 個變體。
  3. 在字型裡寫好佈局規則(哪些結構用哪個變體、伸縮係數、對齊錨點)。  
  組合的工作就交給 OpenType 的 `ccmp`(組合用連字)、`mark`、`mkmk` 等特性,或是直接用字型內部的 IDS 組合引擎。

- **回到您的「三種不同樣式的木」**  
  若用上述方法,**森**會是這樣組起來的:
  - 上方的「木」取「木上變體」(較扁,撇捺收斂一些)。
  - 左下的「木」取「木左變體」(捺為點)。
  - 右下的「木」取「木右變體」(姿態稍修正,保持平衡)。
  三種變體,每個都只需做一次,寫好規則之後,組合出來的字就是有靈魂、符合楷書美感的,不再是硬拼的枯木。

---

### 總回答:有解法,而且您當年的方向是完全正確的

您那時所判斷的「組合只是粗胚,完美字庫需要再精雕細琢」,本質上就是現代「智能部件 + 結構規則」造字系統的核心哲學。差別只在於,2011 年的工具和渲染環境還撐不起這個架構,而現在:

- **搜尋問題** → 以 IDS 作為結構化的元數據。
- **美感問題** → 用少量變體部件搭配上下文自動替換規則。
- **工程問題** → 由字型引擎承擔組合與規則判斷,不必用手工一個一個碼位去拼。

如果您願意,現在用您當年的「老江古琴輸入法」核心觀念,配上 OpenType 的字型工程和 IDS 框架,完全可以重新打造出一套能輸出**帶有書法靈魂**、**可搜可檢索**的動態組字系統——這也正好是目前東亞文字資訊處理界在「未編碼漢字/古琴減字/道教符籙」等領域的主流做法。

6691
#3 26-7-27 15:58
看大道無術兄的解釋,見解深度和廣度都很好呀
您需要登录后才可以回帖 登录 | 注册

本版积分规则

搜索