Tgif FAQ - 文字エンコーディング


注意:

このページは、 Tgif ホームページ にある FAQ のページ を、竹野研究室 (主に竹野) が日本語に翻訳したものです。 オリジナルサイトの作者 (Bill Cheng 氏) の許可の元、ここに公開します。

FAQ 以外のページへのリンクは、 ほとんどがオリジナルページへのリンクになっていますので、 日本語訳はされていません (ただし、そのうち主なものは今後日本語訳することも考えています)。 また、ここに書かれているリンク先やソフトウェアなどの情報は、 書かれてからかなり年月が経っていますので、 リンク切れになっていたり、 現在の状況には合わない情報である可能性もあります。

この日本語訳のページに関する意見や質問は、 オリジナルサイトの作者ではなく、 竹野 にお願いいたします。

(05/31 2017)

このページのオリジナルサイト: http://bourbon.usc.edu/tgif/faq/charencode.html

目次へ戻る


 
iso8859-1 の文字に対応する PostScript 文字名は何ですか ?
デフォルトでは、tgif が使用するスクリーンフォントは iso8859-1 のエンコーディングです。 これらのフォントの非 ASCII 部分 (7 bit 目が ON の文字) は、 デフォルトではそれぞれ PS フォント文字に割り当てられています。 以下の table は、10 進の文字コード、 8 進の文字コード、およびそれに対応する PostScript 文字名を 一覧にしたものです。
10 進コード  8 進コード  文字名
161  8#241   exclamdown
162  8#242   cent
163  8#243   sterling
164  8#244   currency
165  8#245   yen
166  8#246   bar
167  8#247   section
168  8#250   dieresis
169  8#251   copyright
170  8#252   ordfeminine
171  8#253   guillemotleft
172  8#254   logicalnot
173  8#255   emdash
174  8#256   registered
175  8#257   macron
176  8#260   degree
177  8#261   plusminus
178  8#262   twosuperior
179  8#263   threesuperior
180  8#264   acute
181  8#265   mu
182  8#266   paragraph
183  8#267   periodcentered
184  8#270   cedilla
185  8#271   onesuperior
186  8#272   ordmasculine
187  8#273   guillemotright
188  8#274   onequarter
189  8#275   onehalf
190  8#276   threequarters
191  8#277   questiondown
192  8#300   Agrave
193  8#301   Aacute
194  8#302   Acircumflex
195  8#303   Atilde
196  8#304   Adieresis
197  8#305   Aring
198  8#306   AE
199  8#307   Ccedilla
200  8#310   Egrave
201  8#311   Eacute
202  8#312   Ecircumflex
203  8#313   Edieresis
204  8#314   Igrave
205  8#315   Iacute
206  8#316   Icircumflex
207  8#317   Idieresis
208  8#320   Eth
209  8#321   Ntilde
210  8#322   Ograve
211  8#323   Oacute
212  8#324   Ocircumflex
213  8#325   Otilde
214  8#326   Odieresis
215  8#327   multiply
216  8#330   Oslash
217  8#331   Ugrave
218  8#332   Uacute
219  8#333   Ucircumflex
220  8#334   Udieresis
221  8#335   Yacute
222  8#336   Thorn
223  8#337   germandbls
224  8#340   agrave
225  8#341   aacute
226  8#342   acircumflex
227  8#343   atilde
228  8#344   adieresis
229  8#345   aring
230  8#346   ae
231  8#347   ccedilla
232  8#350   egrave
233  8#351   eacute
234  8#352   ecircumflex
235  8#353   edieresis
236  8#354   igrave
237  8#355   iacute
238  8#356   icircumflex
239  8#357   idieresis
240  8#360   eth
241  8#361   ntilde
242  8#362   ograve
243  8#363   oacute
244  8#364   ocircumflex
245  8#365   otilde
246  8#366   odieresis
247  8#367   divide
248  8#370   oslash
249  8#371   ugrave
250  8#372   uacute
251  8#373   ucircumflex
252  8#374   udieresis
253  8#375   yacute
254  8#376   thorn
255  8#377   ydieresis
 
私は adobe-fontspecific エンコーディングの X フォントを使っていますが、 tgif が作る PostScript ファイルのいくつかの文字は 文字名を間違えて使っているようです。 tgif に正しい PostScript コードを作らせるには どうすればいいですか ?
ときどき、同じ PostScript フォントで異なるエンコーディングが 必要になることがあります。これは、2 つの方法で実現されます。 一つは、Tgif.AdditionalDontReencode (と Tgif.DontReencode) を使う方法ですが、 もう一つは、Tgif.PSFontCharSubs を使う方法です。 その違いは、Tgif.AdditionalDontReencode では PostScript フォントのエンコードがスキップされ、 Tgif.PSFontCharSubs では一つの PostScript フォントの文字が 与えた固有のエンコーディングになります。

