2012-09-10 28 views
1

我的項目正在創建一個字體(或者我可以使用某種字體的東西),將每個映射到字體中的單個字形。這主要是爲了自動生成任意文本的「替代語言」段落,用於D & D或在線遊戲。分隔符映射的字體?

我已經完成了創建一個算法來生成一個單詞的新字符,在轉換器從未遇到過這個單詞的情況下,但我被如何存儲這些字符描述以備後用。有人知道我可以使用的任何字符映射算法/等,可以使用PostScript語言字體嗎?

PostScript語言參考手冊在這方面沒有任何有用的信息。我試過儘可能多的搜索,我知道互聯網上的這種事情是如何發生的,但是我搜索過的所有信息都是完全不相關的。我不確定這種事情會被稱爲什麼,即使只是一個指示如何開始尋找將不勝感激。

如果不存在這樣的事情,我將如何實現自定義編碼算法來做到這一點? PostScript語言參考手冊對這種可能性做了一些小的參考,但我在這方面的搜索沒有發現任何有用的信息。

回答

1

我認爲postscript可以做到這一點後記字體包含兩個映射:char-code - > glyph-name,glyph-name - > glyph-drawing- 。命令你可以通過使用glyphshow操作者繞過炭地圖,你可以用definefont創建自定義的字體,這樣我想象這樣的事情(粗略的草稿,未經測試):

/doglyph { 
    { 
     cvn glyphshow 
    } stopped { 
     %<-- Reinstall font with new word here 
     glyphshow 
    } if 
} def 

/myshow { % (string of words) 
    () { 
     search { 
      doglyph 
     }{ 
      doglyph exit 
     } ifelse 
    } loop 
} def 
+0

感謝您的幫助,我會看看我能做些什麼。 – AJMansfield

0

首先請注意,不同語言中單詞之間的關係不是1:1,排序也會發生變化。例如。 「amo」的意思是拉丁文中的「我愛」,一個字而不是兩個。

PostScript字體通常具有256個活動字形的限制,並且是靜態的 - 您可以定義字體,但在調用makefont之後,除了製作新的字體外,不能輕易更改它們。雖然並非所有的PostScript解釋器都支持CID字體(例如,我認爲GhostScript不支持,儘管它具有一些基本的CID支持),但CID字體可以有更多的字體,並且可以隨時重新排列。

更常用的方法是改變文本本身,例如通過Unicode和OpenType使用不同的腳本。但是,如果您只是希望文本看起來不同,則可以將一些常用字符(例如,「英文中的e」)映射爲某些字體非常細的字體,而其他字體很寬,並將其他字體映射到空間,改變;然後你可以簡單地使用看起來不同的常規字體

+0

點是自動生成一個虛構的語言蘇表爲遊戲目的,而不是實際翻譯成其他語言。 – AJMansfield

+0

另外,這種方法的問題,這就是爲什麼我還沒有做到這一點,是我需要能夠添加更多的字符,當它遇到它以前沒有見過的單詞。 – AJMansfield