―――――――――――――――――――――――――――――――――――――― 機種依存文字(NEC/IBM/Mac拡張文字)をJIS規格文字で代替するための sedスクリプト関連パッケージ              簡易説明書 February 23, 2007 written by Seiji Fujita http://userweb.alles.or.jp/sfujita/ ――――――――――――――――――――――――――――――――――――――  ・NEC/IBM拡張文字のJIS文字への代替……………… (nec2jis1.sed rev.3)  ・NEC/IBM拡張文字のJIS文字への代替    &原文入力ルールへの準拠版…………………… (nec2jis2.sed rev.3)  ・Mac拡張文字のJIS文字への代替…………………… (mac2jis1.sed rev.3)  ・Mac拡張文字のJIS文字への代替    &原文入力ルールへの準拠版…………………… (mac2jis2.sed rev.2)  ・JIS X 0208-1997規格で原則使用禁止         とされた文字の代替………………… (jis1997.sed rev.0)  ・JIS X 0208-1997での未定義文字検出 …………… (chkizon.sed rev.1)  ・おまけ(原文ルール入力簡略化スクリプト)…… (genbun.sed rev.1)  ・上記スクリプトを使い分けるバッチのサンプル… (nec2jis.bat)  ・簡易説明ファイル…………………………………… (readme.txt ;このファイル) 【スクリプトの簡単な説明】――――――――――――――――――――――――― ・nec2jis1.sed   機種依存文字を、JIS X 0208-1997で規定された代替文字へ置換えます。   規定された文字が無い場合は、元の文字が連想しやすいように置換えます。   補助漢字文字セット JIS X 0212-1990はシフトJIS環境では使えないので、   考慮していません。   なお、スクリプト中でコメントアウトした箇所を外せば、NEC拡張文字/IBM   拡張文字の範囲で、JIS X 0208-1990で置換えられない文字を検出させる事   も可能です。  [具体例]  ・丸で囲まれた数字の1、2(@、A)    → (1)、(2)  ・ローマ数字の大文字1、3(T、V)    → I、III  ・ローマ数字の小文字1、3(@、B)    → i、iii  ・一文字で記述された単位文字 センチメートル(a)    →センチ  ・算術記号の、ほぼひとしい(; S-JIS 8790)    →≒ (; S-JIS 81E0) ・nec2jis2.sed   基本的にnec2jis1.sedと同じく、機種依存文字のJIS X 0208-1997で規定   された文字への置換えか、元の文字が連想しやすい文字列への置換えを   行ないます。   但し、原文入力ルールで定められている文字はそれに準拠した形に置換え   ます。 *準拠*であり完全にルールに則っているわけではありません。   こちらも補助漢字文字セット S-JIS X 0212-1990はシフトJIS環境では使え   ないので、考慮していません。   スクリプト中でコメントアウトした箇所を外せば、NEC拡張文字/IBM拡張   文字の範囲で、JIS X 0208-1990で置換えられない文字を検出させる事も   可能です。  [具体例]  ・丸で囲まれた数字の1や2(@、A)    → [まる]1、[まる]2  ・ローマ数字の大文字1、3(T、V)    → [大文字ローマ数字]1、[大文字ローマ数字]3  ・ローマ数字の小文字1、3    → [小文字ローマ数字]1、[小文字ローマ数字]3  ・一文字で記述された単位文字 センチメートル(a)    →センチ  ・算術記号の、ほぼひとしい(; S-JIS 8790)    →[算術記号]ほぼひとしい ・mac2jis1.sed   機種依存文字を、JIS X 0208-1997で規定された代替文字へ置換えます。   規定された文字が無い場合は、元の文字が連想しやすいように置換えます。   補助漢字文字セット JIS X 0212-1990はシフトJIS環境では使えないので、   考慮していません。   このスクリプトが対象としているのは、Osakaフォント(およびそれと同じ   図形が表示されるフォント)で表示・印刷する事を目的とした文書です。   例えば、M-GOTHIC (PostScriptフォント)やRODAN-M (ATMフォント) で   表示・印刷する事を目的とした文書には適していません。  [具体例]  ・丸で囲まれた数字の1、2(@、A)    → (1)、(2)  ・ローマ数字の大文字1、3(氈A。)    → I、III  ・ローマ数字の小文字1、3(ウ、オ)    → i、iii  ・一文字で記述された単位文字 センチメートル()    →センチ  ・算術記号の、積分記号(@; S-JIS 8840)    →∫ (; S-JIS 81E7) ・mac2jis2.sed   基本的にmac2jis1.sedと同じく、機種依存文字のJIS X 0208-1997で規定   された文字への置換えか、元の文字が連想しやすい文字列への置換えを   行ないます。   但し、原文入力ルールで定められている文字はそれに準拠した形に置換え   ます。 *準拠*であり完全にルールに則っているわけではありません。   補助漢字文字セット JIS X 0212-1990はシフトJIS環境では使えないので、   考慮していません。   このスクリプトが対象としているのは、Osaka (True Type)フォント(お   よびそれと同じ図形が表示されるフォント)で表示・印刷する事を目的   とした文書です。   例えば、M-GOTHIC (PostScriptフォント)やRODAN-M (ATMフォント) で   表示・印刷する事を目的とした文書には適していません。  [具体例]  ・丸で囲まれた数字の1、2(@、A)    → [まる]1、[まる]2  ・ローマ数字の大文字1、3(氈A。)    → [大文字ローマ数字]1、[大文字ローマ数字]3  ・ローマ数字の小文字1、3(ウ、オ)    → [小文字ローマ数字]1、[小文字ローマ数字]3  ・一文字で記述された単位文字 センチメートル()    →センチ  ・算術記号の、積分記号(@; S-JIS 8840)    →[算術記号]積分 ・genbun.sed   正式なタグの代わりに"\"と半角英字で構成された簡易タグを用いて入力   された文書を原文入力用の正式なタグに変換し直すためのスクリプト   実際の変換例をこのファイルの末尾に示します。   簡易タグ例    \ssdt =[傍点開始]、\esdt =[傍点終了]    \nxtin 3 =[次行から3文字字下げ開始]※数字は全角;数字直前は半角空白    \in 5 =[5文字字下げ開始]      ※数字は全角;数字直前は半角空白    \out =[字下げ終了] ・jis1997.sed   JIS X 0208-1997で原則として使用が禁止された文字を置換えるスクリプト   1バイトコードのカタカナ(0xA1〜0xDF)と、2バイトコードのアラビア数字   ・英文字は、原則として使用禁止となりました。これは、同じ意味を持つ   文字が複数のコードを備える二重符号化を排するための措置です。   なお2バイトコードの空白は「和字間隔」の扱いであるため、1バイトコード   の空白(SP)には統合されません。 ・chkizon.sed   JIS X 0208-1997で定義されていない2バイトコード文字を検出し、印を   付けるスクリプト   未定義文字を「《→」と「←》」で括ります。未定義文字が連続して並んで   いる場合は、1文字ずつではなく、その並び全体を「《→」と「←》」で括り   ます。   なおchkizon.sedでは、1バイトコードのカタカナ(0xA1〜0xDF)と、2バイト   コードのアラビア数字・英文字の検出は行ないません。   検出ではありませんが、jis1997.sedを利用する事によって好ましい文字へ   変換できますので、必要に応じて併用して下さい。 ※その他の具体的な変換状況は、sedスクリプト(nec2jis1.sed, nec2jis2.sedなど)  をエディタやワープロで開いて確認して下さい。 【スクリプトの使い方(バッチを利用しない場合)】―――――――――――――― sed -f nec2jis1.sed 変換元ファイル > 変換先ファイル または sed -f nec2jis1.sed < 変換元ファイル > 変換先ファイル または(パイプ処理) 他コマンド | sed -f nec2jis1.sed > 変換先ファイル ※nec2jis2.sed, mac2jis1.sed, mac2jis2.sed, genbun.sed, jis1997.sed の  場合は、上記の nec2jis1.sedの部分を読み替えて下さい。 ※変換先ファイルを指定しない場合は、変換結果が標準出力(通常はディスプレイ)  へ出力されます。出力先として明示的に CON と記述しても同じ結果になります。 【バッチの使い方】―――――――――――――――――――――――――――――  スクリプトの選択パラメータと、入力ファイルと出力ファイルを以下の書式で  指定します。パラメータ無しで nec2jis [CR]としても同様の説明が見られます。   nec2jis -1/-2/-3/-4/-5 入力ファイル 出力ファイル    オプション: -1:NEC/IBM拡張文字をJIS規定文字で代替     -2:NEC/IBM拡張文字をJIS規定文字で代替すると共に、     太陽CUGの原文データ入力ルールに準拠した代替を行なう     (規定されていない部分は準拠した形で代替)     -3:-2オプションに加えて、簡易入力用タグの処理も行なう     -4:Mac拡張文字をJIS規定文字で代替     -5:Mac拡張文字をJIS規定文字で代替すると共に、     太陽CUGの原文データ入力ルールに準拠した代替を行なう     (規定されていない部分は準拠した形で代替)   出力ファイルを指定しない場合は、変換結果が標準出力(通常はディスプレイ)   へ出力されます。出力先として明示的に CON と記述しても同じ結果になります。 【バッチを使う場合の事前設定】―――――――――――――――――――――――  バッチファイルは環境変数を1つ利用しています。  バッチを書き変えずに利用される場合には、それらを autoexec.bat 中などで  設定しておいて下さい。  ●環境変数 %batdir% は、スクリプト(nec2jis1.sed, nec2jis2.sed など)を   置くディレクトリ(フォルダ)を指定して下さい。    set batdir=c:\usr\bat のように設定する。   最後に\を付けないこと(×例 c:\usr\bat\)。  ●sedを用意して、パス(path)の通った場所に置いて下さい。   このバッチでは sed を使っています。幾つかの sed が持つ方言は用いていま   せんので、基本的なものであればなんでも構いません(但し、日本語対応版の   sed処理系を用いた方がよいでしょう)。 【バッチの補足】―――――――――――――――――――――――――――――― サンプルのバッチでは、選択に用いるコマンド batkey.com を用いていますが、 代わりに win95に付属のchoice.comを使う事もできます。 choiceの場合は以下のように変更してください。 nec2jis.batから、以下の範囲(A)を削除し、(B)を貼り付けて下さい。 ※windows95のインストール先が c:\windows以外の場合は書き換えをお忘れなく。 (A) -------------------------------------------------------------------- :KEYIN echo 変換先ファイル[%3]が存在します。 batkey.com 1 このまま変換作業を続けますか(Y/N)? echo . if errorlevel 255 goto MSG3 if errorlevel 0 goto STD --------------------------------------------------------------------              ↓ (B)          ↓ -------------------------------------------------------------------- :KEYIN echo 変換先ファイル[%3]が存在します。 echo このまま変換作業を続けますか c:\windows\command\choice.com echo . if errorlevel 2 goto MSG3 if errorlevel 1 goto STD if errorlevel 0 goto KEYIN -------------------------------------------------------------------- choice以外の同様な機能を持つ選択コマンドであっても構いません。 その場合は、置換える選択コマンドの用法に従って書き変えて下さい。 【genbun.sedによる記述例と変換結果】―――――――――――――――――――― --------- 記述例 --------- \ssdt傍点指定箇所は\esdtこのように書きます。 ルビを付けたい場合は、顰蹙\ssrひんしゅく\esrのようにします。 傍点指定の代わりに「・」のルビを記述する場合も、ルビの要領で 顰蹙\ssr・・\esrとすればOKです。 \in 5ここは字下げしたいなというときはこのようにします。\out 次の行から字下げしたくなったならば、 \nxtin 9 ・1 ・2 ・3 \out とします。 --------- 変換結果 --------- [傍点開始]傍点指定箇所は[傍点終了]このように書きます。 ルビを付けたい場合は、顰蹙《ひんしゅく》のようにします。 傍点指定の代わりに「・」のルビを記述する場合も、ルビの要領で 顰蹙《・・》とすればOKです。 [5文字字下げ開始]ここは字下げしたいなというときはこのようにします。[字下げ終了] 次の行から字下げしたくなったならば、 [次行から9文字字下げ開始] ・1 ・2 ・3 [字下げ終了] とします。 【概略履歴】 [nec2jis1.sed]  rev.1   ・NEC拡張文字のうち、罫線素や半角幅・2バイトコードカタカナなどを追加  rev.2   ・「」(=0x8798)を「(直角)」から「(直角/右アングル)」へ、    「凵v(=0x8799)を「(△)」から「(△;直角三角形)」へ、それぞれ変更  rev.3   ・縦書き用引用符「」(=0x8780)「=v(=0x8781)を「“」と「”」へ対応    させるべき所が、逆に対応させていたので修正  rev.3(あえて変更しない)   ・メールアドレス 〜@nifty.ne.jp(数値記号列)は受信拒否(事実上廃止)    のため、記述を削除。 [nec2jis2.sed]  rev.1   ・NEC拡張文字のうち、罫線素や半角幅・2バイトコードカタカナなどを追加  rev.2   ・「」(=0x8798)を「(直角)」から「(直角/右アングル)」へ、    「凵v(=0x8799)を「(△)」から「(△;直角三角形)」へ、それぞれ変更  rev.3   ・縦書き用引用符「」(=0x8780)「=v(=0x8781)を「“」と「”」へ対応    させるべき所が、逆に対応させていたので修正  rev.3(あえて変更しない)   ・メールアドレス 〜@nifty.ne.jp(数値記号列)は受信拒否(事実上廃止)    のため、記述を削除。 [mac2jis1.sed]  rev.1   ・「刀v(=0x8793)を「(上)」に変換する箇所が「(高)」に誤っていた    のを修正  rev.2   ・積分記号「∫」(=0x81e7)へ変換すべき箇所が、NEC拡張文字の「秩v    (=0x8792)に誤っていたのを修正  rev.3   ・縦書き用引用符「T」(=0x8854)「U」(=0x8855)を「“」と「”」へ対応    させるべき所が、逆に対応させていたので修正  rev.3(あえて変更しない)   ・メールアドレス 〜@nifty.ne.jp(数値記号列)は受信拒否(事実上廃止)    のため、記述を削除。 [mac2jis2.sed]  rev.1   ・「刀v(=0x8793)を「(上)」に変換する箇所が「(高)」に誤っていた    のを修正  rev.2   ・縦書き用引用符「T」(=0x8854)「U」(=0x8855)を「“」と「”」へ対応    させるべき所が、逆に対応させていたので修正  rev.2(あえて変更しない)   ・メールアドレス 〜@nifty.ne.jp(数値記号列)は受信拒否(事実上廃止)    のため、記述を削除。 [chkizon.sed]  rev.1   ・未定義文字が連続していた場合に、まとめて印を付ける処理が実装されて    いなかった点を修正  rev.1(あえて変更しない)   ・メールアドレス 〜@nifty.ne.jp(数値記号列)は受信拒否(事実上廃止)    のため、記述を削除。 [readme.txt (or nec2jis.txt)]  (November 20, 1998 以前)   ・nec2jis1.sed/nec2jis2.sed, mac2jis1.sed/mac2jis2.sedなどの追加・修正    に伴う内容の更新  November 20, 1998   ・mac2jis1.sed の説明内容にJISで規格化されていない文字「秩v(=0x8792)    を混入させていたので、「∫」(=0x81e7)へ修正   ・S-JISコードを記述しているはずのところが「JIS xxxx」と誤っていたので、    「S-JIS xxxx」へ修正   ・nec2jis1.sed/nec2jis2.sed rev.3, mac2jis1.sed rev.3, mac2jis2.sed rev.2    chkizon.sed rev.1の修正内容を追加  February 12, 1999   ・誤記「jis97.sed」を「jis1997.sed」に訂正(一箇所)   ・メールアドレス変更(〜@niftyserve.or.jp → 〜@nifty.ne.jp)  February 23, 2007   ・メールアドレス 〜@nifty.ne.jp(数値記号列)は受信拒否(事実上廃止)    のため、記述を削除。代りにWebページのURLを記載。