いずれの場合も、場所の確保用に仮のフォント名を 導入する必要があります。例:

Tgif.AdditionalFonts: \n\
utopia-medium-r-normal \n\
adobe-fontspecific \n\
UtopiaTmp-Regular \n\
\n\
utopia-bold-r-normal \n\
adobe-fontspecific \n\
UtopiaTmp-Bold \n\
\n\
utopia-medium-i-normal \n\
adobe-fontspecific \n\
UtopiaTmp-Italic \n\
\n\
utopia-bold-i-normal \n\
adobe-fontspecific \n\
UtopiaTmp-BoldItalic \n\
\n\

Tgif.PSFontAliases: \n\
UtopiaTmp-Regular=Utopia-Regular \n\
UtopiaTmp-Bold=Utopia-Bold \n\
UtopiaTmp-Italic=Utopia-Italic \n\
UtopiaTmp-BoldItalic=Utopia-BoldItalic
上の例では、4 つの仮の PostScript フォント名を作っています (いずれも頭に "UtopiaTmp" という名前がついています)。 それらのフォントのエンコーディングは、 使用している X11 フォントに従って adobe-fontspecific にしています。 Tgif.PSFontAliases は、仮の PostScript フォント名を 対応する実際の PostScript フォント名に割り当てます (Tgif.PSFontAliases がないと、UtopiaTmp-Regular のような 存在しない PostScript フォント名が PostScript ファイル中に現れることになります)。

ある PostScript フォントエンコーディングをスキップするには、 Tgif.AdditionalDontReencode の X リソース値を使えます。 例えば、以下のように指定します:

Tgif.AdditionalDontReencode: UtopiaTmp
これにより 161 から 255 (端も含む) の文字コードの文字は、 ISO-Latin-1 文字名にエンコードされなくなります。 ISO-Latin-1 エンコードの文字名の一覧については、 を参照してください。

ある PostScript フォント内の文字を 特定のエンコーディングで置き換えるには、 以下 を参照してください。

 
私は iso8859-2 エンコーディングの X フォントを使っていますが、 tgif が作る PostScript ファイルの /Aogonek, /Lslash 等の 文字の文字名を間違えて使っているようです tgif に正しい PostScript コードを作らせるには どうすればいいですか ?
(以下の話は、 tgif-4.1.45 以降のみでサポートされています。)
ある PostScript フォント内の文字を 特定のエンコーディングで置き換えるには、 Tgif.PSFontNeedCharSubs と Tgif.PSCharSubs_* の X リソース値が使えます (上に述べたように、Tgif.AdditionalFonts と Tgif.PSFontAliases の設定も必要になります)。 以下はその一例です:
Tgif.PSFontNeedCharSubs: \n\
UtopiaTmp-Regular=Foo \n\
UtopiaTmp-Bold=Foo \n\
UtopiaTmp-Italic=Foo \n\
UtopiaTmp-BoldItalic=Foo
Tgif.PSCharSubs_Foo: \n\
161/Aogonek \n\
198/Cacute \n\
202/eogonek
上の例では、Tgif.PSFontNeedCharSubs は、 仮の PostScript フォント名の一覧を指定していますが、 それには文字の置換と対応する [トークン] 名が必要になります。 [トークン] に割り当てる一つの仮の PostScript フォント名に対して、 置換する文字の一覧を Tgif.PSCharSubs_[トークン] という X リソースに指定します。 Tgif.PSCharSubs_[トークン] の書式は、 [古い文字コード]/[新しい文字名] 文字列のリストで、 [古い文字コード] は 10 進か 8 進の文字コードで、 [新しい文字名] は PostScript 文字名でなければいけません。 上の例では、Foo をトークン名として使っていますが、 実際に使用する場合は、多分トークン名としては iso8895-2 のようなものの方が適切でしょう。 文字コードは 10 進数と 8 進数が使えますので、 以下は上の例と同じになります:

Tgif.PSFontNeedCharSubs: \n\
UtopiaTmp-Regular=iso8859-2 \n\
UtopiaTmp-Bold=iso8859-2 \n\
UtopiaTmp-Italic=iso8859-2 \n\
UtopiaTmp-BoldItalic=iso8859-2
Tgif.PSCharSubs_iso8859-2: \n\
8#241/Aogonek \n\
8#306/Cacute \n\
8#312/eogonek

置き換えは、161 から 255 番 (端も含む) の範囲の 文字コードの文字 のみ に行われることに注意してください。