Re: utf-8での全角マイナス

名前: ZR
日時: 2011-03-24 00:16:20
IPアドレス: 119.104.58.*

>>55805 既に、指摘があるように、 JIS X 0208(Mac の日本語文字コード)にあるのは U+2212、 CP932(Windows の日本語文字コード)にあるのは U+FF0D、 両者は各々の「シフトJIS」で同じ符号位置(0x817C)をもち、 「全角のマイナス記号」として見なされている ということです。だから「日本語文字コード」にない文字に対して 特別な変換を施す(或いは単に壊してしまう)プログラムが作用する 可能性がある場合にはどちらを使うにしても細心の注意が必要です。 そして、pTeX 自身はどうかというと、上述の事情があるため、 Unicode → JIS符号 の変換の場合は、U+2212 と U+FF0D は共に 「シフトJIS の 0x817C」(1区61点、jis で 0x215D、euc で 0xA1dd) に移される という仕様になっています。つまり UTF-8 の入力で \if [U+2212の文字][U+FF0Dの文字]YES\else NO\fi を処理すると「YES」が出力されます。 # upTeX ならば当然 NO です(違う符号位置なので)。 ちなみに、 ソース(UTF-8)には U+2212 も U+FF0D も書きたくないが、それでも 「シフトJIS の 0x817C」の文字(全角マイナス)は使いたい という場合は、\char 命令を使うという手段があります。つまり、 \char\sjis"817C を実行すると「シフトJIS の 0x817C」が出力されます。マクロ処理の 都合で単一トークンにしたい場合は \def\fwminus{\char\sjis"817C\relax} とマクロにすることも可能ですが、\chardef を使うこともできます。 \chardef\fwminus=\sjis"817C (この場合の \fwminus はマクロではない。)

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます。適宜改行を入れてください)