1

私のプロジェクトでは、各単語をフォント内の個々のグリフにマップするフォント (またはフォントのように使用できるもの) を作成しています。これの主なポイントは、D&D やオンライン ゲームなどで使用するために、任意のテキストから「別の言語」のパッセージを自動的に生成することです。

コンバーターがその単語に遭遇したことがない場合に備えて、単語の新しい文字を生成するアルゴリズムの作成を終了しましたが、後で使用するためにこれらの文字の説明を保存する方法に困惑しています。PostScript言語フォントで動作させることができる、私が使用できる文字マッピングアルゴリズム/などを知っている人はいますか?

PostScript 言語リファレンス マニュアルには、この点に関して有用な情報はありませんでした。私はインターネット全体でそのようなことを知っている限り検索しようとしましたが、私の検索で得られたすべての情報は完全に無関係でした. この種のものが何と呼ばれるかはわかりませんが、探し始める方法へのポインタだけでも大歓迎です。

そのようなものが存在しない場合、これを行うためにカスタム エンコーディング アルゴリズムをどのように実装しますか? PostScript Language Reference Manual は、その可能性について少し言及していますが、その点に関する私の検索では、有用な情報は見つかりませんでした。

4

2 に答える 2

1

Postscript でこれができると思います。PostScript フォントには、char-code -> glyph-name、glyph-name -> glyph-drawing-commands の 2 つのマッピングが含まれます。glyphshowまた、演算子を使用して char マップをバイパスできます。また、カスタム フォントを作成することもできます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
于 2012-09-16T14:18:30.900 に答える
0

Note first that the relationship between words in different languages is not 1:1, and ordering also changes. E.g. “amo” means “I love” in Latin, one word instead of two.

PostScript fonts generally have a limit of 256 active glyphs and are static - you can define the font, but after calling makefont you can't easily change them except by making a new font. CID fonts can have many more, and can be rearranged on the fly, although not all PostScript interpreters support that (e.g. I think GhostScript does not, although it does have some basic CID support).

A more usual approach to this is to change the text itself, and e.g. use different scripts via Unicode and OpenType. If you just want the text to look different, though, map some common characters (e.g. "e" in English") to something very thin in some fonts, and wide in others, and map something else to a space, so word lengths appear to change; then you can simply use regular fonts that look different.

于 2012-09-10T22:29:04.557 に答える