home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1996 February / VPR9602A.ISO / fwindows / archive / tmedt090.lzh / TOOLD101.LZH / MAN.LZH / YAKC.MAN < prev   
Text File  |  1994-11-20  |  11KB  |  204 lines

  1.  
  2. YAKC(1)                 Reference Manual                YAKC(1)
  3.  
  4.  
  5. NAME  
  6.         yakc - もう1つの漢字コード変換フィルタ(Yet Another Kanji Convert
  7.         er)
  8.  
  9.  
  10. SYNTAX  
  11.  
  12.         yakc [-i eujmstf] [-o eujmstf] [-9@JclnNk874P] [FILES...]
  13.  
  14.  
  15. 用語  
  16.  
  17.         ここでいう「いわゆるJISコード」とは、ISO-2022に基づく日本語文字セ
  18.         ットの拡張法のサブセットで、漢字・補助漢字および英数文字セットは
  19.         G0に指示してGLに呼び出し、JIS 1バイト仮名文字はG0に指示してGLに呼
  20.         び出すか、G1に指示してGLあるいはGRに呼び出すことによって使う方法
  21.         を指す。ネットワークニュースfjなどで使われるISO-2022-JPや、1バイ
  22.         ト仮名文字を使う場合の「7ビットJIS」「8ビットJIS」などは全てこれ
  23.         に含まれる。
  24.  
  25.         また、「EUC」とはここでは「日本語EUC」(UJIS)のことを指すものとす
  26.         る。「MS漢字コード」は「シフトJIS」の正式名称である。
  27.  
  28.  
  29. DESCRIPTION  
  30.  
  31.         yakc は、漢字コードの変換を行うフィルタである。同種のものは既にい
  32.         くつもあるので、「もう1つの~」ということでyakc と名乗っている。
  33.  
  34.         yakc は基本的に、ISO 2022に基づいた文字コード体系のうち日本語にか
  35.         かわる部分(いわゆるJISコード、及びEUCを含む)あるいはMS漢字コード
  36.         を入力とし、いわゆるJISコード、EUC、MS漢字コードのいずれかを出力
  37.         とすることができる。日本語文字以外(中国語、ハングル、ラテン文字な
  38.         ど)はサポートしていない。また、日本語文字を表すためのコードであっ
  39.         ても、ISO 2022に定められていないものはサポートしていない(EBCDICを
  40.         日本語拡張したものとか、DECコード、Unicodeなど)。例外として、MS漢
  41.         字コードといわゆるNEC漢字コードだけはサポートしている。
  42.  
  43.         漢字コード変換プログラムは数多く出回っているが、中には文字コード
  44.         の規格に関する正確な理解を伴わずに、速さのみを売り物にして作られ
  45.         た粗雑なものなども見られる。本プログラムはスピード重視のインプリ
  46.         メントではない(最近の版のnkfと速度面ではほぼ同等)が、文字コード規
  47.         格の解釈を正確に行えることを目指して作成したものである。ISO 2022
  48.         に定められた文字コード拡張法を、状態遷移で素直にインプリメントし
  49.         ているので、改造しやすく、サポートする文字セットを増やす場合や、
  50.         作者に文字コードに関する誤解があってそれを正す場合などにも、容易
  51.         に対処できる。ハードの速度向上が急激な現在、ソフトのレベルで高々
  52.         数倍程度の速度向上にこだわる理由はないという判断も、本インプリメ
  53.         ントが速度を重視しない一つの理由である。
  54.  
  55.         FILESが1つ以上指定されている場合、yakc はファイルを順に読んで、引
  56.         数の指定によって漢字コードの変換を行い、標準出力に書き出す。ファ
  57.         イル名が「-」と指定されている場合と、FILESが指定されなかった場合
  58.         にはyakc は標準入力を読む。
  59.  
  60.         入力・出力の文字コードは以下のようなオプションで指定する。
  61.  
  62.         -i eujmstf: 入力の文字コードの指定。例えば「-i mtf」のように指定
  63.             する。e, あるいはuを指定するとEUC、jを指定すると7・8ビットJI
  64.             S、m, sを指定するとMS漢字コードとなる。また、以上のいずれも指
  65.             定されない場合、自動判別を行う。ISO-2022-JP、およびCompound
  66.             Textの日本語は、入力をEUCと指定しても7・8ビットJISと指定して
  67.             も認識される。tは入力をテキストモードで読む(^Z以下、およびCR
  68.             を読み捨てる)指定、fは入力のバッファリングを行わない指定であ
  69.             り、この2つは文字コード指定とは独立に行える。
  70.  
  71.             入力をEUCと指定した場合、初期状態は、G0に英数文字(ASCIIかJIS
  72.             ローマ字、但しyakcは両者を区別しない。BUGS参照)、G1にJIS漢字
  73.             (78, 83, 90年版は区別しない)、G2にJIS仮名、G3にJIS補助漢字が
  74.             指示され、GLにG0、GRにG1が呼び出された状態となる。7・8ビット
  75.             JISを指定した場合の初期状態は、G1にJIS仮名、G2にJIS漢字が指示
  76.             されること以外は上と同じである。EUCとISO-2022-JPが混在した入
  77.             力を扱いたければ、入力をEUCと指定すること(7・8ビットJISを指定
  78.             したのでは、EUCの漢字が仮名に化けてしまう)。yakcの入力コード
  79.             自動判別機構は、このようなケースも考慮して判定を行う。
  80.  
  81.         -o eujmstf: 出力の文字コードの指定。例えば「-o etf」のように指定
  82.             する。eあるいはuを指定するとEUC、jを指定するといわゆるJIS、m,
  83.              sを指定するとMS漢字コードを選ぶ。いずれも指定されない場合、
  84.             デフォルトとしてDOSでは出力コードはMS漢字コード、UNIXではEUC
  85.             になる。
  86.  
  87.             出力をいわゆるJISと指定した場合、デフォルトでは英数文字はASC
  88.             II、漢字はJIS83年版、1バイト仮名の出力はESC ( IによってG0に指
  89.             示するやり方で行う。また、出力の初期状態ではG0に英数文字、G1
  90.             にJIS仮名が指示され、GLにG0、GRにG1が呼び出されているものと仮
  91.             定し、それらを実際に呼び出したり指示したりするシーケンスや、
  92.             アナウンサシーケンスなどは一切出力しないので、出力はISO-2022
  93.             -JPプラス「ESC ( Iによる1バイト仮名のG0への指示」プラス「ESC
  94.              $ ( Dによる補助仮名のG0への指示」の範囲内だけで行われる。
  95.  
  96.             tは出力をテキストモードにする(LFコードが来たらCR LFとして出力
  97.             する)指定、fは出力のバッファリングを行わない指定であり、この
  98.             2つは文字コード指定とは独立に行える。
  99.  
  100.         入力文字コードがMS漢字コード以外と指定された場合に、入力中でyakc
  101.         が理解する文字コード切り換えシーケンスは以下の通りである。
  102.  
  103.         ESC ( BかJかH : G0に英数文字セットを指示する。yakcは現在のところ
  104.             ASCIIとJISローマ字を区別しないので、BとJのどちらでも同じ意味
  105.             になる。ESC ( Hは本来「スウェーデン名前文字」をG0に指示するシ
  106.             ーケンスであり、日本語とは関係ないが、これをJISローマ字のG0へ
  107.             の指示とする規格の誤解がまかり通っているため、yakcでも特にこ
  108.             れを英数文字セットの指示シーケンスとしてサポートしている。
  109.         ESC ) BかJかH : 同様に、G1に英数文字セットを指示する。
  110.         ESC * BかJかH : G2に英数文字セットを指示する。
  111.         ESC + BかJかH : G3に英数文字セットを指示する。
  112.         ESC $ ( @かB : G0にJIS漢字を指示する。yakcは現在のところJIS 78年
  113.             版漢字と83年版とを区別しないので、@とBのどちらでも同じ意味に
  114.             なる。「ESC $ @かB」でも受け付ける。
  115.         ESC $ ) @かB : G1にJIS漢字を指示する。
  116.         ESC $ * @かB : G2にJIS漢字を指示する。
  117.         ESC $ + @かB : G3にJIS漢字を指示する。
  118.         ESC ( I : G0にJIS 1バイト仮名を指示する。
  119.         ESC ) I : G1にJIS 1バイト仮名を指示する。
  120.         ESC * I : G2にJIS 1バイト仮名を指示する。
  121.         ESC + I : G3にJIS 1バイト仮名を指示する。
  122.         ESC $ ( D : G0にJIS補助漢字を指示する。
  123.         ESC $ ) D : G1にJIS補助漢字を指示する。
  124.         ESC $ * D : G2にJIS補助漢字を指示する。
  125.         ESC $ + D : G3にJIS補助漢字を指示する。
  126.         ESC & @ : 無視する。これによって、ESC & @ ESC $ B がG0へのJIS漢字
  127.             の指示シーケンスとして扱われることになる。この6バイトは本来J
  128.             IS 90年版漢字の指示用シーケンスなのだが、yakcはJIS漢字の83・
  129.             78・90年版を全く区別していないので、ESC & @ はあってもなくて
  130.             も同じである。
  131.         SI(0xf) : G0をGLに呼び出す。
  132.         SO(0xe) : G1をGLに呼び出す。
  133.         ESC n : G2をGLに呼び出す。
  134.         ESC o : G3をGLに呼び出す。
  135.         ESC ~ : G1をGRに呼び出す。
  136.         ESC } : G2をGRに呼び出す。
  137.         ESC | : G3をGRに呼び出す。
  138.         SS2(0x8e)あるいはESC Nあるいは0x19: 次の1文字に限りG2を呼び出す。
  139.         SS3(0x8f)あるいはESC O : 次の1文字に限りG3を呼び出す。
  140.         ESC K : JIS漢字をG0に指示するシーケンスとして扱う。但しこれは規格
  141.             にはない。NECがサポートしていたシーケンスである。
  142.         ESC H : 英数文字をG0に指示するシーケンスとして扱う。これも規格に
  143.             はなく、NECがサポートしていたシーケンスである。
  144.  
  145.         上記の他、次のようなコマンド行オプションも理解する。
  146.  
  147.         -9: 出力がいわゆるJISコードの場合、漢字をJIS90年版にする。
  148.         -@: 出力がいわゆるJISコードの場合、漢字をJIS78年版(旧版)にする。
  149.             デフォルトは83年版。
  150.         -J: 出力がいわゆるJISコードの場合、英数文字をJISローマ字にする。
  151.             デフォルトはASCII。
  152.         -c: -8 -4 -kと同じ。つまり、-oj -cと指定すると出力はCompound tex
  153.             tとなる。
  154.         -l: 出力がいわゆるJISコードの場合に、改行文字や改頁文字を出力する
  155.             とき、デフォルトでは一旦、GLに英数文字セットが呼び出された状
  156.             態に移行してから行うが、このオプションを指定するとそうしない。
  157.         -n: 改行・改頁文字の代わりに空白・タブ文字について、-lと同様のこ
  158.             とを行う。
  159.         -N: 改行・改頁、空白・タブ以外のコントロール文字について、-lと同
  160.             様のことを行う。
  161.         -k: 出力がいわゆるJISコードの場合に、G1に最初からJIS仮名が指示さ
  162.             れているという仮定を置かない。よって、7・8ビットJISで1バイト
  163.             仮名を出力しようとする時、その前にG1にJIS仮名を指示するシーケ
  164.             ンスを出力する。
  165.         -8: 出力がいわゆるJISコードの場合に、JIS仮名を出力するとき、8ビッ
  166.             トコードで出力する。
  167.         -7: 出力がいわゆるJISコードの場合に、JIS仮名を出力するとき、SI,
  168.             SOを用いて7ビットコードで出力する。
  169.         -4: 出力がいわゆるJISコードの場合に、JIS漢字を指示するシーケンス
  170.             を、「ESC $ @かB」ではなく「ESC $ ( @かB」の4バイトにする。
  171.         -P: 出力がいわゆるJISコードと指定されている場合に、漢字を指示する
  172.             シーケンスの代わりにESC K、英数文字を指示するシーケンスの代わ
  173.             りにESC Hを使い、JIS仮名の出力には8ビットコードを使う。これに
  174.             よって出力は「NEC漢字コード」になる。
  175.  
  176.         ワイルドカード、間接引数も利用可能である。
  177.  
  178.  
  179. SEE ALSO 
  180.         wild(5), setarg(5)
  181.  
  182.  
  183. BUGS  
  184.  
  185.         yakcは、入力全体が1種類の文字コードで表現されているとして扱うため、
  186.         入力が行ごとに文字コードが違っていたり、1番目の入力ファイルと2番
  187.         目の入力ファイルの文字コードが違っていたりというような入力は、正
  188.         しく扱えない。但し、EUCとISO-2022-JPのように、1種類の文字コードの、
  189.         異なる2つのサブセットとして理解できるものの場合は、混在は可能であ
  190.         る。
  191.  
  192.         入力の文字コード判別は、最初にESC(但しその次に'['が続かないもの),
  193.          SI, SO, 8ビットコードのいずれかが現れたところ以後、最大1024バイ
  194.         トを読んで行う(但しEOFが現れたらそこまでで判定する。ファイルを跨
  195.         って文字コードの判別を行うことはできない)。判定不能な場合、例えば
  196.         1024バイト読んでもEUCかMS漢字コードか区別できなかったような場合で
  197.         も、どちらかに適当に判断して変換してしまう。
  198.  
  199.         現在のインプリメントでは、入力中のASCIIとJISローマ字、JIS漢字の8
  200.         3年版と78年版と90年版の区別は保存しない。たとえ入出力ともJISコー
  201.         ドであっても、内部で英数文字をASCIIかJISローマ字のいずれかに、漢
  202.         字をJIS83かJIS78(あるいはオプション指定でJIS90)のいずれかに統一し
  203.         てから出力してしまう。
  204.