目次
出版のためのテキスト実践技法/編集篇[目次]
はじめに 7 第1章 これからの編集者は何をするのか 11 1-1 出版物はどういうコストで成立しているか 11 1-2 テキスト一括処理はなぜ必要か 12 1-2-1 誰でも著者になりうるという幻想 12 1-2-2 テキスト一括処理とはなにか 14 1-2-3 テキスト一括処理の対象にはどんなものがあるか 16 1-3 編集技法としてのテキスト処理のすすめ 18 1-4 原稿とファイルの確認 19 1-4-1 デジタルデータでも原稿は出力して確認すべし 19 1-4-2 デジタル原稿の種類 21 1-5 機種の特定とテキスト保存 23 1-6 編集者はテキストエディタを駆使すべし 24 1-7 ファイルの整形 25 1-7-1 ファイルの連結または分割 26 1-7-2 自動改行の解除 27 1-7-3 無駄なスペース、タブの削除 30
1
2
1-7-4 句読点、記号類の統一 33 1-7-5 天付き改行の字下げ処理 35 1-7-6 必要なスペースの挿入 37 1-8 用字用語の統一 39 1-8-1 英数文字の適切な使用のチェック 39 1-8-2 世紀・年月日等の表記の統一 41 1-8-3 漢字表記の統一基準を確定する 43 1-8-4 パターン検索・置換と正規表現 44 1-8-5 SED によるテキスト一括処理の威力 47 第2章 テキスト一括処理の技法 49 2-1 SED というプログラム 49 2-1-1 SED との出会い 49 2-1-2 SED プログラムの導入 51 2-1-3 SED のインストール 54 2-1-4 SedMac の設定と操作 56 2-1-5 Windows/MS-DOS 用の SED プログラムの設定と操作 60
2-1-6 MS-DOS プロンプトを活用しよう 62 2-2 SED スクリプトの多様性と汎用性 70 2-3 SED スクリプトの実例 73 2-3-1 y コマンドについて 73 2-3-2 簡単な s コマンドもある 77 2-3-3 漢字表記の統一をとる(1) 78 2-4 SED と正規表現 83 2-4-1 キャラクタクラス 83 2-4-2 その他の重要なメタキャラクタ 87
目次
3
2-4-3 制御コードとエスケープ 90 2-5 より高度な SED スクリプト 92 2-5-1 漢字表記の統一をとる(2) 92 2-5-2 漢字表記の統一をとる(3) 95 2-5-3 漢字表記の統一をとる(4) 99 2-5-4 漢字表記の統一をとる(5) 102 2-5-5 漢字表記の統一をとる(6) 105 2-5-6 漢字の送りがなの統一 109 2-5-7 むだなスペースの削除と必要なスペースの挿入 112 2-5-8 世紀、年月日の表記統一 117 2-5-9 ルビの修正 123 2-6 その他の SED 活用法 128 2-6-1 SED の起動時オプション 129 2-6-2 s コマンドに付加するフラグ 133 2-6-3 コマンド処理の対象行をアドレスで指定する 134 2-6-4 SED の各種コマンド 139 2-7 テキストエディタでのテキスト処理 143 2-7-1 秀丸エディタの技法 143
2-7-2 Jedit の技法 ―― 複数一括置換マクロと JMultiReplace 147
第3章 テキストの割付け処理から入稿まで 152 3-1 編集処理の基本理念 152 3-2 割付け処理の手順 156 3-2-1 HTML もどきタグの埋めこみ 156 3-2-2 割付け作業の種類 160 3-2-3 割付け作業の効率化 162
4
3-3 仮ゲラの出力による校正作業―― WinLPrt による出力 168 3-4 印刷所への入稿――最終確認としての出校 176 あとがき 180 [付録] 183 「編集用日本語表記統一基準」 184 SED 用スクリプト一覧 190 参考文献一覧 200 テキスト関連ソフト・ユーティリティのダウンロード先一覧 201
目次
出版のための
テキスト実践技法●編集篇
5
6
装幀――戸田ツトム
はじめに
はじめに
本書は単行本として先に刊行された『出版のためのテキスト実践技 法/執筆篇』(2001年、未來社刊)の続篇または姉妹篇として刊行される ものである。本来は著者のためのパソコンでの執筆(入力)の技法と あわせて、編集者のためのさまざまなテキスト処理技法が一体となっ た[出版のためのテキスト実践技法]を構想していたのだが、専門書 出版における未曾有の不況のためもあって、この出版不況になんとか 風穴をあけるべく著者のための執筆技法だけでも緊急出版する必要が 生じたと感じて先行出版したのが『執筆篇』なのである。さいわい 「朝日新聞」をはじめ多くのメディアで好意的な評価を受け、予想を 超えた読者にめぐまれた。また、早くからこの『編集篇』の刊行に期 待を寄せてくれる読者が数多くいてくれたおかげで、予定をくりあげ てなんとか刊行のメドがついたところである。 そんなわけで、本書の前半部(主として第1章)を構成する「週刊 読書人」での連載[編集のためのテキスト実践技法]を早期完結し、 本書に収めさせてもらうことにした。前回ともども読書人編集部のご 好意に感謝するしだいである。 本書の残りの部分はほとんど未來社ホームページ(http://www.
miraisha. co.jp/)の「未來社アーカイヴ」ページで公開しつつ連載し
た「編集篇ベータ版」を全面的に再構成し、大幅な加筆修正をほどこ して成立したものである。これも連載中に多くの方のアクセスを得て 手応えを感じつつ書いたもので、これらの見えない読者の無形の励ま しにも感謝したい。 * さて本書で述べようとしているのは、これからの編集者は著者から 原稿を受け取ったあと、いったいどういう仕事をするべきなのかとい う方法にかんする具体的な提案であり、そのためのマニュアルであ る。デジタル化時代の出版はこれからどのような進展をみせるのか、 ペーパーレス出版という語義矛盾とも言えなくはない出版の可能性も 視野におさめつつ、 〈編集〉とはなにかをあらためて問うことが必要 になっている。 それでは、デジタル化時代の編集者の仕事と従来の編集者の仕事は どこがちがってきているのだろうか。まずそのことを確認するところ から始めたい。 〈 編集〉とひとくちに言っても、単行本の編集もあれば、雑誌や新聞 の編集もあり、シリーズものや辞書の編集だってある。複数の編集者 が同時にかかわる共同編集作業というものもある。それらを平準化し て言うことはできないけれども、総じて言えば、1)企画を立てる (著者あるいはテーマを設定・配列する) 、2)著者の原稿を読み、必 要なら問題点を指摘したり編集の立場からアドバイスをおこなう、3) 原稿を本または雑誌の形態に完成させる(割付け、校正等の処理をほ どこす) 、といった作業におおむね集約されるはずである。もちろん 出版社によって業務分担がおこなわれているところでは、これらの作 業の一部は編集の仕事とはみなされていないものもあるかもしれな い。しかし一冊の本や雑誌が編集されるということは、企画の段階か
はじめに
ら仕上げの段階までを指すととりあえず規定するなら、それほど大き な差異はないとも言えるだろう。 こうした基本的な〈編集〉概念から見たときに、従来の編集作業と デジタル時代の編集作業のちがいは主として技術上の差異にすぎない ように思われるかもしれない。ある意味ではそうであり、別の意味で はそうではない。つまり書物という最終形態への編集プロセスのちが いを捨象して言えば、書物という形態に知が結集される構造において はほとんど同一のものと言ってよいからであるが、しかしそのプロセ スにおいて書物の内容が技術的に大きく制約されあるいは変容させら れることが生ずるのであれば、かならずしも同一のものとは言えなく なっているからである。問題は、著者の原稿執筆および編集作業自体 においてデジタル化の技術がどのような変容をもたらしているか、を ひとつひとつ検証していくことである。 ともあれ、デジタル化時代の編集作業の従来と大きく異なるポイン トは、編集者が著者のデータ原稿ファイルを印刷所に入稿できる最善 のかたちに変換させ、修正をほどこすことである。このことが十全の 意味をもちうるためには、これらのテキスト処理の技法が普遍的な形 式で統一され、著者に理解しうるものであるばかりでなく印刷所の編 集機においても問題なく対応できるものでなければならない。 編集者の仕事は原稿内容の吟味は当然のことながら、著者のさまざ まなレベルのデータファイルをテキストファイルに変換し、それに適 切な修正や処理をほどこして、印刷所の編集機での一括自動変換処理 が可能になるようにできるかぎり近づけることである。そうした作業 により、これまでの方法では考えられないほどの作業のスピードアッ プとそれゆえの大幅なコストダウンが可能になるばかりか、単純な作 業や手間ばかりかかる編集作業を削減することによって本来の編集作 業たる原稿の吟味、修正に必要な神経の集中を実現しやすくするので
ある。 本書でおこなおうとしているのは、企画のたてかたや原稿の読みか た、著者との接しかたといった編集者の心得集のようなものではな い。そうではなく、著者からの原稿入稿以後、印刷所へのもっとも効 率のいい入稿までのプロセスに特化して、その方法を順をおってわか りやすく説明することである。そのための手法を開陳し、必要なツー ルやコマンドの紹介をおこなう。原稿執筆(入力)よりはいくらか高 度な技法が要求されることもあるが、それでも原理的に理解してしま えば、さほどむずかしいものではないし、作業がうまくいくようにな れば、編集作業はむしろ快感さえもたらすようになることは請け合い である。
第1章 これからの編集者は何をするのか
第1章 これからの編集者は何をするのか
1-1 出版物はどういうコストで成立しているか これまでの出版においては、それがとりわけ専門書出版であれば、 組版の手間や内容のチェックとその修正に膨大な時間がかかり、それ が一方では組版代におけるコスト高としてあらわれ、もう一方では担 当編集者の長時間作業という目に見えにくいコスト増となって、書物 の値段をどこまでも押し上げていた。 出版にかかわるコスト計算の一番の盲点は、編集者が一冊の本の編 集にどのくらいの時間をかけているかが見えにくいことなのである (じつは結果から見ればよく見えるとも言えるのだが) 。そうした時間 というコストも付け加えることによって、その本のほんとうの値段が 決められるべきなのだが、慣習上、編集者の人件費は固定費として計 算されているため、定価決定などにおいては直接生産費の部分のみが 査定の対象になりがちである。 本の値段は、その本が比較的簡単にできたものなのか、非常に手間 のかかるものだったのかによって、ある程度の幅で査定価格に上乗せ したり安めにしたりして定価が決定されるのである。それはほとんど 定価決定者の職業的カンのようなものかもしれない。年間の刊行スケ
ジュールなどをしっかり立てているところでは、編集者にしかるべき ノルマを課しているところも多いだろう。 しかし専門書出版においては、著者の都合やその他もろもろの不確 定要因などによって、なかなかスケジュール化できない部分がある。 そうしたさまざまな事情によって、編集人件費は、ある程度どんぶり 勘定で計上されざるをえない。未來社の場合でも印税や営業経費など をふくめて間接生産費は40%ぐらいに設定しているが、じつはここの 部分にものすごい個人差が生じているのである。つまり年間に12冊作 るひとと、2 冊のひととでは単純に言って実績として 6 倍の差が生じ ているのであって、後者のつくる本は前者のつくる本にたいして 6 倍 の間接生産費が加算されているのである。その差たるや膨大なもので ある。出版経営はいまや一冊あたりの人件費もにらんでおかなければ ならなくなったのである。 そうした差異はいまやパソコンの操作能力、理解力とからんで新た な格差を生みだしつつあるようだ。これからの編集作業に最小限のパ ソコン処理の能力が要請されるのは、従来の編集作業のうち多くの部 分がパソコンを使うことによって解消されるからである。
1-2 テキスト一括処理はなぜ必要か 1-2-1 誰でも著者になりうるという幻想 活版の時代から編集の仕事をやってきていると、ワープロ専用機の 出現、さらにはパソコンによる執筆(原稿入力)の常態化にともなっ て感じられる変化がいくつもある。そのひとつが、著者の原稿の書き かたそのものが大きく変化したことである。 自分にも実感はあるが、ワープロ専用機の使い始めのころは原稿用
第1章 これからの編集者は何をするのか
紙に下書きしたものを清書するための、いわば清書機械としてのワー プロがその最初の位置づけであった。そのうち慣れるにしたがい、時 間がなくて下書きする余裕がなかったり、だんだん下書きそのものが 面倒になると、いきなりモニタ画面を見ながら直接入力するようにな る。不思議なもので最初のころは白い画面を見ているだけで緊張して なにも浮かんでこなかったりしていたのが、とにかくなんでも打ち込 んでしまえ、という気になって入力しはじめると、どんどん書けてし まうようになっていく。字の下手なひとなど、とりわけ重宝している という話もよく聞いた。知り合いの著者のなかにも原稿用紙時代には なかなか書けなかったが、ワープロにしてからいくらでも書けるよう になったというひともいる。 ただ一般的に言うと、原稿書きのスピードがあがるようになった反 面、原稿を書くという行為自体にいくらか緊張感が欠けるようになっ たという気がしないでもない。こんなことを言うと、鬼の首でもとっ たように喜ぶアンチ・パソコン派のひとが想像されてしまうが、問題 はそういうレベルの話ではない。ちゃんとした原稿を書くひとは、ペ ンであろうがパソコンであろうが、きちんと書けるのであって、問題 はまだ原稿をひとに読ませるだけの修練を経ていないひとまでがどん どん原稿を書くようになったことである。ワープロやパソコンを使っ て文章を書きプリンタで出力すれば、誰の文章でもそれなりになんと かサマになるようになってしまったから、プロとアマの区別が原稿の 書きかたそれ自体では見分けがつきにくくなったにすぎない。ともか く一億総作家時代などと言われるぐらいにアマチュアが進出しすぎた ために、全体のレベルが低く見えてしまうようになったとは言えるだ ろう。 その結果として、書物を刊行するという行為がなんら特権的な行為 ではなくなり、誰でも著者になりうるという幻想があまねくゆきわた
ってしまった。さらにはシロウトをおだてて著者に仕立て使い捨てて いくという出版社(編集者)にも事欠かない。これではどうしたって 書物の粗製濫造に行き着くに決まっている。今日の出版不況の最大の 責任者はそうした出版社(編集者)なのだという厳粛な事実から目を そむけることはできないのである。 1-2-2 テキスト一括処理とはなにか いまさら死んだ児の歳を数えるつもりはないが、こうした著者の水 準低下がワープロやパソコンの普及にともなって生じてきたのは事実 であるとしても、ワープロやパソコンが著者をダメにしたというのは あたらない。前述したとおり、ちゃんとした原稿を書くひとは、パソ コンにすこし慣れればやはりきちんとした原稿を書けるのである。問 題は、出版のための原稿を作成するのにどうすればいいのか、その基 本的な方法を出版社(編集者)が著者に理解してもらう努力を怠って きたことなのだ。 わたしの『出版のためのテキスト実践技法/執筆篇』はその意味 で、著者のためのパソコンにおける執筆要項をもっとも一般的なかた ちにまとめた最初のものである。ここに書かれていることはとくにむ ずかしくも面倒なことでもない。この出版不況の時代に、著者にこの 程度のことを理解し協力してもらうことは、やむをえないことと考え る。完全原稿をパソコンにおいて仕上げることが技術的にできる以 上、著者には原稿の完成にむけてパソコンの最小限の技術習得を心が けてもらいたい。このことにより編集者にも印刷所にもむだな手間や コストをかけさせることがなくなり、専門書出版の可能性が大幅に高 められる。印刷所もふくめて著者と編集者が三位一体で協力しあわな ければならない時代なのである。(*) それはともかく、著者の原稿データがすべて技術的にも完璧なもの
第1章 これからの編集者は何をするのか
になることは残念ながらほとんどない。もちろん内容的にも著者が完 全原稿だと言っているものでも、編集の目から見たらやはりなにがし かの問題点をふくんでいるはずだ。なにひとつ疑問点なり間違いなり 不統一なりを見つけられない編集者には編集という稼業は不向きなの だと言っても過言ではない。編集者がきちんと指摘しなかったら、著 者は気がつかないままで本にしてしまうだろう。編集者はまず疑うひ とでなければならない。 そういう懐疑的な目で著者からの原稿をひとわたり眺めてみたとき に、内容もさることながらファイル自体の出来不出来についてもざっ とチェックしてみると、さまざまな問題点が浮かび上がってくるはず である。わたしがここで提案する方法は、そうしたあらかじめすぐ目 につく問題点を、後述するように SED というツールを使って一挙に 解消してしまうことなのである。原稿を読みながらひとつひとつ修正 したり、テキストエディタの検索・置換機能を使って修正していくの も原始的な方法であるが、それでは時間がかかりすぎる。あらかじめ 機械的に処理しておけるものはすべて通読するまえに処理をすませて しまうのが得策であり、編集作業のスピードアップと通読するさいの 快適さにつながるのである。テキスト一括処理にはたしかに危険がと もなうものもあるが、そうしたものにはマークをつけるようにしてお けばよいので、さほど恐れることはない。 (*) ある読者は、このわたしの提案が著者への「指示」であり、不慣れな著者や編 集者をパソコンの前にしばりつけ、チャップリンの「モダンタイムス」よろしく、 原稿入力にひたすら邁進する姿を想像させると皮肉ってみせたが、これは悪意に みちた誤読と言うしかない。印刷所の現場にいるひとらしいが、わたしの提案は 印刷所にとってもムダな仕事を大きく軽減できることにつながっている。
1-2-3 テキスト一括処理の対象にはどんなものがあるか 前項で書いたように、編集者が著者から受け取った原稿ファイルを あつかうさいにまず気をつけなければならないのは、できるかぎり直 したほうがいい種類の間違いや不統一の部分はまっさきに一括処理を すませてしまうことである。 編集の仕事はもともと著者の原稿をいかにしっかり読むことができ るかということであり、間違いや矛盾があったらそれを発見し訂正す ることを著者に要請することである。また全体の構成に注意をし、過 不足のない記述になっているか、狙いがきちんとつたわるような記述 がなされているかを徹底的に検証することである。編集者は著者にと って第一の読者であるだけでなく、場合によっては刊行にいたるまで の唯一の読者であることもありうる。それだけ本の内容に著者ととも に責任を負っているのである。すぐれた書物の誕生にしばしばすぐれ た編集者が介在するのは、編集者が著者の思い込みや錯覚をただしく 指摘するばかりでなく、すぐれたプロデューサーの機能を果たしてい るからである。昨今の作家(著者)から読者へのオンデマンド出版に よる編集者(出版社)中抜き論が見落としているのは、この編集者の 検閲者兼プロデューサーという社会的機能である。わたしは編集者 (出版社)が中抜きになってもべつにかまわないと思っているが、そ れで十分だとはけっして思わないという立場に立っている。 それはともかく、編集者の仕事は最終的には原稿の通読、精読をす ることであるが、そのまえに大きくわけて 2 種類のテキスト処理をお こなう必要がある。 その第一のものは、もっぱらファイルの技術的処理にかんするもの である。著者によってはテキストファイルの作成においてさまざまな 不適切な処理をしていることがあるから、それらは事前に適切なかた ちに処理され整理されておく必要がある。
第1章 これからの編集者は何をするのか
つぎに必要なことは、原稿の内容にかんするものである。著者の表 記のしかたが原則的でなかったり、たんなる不注意のために不統一や ブレが生じていることはけっこう多い。この第二の種類のものは通読 の過程で気がつくこともいろいろあるが、そういったものはあとで補 修するようなかたちで個別的に処理していけばよいので、ここで考え るべきことは一般的なパターン処理をほどこすことである。 くわしい方法は後述するが、ここではテキスト処理の対象にはどん なものがあるのかをざっと見ておこう。 まずファイルの技術的処理関連について。 ―― 、原稿のデジタルデータはテキストファイルか、そうでないか 1 (→そうでない場合はテキストファイル化する) 。 ―― 、むだなスペースやタブを削除する。 2 ―― 、ルビ、圏点、欧文特殊文字、ゴチックやイタリック、アンダ 3 ーライン等の指定が消えていないか、または適切になされているか (→適切なタグ指定をほどこす) 。 ―― 、時計数字や丸付数字、特殊な記号が不適切に使われていない 4 か(→適切な変更をおこなう) 。 ―― 、欧文注などのピリオド、コンマ、コロン、セミコロン等のう 5 しろにベタで英数文字がつながっていないか(→必要な半角スペース を挿入する) 。 ―― 、音引き記号とマイナス記号、ダッシュ、句読点などの混用、 6 誤用がないか(→適切なものに変更する) 。 つぎに内容上の処理関連について。 ―― 、漢字の使いかた、開きかた、送りがなの不統一、古すぎる表 1 記があるか(→不統一をなくし、新しい表記に変更する) 。 ―― 、外国人名などの表記の不統一を修正する。 2 ―― 、固有名詞の特定の表記を厳密に適用する(未来社→未來社、 3
など) 。 ―― 、年月日や世紀などの表記の不統一を原則にあわせて変更する 4 (→漢数字か算用数字か、漢数字なら十を加えるか加えないか、算用 数字なら全角か半角か) 。 ―― 、人称の表記に不統一があれば、統一する。 5 とりあえず、おおまかに言えばこういった問題がある。あらかじめ 著者に確認したうえで統一するべきことは統一してしまえば、こうい う細部をあまり気にせずに通読作業に集中することができる。余分な ストレスや散漫になる要素がすくない分だけ、原稿内容にしっかりか かわることができるのであり、このことの効果がきわめて大きいこと は経験すればよく納得できるはずである。
1-3 編集技法としてのテキスト処理のすすめ ようやく[出版のためのテキスト実践技法]の編集篇を具体的に論 ずることができるところまできた。編集作業の第一歩は著者の原稿を 直接手にするところから始まる。現在のようなデジタル時代には著者 の原稿がデジタル形式のものであるケースがどんどん増えてきてい る。また、最終的に電算写植または DTP(Desk Top Publishing) のかたちで印刷されることはいまや当然であり、むしろデジタルデー タを用いた電子出版まで現実化してきているのである。 こうした最終印刷形態(あるいは電子本のような非印刷形態とも呼 ぶべきものはとりあえずここでは除外して考えるが)にいたるための 最短コースをいかにとるべきかが、ここでの課題である。 くりかえすが、ここで論じようとしているのは、パソコンを使って 編集実務における膨大な単純作業を圧縮することであって、編集全般
第1章 これからの編集者は何をするのか
にわたるノウハウを示そうとするものではない。つまり企画の立て方 やその良し悪しを云々すること、著者からの原稿入稿までの手順や方 法、そして刊行後の売れ行きなどのことはさしあたり考慮の外におく ということである。あくまでも著者の原稿を受け取ってから印刷所に 入稿し、刊行にいたるまでの時間を短縮し、軽減する方法を提示する ことに限定している。 その方法をひとことで要約すれば、第一に、パソコンによる原稿の テキスト一括処理(主として検索と置換)をできるだけ有効にほどこ してあとあと発生しそうな無駄な作業の芽をつむことであり、第二 に、そうして処理された原稿ファイルにタグと呼ばれる割付け上の指 示、指定を直接書きこむことによって、原稿が印刷所の編集機にかけ られるときに、どんなに複雑な書式であっても自動一括変換処理がな されて、すぐさま完璧な初校があがるようにしてしまうことである。 もちろんその中間過程において、著者と編集者のあいだで原稿の通 読、修正、改稿、追加といった本来の編集作業の徹底した作業がくわ わるのは言うまでもない。むしろこの本来の編集の仕事とも言うべ き、原稿内容の徹底的な吟味、検討、改変に集中できることこそがこ のテキスト実践技法の最大のメリットなのである。ゲラにする以前に ほとんどすべての編集作業を完了させてしまうのがこの方法だからで ある。
1-4 原稿とファイルの確認 1-4-1 デジタルデータでも原稿は出力して確認すべし 編集者の最初の実務は、著者からきちんとした原稿を受け取ること である。言うまでもなく、ここで「きちんとした」原稿を受け取ると
いうことは、いい加減な原稿、つまらない原稿は受け取らないという ことも意味する。あるいはきちんとした原稿になるように、著者に説 明し、説得しなければならないことさえあるということだ。それから 問題はかならずしも原稿の中身でないこともある。 編集者がまず最初に確認すべきことは、その原稿の形態である。そ れはパソコンあるいはワープロ専用機で入力され紙に出力された原稿 なのか、雑誌などに発表された活字原稿(のコピー)なのか、手書き 原稿なのか、あるいはそれ以外のものなのかということである。なぜ こんなことをわざわざ書くのかと言えば、最近はデジタル原稿の場合 におうおうにして紙の原稿なしで入稿しようとする著者がいるからで ある。インターネットをつうじてファイルを送ることも可能になった し、出力するのが面倒だとか送るのは大変だとかいう理由で紙の原稿 を省略しようとする著者が現われてきた。 わたしの経験でもいろいろあったが、デジタル原稿の場合でも、著 者が紙に出力した原稿しか最終原稿ではないという基本方針をわたし はとっている。 『執筆篇』でも書いたことだが、著者は入力したデー タが正しく印刷されていることを確認し、適切な訂正や必要なら書き 込みをおこなう必要がある。できればテキストファイルのままで印刷 してほしい。なぜなら、たとえばワープロソフトの Word で作成さ れた原稿はテキスト保存したときに、ルビが親文字ごと影も形もなく なってしまうというようなことがおこるからである。また改行の一字 下げなども、オートインデントという機能をオフにしておかないと、 テキスト保存したあとの段落のはじめはすべて天付きになってしまう という不具合が起こるが、こうしたことも著者は気がつかないままに なってしまうからである。 とにかくこうした思いがけないエラーを起こさないためには、著者 もテキストエディタを入力のためのツールとしたほうがよいのであ
第1章 これからの編集者は何をするのか
る。それはともかく、編集者はこうした起こりうる問題をあらかじめ 著者につたえるか、原稿の中身から察知しなければならない。最終的 に原稿に責任をもつべきなのは著者なのであるが、編集者はこうした 技術上の問題にかんしても著者をサポートできるようにつとめるべき なのである。 1-4-2 デジタル原稿の種類 さて、著者から受け取る原稿の形態は、大きく分けてパソコンまた はワープロ専用機で入力されたデジタル原稿、および活字原稿または 手書き原稿の非デジタル原稿である。さらに言えば、このデジタル原 稿もワープロ・ソフトまたはワープロ専用機(以後、これらをワープ ロと総称する)で入力されその形式のまま保存されたものと、テキス トファイル形式で保存されたものとに分かれる。もっと言えば、この 最後のテキストファイル形式のものも、ワープロで入力されたものを テキストファイル形式で保存し直したものと、最初からテキストエデ ィタで入力され保存されたものとに分かれる。結論的に言えば、この 最後の形式がもっとも適切な入力・保存形式なのである。わかりやす いように適切なファイル(原稿)形式の序列を図式化してみよう。 【図1】 図のように、I > II > III > IV の順に序列化されるのは言うまで もない。しかし、もちろんこれは一般論であるから、入力技術の巧 拙、方法的な自覚の度合い、その他によってこの序列の一部が逆転し てしまうこともありうる。経験によれば、ファイルの内容によっては 始めから入力したほうが楽だというような場合さえもあって、かつて はそういうふうに印刷所から言われてしまうような原稿ファイルもあ った。しかしいまやそういったファイルでさえもこれから述べる[出 版のためのテキスト実践技法]にもとづけば、それほど困難でなく印
Ⅰ テキストエディタによる入力・保存 →そのまま使える Ⅱ ワープロ入力・テキスト保存 →ファイルチェックが必要
(ファイル形式) テキストファイル形式
Ⅲ ワープロ独自保存形式 →テキストファイルへ変換 Ⅳ 活字原稿 手書き原稿 →テキスト入力へ
(原稿の形式)
デジタル原稿
非デジタル原稿
図1
刷所への入稿原稿として使える原稿にすることができるのである。 そのために編集者が最小限身につけなければならないのは、テキス トエディタを使えるようになることである。前にも書いたが、編集者 (エディター)がテキストエディタを使うのはトートロジーでさえあ る。ワープロソフトではサポートされていないかお粗末な能力しかも たない機能がエディタにはいろいろ付属していて、編集者はこのエデ ィタを駆使して著者が処理しきれなかったファイル処理を適切かつ迅 速に実行することができるのである。 そうした前提に立てば、非デジタル原稿についてもこの方法論が適 用できることになる。つまり著者がデジタル化できない原稿にたいし ては、印刷所なり外注なりでプレーンなテキストファイルに入力して もらえばいい。その段階で著者校正が余分に一度必要になり、初期入 力費用が別途必要になるだけのことである。あとは編集者によるテキ スト処理で同様の方法が適用できるからである。
第1章 これからの編集者は何をするのか
1-5 機種の特定とテキスト保存 編集者がまずするべきことは、テキストファイルでない原稿ファイ ル(これらはバイナリファイルと呼ばれる)がそもそもどんな機種ま たはソフトによって作成されたものであるか、著者に確認することで ある。これがなかなか厄介な問題であるのは、えてしてこうしたバイ ナリファイルで原稿を提出する著者はこの種のことにうといひとが多 いからである。 「 原稿はどのワープロで書かれましたか?」 「マックです」 「機種はな んですか?」 「だからマックです」 。――こういう笑えない話はいまで もしょっちゅうある。マックは MacOS という OS(オペレーティン グ・システム)を搭載したマシンであって、そのうえで動くワープ ロ・ソフトはいろいろある。Windows でも事情は同じ。 いずれにしてもこうした場合、編集者は著者の使っているマシンか らワープロ・ソフトを推定するしかない。だいたいがマシン購入時に 標準で付いてきたようなソフトを使っているとみて間違いないのだ が、これが時期によって多様なのである。その点、ワープロ専用機の 場合のほうがまだいい。機種とその型番を調べてもらえばだいたいの ことがわかるからである。こうしたファイルの場合には、たとえばコ ンバートスターというようなコンバートソフトを使ってテキスト変換 することができる。 ワードや一太郎といった代表的なワープロ・ソフトで作成されたも のであって編集者がそれらのソフトをもっていれば、そのファイルを ワープロで読み込み、ファイルメニューから「別名で保存」とか「名 前を付けて保存」を選択し、保存形式を MS-DOS テキスト形式にし て保存すれば、テキストファイルに変換される。ただし、著者がその ソフトに特有の形式で作成したルビ、圏点、イタリック、欧文特殊文
字、フォント設定、記号などのローカルな機能(機種依存文字と呼ば れる)はすべて削除されるか解除される。したがってそれらをテキス トファイルにも反映させたいときには、後述するような「HTML も どきタグ」というデータ指定方式をファイルに書き込む必要がある。 これらの処理はできれば、もとのワープロのうえで実行してしまう のが適切である。こうした機能が用いられているところを解除し、タ グ処理をほどこしていくのである。これはかなり面倒な作業であり、 はじめからこういうローカルな機能や文字を使わないように著者の理 解をもとめておく必要があるのはいうまでもない。
1-6 編集者はテキストエディタを駆使すべし これまでの記述のような手順をふんで、出版のための原稿がテキス トファイルとしてようやく編集者の手に入る。ここから編集者の仕事 は大まかに言えばふたつの種類の仕事にかかわることになる。 第一には、著者とともに原稿のさらなるシェイプアップをおこなう ことであり、第二には、印刷所に入稿するための徹底的なファイル処 理をおこなうことである。このふたつの仕事をいかに適切かつ高速に できるかによって、本の内容をより良くするとともに大幅なコストダ ウンを実現することができるようになるのである。このことによっ て、これまで実現することがむずかしいとされた企画の多くが現実的 な日程にのぼることも可能になる。 そのためにまず必要なことは、編集者がなによりもテキストエディ タを駆使できるようになることである。さまざまな入力作業はやはり 必要であるし、検索と置換というエディタにおいてもっとも得意とす る作業を効率的に処理できるようになるためにも、使い方はしっかり
第1章 これからの編集者は何をするのか
覚えたほうがいい。 『 出版のためのテキスト実践技法/執筆篇』ですでに紹介したが、テ キストエディタには使い勝手のいいものがいろいろある。ふつうに使 うだけなら、エディタは別にむずかしいものではない。高機能エディ タを選ぶかシンプルなエディタを選ぶかは好みにもよるが、これらは どれでも使いこんでみて、慣れてしまえばいいのである。とりあえず わたしが使っているのは、Windows なら秀丸エディタ、QX エディ タであり、Macintosh なら Jedit、YooEdit、LightWayText といっ たエディタである。それぞれに特殊な機能や使い勝手のよさがあり、 いろいろ使い分けることでそれらの長所を生かすこともできるから、 ひとつに慣れたらほかのエディタもいろいろ試してみるのもいいだろ う。 とにかく原稿のテキストファイルをまずそれらのエディタのどれか で開いてみることである。すでにバイナリファイルでチェックしてお いた原稿の場合などはだいたい想像できるが、原稿ファイルの中身と いうのは通常はいろいろな問題をふくんでいる。印字されたものはま ずまずだが、ファイルをあけてみると気が遠くなるようなものもすく なくない。無用なスペースやタブがいっぱい入っていたり、表記の不 統一などが目につくことになる。印刷所に入稿するためには、まずこ うしたファイル上のごみ取りをしておく必要がある。そのための基本 ツールがエディタなのである。
1-7 ファイルの整形 著者からの原稿がどんなファイル形式で入稿したにせよ、まずは編 集者が原稿のテキストファイルを入手するところまで到達したことに
なる。ここからは前述したように、著者とともに原稿のさらなるシェ イプアップをおこなうことと、印刷所に入稿するためのファイル処理 をおこなうことのおおむね 2 種類の仕事が編集者の課題として残され ている。 ここではまず印刷所にそのまま入稿できるファイルに修正する編集 手順を整理し確認しておこう。 1-7-1 ファイルの連結または分割 まず最初に考えられることは、入手したテキストファイルがどのよ うなものかによって、ファイルの連結または分割をする必要のある場 合である。もともとの原稿が巨大なひとつのファイル(たとえば「本 文 .txt」 )となっているような場合、これらは部とか章とか論文ごと のファイルに分割しておいたほうが扱いやすい(ただし後述する SED によるテキスト一括処理などをするときにはあえてこれらを連 結しておくほうが効率がいいということもある) 。いまのエディタは マルチファイル検索・置換などもすることができるから、これはいち がいには言えないが、一般的にはあまり大きすぎず小さすぎないぐら いのファイル(たとえば10キロバイトから70-80キロバイトぐらい) に分割管理していくほうが無難で都合がいい。 ファイル分割にはその種のユーティリティがたくさんあるが、通常 はエディタでファイルを開き、適切な部分を選択して新規ファイルに コピーし、ファイル名をわかりやすく付けておくほうが確実である。 Jedit では必要部分をマウスで選択しておいて、ファイルメニューか ら「選択域の保存」でこの作業を簡略化することができる。 ファイルを連結するのも、ひとつのファイルのうしろに連結するフ ァイルをまるごとコピーして貼り付けていくだけでよい。これには 2 つの方法がある。Jedit なら、連結するためのファイルを開いて
第1章 これからの編集者は何をするのか
Command+A(全部を選択)∼ Command+C(コピー)∼元のファ イルのうしろにカーソルをあてて Command+V(ペースト)という 連続技でいくか、連結すべき場所を指定しておいて、 「ファイル」メ ニュー∼「取込み」∼「テキストファイル」で開くダイアログから連 結用のファイルを指定するか、連結ファイルをドラッグ&ドロップす る。同じように、秀丸エディタで最初のコピー&ペーストの方法をと るなら、Command キーの代わりに Control キーを押せばよい。もう ひとつは「ファイル」メニュー∼「カーソル位置への読み込み」で開 くダイアログから連結用のファイルを指定すればよい。 ファイルの分割あるいは連結を一度にすることのできるユーティリ ティは星の数ほどもあると言っていいが、いずれも軽いソフトなので 大差はない。あまりに細かいファイルに分割されているような原稿の 場合には、これらのどれかを使って一発結合してしまうほうが効率的 だろう。 ワープロ専用機で入力された原稿の場合、ひとつのファイルに 32 キロバイト以上のデータを収録することができないという制約がある から、やむなくひとつの章なりひとつの論文をふたつ以上のファイル に分割している場合がある。テキストエディタではほとんど無限の大 きさのファイルを扱うことができるので、これらは当然ひとつのファ イルに連結しておくべきである。逆に、著者が編集者の手が入ったフ ァイルにもういちど手を入れたいという場合には、もしワープロ専用 機が相手だったら、この逆の操作をしなければならない。つまり32キ ロバイト以上のファイルがある場合、それぞれ32キロバイト以内のフ ァイルに分割しなければならないのである。 1-7-2 自動改行の解除 ワープロ専用機によって入力された原稿の場合、そのテキストファ
図2
第1章 これからの編集者は何をするのか
イル化されたデータを見ると、各行の終わりに著者(入力者)によっ て設定された字数ごとに改行マークが挿入されているものがある。ま たパソコン上でもワープロ・ソフトからのデータの保存設定によって は同じような現象が起こる。 【図2】 ワープロ専用機あるいはワープロ・ソフトで原稿を書く場合、まず 書式設定することが前提になり、その書式にもとづいて指定された字 数ごとに行末処理、つまり自動的に桁折りをすることになっている。 (*) これを自動改行と呼ぶが、この改行処理がテキストファイルに保 存したのちにも残ってしまうのである。したがって、たとえば 1 行30 字で設定されたデータはテキストエディタで開くと当然のことながら 30字ごとに改行が入ってしまって、たとえば 1 行40字の形式にしよう としてもいちいち改行コードを削除しなければならない。 本来、テキストファイルは改行コードから次の改行コードまでのひ とつの段落を 1 行とみなし、開いている画面におうじて適当に行変え をおこなっているが、これはいくらでも伸縮自在のものである。もち ろん高度なエディタになると、ワープロのように 1 行の長さを設定す ることもできるが、これは便宜的なもので、簡単に字数を変更でき る。Macintosh の YooEdit のような軽いエディタになると、開いて いる画面をドラッグして動かすだけで画面に追随して字数が変更でき る。はじめから初期設定によって字数を固定せず、画面の幅に対応す る文字数で行変えをおこなうようにできるのがエディタだ。 ともあれ、データにこの自動改行が挿入されてしまっているものは そのままでは使いものにならない。段落の終りを示すために必要な改 行(本来の改行)を残し、段落の途中の自動改行を解除する必要があ る。Macintosh 系のエディタでは、通常は段落ごとにマウスで範囲 を選択し、Jedit では「ツール」メニューから「改行 / インデントの 除去」 、YooEdit では「オプション」メニューから「行の連結」 (いず
図3
れも Command+J キーを押す)を実行する。Windows 系の QX エ ディタではやはり範囲を選択し「編集」メニューから「削除」∼「改 行を削除」を実行する。この操作は SED によってより高度に瞬時に 実現することができる。 【図3】 【図4】 (*) 『出版のためのテキスト実践技法/執筆篇』の「2-2-3 拡張子の概念と改行コ ードの形式」でも触れたが、Word の場合、テキスト保存するときの「ファイルの 種類」のプルダウンメニューから「テキストのみ」または「MS-DOS テキスト」 を選ぶことによってこの問題を回避できる。
1-7-3 無駄なスペース、タブの削除 著者からの入稿原稿ファイルで多くの場合に問題があるのは、いた るところに意味のないスペース(全角、半角)やタブが入っているこ
第1章 これからの編集者は何をするのか
図4
とである。このことはこれまでも何度も触れているが、大きく分けて つぎの 3 種類の理由があるように思う。 段落の最後に改行コードを入力するという大原則を知らないため 1 に、みずから指定した 1 行の字数(桁折り)の終わりまでの字数分と つぎの段落の始めの 1 字下げまでスペースやタブを入れてしまう場
合。プリントアウトされた見かけの原稿ではわからないが、長い 1 行 のデータのなかに不規則なスペースやタブが入る形式になっている。 目次や引用などで本文より何字分か字下げ(インデント)をおこ 2 ないたいとき、行頭になるごとに字下げ分のスペースやタブを入れて 整形したつもりになっている場合。これも 1 行のなかに規則的な間を あけてむだなスペースやタブが入ってくる。 とくにスペースやタブを入れるべきでないのに、なんとなく入れ 3 てしまったままにしてしまう場合。戯曲などで登場人物のあとにセリ フとのあいだにタブを入れてしまったケースなどもあり、著者によっ てはかなりいい加減なものも多い。 さて、編集者は入稿するまえにこれらの無駄なスペースやタブを削 除しておくことが望ましい。行末の無駄なスペースやタブが入ってい るのをそのままにしておいたために、見えないスペース分だけ改行の 位置がずれてしまい、わけのわからない 1 行アキが入ってしまうよう なことが生ずるからである。印刷所によってはこうしたファイル上の 問題点を入稿段階で前処理してくれるところもあるが、すべて他人ま かせにしてしまう編集者の悪い習慣は改めたほうがいいだろう。 この処理の基本は後述する正規表現を使ったパターン検索・置換に よって実現できる。全文を対象にした一括処理になると、SED コマ ンドを使った高度なタグ付き正規表現による処理(後述)にまかせな ければならないが、とりあえずの処理なら、正規表現をサポートして いるエディタ(たいていはサポートしている)で検索画面を開き、検 索欄に「□□ +」 (全角スペース 2 個+半角プラス)と入力し (*)、置 換欄は空欄にしておくことによって、全角スペースが 2 個以上連続す る部分を一括削除することができる。 【図5】半角スペースについて も同様である。また全角半角スペース混在なども同様に検索できる が、エディタによっては置換まではできないものがある。
第1章 これからの編集者は何をするのか
図5
(*) ここで「□」は便宜上全角スペースを示している。以後も同様。
1-7-4 句読点、記号類の統一 つぎにチェックしておきたいのは句読点やカッコ類、記号類の統一 の問題である。 句読点は日本語のふつうの表記では「。、」であるが、最近のよう にパソコン画面で横書き入力がふつうになってくると、そんなことは 気にしないひとが増えているようだ。欧文を入力するひとが増えてい ることもあるかもしれない。とにかく、ATOK などの入力変換プロ グラムの「環境設定」で句読点モードの初期設定を「.,」にしてい ると、縦組みにしたときに異様なかたちになってしまう。通常の和文 であれば、こういう設定で書かれた原稿はエディタでそれぞれ一括置 換してしまって問題ない。欧文中でも間違って全角の「.,」が使わ れている場合があるが、これらはあとで半角の「.」と「,」に直せば すむ。 さて、問題は記号やカッコ類の処理である。これも和文中で使用す るときは全角使用が原則である。 ‘’ “” () 〔〕 [] {} 〈〉 《》 「」 『』 【】 といったカッコ類のうち、パソコン上で半角使用ができるのは「'」
図6
図7
「"」と() 、 [] 、 「」だけであるが、これらは「」を除き、本来は欧文 モードでしか使わないのが原則である。これらの半角は「'」 「"」を別 にすると、欧文と同じように、行の中央よりすこし下付き(縦組みす ると左寄り)に設定されているから、よく見るとすぐわかる。通常は これらは全角に置き換えてもよいのだが、欧文にはさまれているとき にかぎり、前後に半角スペースを加えた半角使用が原則になる。 記号類も原則的には全角に統一したほうがいい。?!♯$%&*@ ¥+−=などさまざまあるが、これらは欧文中では半角使用が原則だ から注意が必要だ。たとえば全角の「?」を欧文中で半角にする場合 は、パターン検索における正規表現(くわしくは次章を参照)の知識が 必要だが、とりあえず検索欄で「¥([A-Za-z0-9]¥) ?」、置換欄で
第1章 これからの編集者は何をするのか
「¥1?」 (このクエスチョンマークの検索側は全角、置換側は半角に注 意)とし、検索条件欄で正規表現にチェックを入れて実行する。(*) これで必要なところだけ検索し、処理を実現する。 【図6】逆に和文 中で半角の「?」を全角に変換する場合は、検索欄に「¥([□ - 煕]¥)¥?」 (**)、置換欄に「¥1 ?」とすれば確実にマッチする。 【図7】 「[A-Zaz0-9]」は半角英数文字全体、 「[□ - 煕]」は和字全体を表わす。正規表 現についての細かい説明は次章にゆずってここではいっさい省略する が、同じ要領で各自で試してみてほしい。 (*) 秀丸では特殊な正規表現の使用法があり、この例で言えば「¥(」と「¥)」の代わ りにいずれも「¥f」を使用する。 (**) 半角の「?」は単独だと正規表現の別の意味になるので、半角の「¥」を付ける ことも忘れないように。
1-7-5 天付き改行の字下げ処理 著者の入力のためのツールとしてかなり普及している Microsoft Word には、いろいろ厄介な機能がデフォルト(工場出荷時設定)で 設定されている。そのうちでもとくに困るもののひとつがオートイン デント機能である。これは段落の最後で改行キーを押すと、つぎの行 の頭にスペース 1 字分のアキが入っているように見せる機能である。 入力者にとっては便利な機能と思われるところだが、じつはこれがく せものなのである。なぜなら実際にそこにスペース 1 字分が入力され ているわけではないからであって、Word を使っている者同士がファ イル交換する場合にはまだしも(これでもそれぞれの設定環境によっ ては問題がある) 、それ以外のファイル交換においてはまったく意味 をなさないことになる。すなわち、段落の最初はすべて天付きになっ てしまうのである。
出版社あるいは編集者によっては著者に Word による入力を標準 化しているところがかなりあるらしい。わたしに言わせれば、これは 重大な間違いである。本来はテキストエディタによる入力をすすめる のが基本なのだが、編集者は自分が日ごろ使用しているワープロ、そ れも Word なら自分でもファイルを開けると思っているからにすぎ ない。しかしこれもそれぞれの使用環境や設定環境がちがったらうま く対応しないし、そもそもヴァージョンが古かったりしたら開けない こともあるのである。 ともかく、こうして Word によって入力されたものをテキストデ ータとして保存しなおすと、たいていはオートインデント機能をその まま使っているために、行頭は天付きになっている。著者は、かりに 自分でテキスト保存しなおすことまでやるとしても、保存されたあと を確認することがほとんどないから、こうした天付き改行になってい ることに気づかない。原稿ファイルを受け取った編集者も Word で 出力された原稿を見ているかぎりでは、ファイルが天付き改行になっ ていることに気づかない。編集者の仕事はこうしたところにまで神経 を配って確認する必要がある。 では、これをどう処理するか。一個ずつ確認しながらスペースを入 力するのは大変だから、ここでは正規表現を使ってつぎのように一括 処理すればいい。エディタの「検索・置換」メニューを選択し、検索 欄に「¥n」を、置換欄に「¥n □」を入力し、 「正規表現」のボック スにチェックを入れて一括置換する。これだと、空行に余分なスペー スが入ってしまうので、その部分を削除するために、検索欄に「^ □ ¥n」(*) を、置換欄に「¥n」を入力して、同じように一括置換すれば いいのである。なお、Macintosh の場合は、 「¥n」のかわりに「¥r」 を入力する。これは改行コードの違いのためである。
第1章 これからの編集者は何をするのか
(*) ここで「^」は行頭を示す正規表現におけるメタキャラクタ(次章参照) 。
1-7-6 必要なスペースの挿入 「 1-7-3」で無駄なスペースやタブを削除する必要とその方法を提示し たが、すべてのスペースが不要でないのは言うまでもない。欧文の単 語間の半角スペースは言わずもがな、和文のあいだでも、たとえば 「!」や「?」のあとに文章がつづく場合は全角スペースが入ってい たほうが読みやすい。また欧文中ではそれぞれ半角のピリオド「.」 、 コンマ「,」 、コロン「:」 、セミコロン「;」のあとに英数文字がつづく 場合は半角スペースを挿入するのが基本である。 スペースの削除と挿入はその意味ではなかなか一括処理になじみに くいところがあって、ほんとうはひとつひとつ確認していきたいとこ ろだが、それでは膨大な数のスペース処理をすることになって大変 だ。したがって、正規表現を使いいくつかのパターン処理によって検 索と置換をおこなうようにすべきであろう。 高度な一括処理は後述する SED などのツールを用いることになる が、Jedit や秀丸でも正規表現をつかえばひと通りの処理はできるの である。 さきほど挙げた例でいえば、和文中の「!」や「?」のあとのスペ ース挿入は、検索・置換メニューを呼び出して、まず「正規表現」の ボックスにチェックを入れたあと、検索欄に「¥([?!]¥)¥([、- 煕]¥)」 と入力し、置換欄に「¥1 □ ¥2」 (¥1 と ¥2 のあいだは全角スペース) とし、一括検索をおこなう。 【図8】そのさい、ここでの例のように 「?」のうしろにカギカッコが付いたものまで検索してしまうので、 そうした場合は置換しないようにすればよい。あるいは Jedit などの 場合なら、一括置換してしまったあとで「?□」と「!□」を一括検 索し、検索リストから間違った部分を呼びだして修正するというのが
図8
図9
現実的かもしれない。 また欧文中のピリオド、コンマ、コロン、セミコロンのあとに半角 スペースを入れる方法は、やはり検索・置換メニューの正規表現で、 検索欄に「¥([.,:;]¥)¥([A-Za-z0-9]¥)」と入力し、置換欄を「¥1_¥2」 (¥1 と ¥2 のあいだは半角スペース)(*) とすればすべて置換できる。 【図 9】このさい、すでに半角スペースが 1 個入っている箇所にははじめ からマッチしないから大丈夫。 これらの正規表現についてのくわしい説明は次章にゆずる。SED と正規表現を組み合わせて使えば、この問題をもっと効率よく処理で きるのである。
第1章 これからの編集者は何をするのか
(*) ここで「_」は便宜上半角スペースを示している。以後も同様。
1-8 用字用語の統一 著者の原稿における細かいファイル作成技術上の問題処理は前項ま ででとりあえず終了である。こうしたファイル技術上の諸問題のつぎ に処理しておくべきものは内容にかかわるものなので、一括処理でき るものばかりではない。用字用語の不統一、送りがなの無原則などを できるだけ整備しておくことだろう。これらの整備についての基本的 な観点を以下に示しておこう。具体的な一括処理は次章で述べる SED による処理にまかせたい。 1-8-1 英数文字の適切な使用のチェック そのなかでまず最初にとりあげるべきものは英数文字に関するもの である。 これまでにも何度も強調してきたことだが、いきなりパソコン画面 上で原稿執筆(入力)する著者がふえてきたことと、横組みの書類が 相対的にふえてきたこともあって、英数文字の入力に関してかなりぞ んざいなひとが多くなってきたことは事実である。それが出版のため の原稿でなければべつにかまわないのだが、いつも無自覚的な入力を しているひとは入稿用の原稿にさいしても、なにが問題になるのかが 理解されていない。 ここで問題になるのは、とりわけ人文系の著者(そして編集者に も)に言えることだが、縦組みのなかでは全角文字はそのまま縦にな り、半角文字は横倒しになるということへの基本的な認識が乏しいこ とである。英数文字の使用においてはこの原則をよく理解しておかね
図1 0
図11
ばならない。日本語の出版物は通常は縦組みで刊行されることが多い ので、この認識がどちらにも欠けていると、たとえば西暦の年数をし めすのに、全角算用数字が縦に 4 つ並んだり、半角算用数字が横に寝 てしまったりすることになる。略号やイニシャルなど全角アルファベ ットで縦組みにすべきものもあり、またあえてそうする場合もあろう が、たいていはそうした基本認識が欠如しているために見苦しい組み になってしまう。西暦年数などは本来は漢数字に直されなければなら ないのである。 【図1 0】 これらの不具合の文字を検索するには、エディタの検索メニューを 使って検索欄に「[0-90-9]+ 年」と入力して一括検索すればいい。こ れは全角または半角数字が 1 つ以上つづいたうしろに「年」という文 字がくる文字列を検索する。 逆に欧文などは原則的に半角使用だが、ときどき全角文字が混じっ ていることがある。縦組みにしてみると、これらの文字だけが縦にな
第1章 これからの編集者は何をするのか
るのですぐわかる。おそらく著者があとで挿入や修正をするときに全 角モードのままで入力してしまったからではないかと思われるが、編 集者は著者のそうしたうっかりミスまで見逃してはならない。 【図11】 これらの文字の検索は、たとえばエディタでなら、検索欄に「[AZa-z0-9][A - Za - z0 - 9]+」 (前半は半角、後半は全角で)と入力 することで検索できる。これは半角英数文字につづいて全角英数文字 が 1 つ以上つづく場合を検索するのである。 1-8-2 世紀・年月日等の表記の統一 すでに『出版のためのテキスト実践技法/執筆篇』でも指摘したこ とだが、同じく数字の表記の問題で年月日や世紀などを数字でしめす さいの不統一はきわめて一般的である。何人かの著者に確認したこと であるが、執筆においてこうした数字表記の問題はあまり意識化され ていないか無原則であるのが普通である。まして前項でも述べたよう な全角・半角算用数字と漢数字の混用など、ますます問題がややこし くなりつつあるのが現状である。 こうした表記の原則は、西暦年号をしめすときをべつにすると、は っきり言って、なにもない。つまり、横組みの本の場合はともかく、 縦組みの本では月日をあらわすのに、算用数字もあれば漢数字もある というぐあいだ。しかも算用数字の場合、2 桁になる場合は全角数字 の縦並びまたは半角 2 分数字の縦組みのどちらか(通常は後者)であ り、漢数字の場合も 2 桁になるといわゆる「トンボの十」を使う方法 と使わずに数字を並べる方法がある。これは世紀をあらわす場合にも 問題になる。 これらの問題にたいする基準は一般的な書法としては存在しない が、ただ、同じ文章のなかですぐ隣り合わせになっていても平気でい る著者が多いのは困りものだ。歴史学者など、実際にこうした数字表
記の割合が異常に高い著者の表記でさえ、原則的でないひとがいるの にはいささか驚かされる。すくなくとも、著者は自分の表記法の原則 をはっきりさせるべきである。そうはいっても編集者がこれらの問題 を意識化し、方法論的にフォローできるようにしておかねばならない ことも言うまでもない。 わたしの原則は、縦組みの本の場合は原則としてすべて漢数字を使 用し、西暦以外の元号付きの年号や月日と世紀はすべて「トンボの 十」を使うことにしている。 平成13年/平成13年/平成一三年→平成十三年 11月22日/11月22日/一一月二二日→十一月二十二日 という具合だ。 これ以外でも期間をあらわす「二十年間」または「二〇年間」と か、年齢をあらわす「五十二歳」または「五二歳」とか、区切りの年 数をあらわす「五十周年」または「五〇周年」といったきわめて?度 の高い表記もある。このあたりの表記法にかんしてもあまり意識的で ないひとが多いが、これらについてもあらかじめ原則を確認しておい て、どちらかにきちんと統一すべきである。またこれらの場合でも算 用数字を使っているひとがいるが、漢数字に直したい。ついでに言っ ておけば、年齢をしめすのに「歳」のかわりに「才」を使っているケ ースもしばしばあるが、これは略字なので「歳」に修正すべきであろ う。これらは SED を使えば一括変換も可能だが、エディタでもある 程度は実現可能だ。 こうしたケースを検索するには、エディタの検索メニューを使って 検索欄に「[0-90-9 一二三四五六七八九〇]+[才歳周年]」と入力すれ ばよい。(*) (*) 以前にも書いたように、数字の「0 - 9」 (全角) 、 「0-9」 (半角)はコードが連続
第1章 これからの編集者は何をするのか
しているが、漢数字は非連続なので「一二三四五六七八九〇」のように列挙しな ければならない。
1-8-3 漢字表記の統一基準を確定する つぎに必要な作業は漢字表記を原則的に統一することである。著者 によって異なるが、漢字の使い分けに厳密なひととそうでないひと と、かなりばらつきが見られるのは事実である。 漢字表記の統一といってもいろいろあるが、最小限いえることは、 漢字とひらがなの混用という日本語の特性を意識化するのは、著者の 問題であると同時に編集者の問題でもあることである。とくに編集者 はその手がける著作の多さからいっても、日本語の乱れをすこしでも 正そうとすることに意識的であってほしい。 漢字の使い方は原則的に著者の好みや意図が反映されたものと考え られるから、それらが書かれた内容と密接に対応しているかぎり、大 きな問題はないと考えておくべきであろう。そうなると編集者がとり あえずチェックすべきなのは、それらが著者の意図するとおりに原則 的かどうか、漢字の使いすぎ(まれに開きすぎ)で読みにくくなって いないかどうか、送りがななどの原則が正しいかどうか、といった問 題である。 ここで編集者がまずおこなうべきことは、著者に漢字使用の原則を あらかじめ確認しておくことである。読みやすさを原則として、まず 第一に、どうしても漢字にする必要のない漢字使用や、あまりに古さ を感じさせる漢字使用をひらがなに開くようにすることがどこまで可 能かを確認することである。ここでの拙文での例を挙げれば、 「予め」 とか「余りに」などがこれにあたる。くわしくは巻末の「編集用日本 語表記統一基準」を参考にしてほしい。(*) つぎに、漢字にしてもしなくてもいいが、すくなくとも同じ本のな
かで、あるいは同じ論文のなかでは統一してほしいという種類の表記 もいろいろある。これも前述の「基準」に多くの実例を挙げてある。 さらには、動詞の送りがななどにも不統一が目につくものが多い。 これは「本則」という基準と「全部送る」という基準が並立するとこ ろに現代日本語の混乱のもとがあるからとも言えるが、歴史的には 「本則」から「全部送る」の方向へゆるやかに推移しているとわたし は見ている。テキストデータを扱うまえに、 「本則」と「全部送る」 のどちらの基準をとるかを著者と編集者が確認しておく必要があるの である。 いずれにせよ、編集者はこれらの表記の基準を著者の意向をうけて 明確にし、それらをあらかじめファイル上で検索・置換してしまうこ とが望ましい。このためには SED による一括処理が効率的だが、と りあえずはエディタの正規表現を使った検索・置換でもいい。とにか くできるところからあらかじめ修正してしまえば、あとの処理が確実 に楽になるのである。 (*) この「基準」は未來社ホームページの「未來社アーカイヴ」ページで最新版を 公開している。
1-8-4 パターン検索・置換と正規表現 用字用語の統一には、そのさまざまな種類のヴァリエーションにた いして検索・確認・置換に対応する膨大な作業が必要となりそうだ が、それをいちいちやっていたのでは時間がいくらあっても足りな い。編集者が印刷所のオペレーターの仕事を代行しているのと同じで はないか、というありきたりな批判に絶好の口実を与えるだけであ る。しかしこれにはいくつかの段階に分かれるが大幅に省力化できる 方法がある。
第1章 これからの編集者は何をするのか
ここでそれを整理しておこう。究極的には SED という UNIX 系プ ログラムを使った高度なテキスト一括処理がベストであることはこれ までにもふれてきた。しかしデータ処理のためには「正規表現」とい うツールを利用すれば、テキストエディタでもかなりの程度までこの 処理が実現可能であることもおりにふれて述べてきた。 「 正規表現」regular expression とはなにか。ひとことで言えば、文 字データをさまざまなパターンによって指定することで幅広い検索を 可能にし、同時に置換処理もできるようにするメタ・システムであ る。つまり特定文字をリテラル(文字通り)に検索・置換する通常の 方法ではなく、文字の種類、文字の位置、文字の連続性などといった 属性をふくめたパターン検索システムと言ってよい。 たとえば、 「未来社」という文字列を「未來社」に変換しようとす る場合、リテラルに検索・置換をおこなうこともできるが、ただ「未 来社会」という文字列があったらこれまで「未來社会」と変換してし まう。もちろんこうした変換をしておいて、あとで通読の段階でこう した誤変換を「未來社会」→「未来社会」に(一括)修正することは 可能だ。 しかしこうしたあらかじめ予測できる文字列を排除して検索・置換 することもできるのが正規表現の強みなのである。この場合、どうす ればいいのか。検索文字列を「未来社 ¥([^ 会]¥)」とし、置換文字列 を「未來社 ¥1」とすれば、こうした問題を解決できるのである。こ れは「未来社」のうしろに「会」以外の文字が連続したときだけ「未 來社」と変換するという指定なのである。 【図1 2】 もっと複雑な例を挙げるとすれば、たとえば全角英数文字をすべて 検索することもできる。この場合は検索文字列に「[A - Za - z0 9]」と入力すれば、この条件にかなうすべての全角英数文字が検索 される。ただし、これらの全角英数文字を半角に一括置換することは
図1 2
図1 3
第1章 これからの編集者は何をするのか
エディタの基本機能だけではまだできない。 【図1 3】 ともあれ、この種の文字パターンによる検索作業をしてくれるのが 正規表現の威力なのである。 1-8-5 SED によるテキスト一括処理の威力 前項でふれたように、テキストデータを処理するためにデータを文 字列のパターンとして検索するための「正規表現」というツールはき わめて高度な検索能力をもっている。Windows 系の秀丸エディタや Macintosh 系の Jedit、YooEdit といったテキストエディタにはこう した機能がサポートされている。しかし一般に文字入力ソフトと見な されているワープロ類にはこれらの機能がまだサポートされていない ものが多い。 ここでもエディタの優秀性が明らかなのだが、これらのエディタで さえも、正規表現を使って検索された文字データを別の文字列に置換 しようとするときに、あるレベル以上の処理はむずかしいという問題 がある。くわしく述べるのはあとになるが、簡単に言えば、文字デー タの検索・置換処理を同時にいくつもおこなうことができないという 制約があったり、検索した文字列を再利用する「タグ付き正規表現」 と呼ばれる機能が完全にサポートされていないゆえである。 しかし、こうした制約を超えて複雑なテキスト処理を同時に、大量 に、高速に、正確にやってしまうプログラムが存在する。それが SED という UNIX プログラムなのである。UNIX にはほかにも awk とか Perl といったプログラミング言語系のより高度なツールがある ことはあるが、こと編集用のテキスト処理にかんしてはこの SED で 十分なのであり、また操作性のうえでもっとも汎用性があるように思 われる。 この SED というプログラムは、早くから存在したものであるから
ある意味できわめてベーシックなプログラムであって、Perl などに くらべると残念ながらはるかに注目度は低いと言わざるをえない。し かし何度も言うように、これはテキスト編集処理のために特化された プログラムとして再利用するかぎりにおいて、すこぶる有用である。 Windows でも Macintosh でも使うことができる点でも有効なツール であると言える。このツールの徹底的な利用法とそのためのスクリプ トについては次章であらためて説明していくことにしよう。
第2章 テキスト一括処理の技法
49
第2章 テキスト一括処理の技法
2-1 SED というプログラム 2-1-1 SED との出会い 編集プロセスにはいるまえにテキスト一括処理をすませてしまうこ との効果については、第1章である程度の理解はしてもらえたと思 う。編集経験の豊富なひとであれば、著者の原稿にはさまざまなパタ ーンがあり、それらは原稿を一定程度読みこんでいくなかでしかわか ってこないことは理解されているだろう。しかしそのなかにも共通す る問題点(または欠点)はいくつもあり、それらはやはりあらかじめ 技術処理をくわえておくにこしたことはないものが多いのである。出 版の原則等にかんしてくわしい著者であればあるほど、こうした問題 点は事前に回避されていることが多いのだが、それでも皆無とは言え ない。したがって、テキスト一括処理というのは一般的な最大公約数 的な処理をおこなうことを意味する場合と、その原稿に固有の問題点 を例外的に処理する場合とに分かれる。ともかく、このテキスト一括 処理という方法は、簡単に言ってしまえば、ある種のフィルター処理 をすることなのであり、このフィルターの精度が高ければ高いほど原 稿の整理の手間が省け、あとの編集作業が楽になるのである。念のた
50
め言っておけば、これは編集作業の手抜きを意味するのではまったく なく、むしろ原稿の通読を中心とする本来の編集作業に集中できるた めの環境を整備するための準備作業なのである。 わたしがこの実践的な方法論にいたりつくためにはさまざまな過程 があった。専門書の出版というのは内容的に言って、著者はもちろん 編集者にもかなりの専門的な知識が要求される。それを読む読者のこ とを想定してみても、そこには専門的な知識や思考、といった内容は もちろん、それをあらわす表現技術や表記法などまでふくめて高度な 水準が要求されているからである。著者のうっかりやミスは編集者が カバーできなければならないことも多い。なんらかの内容上、技術上 のミスがあれば、たとえそれが細かいミスにすぎなくても、著者も編 集者もはずかしい思いをしなければならないし、責任を問われる。そ ういった厳しい条件のなかで専門書出版はおこなわれているのであ る。 こうした専門書出版に長いことかかわってきて、原稿の内容上のチ ェックはゲラにしてしまってからでは遅すぎることがわかっていた。 活版印刷時代はともかく、原稿が著者からデジタルデータで入ってく るようになって、これを印刷所に入稿するまえになんとかすこしでも いいかたちに整備できないかということをいろいろ考えてきた。パソ コンの演算処理能力を引きだすことで、できるだけ多くの技術処理を 一度にできないかということをさんざん考えてみたのである。テキス トエディタのレベルでなんとかできるのではないかと思ったが、なか なかうまくはいかなかった。テキスト編集にかんする基本的な考えか たは絶対に間違っていないという確信があったので、これはなんとし ても自分でコマンド類を考えださなければならないと思い、アップル スクリプトの研究などをしてみたこともある。編集者のなかにはそう いうことを考えているひともいるのではないかと期待もしたが、そう
第2章 テキスト一括処理の技法
51
いうひととは残念ながらめぐりあわなかった。 そうした日々のなかで、あるとき書店のコンピュータ書の棚を眺め ていたときに、ふと胸騒ぎのようなものを覚えた本があった。それが 高橋陽著『sed による編集& DTP[実践]自動処理テクニック』(技 〈編集〉、〈実践〉、 術評論社、1998 年刊) という本との出会いである。 〈自動処理〉というキーワードがいくつも同時に目に飛びこんできた。 自分と同じことを考えているひとがやっぱりいたのだという感動と興 奮がすぐに沸き上がったのは言うまでもない。まさしく目からウロコ が落ちる思いであった。 (以後、この本を〈目からウロコ本〉と呼ぶ ことになる。 )この本には CD-ROM が付録として付いており、本文 のマニュアルとともに貴重なソフトが入手できたのである。 わたしの[出版のためのテキスト実践技法]というアイデアはじつ はこのときから一挙に展望がひらけてきたのである。 『出版のための テキスト実践技法/編集篇』の核心はほとんどこのツールの使用とそ れを機能させるスクリプトの工夫を世に問うことであり、この手法を 専門書の編集者に有効活用してもらうことである。 2-1-2 SED プログラムの導入 それではいよいよこの SED プログラムを導入することにしたい が、そのまえに SED(sed)とはなにかということを言っておくべき であろう。 SED とは Stream EDitor の略であり、パソコン事典などによれば 「UNIX 用の非対話型のエディタで、特に長大なテキスト・ファイル の処理に向く」(*) ということになる。要するに、いちいち画面上で 確認したりしないで、一定の処理命令(コマンドおよびスクリプトと 呼ぶ)に従い、バックグラウンドで膨大なテキスト一括処理をするプ ログラムのことである。パターン処理プログラムとしては、ほかに
52
awk(**)、Perl(Practical Extraction and Report Language)などが あるが、ここではそうした UNIX 系のさまざまな優れたプログラム があり、そのなかのひとつとして SED というものがあることを指摘 しておくにとどめたい。UNIX 系にもいまやリナックス(LINUX) という比較的使いやすい OS のいろんなヴァリエーションがどんどん 出てきているから、たとえばそのなかの Emacs などというテキスト エディタならコマンドライン入力によって SED コマンドなどが実現 できることになっている。つまり、同じテキストエディタと言って も、UNIX 系のそれは Windows や Macintosh のそれよりも明らか に 1 ランク上の機能をもっていることになる。(***) さ て 、 こ う し た 優 れ た プ ロ グ ラ ム で あ っ て も 、 Windows や Macintosh といったオペレーティング・システム(OS)のうえで働 かなければ、どうなるものでもない。それを実現してくれたのが前述 の『sed による編集& DTP[実践]自動処理テクニック』の付録 CD-ROM に収録されたプログラムである。これらは Macintosh 用に 移 植 さ れ た SedMac Interface と い う 名 の ア プ リ ケ ー シ ョ ン 、 Windows/MS-DOS 用につくられたバッチ・プログラム (****) である。 これらはかなり GUI(Graphical User Interface)(*****) の操作性がち がうが、基本的には元のテキストデータをこれらのプログラムのうえ で選択された編集コマンド(スクリプト)に従って処理し、画面また はファイルに出力することである。複雑な検索・置換などの、それも 膨大な数の処理命令を一瞬のうちに実現してしまう「超置換ツール」 が SED なのである。 しかもこれらを実現させる編集コマンド(スクリプト)は、いずれ も 1 行単位のテキストデータの組合せから成っているだけであり、そ のコマンドの仕組み(原理)さえ理解してしまえば、誰にでも比較的 簡単に記述することができるのである。逆に言えば、自分の処理した
第2章 テキスト一括処理の技法
53
い問題やケースに応じて、無限にいろいろなスクリプトを書くことに よって、おもしろいほどさまざまな一括処理ができる。複雑な記述が できれば、ほとんどなんでも可能だと言っても過言ではない。そのた めには「正規表現」 (Regular Expression)およびその発展形である 「タグ付き正規表現」という検索と置換に特有の約束事を理解しなけ ればならない。このツールを的確に使えば、驚くほどの検索・置換処 理が可能となるのであって、いわば頓智を使うようにこのツールの処 理能力を引き出すことができるのである。 SED とは簡単に言えば、通常のテキストエディタでも可能な「正 規表現」による検索・置換機能に、高度な選択置換をおこなえる「タ グ付き正規表現」による検索・置換機能を加えたものなのであり、し かもこれらのコマンドを一度にいくつも走らせることができるプログ ラムなのである。これがさきほど UNIX 系のエディタが「1 ランク上 の機能をもっている」と言ったことの意味である。とにかくふつうで は考えられない「すごい」ことができるのが SED なのであるから、 これを使わない手はないのである。 (*) 岡本茂【監修】大島邦夫+堀本勝久著『最新パソコン用語事典 2000-01’ 年版』 技術評論社、2000年刊。 (**) プログラム開発者 A. V. Aho, P. J. Weinberger, B. W. Kernighan のそれぞれの 頭文字をつないだもの。 (***) このあたりは、研究不足のため詳述できないが、いずれは LINUX の普及とと もに現実的課題となってくるはずのもので、いつかこのあたりのノウハウもこの [出版のためのテキスト実践技法]のうちに取り込んでいけないかと思っている。 (****) 一連のコマンドを連続的に処理させる MS-DOS の定型処理プログラムのこ と。これらの処理をすることを「バッチ処理」 、その処理命令を書いたファイルを 「バッチ・ファイル」と呼ぶ。 (*****) コンピュータをグラフィカルに使いやすいように操作性を重視した画面設計
のことを指す。
54
2-1-3 SED のインストール
つぎに SED のインストールについて説明しておこう。Windows/ MS-DOS 用のものと Macintosh 用のものとでは見た目もまるっきり 異なるし、インストール自体も異なる。しかしインストールそのもの はそれほどむずかしくはない。 Macintosh 用の SED プログラムには SedMac(v. 1. 0. 1)および SedMac Interface(v. 1. 0)という山下巌氏によって UNIX から Macintosh へ移植されたフリーウェアがある。これらのプログラム の圧縮ファイルは SedMac 1.0.1.sit および SedMac Interface 1.0.cpt であり (*)、それぞれ Macintosh 用としては著名な DropStuff(前者) と CompactPro(後者)というソフトで圧縮されている。これを解凍 するには StuffIt Expander がインストールしてあれば、ファイルの ダブルクリックで自動的に解凍して、それぞれのフォルダを作成す る。そのフォルダのなかにある SedMac および SedMac Interface が 目的のプログラムおよびアプリケーションであり、実際はこれらを複 合させて使用する。SedMac は単体でも使用可能だが、SedMac Interface というソフトを使うことで使い勝手を向上させている。(**) Windows/MS-DOS 用の SED プログラムは Macintosh にくらべる といろいろなプログラムがある。十分に検討しているわけではない が、MWSED(森山好文氏作)とか winsed(ミドリノセロー氏作) などがある。ここで利用しようとするのは清水洋平氏作の BU という ツールに依拠して高橋陽氏が作成した SED インストール用プログラ ム。(***) インストール用 MS-DOS バッチファイルをそのままダブル クリックすると、 「sed、その他の実行環境をインストールするバッ チファイル」という説明があって、 「これからインストールを開始し ます。云々」とあるので、なにかのキー(たとえば Enter キー)を 押す。つぎにインストール先のドライブを確認してくるので、たとえ
第2章 テキスト一括処理の技法
55
ば DOS-V マシンでは標準に設定されているハードディスクの C ドラ イブを選択するとそこに「seds」というフォルダを作ってくれる。さ らに進むと、 「sed を簡単に使いこなすためのバッチファイル等をイ ンストールします」というメッセージが出るので、Windows 95 以降 の OS の場合は「1」を押す。それ以前の Windows 3. 1 または MSDOS の場合は「2」 。つづいて起動ドライブを聞いてくるので、通常 は「c」と入力する。そのフォルダのなかの「sed_etc」フォルダの なかにある「ddsed → FILE.bat」または「ddsed → SHOW.bat」と いう MS-DOS バッチファイルがドラッグ&ドロップで処理可能なプ ログラム・ファイルである(ただし Windows95 と 98 で) 。これとは 別にさまざまな命令を実行するためのスクリプトファイル(拡張子が 「.SED」のもの)を作成し、このコマンドを実行させるのである。こ れらについてはあとでくわしく述べるので、とりあえずつぎに設定の 話に移ろう。 (*) これらの圧縮ファイルは未來社ホームページの「未來社アーカイヴ」ページ (http://www.miraisha.co.jp/mirai/archive.html)から、また山下巌氏のホーム ページ(http://www.imasy.or.jp/%7Eiwao/)からもダウンロードすることがで きる。 (**) 山下巌氏のホームページでの説明によれば、 「SedMac Interface はその名が示 すとおり SedMac のためのインターフェイスアプリケーションです。SedMac は UNIX からの移植であるため、面倒なコマンドラインを入力しなければなりませ んが、これを Mac らしいインターフェイスで使えるようにしたものです。具体的 には、ファイルやフォルダーの Drag&Drop、クリップボードの変換、よく使うス クリプトを内蔵させてメニューから選べたりその場で編集すること、などが出来 ます」とある。 (***) 前記した高橋陽著『sed による編集& DTP[実践]自動処理テクニック』 (技
術評論社、1998 年刊)の付録 CD-ROM に収録されている。
56
2-1-4 SedMac の設定と操作 前項で述べたように、Macintosh と Windows ではユーザインタフ ェ ー ス が だ い ぶ ち が う 。 Macintosh 用 の SedMac は い か に も Macintosh らしく、操作がわかりやすくできている。とりあえずこ ちらのほうから説明していこう。 SedMac 1.0.1.sit および SedMac Interface 1.0.cpt を解凍すると、 それぞれ SedMac 1. 0. 1 および SedMac Interface 1. 0 というフォル ダができる。本体の SedMac は UNIX 系のコマンドライン入力によ るファイルとスクリプトの指定によって作動するプログラムで、 AppleScript から SedMac を実行するスクリプトを指定し、対象フ ァイルをドロップする仕掛けになっているようだが、マック派のひと にとってこういうわかりにくい作業をわかりやすくするために山下巌 氏によってつくられたのが SedMac Interface というプログラムであ る。 このプログラムをダブルクリックすると、sed というアイコンのつ いた画面の左側に「Input」 「Output」 「Script」というボタンが並ん ででてくる。 【図14】これはそれぞれ SED を使って一括処理するた めの対象データ、その出力データ、命令を実行するためのスクリプト を指定するためのボタンである。 ま ず 「 Input 」 ボ タ ン を ク リ ッ ク す る と 、 Null, Keyboard, Clipboard, Files という 4 つの選択肢が現われる。通常は「Files」を 選んでおいて間違いはない。 「Files」の右側にあるファイル・アイコ ンをクリックすると、 「Input Files」ダイアログが現われる。 【図15】 右側の「Add」ボタンをクリックして出てくるディレクトリのなかか らファイルを指定する。複数のファイル指定もできる。ファイル指定 を解除するときはファイルを選択して「Remove」ボタンを押すだけ でいい。または「Input」ボタンのさらに右側にある「ごみ箱」アイ
第2章 テキスト一括処理の技法
57
図1 4
図1 5
コンをクリックすると、これまで指定されていた対象ファイルがすべ て指定を解除される。対象ファイルが決まったら、 「Done」ボタンを クリックするか、Enter キーを押す。これで一括処理するためのファ イル指定が終了するのである。なお、この方法は、処理対象ファイル を SedMac Interface のアイコンにドラッグ&ドロップすることによ っても実行できる。このほうが簡単なので、デスクトップまたはラン
58
チャーに SedMac Interface のエイリアスをつくっておくときわめて 便利である。 つ ぎ に 「 Output 」 ボ タ ン を ク リ ッ ク す る と 、 Null, Window, Clipboard, Files (Replace), Files (New), File, File (Append) の 7 種類 が選択肢として現われるが、通常は「Files (New)」を選択するのが 適切。ボタンの横に「.new」という拡張子(のようなもの)が表示 される。これだと元の処理対象ファイルを残したまま、 「*.txt.new」 というファイルが処理対象ファイルと同じフォルダに新たに出力され るので、なにかトラブルがあっても元のファイルが生きているから心 配はない。もし間違う危険がなければ「Files (Replace)」を選択して もかまわない。また新しいファイル名をつける場合には「File」を選 択し、右側に現われるファイル・アイコンをクリックしてファイル名 とフォルダを確定する。 「File (Append)」のときも同様だが、処理結 果を既存のファイルに追加するかたちをとる。いずれを使うにせよ、 この処理されたファイルが新しい仕事用ファイルになるのである。 さらに「Script」ボタンをクリックすると、Null, File, One-Liner の 3 つの選択肢が現われる。これもふつうは「File」を選ぶ。すると そのボタンの右側に命令を実行するためのスクリプトがひとつ現われ る。最後にかならず「.SED」の拡張子(のようなもの)が付いてい るスクリプトファイルである。これはファイル名の横にプルダウンメ ニューが付いているので、それをクリックすることによってスクリプ トファイルを選択することができる(そのためにはスクリプトファイ ルを事前に作成しておく必要がある) 。さらにその右側のファイル・ アイコンやフォルダ・アイコンをクリックしても SedMac Interface フォルダ内の「Scripts」フォルダの中身またはそのフォルダ自体が 開くので、そこから必要なスクリプトファイルを選ぶことができる。 【図16】また鉛筆アイコンをクリックすると選ばれているスクリプト
第2章 テキスト一括処理の技法
59
図1 6
の内容を示すテキストファイルが開かれるし、Nの字の見えるファイ ル・アイコンをクリックすると、新しいスクリプトを名前を付けて保 存するダイアログのあとに新規入力画面が現われる。ここに新しいス クリプトの記述をすることもできるのである。ちなみにここで使われ るテキストエディタは YooEdit がデフォルト指定されている。そこ にもこのプログラムがつくられた1994年という時代を感じさせられる
60
ものがある。逆に言えば、この時代から SED は強力なツールとして 存在したとも言えるのである。 さて、こうして処理対象ファイル、その出力ファイル(形式) 、命 令を実行するスクリプトが選ばれたら、SedMac Interface 画面右上 の「Run」ボタンを押す。すると、対象ファイルと同じフォルダのす ぐ下に同じファイル名に「.new」の付いたファイルが現われる。こ れが処理結果ファイルである。たとえば「第一章 .txt」というファイ ルを一括処理すると「第一章 .txt.new」というファイルができるので ある。あとはこのファイルを適当なテキストエディタで開けば、処理 された結果がひとつひとつ確認できる。スクリプトに誤りがなければ すべてのコマンドが実行されていることが確認できるのである。 エディタで 1 対 1 対応で検索・置換処理している方法の約200倍、 タグ付き正規表現を駆使すればおそらく1000倍以上の処理を同時に、 しかも瞬時におこなってしまうのである。 「sed は、指定されたファ イルをスクリプトに記述されたコマンドに従って編集し、標準出力に コピーします。sed の行う動作はこれだけですが、たったこれだけの 作業で実にいろいろな編集を手軽に行えるというのが sed の強みで す」と SedMac 1. 0. 1 のマニュアルに書いてあるのはこの意味なので ある。 2-1-5 Windows/MS-DOS 用の SED プログラムの設定と操作 「 2-1-3」の SED のインストールのところで述べたように、Windows 上で動く SED ツールはいろいろあるが、Macintosh 用の SedMac の ような洗練された使い勝手のいいものはない。ここではまず前述の SED プログラム用バッチファイルによってインストールされた SED を利用するためのバッチファイルの使い方を説明しよう。と言っても その使い方はきわめて簡単。
第2章 テキスト一括処理の技法
61
図1 7
インストールのさいに起動ドライブの C ドライブ(機種によって は A ドライブ)に作成される「SEDS」フォルダに、処理命令を書い たスクリプトファイル(拡張子が「*.SED」となっているもの)と処 理対象ファイル( 「*.txt」 )を置いておく。さらに「SEDS」フォルダ の 下 位 フ ォ ル ダ 「 sed_etc 」 フ ォ ル ダ の な か に あ る 「 ddsed → FILE.bat」または「ddsed → SHOW.bat」という MS-DOS バッチフ ァイルのショートカットを「SEDS」フォルダに作成する。(*)【図17】 「 ddsed → FILE.bat」はファイルに出力するための、また「ddsed → SHOW.bat」は画面に出力するためのバッチファイルであり、こ れらはいずれも処理対象ファイルと処理命令コマンドを記述したスク リプトファイルを同時にそこへドラッグ&ドロップすることで SED
62
の処理を実現する。とりわけ「ddsed → FILE.bat」は処理対象ファ イルをそのままに処理ズミの新しいファイル( 「*.txt.new」 )を作成す る。たとえば「第一章 .txt」を処理すると「第一章 .txt.new」という ファイルを生成する。これは最後の拡張子が「.new」なのでダブル クリックするだけではエディタで開けないが、中身はテキストファイ ルだから、 「送る」SendTo の機能を使って (**) テキストエディタで開 くことができる。 言ってみれば、この「*.txt.new」で表示されるファイルが処理命令 スクリプトが実行された使用後のファイルである。使用前のファイル と見比べてみれば、内容が一挙に変更されていることが歴然とわかる だろう。内容を確認し、問題がなければ使用前のファイルを削除し、 使用後のファイルの最後の拡張子の「.new」をとるかたちでファイ ル名を変更すればよい。あるいは別名保存によって使用前のファイル をそのままにしておくことももちろん可能である。 (*)「ddsed → FILE.bat」または「ddsed → SHOW.bat」の二つのファイルをマウ スで選択し、マウスの右側を押しながらこれらを「SEDS」フォルダまでドラッグ してから放し「ショートカットをここに作成」を選択することでショートカット ファイルを作成できる。 (**)「送る」はファイルを選択して右クリックすると開くプルダウンメニューのな かにある機能で、Windows の SendTo フォルダに各種アプリケーションやフォル ダ、ファイルなどのショートカットを入れておくことで、このプルダウンメニュ ーのなかから選択し実行することができる便利な機能。秀丸などのエディタのシ ョートカットを入れておくことでテキストファイルその他のファイルを簡単に開 くことができる。秀丸はインストール時にデフォルトでショートカットが「送る」 に入るように設定されている。
2-1-6 MS-DOS プロンプトを活用しよう この高橋陽氏が作成された Windows 用 SED バッチファイル以外
第2章 テキスト一括処理の技法
63
に も い ろ い ろ な SED プ ロ グ ラ ム や 使 い 方 が あ る 。 た と え ば 「Vector」や「窓の杜」 「nifty.com」といったサイトで SED を検索す ると、じつに多くの SED 関連のツールやファイルが見つかる。これ ら の Windows 用 に 移 植 さ れ た SED ツ ー ル の う ち で 前 述 し た Macintosh 用の SedMac のような使い勝手のいいものはほとんどな いのが実情だ。その多くは Windows 3.1 用であったり、ほかのプロ グラムがないと動かないといった問題をかかえている。そのなかでは 森山好文氏作の MWSED(v. 1. 37)が使えそうだ。これに Windows 用の COMWIN32 という UNIX の機能を MS-DOS プロンプトに追加 したようなすぐれた端末エミュレータのうえで動く SEDWIN といっ たツールもある。これらの詳細についてはそれぞれの「ReadMe」フ ァイルあるいはヘルプファイルを読んでもらいたいが、SED の使い 方には微妙な差異があるので注意が必要である。 こ の COMWIN32(*) と い う エ ミ ュ レ ー シ ョ ン ・ ツ ー ル は Command Manager for Window System の略で前寺正彦氏作のシェ アウェア。前寺氏の説明によると、 「Windows 環境に欠けていると 思われるキャラクタ指向のシェルプログラム」で「見た目は DOS プ ロンプトに似ていますが、制約の多い DOS プロンプトと違い、 Windows プログラムであり」 、環境向上のための機能をさまざまに 搭載している。ちょっと挙げてみると、 「DOS, UNIX ライクな内部 コマンドの使用」 、 「アプリケーションとの関連付け起動、エイリアス 機能で起動操作を短縮」 、 「ラインエディット、ヒストリ機能、ファイ ル名補完機能」 、 「ドラッグ&ドロップサーバー機能、選択文字列起動 機能」 、 「ファンクションキーランチャー、簡易エディタ機能」 、 「フォ ント、背景色を設定、3-D ダイアログ、ツールバーの使用」 、 「キー割 り当ての変更が可能」 、 「過去の出力を参照できる」 、 「スタートアップ 機能、起動時オプションで環境整備」 、 「リダイレクト、パイプ機能で
64
図1 8
柔軟なテキスト処理」 、 「ウィルスの自己診断機能」などなど。こうし て書き写しているだけでも楽しくなってくるような高機能さだが、 SED などをこの上で操作してみるとかなり快適に作動するだろう。 【図18】Windows では MS-DOS プロンプト以外ではサポートされて いない「標準入出力」(**) をサポートしているところがこのツールの エライところなのである。SED をはじめ、awk, Perl といったプログ ラミング系言語を扱うにはこの標準入出力が可能でないとダメなの だ。興味のあるひとはぜひ導入してみてほしい。 この方法のほかに Windows に標準装備されている MS-DOS プロ ンプトという Windows 上で動くエミュレーション・ツールを使うと
第2章 テキスト一括処理の技法
65
いう方法が案外いいかもしれない。これだとスクリプトファイル名、 対象処理ファイル名、処理出力ファイル名をコマンドライン入力する ことによってダイレクトに SED コマンドを実行することもできる。 慣れればこの方が簡単だとも言われるが、心理的な抵抗を克服するこ とが必要だ。ただし、ファイルのドラッグ&ドロップによるファイル 名入力も可能なので、これがもっとも手っ取り早い方法かもしれな い。同じように、Macintosh の SedMac でもコマンドライン入力に よる操作は可能だが、マック派のひとにはいっそう馴染みがないだろ うし、SedMac のインターフェースがよくできているのでその必要は なさそうだ。 MS-DOS プロンプトを利用して SED を動かす手順を説明しておこ う。まず「スタートメニュー」∼「プログラム」∼ MS-DOS プロン プトを選択して起動する。?繁に使うようになるなら、スタートメニ ューに MS-DOS プロンプトのショートカットを入れておくと便利だ。 「C:¥WINDOWS>」というプロンプト画面が現われるので、たとえ ばつぎのように入力またはファイルをドラッグ&ドロップする。 C:¥WINDOWS>sed_-f_ スクリプトファイル名 _ 処理対象ファ イル名 _>_ 出力ファイル名 .new(_ は半角スペースを示す) 【図 1 9】 これは SED を f オプション付きで起動し、順番にスクリプトファ イル名、処理対象ファイル名を半角スペースあきで入力し、最後にも しファイルに出力する必要があれば(たいがいは必要だが)リダイレ クト記号「>」(***) をはさんで出力ファイル名を入力し、たとえば拡 張子として「.new」を最後に付けるという意味の書式である。DOS プロンプトでのコマンドライン入力によるテキスト処理は基本的には
66
図1 9
この書式であると言ってもよい。SED のオプション等の説明は後述 する。 さて MS-DOS プロンプトを使って SED の処理をおこなうためには いくつかの基本問題と事前に処理しておかなければならない問題があ る。それらについて以下に簡単にふれておこう。 まずなによりも 1 SED ツールそのものを入手しなければならな い。前述したようにさまざまな SED ツールがあるが、アプリケーシ ョンとして加工されているものはともかく、入手しやすいもので使え そうなのは GNU プロジェクトのオリジナル版 SED に日本語マルチ バイト文字対応版として谷本孝浩氏によって手が加えられたマルチバ イト文字対応版 GNU sed あたりであろう。Vector のソフトライブラ リ で MS-DOS ∼ ユ ー テ ィ リ テ ィ ∼ テ キ ス ト フ ァ イ ル 用 ∼ sed ( http://www.vector.co.jp/vpack/filearea/dos/util/text/sed/index. html)でファイル検索し、 「sed win32 1.18+mb1.03」という名前で
第2章 テキスト一括処理の技法
67
登録されているファイルをダウンロードする。ダウンロード・ファイ ル「sedm103.lzh」を解凍して出てくる「sed.exe」が目的のアプリケ ーションである。あるいは同じ URL からミドリノセロー氏が日本語 対応に移植したものに LOGOS 氏が手を加えた「Sed LOGOS 版 2.42」でもいい。ダウンロード・ファイル「sed242.lzh」を解凍して 出てくる「sed.exe」でも同じである。これらの「sed.exe」をふくむ フォルダを後述する理由で、 「Program Files」の下でなく、できれ ば起動ドライブ(ふつうは C ドライブ)の直下に置いておくことが 望ましい。 つぎにするべきことは、この 2 SED が起動するようにするため にパス(path)を設定することである。これにはすこし危険がとも なうが、余計なことをしなければむずかしいことはない。起動ドライ ブをエクスプローラで開き、 「autoexec.bat」という MS-DOS バッチ ファイルを見つけたら (****)、ファイルの上で右クリック∼「送る」 を使うなどしてエディタで開く。 【図20】この中身はテキストファイ ルだから簡単に開けるのである。このうちの「PATH=」と記述され ている部分の最後にたとえば「;C:¥SEDS」と入力し、そのまま上書 き 保 存 す る だ け で あ る 。 Cの 前 に 「 ; 」 を 忘 れ な い こ と 。 ま た 「¥SEDS」の部分は指定フォルダ名を間違えないこと。あとは MSDOS プロンプトで「C:¥WINDOWS>sed」と入力するだけで OS が PATH に登録されたプログラムを検索し実行してくれるのである。 【図21】 あとは 3 MS-DOS の制約を理解することである。そのひとつが MS-DOS ではいわゆるロングファイルネームを使えず、 「8. 3 形式」 といわれるファイル名 8 文字以内 + 拡張子 3 文字以内でしかファイ ル名が使えないこと、つぎにコマンド指定が127文字以内でしかでき ないこと、おもにこの 2 点の不便さがつきまとうことである。これら
68
図2 0
はすべて 1 バイト文字、つまり英数文字を基準にしているから、日本 語の 2 文字バイトをファイル名に使おうとすると 4 文字しか使えない ことになるし、それ以上の長さのファイル名を生かそうとすると(た とえばドラッグ&ドロップで)最初の 3 文字しか生きず、残りの 2 文 字は「~1」とか「~2」のように変えられてしまう。とにかくこの不便 さに慣れる必要があることと、それに対応したファイル名をあらかじ め考える習慣を身に付ける必要が出てくるということになる。同じこ とがコマンド指定にも言える。ファイル名はフルパス表示が基本なの で、スクリプトファイル、処理対象ファイル、出力ファイルのすべて をフルパス表示することになると、ディレクトリ(フォルダ)のあま り深い層にこれらのファイルを置くことはできないのである。この前 の 1 の記述で「できれば起動ドライブ(ふつうはCドライブ)の直下 に置いておくことが望ましい」と書いたのはそうした理由によるので
第2章 テキスト一括処理の技法
69
図2 1
ある。 以上の原則を理解していれば、MS-DOS プロンプトのコマンドラ イン入力という方法による SED の処理もとくにむずかしいものでは なくなる。あとはスクリプトファイルを作るだけである。これが 「sed」のうしろに「-f」を加えて(f オプション) 、そのつぎにスクリ プトファイルを入力指定することによってコマンドライン入力を短縮 することができる前提になる。なお、簡単なスクリプトならコマンド ライン入力でも実現できる。 「C:¥WINDOWS>sed_-f_ スクリプトフ ァイル名」の代わりに「C:¥WINDOWS>sed_-e_」としてスクリプト をダイレクトに入力するだけでいい。ただし、トータルで127文字ま でということを忘れてはならない。 (*)COMWIN32 は http://www.vector.co.jp/authors/VA002891/ で入手できる。 (**)「標準入出力」 (standard output, standard input)とは SED などのコマンドで 処理されたデータを画面またはファイルに出力したり、キーボードからの指令で 入力を受け付ける機能をさす。 (***) ファイルの入出力先の変更あるいは指定をする記号で出力先の場合は「>」 、入
70
力元を示す場合は「<」となる。SED でのデフォルト出力先はディスプレイにな っているので、ファイルを出力先にするときにはリダイレクション(redirection= 方向転換)をおこなうことが必要になる。 (****) デフォルト設定ではこうしたシステムに関する重要なファイルは見えないよ うに設定されている。これを見えるようにするには、 「スタートメニュー」∼「設 定」∼「フォルダオプション」を開き、 「表示」タブのなかの「表示されないファ イル」の「すべてのファイルを表示する」のラジオボックスをクリックすると、 見えるようになる。なお「autoexec.bat」は Windows が起動するときに必要な 5 つのファイルのひとつ。
2-2 SED スクリプトの多様性と汎用性 さて、そろそろ具体的な SED スクリプトの紹介と説明をしていく ことにしたい。このスクリプトは実体はまったくのテキストファイル なので、Macintosh でも Windows でも共通に使える。ただし、スク リプトファイルの最後は「.SED」の形式が普通なので (*)、Windows だと拡張子がちがうからとりあえずテキストファイルとは認識せず、 ウィンドウズアイコンの付いた書類形式をとるが、秀丸などのエディ タで問題なく開ける。 SED のスクリプトには簡単なものからかなり複雑なもの、長大な ものまである。もっとも、長大とは言っても、SED のファイルでの コマンド数には制限がある。MS-DOS で動くためには、スクリプト ファイル全体で容量が 64KB 以内、しかも 1 行のコマンド(処理命 令)が128文字以内(つまり256バイト以内)という原則があるという 制約によるからである。したがってコマンド数は64KB(1KB1024バ イト× 64=65536バイト) ÷256バイト=256、つまり250ぐらいまでが ひとつのスクリプトファイルのコマンド数の上限ということになる。
第2章 テキスト一括処理の技法
71
それ以上のコマンド数を要するスクリプトが必要なら、2 つ以上にフ ァイルを分割して使用することになる。もっともタグ付き正規表現を 用いることによって、逐語的な検索・置換にくらべると、1 行のコマ ンドでも100通り以上の検索・置換処理命令をふくむことができるの で、実質的には250行のスクリプトでその数倍の処理を実行すること ができるのである。 SED のスクリプトは原理的にはさほどむずかしくないから、理解 さえしてしまえば必要に応じていくらでも応用したり、新たに作り出 すこともできるようになる。だが、なんでも作ってみればいいという ものでもない。実践的な見地から適用可能なもの、意味のあるものは どんなものかという点でいろいろな観点からそれぞれのスクリプトを 吟味する必要があるだろう。どんなに凝ったものでも、実用的な効果 に乏しければあまり必要とは言えないからである。また本のジャンル によっては思いがけないスクリプトの作成が必要になったり、専門的 なスクリプトを開発する必要が生じる。ここで紹介するのは、人文系 専門書を中心としたものであるから、ある面では一般的であるが、す べてのジャンルにぴったり適合するかは保証できないことをあらかじ めことわっておきたい。 SED を用いてテキスト一括処理をしようとするときに、おおきく 分けて 2 種類の処理のレベルがあることは、 「2-1-3 テキスト一括処 理の対象にはどんなものがあるか」で述べた。つまり原稿ファイルの 技術処理上の問題と、原稿の内容上の問題である。ここではまず原稿 ファイルの技術処理からはじめて、原稿の内容チェックにまで SED をどう使うか、という方向で話を進めることにしたい。したがって単 純なスクリプトから順に紹介と説明をしていくほうがわかりやすいだ ろうが、なかにはかなり高度なスクリプトでないと処理を実現できな いものもある。ひとつのスクリプトファイルのなかに単純な処理コマ
72
ンドと複雑かつ高度な処理コマンドを同居させているものもある。 まず最初にするべきことは、用途に応じて機能するいろいろなスク リプトファイルを用意しておくことである。なにも最初から高度なス クリプトを作ろうとしなくても、いずれ必要に応じてそれらを統合し たり、あるいは分割したりして精度を高めていくようにすればよい。 だから、1 行のコマンドだけでひとつのスクリプトファイルが構成さ れていることもあっていいのである。これらをできるだけ作ってみる ことである。 編集のための実践的な方法としては、特定の原稿(書物)のための フィルタとしてこれらのさまざまなスクリプトファイルを必要に応じ て適用することになる。内容の概要がわかっている場合とか、ファイ ルの特徴が予測できるときには、これらのスクリプトファイルを組み 合わせて合成したひとつの専用スクリプトファイルを作成し、このフ ィルタによって原稿を一気に処理してしまうことができる。これが一 番はやい方法であるが、慣れるまでは段階をふんでいくのも手堅いか もしれない。とにかく驚くほどの高速処理ができるのだから、一気に 処理しなくても、パターン処理としていくつかのスクリプトを適用し てみるのも悪くはない。 まず、SED への理解を深めるために数ある SED コマンドのなかで もここで最初に紹介しておきたいのは、y コマンドと s コマンドとい う検索・置換コマンドである。 [編集のためのテキスト実践技法]に おいてはこの 2 つのコマンドを駆使することができれば、たいていの 仕事は片づいてしまう。あとは編集者の本来の仕事に全力投球すれば いいだけである。 y コマンドというのは 1 文字ずつの単純な検索・置換を一度にやっ てしまうコマンドである。これにはスペースも含む各種記号類も対象 とすることができる。
第2章 テキスト一括処理の技法
73
s コマンドはもうすこし複雑な検索・置換コマンドで、正規表現あ るいはタグ付き正規表現といったルールを駆使してパターン検索と選 択置換といった高度な検索と置換を一挙に実現する。スクリプトの書 き方ひとつでおもしろいようにマッチしたり、エラーになったりす る。このおもしろさはいちど経験したらやめられない種類のものだ が、編集作業のプロセスのなかで無駄の多い部分をここで一挙に解決 してしまうことの実践的価値をなによりも指摘しておくべきだろう。 (*)MWSED のように拡張子が「.scr」という SED ツールもあるので、この場合は ファイル名の最後を書き替える必要がある。
2-3 SED スクリプトの実例 2-3-1 y コマンドについて 前節で述べたように、数ある SED コマンドのなかでもっともシン プルなのが、1 文字ずつの単純な検索・置換コマンドの y コマンドで ある。この y コマンドの特徴は、特定の 1 文字(全角・半角スペー スや記号類もふくむ)を別の 1 文字に置き換えるものであるが、それ をいくつも同時に一気に実行してしまうものだということである。単 語単位でなく、1 文字単位ということに注意。きわめて単純だが、原 稿を整理するときには重宝するコマンドである。 y コマンドのスクリプト表記はつぎのようにするのが基本だ。注意 してほしいのは「y」も「/」もいずれも半角だということ、スクリ プトの最後にはかならず改行マークを入力することである。 y/(変換対象文字)/(変換実行文字)/
74
いくつかのスクリプトのモデルを以下に示しておこう。 ●スクリプト実例 1 「# 全角数字を半角数字に変換する y/0123456789/0123456789/」 これは全角算用数字を半角の算用数字に置き換えるコマンドであ る。文章中に全角算用数字が数多く入力されているときなどに使う。 ただし、これだけでは全角数字が必要なところまですべて半角数字に 置換してしまうので、文章の内容によっては注意が必要である。特定 のケースには置換しないよう、別のスクリプトを考案する必要がある かもしれない。ただ、わたしの経験では、こうした全角算用数字が平 気で入力されている場合、著者がそれほど厳密な使い分けをしている ことはまずないので、必要なところだけ、あとで通読するときに確認 し、もとに戻せばすむのではないかと思う。 このスクリプトで注意してほしいのは、 「y/」のあとに出てくる全 角の0から9までの数字が 2 番目と 3 番目の「/」に囲まれた半角の 0 から 9 までと並んでいる順番通りに対応していることである。すな わち、y コマンドでは「/」と「/」に挟まれた文字の位置が重要なの である。1 番目の全角の「0」は半角の「0」と、2 番目の全角の 「1」は半角の「1」と対応する。この原則さえきっちり守れば、1 文 字単位の文字の検索・置換は y コマンドで簡単に実現するのである。 なお、y コマンド行の前行に半角の「#」をつけた記述文があるが、 これはコマンドの内容(意図)をわかりやすく説明するためのコメン ト行で、文の前に「#」があることによって、それが SED によって コマンドとは解釈されないようになっている。 同じような例としてもうひとつ。
75
第2章 テキスト一括処理の技法
●スクリプト実例 2 「# 全角アルファベットを半角にする y/ABCDEFGHIJKLMNOPQRSTUVWXYZa
bcdefghijklmnopqrstuvwxyz/ ABCD EFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz/」 これも同様に、全角アルファベット(大文字と小文字)を半角にす るものである。縦組みの本にする予定の原稿のなかで全角英字を用い るケースはきわめてすくない。NHKとかJALといった会社や組織 の略号を示す場合、M・ウェーバーとかS・マラルメといったイニシ ャルを示す場合ぐらいである。これらも使用?度の多い原稿の場合は 最初から使わないか、別にそれらを全角にもどすスクリプトを考案す ればいい。 これ以外でよくあるのは記号類の使用の不統一であるが、これらは とりあえず全角に統一するほうがオーソドックスだ。もっとも例外も 多いので、これには注意が必要である。危ない文字セットは削除する ことでこの問題は回避できるが、別のスクリプトを考案する必要が生 じるだろう。 ●スクリプト実例 3 「# 記号類は全角に y/?!/ ?! / y/(){}[]<> 「」 /() {} [] 〈〉 「」/ y/+-=#$%&¥*@/ +−=#$%&¥*@ / y/。、ー・/。、ー・/」 これは記号の種類ごとに書き分けただけのもので、1 行にまとめる こともできる。また、このなかでもたとえば欧文中の「( ) [ ]」は半角
76
に戻す必要があるから、別のスクリプトが必要である(これは s コマ ンドの項のときに説明する) 。 ●スクリプト実例 4 「# 句読点を,.から、。に戻す y/,./、。/」 欧文句読点モードを設定している原稿を処理するときに使うスクリ プトである。外国文学や外国思想の専門家などによくあるタイプ。 ●スクリプト実例 5 「# 全角マイナスを長音記号に y/−/ー/」 これは初心者がよくやるミスの代表例。音引き「ー」にするところ をマイナス記号「−」を入力している例。上述のスクリプト実例 3 で 半角マイナス「-」を全角「−」にすでに変換しているので、これら は組み合わせて使うとよい。音引き記号を使うところで全角、半角の 「− -」を混在させているひともけっこう多いので、これをひとつのス クリプトで実現するためには s/[− -]/ー/g とするのが正しい処理である。これについては s コマンドのさいに説 明するので、ここではこれ以上触れないことにする。 ともあれ、y コマンドにかんしてはこれぐらいでとりあえず十分で ある。必要なひとは自分でどんどん考案されることをおすすめする。 ただ、後述の s コマンドで、より高度な検索・置換の処理ができるの で、あまり深入りしなくてもいいかもしれない。
第2章 テキスト一括処理の技法
77
2-3-2 簡単な s コマンドもある つぎに SED のより高度なコマンドとしての s コマンドについて述 べていこう。これにはさまざまなパターンがあるし、簡単なスクリプ トから高度で複雑なスクリプトまである。実用目的に応じて、さまざ まなスクリプトが考えられるが、それらが機能するためには「正規表 現」と呼ばれるメタ次元の検索ツールが必要である。さまざまな文字 列のパターンを特定の記号の指示によって抽出するこの方法はエディ タなどではほとんど装備されているが、SED ほどに体系的な処理を 実現することはむずかしい。なかには Macintosh 用の Jedit のよう に複合一括置換マクロなどを装備して、SED にちかい検索・置換処 理を可能にしているものもある。(*) s コマンドは、前項の y コマンドがすべて 1 対 1 対応の文字記号の 検索・置換だったのとちがって、さまざまな文字列の検索と置換をお こなうコマンドである。検索対象をどのように指定するかによって、 簡単にも複雑にもできるのであるが、その基本形は s/検索パターン文字列/置換文字列/g という形式をとる。さいごの半角の「g」は全文を対象にするという 意味のフラグである。原則的にこれは付けておいたほうがいい。 さて、s コマンドでも簡単なものはひとつの文字列セットどうしの 検索・置換である。この場合にはとくに正規表現は必要ない。いくつ かの実例をあげてみよう。 ●スクリプト実例 6 「 # 特殊表記 s/未来社/未來社/g
78
s/文芸春秋/文藝春秋/g s/丸山真男/丸山眞男/g」 これは見てわかるとおり、固有名詞の不適切な表記を正式のものに 検索・置換する例である。これに類するものはいくらでもあるから、 必要なだけ増補してもらえばよい。また、それ自体はかならずしも不 適切ではないが、ある用語を統一したいときなどに使うこともでき る。たとえば s/コンピューター/コンピュータ/g(最後の音引きをとる) s/マッキントッシュ/Macintosh/g s/テキスト技法/出版のためのテキスト実践技法/g といった具合である。いずれも s コマンドのひとつひとつは 1 行ずつ で最後に改行マークで区切ってさえあれば、いくらでも並列すること ができる(ただし前述したように、コマンド行は上限 250 行ぐらい で 1 ファイルとせざるをえないが) 。たとえば独自の「固有名詞統一 .SED」などを作ってみるといい。 (*) Jedit4 では JMultiReplace という補助プログラム(フリーウェア)を Jedit と 同じフォルダに収めることによって、この「複合一括置換」という追加機能を実 現している。これには後述するタグ付き正規表現も使えるので、かなり高度な処 理ができる。未來社ホームページの「未來社アーカイヴ」ページからも株式会社 ま つ も と の ホ ー ム ペ ー ジ ( http://www.matsumoto.co.jp/product/JMulti Replace/index.html/)からもダウンロードできる。
2-3-3 漢字表記の統一をとる(1) 前項の固有名詞や用語の統一と同様に、たとえば異様に漢字を使い すぎる著者の原稿にたいして、ある程度現代ふうの表記にしたいとい
第2章 テキスト一括処理の技法
79
うような場合がある。著者の了解を得たうえで、こういう表記を一括 変換したいという場合。これは複雑なパターン処理もできるが、とり あえず正規表現を使わないでもできる簡単な s コマンドの例を挙げて みよう。 ●スクリプト実例 7 「 # 漢字を開く s/敢えて/あえて/g s/辺り/あたり★/g s/余り/あまり★/g s/予め/あらかじめ/g s/凡ゆる/あらゆる/g s/如何に/いかに/g s/幾ら/いくら/g s/些か/いささか/g s/何れ/いずれ/g s/一応/いちおう/g s/一向/いっこう/g s/一緒/いっしょ/g s/一斉/いっせい★/g s/一層/いっそう/g s/一旦/いったん/g s/色々/いろいろ/g s/往々/おうおう/g s/大いに/おおいに/g s/大袈裟/大げさ/g s/概ね/おおむね/g
80
s/恐らく/おそらく/g s/各々/おのおの/g s/及び/および★/g s/凡そ/およそ★/g s/却って/かえって/g s/拘らず/かかわらず★/g s/且つ/かつ/g s/嘗て/かつて/g s/辛うじて/かろうじて/g s/極めて/きわめて/g s/極く/ごく/g s/殊に/ことに/g s/早速/さっそく/g s/様々/さまざま/g s/更に/さらに★/g s/然し/しかし/g s/然るべき/しかるべき/g s/?りに/しきりに/g s/従って/したがって★/g s/々/しばしば/g s/暫く/しばらく/g s/随分/ずいぶん/g s/直ぐ/すぐ/g s/其れ/それ/g s/大体/だいたい★/g s/大抵/たいてい/g s/沢山/たくさん/g
第2章 テキスト一括処理の技法
s/只/ただ/g s/但し/ただし/g s/直ちに/ただちに/g s/忽ち/たちまち/g s/度々/たびたび/g s/多分/たぶん★/g s/段々/だんだん/g s/因みに/ちなみに/g s/丁度/ちょうど/g s/一寸/ちょっと★/g s/遂に/ついに/g s/都度/つど/g s/手掛かり/手がかり/g s/到底/とうてい/g s/何処/どこ/g s/途端/とたん/g s/共に/ともに★/g s/乃至/ないし/g s/尚更/なおさら/g s/乍ら/ながら/g s/就中/なかんずく/g s/並びに/ならびに/g s/果たして/はたして★/g s/遙か/はるか★/g s/普段/ふだん/g s/殆ど/ほとんど/g s/誠に/まことに★/g
81
82
s/先ず/まず/g s/益々/ますます/g s/又/また★/g s/迄/まで/g s/て見る/てみる/g s/寧ろ/むしろ/g s/無闇/むやみ/g s/滅多に/めったに/g s/若しくは/もしくは/g s/勿論/もちろん/g s/以って/もって/g s/尤も/もっとも/g s/専ら/もっぱら/g s/元々/もともと/g s/最早/もはや/g s/諸々/もろもろ/g s/漸く/ようやく/g s/余程/よほど/g s/僅か/わずか/g」 これらはきわめて単純な検索と置換のための処理であるが、こうい った単純なものだけでもすぐに100や200はできてしまう。こうした例 のうち、自分の好みや著者の好みに反するものがあれば、その 1 行を 削除するだけでいい。アイウエオ順に並べておくと、追加や削除もし やすい。 また置換文字列に「★」を付したものがあるが、これらは前後の内 容との関係で誤変換の余地のありそうなものにとりあえず注意を喚起
第2章 テキスト一括処理の技法
83
する意味で付したものである。さほど問題になることはないが、たと えば「一切」 「一寸」をすべて「いっさい」 「ちょっと」にしてしまう と、 「一切れ」 「一寸法師」などという文字列があった場合でも「いっ さいれ」 「ちょっと法師」といった変換結果になってしまう。こうし た場合にそなえて変換結果が「いっさい★れ」 「ちょっと★法師」と なっていれば、 「一切れ」 「一寸法師」に戻すことは簡単だ。一冊分の ファイルを一気に全文一括処理などしたときに、こうした「★」マー クを検索しながら、おかしいところは元に戻し、そのままでいい場合 は「★」を削除するだけでいいのである。そうした処理はエディタの 検索画面で検索欄に「★」を入力し、置換欄にはなにも入れず、置換 すれば、後処理が楽になる。
2-4 SED と正規表現 2-4-1 キャラクタクラス これまで y コマンドおよび簡単な s コマンドについて紹介してき た。これらは、文字単位であれ単語あるいは文字列単位であれ、基本 的には 1 対 1 対応での検索と置換の処理をするだけのものであった。 ただ、SED の場合、これらの単純なひとつひとつのコマンドを同時 に走らせることによって、大量の検索・置換処理を一挙に、しかも瞬 時に実行することができるという意味では、じゅうぶんに意味のある 作業であることは間違いない。ただ、SED が実現できることはこれ だけではない。むしろこれ以上にもっとすごいことができるのであっ て、これまでのコマンドはそのための助走にすぎなかったと言ってよ いぐらいなのである。 この SED の威力を知るためには、つまり、これからすこしでも高
84
度な検索・置換処理を実現しようとするなら、かならず正規表現とい うパターン検索の方法を使いこなさなければならない。MS-DOS の ワイルドカードにもその初歩的な部分は共通する約束事の世界なの で、知っているひとも多かろうが、なにはともあれ、その世界の規則 を知っておく必要があろう。ここで SED スクリプトの紹介と解説を 一時中断して、正規表現についてひと通りの説明をしておくことにし たい。正規表現という文字列検索・置換の方法は、通常の文字列その ものを逐語的に単純にあらわすのではなく、検索したい文字列をパタ ーンやクラスに整理しあるいは分類してその特徴を総括的に指定する 方法なのである。文字列の特徴やパターンを別の文字列によってまと めて表現することで、検索(と置換)の効率を飛躍的に増大させるこ とができる。正規表現についてはさまざまな専門書が出ているので、 ここでは SED スクリプトを書くうえでどうしても必要な知識(ルー ル)を実践的に確認しつつ、段階を追ってスクリプトの説明と紹介を していくことにしたい。 そもそも出版のために SED を使う目的は原稿のなかに含まれてい る文字列を効率よく検索し、それを適切なかたちに置換することにあ る。出版編集のために SED を使うことは、ときどき悪意のあるひと が解釈したがるように、編集の仕事を手抜きすることでもなければ、 SED ですべてのことができると思いこんでいるわけでもない。そう いう言い方でなにか批判しているつもりになっているひとは、編集の 現場についてまったくなにも知らないのである。そもそも著者の原稿 が完全原稿であることはありえない。それなら最初から編集の仕事は なにもないからだ。どんなに精度の高い原稿であっても不統一や勘違 いは免れないし、間違いだってある。それを編集者が原稿読みに徹す ることによって修正する方向で著者に協力するというのが編集の本来 の仕事であるのは『出版のためのテキスト実践技法/執筆篇』でも何
第2章 テキスト一括処理の技法
85
度も強調してきたことである。問題は SED という一種のフィルター を通すことによって無駄な単純作業になりそうな部分を編集作業以前 にあらかじめ大幅に削除あるいは置換してしまうこと、さらには通読 過程にはいっても問題を発見するたびに同一のパターンを検索し置換 する作業を実行することなのである。しかしこの作業の効力は抜群で ある。なにしろ編集作業の半分以上はこうした無駄な作業のために時 間を奪われるからだし、そもそもこうしたツールなしでは見落としは 見落としのままに終わってしまうことも多いはずだからである。 ともあれ、こうした出版編集の特性のために用いるべき正規表現は なによりもまず文字列の検索を実現するためのツールであり、同じよ うなパターンをできればまとめて検索することができなければならな い。しかもそれらを的確に置換することができるものでなければなら ない。 そのためにまず必要と思われるのはさまざまな文字列を種類ごとに まとめて表示する正規表現である。これはキャラクタクラス(文字ク ラス)と呼ばれ、半角のブラケット「[ ]」で挟まれた文字列で示され る。 たとえば半角算用数字の「1」か「3」か「5」のどれか 1 字が該当 する文字検索には「[135]」とすればよい。また半角算用数字のどれ でもよい 1 文字を示すには「[0-9]」と表示する。全角なら「[0 - 9]」 である。数字と数字のあいだの半角ハイフン「-」は文字コード上で 連続しているこれらの数字の範囲を示す。この正規表現はそのうちの どの数字がきても検索できることを示す。同じように欧文の 1 文字を しめすパターンは「[A-Z]」(半角大文字)、「[a-z]」(半角小文字)、 「[A - Z]」 (全角大文字) 、 「[a - z]」 (全角小文字)の 4 通りがある。 英数文字は原則的に半角使用であるから、実際にはあとの 2 種類はあ まり使われず、実践的に使われるパターンは本文のなかで欧文注など
86
の検索に使われる半角の大文字・小文字用である「[A-Za-z0-9]」で足 りる。ここでいくつかのパターンを並列することで同時に指示するこ とができるのがこのキャラクタクラスの特質である。 英数文字以外の、つまり和文の部分を示すキャラクタクラスはどう なるのであろうか。ちなみに JIS コード表を見ると日本語を示すひら がな、カタカナ、漢字にそれぞれ振られているコード番号はいちおう それぞれひとまとめになっている。キャラクタクラスでの文字列検索 の指定はそうした文字コードの配列を利用して始めと終わりを指定す ることで実現するのである。したがって、 ◇ひらがなのどれでもよい 1 文字を表わすキャラクタクラス:[ぁ ん](JIS コード 2421、2473) ◇全角カタカナのどれでもよい 1 文字を表わすキャラクタクラス: [ァ - ヶー](JIS コード 2521、2571、213c)(*) ◇漢字のどれでもよい 1 文字を表わすキャラクタクラス:[亜 - 煕] (JIS コード 3021、7426) ということになる。さらにこれらを組み合わせて、 ◇ひらがなと全角カタカナのどれでもよい 1 文字を表わすキャラクタ クラス:[ぁ - ヶー] ◇全角の和文全体のどれでもよい 1 文字を表わすキャラクタクラス: [□ - 煕](JIS コード 2121 の全角スペースから始まる)(**) ◇全角スペースを含まない和文全体のどれでもよい 1 文字を表わすキ ャラクタクラス:[、- 煕](JIS コード 2122 の「、 」から始まる) ということになる。これらの文字列検索の指定方法はきわめて便利で
第2章 テキスト一括処理の技法
87
ある。これらはすべてこうした文字種のなかの任意の 1 文字を示すだ けだが、それらが連続する場合を示すためには半角の「+」を半角閉 じブラケット「]」のうしろに付けることで用が足りる。つまり英数 文字の連続を示すには「[A-Za-z0-9]+」 、和文の連続を示すには「[□ 煕]+」とすればいいのである。これは実践的にも非常に重要だから覚 えておいてほしい。 (*) ここで「ー」の文字が入っているのはこの文字のコード番号だけが離れている からにすぎない。 (**) ここで全角スペースを示すために便宜上「□」の文字をあてている。念のため。
2-4-2 その他の重要なメタキャラクタ SED を使ったテキストの一括検索・置換における正規表現の威力 は絶大なものがある。前項で文字列を検索するための正規表現として キャラクタクラス(文字クラス)をとりあげたが、正規表現による文 字列検索を実現するためのある一定の記述のための文字記号を「メタ キャラクタ」と呼ぶ。つまり文字列のもともとの意味するところを別 の次元の意味に転位するためのメタ次元の意味をもつ文字(キャラク タ)という意味でメタキャラクタと呼ぶのである。 メタキャラクタにはさまざまな種類があるが、じつは前項の「[ ]」 というキャラクタクラスの指定方法もこのメタキャラクタのひとつな のである。SED やエディタにかんして必要なメタキャラクタを以下 に説明しておこう。 ■半角プラス「+」……前項で触れたように、直前の文字の 1 回以上 の繰り返しを示す。 (例: 「[A-Za-z0-9]+」は半角英数文字の連続を示 す。abc, Mozart, USA など) ■半角アステリスク「*」……直前の文字の 0 回以上の繰り返しを示
88
す。またファイル名やディレクトリ名の指定に用いられるときには、 1 文字以上の任意の文字を示す (*) が、一般的なテキスト処理をする さいにはあまり使われない。(例:「有り* 難い」は「有り難い」と 「有難い」の両方に、an*d は ad, and, annd. annnd, ... にマッチする) ■半角クエスチョンマーク「?」……直前の文字の 0 回または 1 回の 繰り返しを示す。これは「*」の限定つきのもので多くは「*」で代用 できる。 (例: 「コンピューター ?」は「コンピュータ」と「コンピュ ーター」の両方に合致するが、 「コンピューターー」には合致しない。 この場合は「コンピューター *」でも代用できる。 )なお、SED でこ のメタキャラクタは使えない。 ■半角ピリオド「.」……スペースをふくむ任意の 1 文字に該当する。 ただし通常は改行コードはふくまない。文字数の決まっている文字列 を検索する場合、たとえば 4 文字なら「....」とすれば 3 文字以下の文 字列にはマッチしない。通常は「.+」のかたちで文字の連続を単純に 指示したいときに使うことが多い。 ■半角ブラケット「[ ]」……前述したようにキャラクタクラスを示 し、そのなかの任意の 1 文字に合致する。 ■半角ハイフン「-」……前項で触れたように、キャラクタクラスの なかで連続する文字の範囲を示す。 (例: 「[a-z0-9]」は半角小文字の英 数文字を、 「[亜 - 煕]」は漢字を示す) ■半角縦棒「|」……いくつかの文字列のうちのどれかに合致する文 字列を検索する。 (例: 「サッカー | フットボール | 蹴球」はそのうち のどれがきてもマッチする)なお、これは秀丸や Jedit のようなエデ ィタでは使えるが、SED のようにキャラクタクラスを駆使するツー ルではうまく作動しない。これはキャラクタクラスが文字列単位では なく 1 文字単位の検索にマッチしようとするからである。 以上は文字列の検索(と置換)のためによく使われる正規表現のメ
第2章 テキスト一括処理の技法
89
タキャラクタで、これらを複合させて検索(と置換)することによっ て著しく能率を上げることができるのであるが、これらのほかにさら に検索文字列の位置を指定して、特定の場所にある文字列を検索する 正規表現もある。 ■半角キャレット「^」……ふたつのまったくちがう用法があるので 注意する必要がある。(1) 論理行 (**) の行頭を示す。 (例: 「^ 第 [一二 三四五六七八九〇]+ 章」という場合、行頭にくる「第一章」「第二 章」……「第一〇章」 「第一一章」……を示す。 )(2) また、もうひと つの重要な機能はキャラクタクラスの「[ ]」内のはじめに置かれた場 合はそのキャラクタクラス内の文字以外のすべての文字を示すという 除外の機能がある。これは特定の文字列以外の文字列を指定するのに 便利な機能で、集合論的にいえば補集合の役割をもつ。 (例: 「[^ 拡 増] 大分 [^ 県市類]」という例は「大分」という文字列が単独で副詞 として使われているときには「だいぶ」と読み替えたいが、 「拡大分」 「増大分」とか「大分県」 「大分市」 「大分類」というような用例のと きには該当しないように除外指定することができる。これらは SED においてテキスト一括処理するときに、後述するタグ付き正規表現に よる一括置換のさいに便利に機能する) ■半角ドル記号「$」……論理行の行末を示す。 (例: 「□ +$」は 1 個 以上のスペースが行末にあるものを検索する。無意味なスペースを削 除するときに使える) ほかにもメタキャラクタはいろいろあるが、後述する制御コードを 除けば、SED で必要とするものは以上でほぼ尽きる。あとはこれら を複合させて論理的に検索する工夫を重ねてみれば、どんなに複雑な 組合せの文字列でもおもしろいようにマッチできるはずである。たっ たこれだけの記号や文字の組合せで膨大なパターン検索ができるとこ ろが正規表現の威力なのである。
90
(*)「*.txt」とすれば、 「.txt」という拡張子のついたすべてのテキストファイルが該 当する。 (**) パソコン上のデータでは改行コードからつぎの改行コードまでを論理的な 1 行 とみなす。 『出版のためのテキスト実践技法/執筆篇 30ページ、 「2-2-2 なぜ改行 が必要か」参照。
2-4-3 制御コードとエスケープ 文章は表示可能な文字だけで構成されているのではない。ふつうは 目に見えないスペースのほかに、タブコード、改行コードなどによっ ても文章は構成されているのである。こうしたタブコード、改行コー ドなどを制御コードと呼ぶが、SED などによるテキスト一括処理に おいてはこうした制御コードなども検索・置換の対象とする必要が生 ずることがある。 こうした制御コードは、通常は検索・置換の文字列として指定する ことができない。それゆえここでも正規表現によるメタキャラクタと いう方法が必要になる。SED で必要な制御コードのメタキャラクタ は以下の 2 種類である。 ■タブコード……半角円記号 + 半角 t(¥t) ■改行コード……半角円記号 + 半角 n(¥n) (Windows,UNIX)ま たは半角円記号 + 半角 r(¥r) (Macintosh) ここで改行コードの形式のちがいは、 『出版のためのテキスト実践 技法/執筆篇』32ページの「2-2-3 拡張子の概念と改行コードの形 式」でも触れておいたが、 「CR」= carriage return(復帰)と「LF」 = line feed(改行)という似たような考えが三大プラットフォーム である UNIX, Windows, Macintosh のそれぞれでちがうために指定 の仕方もことならざるをえないのである。ちなみに Macintosh は CR、UNIX は LF、Windows は CR+LF である。したがって使って
第2章 テキスト一括処理の技法
91
いる OS によって改行コードの指定は異なるので注意が必要だ。 さて、ここでもうひとつ注意しておくべきことは、このタブコー ド、改行コードの指定のさいに用いられた半角円記号(¥)もまたメ タキャラクタであるという点である。タブコードをあらわす ¥t も 「¥」があることによってはじめて意味をもつのである。たとえばす でに紹介したメタキャラクタとしての「?」や「^」や「$」などの記 号も正規表現の検索のなかではメタキャラクタとしての特殊な意味を あたえられているために、文字それ自体として検索するためには、こ の特殊な意味を一時的に解除してやらなければならない。そうしない と検索することができないのである。たとえば文中の「$」が半角数 字と組み合わされて使われている場合だけを検索しようとするときに 検索文字列に「[0-9]+$」と検索しても、 「$」は正規表現の約束にした がって「$」の文字そのものを検索対象にするかわりに文末にある半 角数字が 1 つ以上連続している箇所を検索しようとする。$ の文字そ のものをふくむ文字列を検索する場合は「[0-9]+¥$」と指定するのが 正しいのである。 こうした一時的にメタキャラクタの意味を解除することをエスケー プするといい、 「¥」をエスケープ記号と呼ぶ (*)。制御コードを示す ための「¥」の使い方とはまったくちがうが、これらはともに正規表 現を駆使するうえできわめて重要なものである。欧文中の半角ピリオ ド「.」は、それをふくむ欧文を正規表現をもちいて検索するときな どはとくに注意しなければならない。 「.」はすべての任意の 1 文字に マッチするからで、これを「¥.」とエスケープしないとすべての文字 が検索対象になってしまって置換の対象とされてしまう。また文中の 「¥」文字そのものを検索しなければならないときには、エスケープ 記号そのものをエスケープするものとして「¥¥」という表記をする 必要がある。
92
これらの記号やその使い方については SED スクリプトのより高度 な表記の記述と説明のさいにあらためて説明することになろう。 (*) この「¥」記号は日本語環境に独自のもので、一般的には ASCII コードで同じ コード「005C」を割り当てられているバックスラッシュ「\」の置き換えになって いる。欧米の言語モードではこのバックスラッシュがエスケープ記号である。
2-5 より高度な SED スクリプト 2-5-1 漢字表記の統一をとる(2) ここでようやく SED スクリプトの具体的な実例の話にもどること ができる。 「2-3-3 漢字表記の統一をとる(1) 」でむずかしい漢字を ひらがなに開くための簡単な s コマンドの実例を数多く挙げておいた が、正規表現のルールを適用してもっと複雑かつ多彩なスクリプトを つくることがこれからの課題となる。 そのいくつかについてこれから触れていこう。まず正規表現のキャ ラクタクラスをもちいてさまざまなヴァリエーションをひとつのコマ ンドで検索・置換する例を挙げてみよう。 ●スクリプト実例 8 「 # 漢字を開く(キャラクタクラスの単純な使用例) s/[在有あ] り方/ありかた/g s/[全総] て/すべて/g」 これらはキャラクタクラス「[ ]」のなかのどれかひとつの文字と別 の特定の文字列の組合せを検索し置換するという単純な例である。一
第2章 テキスト一括処理の技法
93
図2 2
番目の例は「在り方」または「有り方」または「あり方」のどれがき ても、ひらがなの「ありかた」に統一するという例である。二番目の 例は「全て」も「総て」も「すべて」に統一する。このパターンはキ ャラクタクラスで示されるどれかひとつの文字のちがいがあるだけで 同じ置換結果をもたらすものである。 キャラクタクラスというメタキャラクタは「[ ]」のなかに並列され た文字のどれかにマッチしたときに検索がおこなわれるものである が、すべて 1 文字同士でなくてもいくつかの並列された文字列を検索 し置換する方法がある。それが半角縦棒「|」というメタキャラクタ を使った検索である。ただし、 「2-4-2 その他の重要なメタキャラク タ」でも述べたように、この半角縦棒を使ってキャラクタクラスの内 部で文字列検索(と置換)をする方法は、うまく作動しない。キャラ クタクラスのなかで半角縦棒「|」がメタキャラクタとして認識され ないからである。したがってこのメタキャラクタは SED ではサポー トしていないので使えず、むしろテキストエディタでこの半角縦棒を 使うほうがうまくいく。 たとえば「時折(り) 」でも「時おり」でも「ときおり」に置換す る例を挙げてみよう。Windows 用の秀丸で置換メニュー(Ctrl+R) を開き、 「検索」欄で「時折 | 時折り | 時おり」と、 「置換」欄で「と
94
図2 3
きおり」と入力し、 「正規表現」ボックスにチェックを入れる。念の ため「置換の前に確認」ボックスもチェックを入れておいたほうがい い。こうしておいて「全置換」ボタンを押すとひとつひとつ確認しな がら置換したりパスしたりすることができる。 【図2 2】 Macintosh 用の Jedit でも検索メニュー(Command+F)を開き、 同じように入力し、 「正規表現」ボタンにチェックを入れて「検索」 ボタンを押す(Command+G)ことでつぎつぎと検索する。(*)「置 換」ボタンを押す(Command+R)ことで置換できるし、 「置換&検 索」ボタンを押すと、この仕事を一度にすませることができる。ま た 、 検 索 の ダ イ ア ロ グ を 消 し て し ま っ て 、 Command+G と Command+R を交互にくりかえすほうが画面の切り替えによるスピ ードダウンが省ける。さらには「一括検索」ボタンを押すと現われる 「Mark List」で確認して、問題がなければ「一括置換」ボタンを押す と速い処理が可能だ。 【図2 3,24】 とにかくこの半角縦棒を使って個別の用語統一などに用いることも 効果的かもしれない。たとえば「マック」と「マッキントッシュ」を
第2章 テキスト一括処理の技法
95
図2 4
混在させている文章を「Macintosh」に統一するとか、 「ワグナー」 と「ヴァーグナー」を「ワーグナー」に統一しようとする場合などで ある。このメタキャラクタは編集者が編集対象の原稿や書物の特性に あわせて固有名詞や特有語を統一するのに便利である。 (*) ただし、Jedit においては「時折 | 時折り | 時おり」で検索すると、 「時折り」は 「ときおりり」となってしまう。これは最初の「時折」という検索文字列が「時折 り」の「時折」部分に最短一致してしまうために起こる問題で、これを回避する には検索文字列の順序を「時折り | 時折 | 時おり」とすることで解決する。この半 角縦棒のメタキャラクタはタグ付き正規表現には対応していない。
2-5-2 漢字表記の統一をとる(3) これまでの SED スクリプトのコマンドだけではエディタでひとつ
96
ひとつ検索・置換するのとさほどちがわないという印象を与えたかも しれない。たしかに逐語対応の検索・置換にちかい方法だと言っても いい。ただ、決定的にちがうことは、これらが 1 行ずつのコマンドと して並列的にならべられた「*.SED」という形式のひとつのスクリプ トファイルに統合しうるということであり、その結果、これらを同時 に一挙に処理しうるという点である。つまり複数一括置換ができると いうことである。これだけでも SED コマンドの威力は通常の逐語検 索・置換の200∼300倍の高速処理をすることができる。しかもファイ ルとして保存することができるので、いつでも呼びだして再利用がで きるのである。 しかし SED の威力はたんに同時にいくつものコマンドを走らせる ことができるというだけではない。検索・置換の対象としたい中心的 な文字(文字列)の前後に関連するさまざまな活用形、熟語の一部、 前置詞などが配置されるその多様な可能性を、正規表現を使って表現 し、検索させ、かつその前後関係に対応した文字列を再配置するとい うきわめて高度な検索・置換処理ができるのである。これは「タグ付 き正規表現」と呼ばれるもので、 「前方参照(backreference) 」とい う強力な機能を実現する。 一例を挙げて説明しよう。 ●スクリプト実例 9 「 # 漢字を開く(キャラクタクラスにタグ付き正規表現を用いる使用 例) s/有難 ¥([いきくし]¥)/ありがた ¥1/g」 これはなにを意味するかと言えば、 「有難い」とか「有難き」 、 「有 難く」 、 「有難し」といった活用変化のいずれがきても、変化部分以前
第2章 テキスト一括処理の技法
97
の「有難」の部分は「ありがた」に置換し、変化部分はその変化部分 がそのままこの「ありがた」のうしろに再配置されるというものであ る。キャラクタクラス「[いきくし]」はこのうちのどれでもひとつが くれば検索対象になるが、そのままではなにかひとつの文字に機械的 に置換するならともかく、マッチした文字がそのまま「ありがた」の うしろに再配置されなければ置換が適切におこなわれたことにならな い。それでは「有難」だけをすべて「ありがた」にしてしまえばい い、と考えるひともいるだろう。ただ、それでは「有難う」というケ ースの場合には「ありがたう」と誤変換してしまうのである。うしろ の活用形に応じた変換をしようとすれば、やはりタグ付き正規表現の お世話にならなければ、スピードにおいても正確さにおいてもかなり 見劣りするものしか実現できないのである。 この例からも判断されるように、キャラクタクラス「[いきくし]」 は「¥(」 (半角円記号 + 半角開きパーレン)と「¥)」 (半角円記号 + 半角閉じパーレン)という記号ではさまれている。この「¥(」と 「¥)」をタグ付き正規表現と呼び、それらの記号ではさまれた「[いき くし]」が前方参照の対象とされ、置換部分の「¥1」という記号で受 けられているのである。つまり「有難」のうしろにくる「い」 「き」 「く」 「し」のいずれも「¥1」に代入され、検索されマッチした箇所 に応じた活用形が前方参照されて「ありがた」のうしろに再現される というしくみである。このタグ付き正規表現は同時に複数もちいるこ とができるので、後述するように、さらに複雑な変化形をも検索・置 換対象にすることができるのである。なお、この「有難 [いきくし]」 や「有難う」には「有り難 [いきくし]」や「有り難う」という「り」 の入る場合もあるので、これらは 0 回または 1 回の繰り返しを示すメ タキャラクタ「*」を付すことによって「有り* 難 [いきくし]」や「有 り* 難う」と記述できることも付け加えておこう。
98
それではまず、いまの例もふくめた比較的簡単な実例を列挙してお こう。 ●スクリプト実例 10 「 # 漢字を開く(キャラクタクラスにタグ付き正規表現を用いる使用 例 1) s/有り* 難 ¥([いきくし]¥)/ありがた ¥1/g s/有り* 難う/ありがとう/g s/頂 ¥([いかきくけこ]¥)/いただ ¥1 ★/g s/至 ¥([らりるれろっ]¥)/いた ¥1/g s/於 ¥([いけ]¥)/お ¥1/g s/て置 ¥([いかきくけこ]¥)/てお ¥1 ★/g s/面白 ¥([いかきくけしそ]¥)/おもしろ ¥1/g s/¥([いのる]¥) 限り/¥1 かぎり/g s/¥([にて]¥) 来る/¥1 くる★/g s/詳し ¥([いかくけ]¥)/くわし ¥1/g s/¥([うた年る]¥) 毎/¥1 ごと★/g s/如 ¥([きく]¥)/ごと★ ¥1/g s/て来な ¥([いかくけ]¥)/てこな★ ¥1/g s/かも知れ ¥([ずなぬま]¥)/かもしれ ¥1/g s/済 ¥([むまん]¥)/す★ ¥1/g s/過ぎ ¥([ずな]¥)/すぎ★ ¥1/g s/に対 ¥([すし]¥)/にたい★ ¥1/g s/¥([のる]¥) 為/¥1 ため/g s/続 ¥([いかきくけこ]¥)/つづ ¥1/g s/兎 ¥([にも]¥) 角/と ¥1 かく/g s/伴な*¥([いうえおっ]¥)/ともな ¥1/g
第2章 テキスト一括処理の技法
99
s/無 ¥([いかきくけさし]¥)/な★ ¥1/g s/何 ¥([ただてでとのら]¥)/なん★ ¥1/g s/¥([くたのる]¥) 筈/¥1 はず/g s/風 ¥([でなにの]¥)/ふう★ ¥1/g s/相応し ¥([いかきくけ]¥)/ふさわし ¥1/g s/[他外]なら ¥([ずな]¥)/ほかなら★ ¥1/g s/見い* 出 ¥([さしすせそ]¥)/みいだ★ ¥1/g s/難し ¥([いかきくけさそ]¥)/むずかし★ ¥1/g s/巡 ¥([っらりるれろ]¥)/めぐ★ ¥1/g s/目指 ¥([さしすせそ]¥)/めざ ¥1/g s/の下 ¥([にで、]¥)/のもと★ ¥1/g s/基づ ¥([いかきくけこ]¥)/もとづ ¥1/g s/貰 ¥([いうえおっわ]¥)/もら★ ¥1/g s/亘 ¥([っらりるれろ]¥)/わた ¥1/g これらのコマンドの意味するところはすべてこれまでの説明のなか で触れたものばかりである。とくにむずかしいものではないので、各 自ためしてみてもらってよい。また言うまでもなく、これらのすべて が実際の編集作業において適用されるべきだ、とわたしが言いたいわ けではないこともあらかじめ言い添えておかなければならない。これ らの組合せのどれを採用するかは、編集者しだい、また著者と編集者 とのあいだの了解事項だからである。 2-5-3 漢字表記の統一をとる(4) 前項で述べたように、タグ付き正規表現による一括検索・一括置換 をより高度なレベルで実現するためにはこれだけでもまだ足りない。 ここで紹介してみたいのは、タグ付き正規表現で指定された文字(文
100
字列)の中身にはもっと多様な指定のしかたが可能だということであ る。そのうちのひとつは、動詞の活用形のようにどれか 1 文字がくれ ば、というのではなく、1 文字とはかぎらない特定の文字列に限定し て指定することもできる方法である。これには「2-5-1 漢字表記の統 一をとる(2) 」で既述した半角縦棒「|」という正規表現を使うこと によって実現できる。ただし、残念ながらこの方法は SED ではうま くいかないので、エディタで実行するか、いくつかのスクリプトに分 割するしかない。考えかたを示しておこう。 「¥(私 | わたし | あたし | 僕 | ぼく | 君 | きみ | あなた | あんた | 男 | 女 | 彼 | 彼女 ¥) 達→ ¥1 たち★」 「 ¥(位置 | 裏 | 運命 | 片 | 価値 | 関連 | 気 | 心 | 根拠 | 順位 | 順序 | 性格 | 近 | 秩序 | 特徴 | 名 | 根 | 方向 ¥) 付 ¥(いかきくけこ ¥) → ¥1 づ★ ¥2」 「 ¥(思い | 顔 | 考え | 気が | 傷 | 縛り | 突き | 投げ | 引き | 惹き | 結び ¥) 付 ¥(いかきくけこ ¥) → ¥1 つ★ ¥2」 これを SED で強引に実行するには以下のようになる。 ●スクリプト実例 11 「# 漢字を開く(キャラクタクラスにタグ付き正規表現を用いる使用 例 2) s/¥([私僕君男女彼]¥) 達/¥1 たち/g s/¥([くしたみ]¥) 達/¥1 たち★/g s/¥([裏片気心近名根]¥) 付 ¥([いかきくけこ]¥)/¥1 づ★ ¥2/g s/¥([置命値連拠格序徴向]¥) 付 ¥([いかきくけこ]¥)/¥1 づ★ ¥2/g s/¥([顔傷]¥) 付 ¥([いかきくけこ]¥)/¥1 つ★ ¥2/g s/¥([いえがりきげび]¥) 付 ¥([いかきくけこ]¥)/¥1 つ★ ¥2/g
第2章 テキスト一括処理の技法
101
最初の例では、「達」という文字をその前にくる文字によっては 「たち」に変換したいという場合である。 「私達」や「君達」から「ぼ く達」や「彼女達」といったさまざまなヴァリエーションをすべて 「たち」で受けられるようにしている。 同じような例として「付ける」という動詞をひらがなに開く例が最 後のふたつである。日本語表記のなかで「結び付ける」というような 硬い表記はどうもあまり美的でなく好ましくないので、 「結びつける」 というふうにしたい。同じように「位置付ける」 「裏付ける」 「運命付 ける」……といった言い方は、その活用形もふくめてすべて「位置 づ」 (い/か/き/く/け/こ)……と変換するようにしたい。ここ でふたつのヴァージョンがあるのは「付ける」がその前にくる文字 (文字列)によって「つける」と「づける」のふたつの読み方がある からにすぎない。ここで列挙したもの以外にもいろいろありうるの で、必要におうじて同じ要領で増補してもらえばよい。ただこの 4 行 のスクリプトだけでそれぞれ18× 6 =108通り、11× 6 = 66通りの合 計174通りの可能性を凝縮して表現しているということを見てもらい たい。原稿によっては実際にマッチする数はそれほど多くない場合も あるが、いちいち気がつかないところでの不統一を修正することもで きるのである。 (ただし、この半角縦棒のメタキャラクタを使ったス クリプトはツールによっては誤作動を起こす危険があるので、置換文 字列に「★」を付しておくことをおすすめする。 ) それから補足的に説明しておけば、上の例のように、タグ付き正規 表現による文字パターンが配置される場合、ひとつのコマンドのなか で順番に「¥1」から「¥9」まで使用することができるので、かなり 厄介な指定でもほとんどすべてできることになる。
102
2-5-4 漢字表記の統一をとる(5) これまでの s コマンドは単純な逐語的な検索・置換によるものか ら、さまざまな正規表現を使ったものを経て、タグ付き正規表現によ るかなり複雑かつ多様な検索・置換処理を可能とするものにまで到達 した。しかし、これだけではまだものたりないのは、きわめて?度の 高い用字用語の統一のためには、これまでの可能性のある文字(文字 列)の列挙という方法ではカバーしきれない領域があるからである。 たとえば、 「常に」という副詞を「つねに」という漢字に開きたいと いうような場合がある。この場合、逐語的な s コマンドを使えば、 s/常に/つねに/g というふうに記述することができる。しかし、これだと「非常に」と か「正常に」といった文字列にもマッチしてしまい、これらが「非つ ねに」とか「正つねに」というふうに誤変換されてしまう。これでは 非常に具合が悪いことになる。それでは置換文字列に「★」マークを 付けて s/常に/つねに★/g とすれば、こうした誤変換をあとで「★」マークを検索しながら本来 のかたちに戻すこともできると考えればいいのか。それもひとつの方 法ではあろうが、それだとほかにも「異常に」とか「尋常に」とか 「平常に」というかなり?度の高い文字列にもマッチしてしまうので、 かなりの非効率になる。こうした場合、たとえばいったん「常に」を 「つねに★」に変換させておいて、すぐ続けてこれらを元にもどすた めにこれらの単語が前にきたときにはふたたび「常に」に戻すという
第2章 テキスト一括処理の技法
103
方法も考えられる。つまりタグ付き正規表現を使って、 s/常に/つねに★/g s/¥([異尋正非平]¥) つねに★/¥1 常に/g とすれば、 「つねに★」の誤変換の大部分はふたたび正常に変換され て、なにごともなかったかのようにファイル上で生き返ることにな る。SED コマンドは、どれだけコマンド行がたくさん並べられてい ても、かならずコマンドを上から 1 行ごとに読みこんでから処理され るので、たとえば「非常に」という文字列は、SED コマンドの働き を受けて「非常に」→「非つねに★」→「非常に」という無駄な検 索・置換を連続的に経ていたことになる。SED の高速処理のうちで はこうした無駄はさほど負担になるわけではないかもしれないが、一 度に多くの検索・置換のコマンドを並べるスクリプトファイルにおい ては、やはりすこしでも無駄を省くのが正しい運用というものであ る。 その場合に、ここで起用すべき絶好のメタキャラクタがあることを 思い出そう。すなわち、すでに述べたようにキャラクタクラス「[ ]」 というメタキャラクタのなかで文字列の最初に半角キャレット「^」 が置かれた場合には、あとにくる文字列を除外したすべての文字列を 示す補集合の指示となるというメタキャラクタの登場である。このメ タキャラクタを使ったタグ付き正規表現を用いると非常に多様性に富 んだ用語の検索・置換を効率的に進めることができるようになる。つ まり一種の絞り込みをおこなうのである。さきほどの「常に」の例を このメタキャラクタを使った記述にすると、 s/¥([^ 異尋正非平]¥) 常に/¥1 つねに★/g
104
となり、このコマンドが最終的な正解となるのである。これだと無駄 な検索と置換が最初からおこなわれないから、作業効率を大幅にアッ プすることになるはずである。この種のコマンドのモデルをつぎに示 しておこう。 ●スクリプト実例 12 「 # 漢字を開く(キャラクタクラスにタグ付き正規表現を用いる使用 例 3) s/¥([^ 以最直背前]¥) 後で/¥1 あと★で/g s/何時 ¥([^ に間]¥)/いつ★ ¥1/g s/一向 ¥([^ 宗一]¥)/いっこう★ ¥1/g s/一切 ¥([^ れ]¥)/いっさい★ ¥1/g s/の内 ¥([^ 縁奥外側在示心政戦相的発部紛包密務面容]¥)/のうち★ ¥1/g s/¥([^ 解対]¥) 決して/¥1 けっして★/g s/¥([^ 近先日]¥) 頃/¥1 ころ★/g s/¥([^ 変夜]¥) 更に/さらに★/g s/の類 ¥([^ 縁型似推比]¥)/のたぐい★ ¥1/g s/¥([^ 簡]¥) 単 ¥([なに]¥)/¥1 たん★ ¥2/g s/¥([^ 間]¥) 違いな ¥([いく]¥)/¥1 ちがいな★ ¥2/g s/¥([^ 異尋正非平]¥) 常に/¥1 つねに★/g s/出来 ¥([^ 上事]¥)/でき★ ¥1/g s/¥([^ 高]¥) 尚お*/なお★/g s/¥([^ 同]¥) 一人/ひとり★/g s/¥([^ 気]¥) 紛れ/¥1 まぎれ★/g s/¥([^ 公厳方]¥) 正に/¥1 まさに★/g
第2章 テキスト一括処理の技法
105
2-5-5 漢字表記の統一をとる(6) 用字用語の統一にはまだまだいろいろな問題があるが、漢字表記の 統一というか、漢字を必要以上に使わないためにひらがなに開いてい くための SED コマンドとしてはこれまでの記述でほぼ尽きている。 使用?度の高い言い回しや使用法を徹底的に絞り込んで修正をくわえ ていくにはタグ付き正規表現をフルに駆使したコマンドを工夫してい かないと、うまく意図を実現できない。そのためにも「[^ ]」による 補集合的なパターン処理をふくむ、タグ付き正規表現を配置したコマ ンドを設定する必要がある。以下に示そうと思うのは、その現実的な レベルでの使用?度もきわめて高い用字用語の不統一を一挙に修正し うるコマンドであり、おそらくタグ付き正規表現を使ったほぼ最高度 に難度の高いものであるはずである。しかし、これらはまだまだ改善 の余地もあるし、現にたえず増補したり修正したりしているものも多 い。もちろん、このいずれをも適用させる必要があるというつもりは ないから、不要なコマンドは使わなければいい。 ●スクリプト実例 13 「 # 漢字を開く(キャラクタクラスにタグ付き正規表現を用いる使用 例 4) s/¥([^ 言き判文]¥) 明か ¥([^ さしすせそりる]¥)/¥1 明らか★ ¥2/g s/¥([^ 公代発]¥) 表わ*¥([さしすせそれ]¥)/¥1 表わ★ ¥2/g s/¥([がでとにはを]¥) 現わ*¥([しすれ]¥)/¥1 現わ★ ¥2/g s/¥([^ 一合]¥) 致 ¥([さしすせそ]¥)/¥1 いた★ ¥2/g s/¥([^ 位と統同]¥) 一体 ¥([^ 化]¥)/¥1 いったい★ ¥2/g s/¥([たるの。、]¥) 今 ¥([^ 朝回紀度後年月日晩夜]¥)/¥1 いま★ ¥2/g s/¥([じたのる]¥) 位 ¥([^ 階相置]¥)/¥1 くらい★ ¥2/g
106
s/¥([^ 交国実戸手間]¥) 際 ¥([しにのは、]¥)/¥1 さい★ ¥2/g s/¥([^ 現事真忠]¥) 実 ¥([なにのはを]¥)/¥1 じつ★ ¥2/g s/¥([^ 拡増]¥) 大し ¥([たて]¥)/¥1 たいし★ ¥2/g s/¥([^ 拡増]¥) 大分 ¥([^ 県市類]¥)/¥1 だいぶ★ ¥2/g s/¥([うくすたる]¥) 度 ¥([^ 合数量]¥)/¥1 たび★ ¥2/g s/¥([うたのる]¥) 時 ¥([^ 間期代点]¥)/¥1 とき★ ¥2/g s/¥([たの]¥) 所 ¥([^ 在属長得有]¥)/¥1 ところ★ ¥2/g s/¥([^ 硬素正率実廉]¥) 直 ¥([さしすせそらりるれろ]¥)/¥1 なお★ ¥2/g s/¥([^ 意以除疎度]¥) 外 ¥([さしすせそれ]¥)/¥1 はず★ ¥2/g s/¥([^ 維金気心支手把]¥) 持 ¥([たちつってと]¥)/¥1 も★ ¥2/g s/¥([がたのれる]¥) 故 ¥([^ 意郷国人]¥)/¥1 ゆえ★ ¥2/g s/¥([^ 多同変模]¥) 様 ¥([なにの]¥)/¥1 よう★ ¥2/g s/¥([^ 見自何難部]¥)[判分解] か*¥([らりるれろっ]¥)/¥1 わか★ ¥2/g ここに掲げたコマンド類は原理的には新しいものではない。これま でに紹介したメタキャラクタを同時にいくつも包含して複雑に見える だけである。これらのなかにはいくつかの相似のパターンがあり、ま たどうしてこういうコマンドが必要なのかの説明を要するものもある かもしれないので、ここでそれぞれについて簡単な説明をほどこして おこう。 1)動詞の漢字をひらがなに開く場合で、その字をふくむ熟語のとき は除外する。 たとえば「持つ」という動詞はきわめて?度の高い動詞であるが、 もともとの「 (手に)持つ」という第一義的な意味合いでの例(たと えば「コップを持って行く」とか「ノートパソコンを持ち帰る」な
第2章 テキスト一括処理の技法
107
ど)は比較的すくなく、むしろ二義的なあるいは比喩的な意味での使 われ方がはるかに多い。たとえば「マンションを持っている」とか 「進歩的な考えを持っている」などは、実際に手に持つことができる ような種類の対象ではない。こうした二義的、比喩的な使い方の場合 は「もつ」とひらがなに開きたいというような場合である。ほかによ くあるケースは「行く」 「来る」などもある。 「わかる」という動詞も 「分(か)る」 「解(か)る」 「判る」などといろいろあるが、これら をすべてひらがなに開くというコマンド例。いずれにせよ、これらの 漢字は熟語としてもさまざまに使われるので、これらの組合せのとき には検索・置換対象からあらかじめ除外しておかなければならない。 それらの代表的なものを前述のキャラクタクラス内での除外機能 「^」を使って指定すればいい。そして漢字のうしろにタグ付き正規 表現として活用形をキャラクタクラスとして並べておけば、すべてマ ッチするのである。念のため、変換された漢字には「★」を付けてお けば、指定以外の熟語がでてきて誤変換したようなときには対応でき る。 s/¥([^ 一合]¥) 致 ¥([さしすせそ]¥)/¥1 いた★ ¥2/g s/¥([^ 硬素正率実廉]¥) 直 ¥([さしすせそらりるれろ]¥)/¥1 なお★ ¥2/g s/¥([^ 意以除疎度]¥) 外 ¥([さしすせそれ]¥)/¥1 はず★ ¥2/g s/¥([^ 維金気心支手把]¥) 持 ¥([たちつってと]¥)/¥1 も★ ¥2/g s/¥([^ 見自何難部]¥)[判分解] か*¥([らりるれろっ]¥)/¥1 わか★ ¥2/g 2)動詞以外でも、同じように通常はひらがなに開いて使いたいが、 熟語の一部となりうる漢字の場合、そうした熟語の場合を除外する。 s/¥([^ 位と統同]¥) 一体 ¥([^ 化]¥)/¥1 いったい★ ¥2/g s/¥([たるの。、]¥) 今 ¥([^ 朝回紀度後年月日晩夜]¥)/¥1 いま★
108
¥2/g s/¥([じたのる]¥) 位 ¥([^ 階相置]¥)/¥1 くらい★ ¥2/g s/¥([^ 交国実戸手間]¥) 際 ¥([しにのは、]¥)/¥1 さい★ ¥2/g s/¥([^ 現事真忠]¥) 実 ¥([なにのはを]¥)/¥1 じつ★ ¥2/g s/¥([^ 拡増]¥) 大し ¥([たて]¥)/¥1 たいし★ ¥2/g s/¥([うくすたる]¥) 度 ¥([^ 合数量]¥)/¥1 たび★ ¥2/g s/¥([うたのる]¥) 時 ¥([^ 間期代点]¥)/¥1 とき★ ¥2/g s/¥([たの]¥) 所 ¥([^ 在属長得有]¥)/¥1 ところ★ ¥2/g s/¥([がたのれる]¥) 故 ¥([^ 意郷国人]¥)/¥1 ゆえ★ ¥2/g s/¥([^ 多同変模]¥) 様 ¥([なにの]¥)/¥1 よう★ ¥2/g 3)その他。 s/¥([^ 言き判文]¥) 明か ¥([^ さしすせそりる]¥)/¥1 明らか★ ¥2/g 「 明らか」を「明か」というふうに表示する古い使い方がときどき見 られるので、これを「明らか」に修正するスクリプトだが、これはけ っこう厄介で、 「明か」は「明らか」のつもりで表記されている場合 よりも、たとえば「解き明かす」 「文明から」 「明かり」などの一部で あることのほうが実際には多い。これらの一部となっている「明か」 を「明らか」と変換すると問題がかえって増えてしまうので、原稿の 種類によっては使わないほうがいいかもしれない。 s/¥([^ 公代発]¥) 表わ*¥([さしすせそれ]¥)/¥1 表わ★ ¥2/g s/¥([がでとにはを]¥) 現わ*¥([しすれ]¥)/¥1 現わ★ ¥2/g 「 表わす」 「表われる」 「現わす」 「現われる」という表記に最近の表 記はどちらかというと「わ」が省略されるケースが増えてきている。 これは前述したように、日本語表記にあまり意識的でない理系のプロ
第2章 テキスト一括処理の技法
109
グラマの感覚によって災いされている例である。 「表し」などと表記 されていると、前後の文脈上から「あらわし」の意味なのか、 「ひょ うし」の意味なのかが判然としない。たとえば「敬意を表し」ならこ のままでいいのだが、 「意味を表し」となると「表わし」としたほう が見た目ですぐわかるし、読みやすい。こうした例からも見られるよ うに、 「表す」 「現す」 「表れる」 「現れる」に「わ」を補うためのスク リプトである。このほうが日本語として美しいと思うのだが、これは 感覚の違いなのだろうか。 s/¥([^ 拡増]¥) 大分 ¥([^ 県市類]¥)/¥1 だいぶ★ ¥2/g これは前にも引例したものだが、副詞として使われる「だいぶ」を 「大分」と漢字表記する場合を修正するコマンドである。 「拡大分」 「増大分」という場合もあれば、 「大分県」 「大分市」 「大分類」などの 熟語の一部になる場合があるので、これらを除去するのである。 以上で漢字をひらがなに開くためのコマンドの記述はほぼ終了し た。ほかにも作ろうと思えばいくらでも作ることができるだろうか ら、各自でいろいろ試してほしい。 2-5-6 漢字の送りがなの統一 これまでの記述で読みにくい漢字やあまり使わないほうがいい漢字 をひらがなに開く実践的なスクリプトを紹介してきた。これとは別に 動詞の送りがなの統一という問題がある。前項で「表わす」や「現わ れる」といった例でも紹介したように、 「わ」を送るか送らないかは 文章表現上の大きな原則問題である。 『出版のためのテキスト実践技 法/執筆篇』でも書いたように、現在の送りがなの原則は「本則」と 「全部送る」がダブル・スタンダードになっているのが実情だ。これ
110
らは歴史的に形成されてきたものだからやむをえない面もあるが、今 後は読みやすさという点で「全部送る」方向に向かうほうがいいよう にわたしは思っている。これらについて、特別に意識的なひとは別に して、多くのひとはこれらを混用しているのが現状である。 「 表(わ)す」や「現(わ)れる」と同類のものとして「上(が) る」 、 「合(わ)す」 、 「浮(か)ぶ」 、 「生(ま)れる」 、 「起(こ)す」 、 「行(な)う」、「落(と)す」、「終(わ)る」、「変(わ)る」、「代 (わ)る」 、 「聞(こ)える」 、 「決(ま)る」 、 「異(な)る」 、 「向(か) う」などがある。たとえば「上がる」を「上る」と表記してしまう と、 「あがる」なのか「のぼる」なのかが見た目だけでは判然としな い。中身を読んでさえもどちらともいえない場合があろう。書き手は 「上がる」を「あがる」と読んでもらいたい場合には意識的に「が」 を送る必要があるのではなかろうか。同じような例として「行なう」 とするか「行う」とするかという問題がある。後者(本則)にすると 「行なった」が「行った」になってしまい、 「おこなった」なのか「い った」なのかがすぐにはわからない。いっそのこと「おこなった」と ひらがな表記したほうが賢明かもしれない。 これらの動詞は単独で使われることも多いが、複合動詞の一部とし ても?用される。たとえば「組み合わせる」という例をあげれば、こ れらは慣用上、 「組合せる」 、 「組み合せる」 、 「組合わせる」といった 表記も可能である。 「組みあわせる」と後半をひらがなに開くことも 可能だ。ただし原則的にいえば、 「組合せる」か「組み合わせる」が 正しいので、 「組み合せる」 、 「組合わせる」は許容範囲とされている ようだが間違いだと言ったほうがいい。また複合名詞としては「組み 合わせ」ではいかにも鈍重なので「組合せ」という省略形のほうを採 用したほうが見た目はいい。前述したように、日本語 IME のプログ ラマがこれらの日本語表記についての原則にあまりにも無関心か認識
第2章 テキスト一括処理の技法
111
不足なので、変換処理のときに誤用形が選択されやすい構成になって いるという現実的な問題もある。早急に解決すべき問題だ。それはと もかく、これらの複合動詞の場合は「全部送る」を、名詞形の場合は 省略を採用するのがわたしの原則である。 この「全部送る」を原則として作成したスクリプトを以下に紹介し よう。 ●スクリプト実例 14 「 # 送りがなの統一(全部送る) s/上 ¥([らりるれろっ]¥)/上が★ ¥1/g s/¥([表現]¥)¥([さしすせそれ]¥)/¥1 わ★ ¥2/g s/¥([^ 結融]¥) 合 ¥([さしすせそ]¥)/¥1 合わ★ ¥2/g s/受 ¥([合止取持]¥)/受け★ ¥1/g s/打 ¥([合上落込出立取抜払]¥)/打ち★ ¥1/g s/浮 ¥([ばびぶべぼん]¥)/浮か★ ¥1/g s/浮 ¥([上沈出立]¥)/浮き★ ¥1/g s/生れ/生まれ★/g s/起 ¥([さしすせそらりるれろっ]¥)/起こ★ ¥1/g s/行 ¥([いうえおわっ]¥)/行な★ ¥1/g s/落 ¥([合込着]¥)/落ち★ ¥1/g s/落 ¥([さしすせそ]¥)/落と★ ¥1/g s/¥([終変代]¥)¥([らりるれろっ]¥)/¥1 わ★ ¥2/g s/聞え/聞こえ★/g s/組 ¥([合上入込]¥)/組み★ ¥1/g s/繰 ¥([上入下返込出]¥)/繰り★ ¥1/g s/決 ¥([らりるれろっ]¥)/決ま★ ¥1/g s/異 ¥([らりるれろっ]¥)/異な★ ¥1/g
112
s/過 ¥([さしすせそ]¥)/過ご★ ¥1/g s/立 ¥([合上入去向]¥)/立ち★ ¥1/g s/突 ¥([合上入落刺出立]¥)/突き★ ¥1/g s/突込/突っ★込/g s/取 ¥([合扱上入下落込締出立違持]¥)/取り★ ¥1/g s/引 ¥([合上入起下落込籠締出立取抜払]¥)/引き★ ¥1/g s/振 ¥([上落返込出抜払]¥)/振り★ ¥1/g s/振舞/振る★舞/g s/向 ¥([いうえおわっ]¥)/向か★ ¥1/g s/向合/向き★合/g s/分 ¥([らりるれろっ]¥)/分か★ ¥1/g」 これらはまだまだ未整理なのでほかにもいろいろなパターンがある だろう。なお、★をつけてあるのは、これまでの例と同じくあとで確 認するための符牒である。名詞形のときなどには送りがなを不要とす るものもあるからである。ここまでつきあってきてくれた読者には、 もはや見てもらえばわかるようなものばかりである。漢字表記に類す る SED スクリプトは経験的にさまざまなパターンにたいして意識的 になることであり、新しい発見にたいしてはそのつどスクリプトを増 補し、精度を高める努力をすることが肝要なのである。 2-5-7 むだなスペースの削除と必要なスペースの挿入 プリントアウトされた原稿を見ると、テキスト入力の基本をよく理 解していると思われる著者のものでも、原稿ファイルを開いてみると そこにはむだなスペースやタブがいたるところに散見され、また必要 なスペースが入っていないようなファイル内容などいくらでもある。 こういう現状を知らないひとは、まるでこんなことが普通ではないか のように思っているらしいが、これが(すくなくとも)人文系、文科
第2章 テキスト一括処理の技法
113
系の著者の場合の通常の事態なのである。こういう原稿を手にした編 集者のやるべきことは、こうしたスペースの削除と挿入ということに なるが、こんなことはひとつひとつやっていたらキリがない。 すでに「1-7-6 必要なスペースの挿入」でもエディタを使った簡便 な方法について触れておいたが、文中のむだなスペースならより簡単 により高度な指定で SED で削除できる。なお、以下ではこれまでと 同様に便宜上、全角スペースは全角の四角記号(□)で、半角スペー スは半角のアンダースコア記号(_)で示してある。 ●スクリプト実例 15 「 # 行頭・行末のむだなスペース削除 s/^[□ _]+¥([^ □ _]+¥)/□ ¥1/g s/^[□ _]+$//g s/¥([^ □ _]+¥)[□ _]+$/¥1/g」 説明をくわえておけば、最初のコマンドは、行頭に全角または半角 のスペースが 1 個以上あって、そのあとにスペース以外の文字がきた ら、1 字分の全角スペースをあけてあとにつづけるという指定であ る。 2 番目のコマンドはいわゆる「空行」にスペースが入っているのを 削除する例。 3 番目はスペース以外の文字のうしろに 1 個以上のスペースがあっ て改行となっている例。 ●スクリプト実例 16 「 # 行頭 2 分下げ s/^ □ ¥([「『〈《([〔“]¥)/¥1/g s/^_+¥([「『〈《([〔“]¥)/¥1/g」
114
これは行頭に全角スペースまたは 1 個以上の半角スペースがあって カッコ類で始まる場合、このスペースを削除するコマンドである。ス ペースを入れたままだと、これらのカッコ類の上半分(横組みなら左 半分)のアキをくわえると必要以上に字下がりになってしまうのをき らう最近の方法。ただし、これらのカッコ類を半角ものに変えて全角 1 字分をあける DTP 的な方法もある。 ●スクリプト実例 17 「 # 和文中、欧文中のむだなスペース削除と必要な挿入 s/¥([、- 煕]¥)[□ _]+¥([、- 煕]¥)/¥1¥2/g s/¥([?!]¥)¥([、- 煕]¥)/¥1 □ ¥2/g s/¥([?!]¥) □ ¥([」』’”〉》]〕}】]¥)/¥1¥2/g s/¥([?!]¥)[□ _]+$/¥1/g s/¥([A-Za-z0-9]+¥)_[□ _]+¥([A-Za-z0-9]+¥)/¥1_¥2/g s/¥([A-Za-z0-9]+¥)_[□ _]+¥([A-Za-z0-9]+¥)/¥1_¥2/g s/¥([])A-Za-z0-9]¥)[□ _]+¥([,.;:]¥)/¥1¥2/g s/¥([,.;:]¥)[□ _]*¥([[(A-Za-z0-9]¥)/¥1_¥2/g」 今度は文中のむだなスペースを削除するコマンドである。最初のも のはひらがな、カタカナ、漢字のどれかでスペース以外の和字([、煕])にはさまれた 1 個以上の全角半角スペースを削除するコマンド。 ただし 2 番目から 4 番目のコマンドでは、文中で全角の「?」か 「!」のうしろがカッコ類以外の和字の場合、全角スペースを挿入す る。ただし、行末の場合は対象とならない。 5 番目のコマンドは、欧文中で半角英数文字のあいだに半角スペー ス 1 個のほかに全角半角スペースが 1 個以上あったときに半角スペー スを 1 個にするコマンド。しばしば全角もふくめて 2 個以上のスペー スが入っているから余分なスペースを削除することが必要になる。た
第2章 テキスト一括処理の技法
115
だし、7 番目のコマンドで、英数文字や半角閉じカッコ類のうしろに コンマ・ピリオド・セミコロン・コロンがくる場合はスペースを削除 し、8 番目のコマンドでは、コンマ・ピリオド・セミコロン・コロン のうしろが英数文字や半角開きカッコ類の場合は半角スペース 1 個を 残す。なお、ここで注意してもらいたいのは閉じの半角ブラケット 「]」は、キャラクタクラス「[ ]」の指定のなかで一番最初にあるとき は、メタキャラクタとしての特殊な意味を失ない文字通りの意味を示 すという性質をもつので、この場合には最初に置かれなければならな い、ということである。ここでは 7 番目の例がそれにあたる。 また、6 番目のコマンドは 5 番目のコマンドと同一のものである が、同じコマンドを連続させるには以下のような理由がある。 そもそも SED コマンドは、処理対象ファイルの 1 行 1 行を順に読 みこんでコマンドを実行していくものであり、検索される文字列は 1 回のコマンドにたいして一度しか対象にされることができない。たと えば「A □ B □ C」と「D □ E □ F □ G」という文字列があって、 それぞれの文字のあいだを全角スペースから半角スペースに変えよう としても、SED の場合は、 「A □ B」と「D □ E」 、 「F □ G」のセッ トは対象としても「B □ C」と「E □ F」は検索されないという性質 がある。つまり「A □ B」のセットが処理対象とされると、すでに検 索対象とされた「B」をふくんだ「B □ C」は検索の対象外にされて しまう。1 番目と 2 番目、3 番目と 4 番目の組合せはそれぞれ処理対 象とされるが、2 番目と 3 番目のセットはパスされてしまうのであ る。その結果、1 行目のコマンドの処理だけでは「A_B □ C」と 「D_E □ F_G」となってしまう。そこで 2 行目のコマンドの出番とい うことになるわけで、同じコマンドを 2 回走らせることによって 1 度 目でやり残した処理をあと片づけすることになる。これは図示してみ ればすぐわかることである。 【図2 5】
116
文字列
A□B□C
D□E□F□G
1回目の処理
A_B□C
D_E□F_G
2回目の処理
A_B_C
D_E_F_G
図2 5
●スクリプト実例 18 「 #() []は欧文中では半角に s/¥([]A-Za-z0-9]¥)(¥([[A-Za-z0-9(]¥)/¥1_(¥2/g s/¥([)A-Za-z0-9]¥)[¥([[A-Za-z0-9(]¥)/¥1_[¥2/g s/¥([]A-Za-z0-9]¥))¥([^,.;:]¥)/¥1)_¥2/g s/¥([A-Za-z0-9)]¥)]¥([^,.;:]¥)/¥1]_¥2/g s/¥([A-Za-z0-9]¥))¥([,.;:]¥)/¥1)¥2/g s/¥([A-Za-z0-9]¥)]¥([,.;:]¥)/¥1]¥2/g」 これは欧文中のパーレン「 () 」とブラケット「 [] 」を半角にし、 開きのほうにはそのまえに半角スペースを、閉じのほうにはそのうし ろに半角スペースを挿入するスクリプトである。コンマ、ピリオド、 セミコロン、コロンの前では半角スペースは挿入しないようにしてあ る。また ][、](、)[、)(、といったカッコ同士の連続についても追加し てあるので確認してほしい。 ●スクリプト実例 19 「 # コンマ、ピリオドのうしろに半角スペース挿入 s/¥([,.;:]¥)¥([A-Za-z0-9]¥)/¥1_¥2/g」 これは欧文のコンマ、ピリオド、セミコロン、コロンのうしろに英
第2章 テキスト一括処理の技法
117
数文字がつづく場合に半角スペースを挿入する例である。 これらのスクリプト実例の15∼19はたとえば「スペースの削除と挿 入 .SED」というかたちでひとつのスクリプトファイルにまとめるこ とができる。このフィルタをくぐらせることでほとんどのスペース問 題は解消されるはずである。 2-5-8 世紀、年月日の表記統一 つぎに紹介しようと思うのは、世紀や年月日など数字をともなう表 記の不統一を修正するスクリプトである。これまでも何度も述べてい るように、最近はパソコンの横組み画面で入力する著者がふえている せいもあって、数字の表記など画面上でさほど違和感がないと平気で 不適切な表記をしてしまうひとが多くなった。縦組み原稿用紙に手書 きするのと比べるとすぐわかることだが、最終的に縦組みになる本の ための原稿の場合(横組みの本の場合は別だが、それでも半角算用数 字の使用などなんらかの統一は必要のはずだ) 、たとえば西暦を表わ すのに全角算用数字や半角算用数字ではなく、漢数字にするのが通例 であろう。あえてするならともかく、全角算用数字なら数字が縦に 1 字ずつ並んでしまうわけだし、半角算用数字なら欧文と同じようにそ こだけ数字が横に寝てしまう。また漢数字といっても、十、百、千、 万、億、……といった単位をふくめて記述するものと、たんに漢数字 を並べるだけのものと二種類ある。 こうした数字表記の原則がルーズになってしまっているのが現状で ある。著者の自覚を俟ちたいところだが、現実にはそんなふうに書か れてしまったものを著者に修正してもらうのも時間のむだになる。ひ とつひとつ直していたら時間がいくらあっても足らない場合がある し、見落としだってあるにきまっているからだ。そもそも面倒がって
118
やらない著者もいるだろう。そういうときにここで述べるスクリプト が役に立つ。長い文章でもおそらくすべてのヴァリエーションを数秒 で片づけてしまうのが SED の威力なのだ。 ここでの原則は、西暦年の場合は漢数字のみの表記にする、元号付 き年号や月日は単位付き漢数字(つまり、いわゆる「トンボの十」を 使うスタイル)にする、ということにしたい。まえにも書いたよう に、 「十一月十一日」を「トンボの十」を使わずに表記すると、 「一一 月一一日」というふうに一の字が並んでしまい、読みにくいうえに美 しくないというのがわたしの(個人的な?)考えである。これは縦組 みにしても「一一」が「二」に見えてしまうという理屈であまりよく ないと思うのだが、かならずしも共通感覚になっているとは言えない のが残念である。同じ理由で「一一世紀」という書きかたもできれば 「十一世紀」というふうにしたい。 この理屈でいくと、たとえば「一九九〇年代」という表記と「昭和 六十年代」という表記にたいして、 「一九九十年代」とか「昭和六〇 年代」という書きかたは間違いということになる。前者のような例は さすがにすくないが、それでもたまに見かけることがある。問題はこ の意味で使うつもりで略して「九十年代」と書くケースが多いという ことである。これだけだと間違いに気づきにくいが、 「 (一九)九十年 代」という意味と同じなのだから、やはりこれは「九〇年代」と書か なければならないはずなのである。 これに反して、 「明治/大正/昭和/平成」といった元号がその前 にくるときには「トンボの十」を入れるほうが好ましい。これらは西 暦のように 4 桁になることがなく、1 桁または 2 桁だからでもある。 月日についても同じことが言える。 じつはこのあたりは好みの問題もあるので、あまり強要するような ことを書くと、いつものようにお叱りを受けるので、できればそうし
第2章 テキスト一括処理の技法
119
たらどうかという程度の提案と考えてもらいたい。さて、問題のスク リプトはどうなるであろうか。 ●スクリプト実例 20 「 # 世紀、年月日の統一 s/[00]¥([年月日世]¥)/〇 ¥1/g s/[11]¥([年月日世]¥)/一 ¥1/g s/[22]¥([年月日世]¥)/二 ¥1/g s/[33]¥([年月日世]¥)/三 ¥1/g s/[44]¥([年月日世]¥)/四 ¥1/g s/[55]¥([年月日世]¥)/五 ¥1/g s/[66]¥([年月日世]¥)/六 ¥1/g s/[77]¥([年月日世]¥)/七 ¥1/g s/[88]¥([年月日世]¥)/八 ¥1/g s/[99]¥([年月日世]¥)/九 ¥1/g # 世紀の統一(トンボの十を使う) s/[11 一] 〇世紀/十世紀/g s/[11 一]¥([一二三四五六七八九]¥) 世紀/十 ¥1 世紀/g s/[22 二] 〇世紀/二十世紀/g s/[22 二]¥([一二三四五六七八九]¥) 世紀/二十 ¥1 世紀/g # 元号付き年号の統一(トンボの十を使う) s/¥([治正和成]¥)[11 一] 〇年/¥1 十年/g s/¥([治正和成]¥)[11 一]¥([一二三四五六七八九]¥) 年/¥1 十 ¥2 年/g s/¥([治和]¥)[22 二] 〇年/¥1 二十年/g s/¥([治和]¥)[22 二]¥([一二三四五六七八九]¥) 年/¥1 二十 ¥2 年/g
120
s/¥([治和]¥)[33 三] 〇年/¥1 三十年/g s/¥([治和]¥)[33 三]¥([一二三四五六七八九]¥) 年/¥1 三十 ¥2 年/g s/¥([治和]¥)[44 四] 〇年/¥1 四十年/g s/¥([治和]¥)[44 四]¥([一二三四五六七八九]¥) 年/¥1 四十 ¥2 年/g s/昭和 [55 五] 〇年/昭和五十年/g s/昭和 [55 五]¥([一二三四五六七八九]¥) 年/昭和五十 ¥1 年/g s/昭和 [66 六] 〇年/昭和六十年/g s/昭和 [66 六]¥([ 一二三四五六]¥) 年/昭和六十 ¥1 年/g # 西暦年の統一 s/[00]¥([〇一二三四五六七八九]¥) 年/〇 ¥1 年/g s/[11]¥([〇一二三四五六七八九]¥) 年/一 ¥1 年/g s/[22]¥([〇一二三四五六七八九]¥) 年/二 ¥1 年/g s/[33]¥([〇一二三四五六七八九]¥) 年/三 ¥1 年/g s/[44]¥([〇一二三四五六七八九]¥) 年/四 ¥1 年/g s/[55]¥([〇一二三四五六七八九]¥) 年/五 ¥1 年/g s/[66]¥([〇一二三四五六七八九]¥) 年/六 ¥1 年/g s/[77]¥([〇一二三四五六七八九]¥) 年/七 ¥1 年/g s/[88]¥([〇一二三四五六七八九]¥) 年/八 ¥1 年/g s/[99]¥([〇一二三四五六七八九]¥) 年/九 ¥1 年/g s/[00]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥) 年/ 〇 ¥1¥2 年/g s/[11]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥) 年/ 一 ¥1¥2 年/g s/[22]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥) 年/ 二 ¥1¥2 年/g s/[33]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥) 年/
第2章 テキスト一括処理の技法
121
三 ¥1¥2 年/g s/[44]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥) 年/ 四 ¥1¥2 年/g s/[55]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥) 年/ 五 ¥1¥2 年/g s/[66]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥) 年/ 六 ¥1¥2 年/g s/[77]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥) 年/ 七 ¥1¥2 年/g s/[88]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥) 年/ 八 ¥1¥2 年/g s/[99]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥) 年/ 九 ¥1¥2 年/g s/[11]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥)¥([〇 一二三四五六七八九]¥) 年/一 ¥1¥2¥3 年/g s/[22]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥)¥([〇 一二三四五六七八九]¥) 年/二 ¥1¥2¥3 年/g # 月日の統一(トンボの十を使う) s/[11 一] 〇月/十月/g s/[11 一] 一月/十一月/g s/[11 一] 二月/十二月/g s/[11 一] 〇日/十日/g s/[11 一]¥([一二三四五六七八九]¥) 日/十 ¥1 日/g s/[22 二] 〇日/二十日/g s/[22 二]¥([一二三四五六七八九]¥) 日/二十 ¥1 日/g s/[33 三] 〇日/三十日/g
122
s/[33 三][11 一] 日/三十一日/g」 すこし長いスクリプトになってしまうが、もっとうまい記述ができ るのかもしれない。ただ、すくなくともこれで100%の命中率を実証 してきているので、なんとかこれですませておきたい。 最初のブロックで、 「世紀、年、月、日」の文字のどれかの前に全 角または半角算用数字のものがあればそれをうしろにきた文字とあわ せて漢数字に置換する。これがまず以下のスクリプトのためのベース になる。 つぎの世紀の表記統一スクリプトは 2 桁目(それしかない)が「1、 1、一」のどれかがくるか、 「2、2、二」のどれかがくるかを考えて おけばよい。 ( 「三十世紀」といったイレギュラーなものまでここに包 摂しておく必要はないだろう。それは個別に処理すべきだろう。 )た だ「十世紀」と「二十世紀」の場合だけやや特殊であって、一から九 までのどれかがくればそれに前方参照して(つまり「¥1」で受けて) 置換するのとちがって、 「1、1、一」または「2、2、二」のうしろ に「〇世紀」がくるときには「十世紀」または「二十世紀」と変換す る。これは後述の元号付き年号、月日の場合も同様である。 また、元号付き年号の統一スクリプトは「明治、大正、昭和、平 成」のどれかがきて「1、1、一」……「6、6、六」と連続する場 合、それらを漢数字で受けたうえに「十」をくわえ、さらにそのつぎ にくる一から九までのどれかを前方参照してそのあとに付加するとい う方法である。 「大正」と「平成」は十年代まで、 「明治」は四十年代 まで、 「昭和」は六十六年まであればいいだろう。ここであげた元号 以外のものを扱うときは同様にすればよい。余談だが、わたしは元号 主義者ではないが、昭和二十年代とか三十年代という十年単位の時代 のくくりかたには歴史的意味があるし、また一九六〇年代という意味
第2章 テキスト一括処理の技法
123
での六〇年代(高度成長時代)とか九〇年代(冷戦の終わり)とかの くくりかたにも意味がある。昭和二十年代(一九四五年∼一九五五 年)と四〇年代、五〇年代ではちょうど五年ずつのずれがある。これ らを混在させて使うときなど、注意が必要だ。 月日の統一スクリプトもほぼ同様に解釈してもらいたい。この場 合、月は十二月までしかないので上記の 3 通りあれば足りるだろう。 2 行目と 3 行目を合成して s/[11一]¥([一二]¥) 月/十 ¥1 月/g としてもよいことはもはや説明の必要もないだろう。日のほうは三十 一日までを考慮すればよい。 さて、西暦年の統一スクリプトはこれらとはちがうので、すべて桁 の小さいほうから積み上げていく方式にした。数字を機械的に漢数字 に置換することには危険がともなうので、うしろに「年」がくる直前 の算用数字を「漢数字+年」のかたちにし、さらにその「漢数字+ 年」の前にくる算用数字をこれらと合成した「2 桁の漢数字+年」と し、同様に 4 桁になるまでくりかえすという手法である。まだるっこ しく感じられるが、いまのところこれを上回る記述は見いだせないの である。 ともあれ、こうしたスクリプトによって一冊分の世紀、年月日の表 記の不統一がほぼ完全に解消できるはずである。歴史書など、数字が ?用される原稿などにもおうおうにしてこうした不統一が見られるか ら、このスクリプトは強力な武器になるであろう。 2-5-9 ルビの修正 これまでの記述で主要な SED スクリプトは紹介してきたつもりだ
124
が、最後にひとつのモデルを提供してみよう。これはたまたまひとに 頼まれて考案したものだが、いろいろなケースを想定してスクリプト を考えるときの道筋を示してみようとするものである。 たとえば、以下のような文章がある。 「 @やまみち#山道$を登りながら、こう考えた。 智に働けば@かど#角$が立つ。@じょう#情$に@さお#棹$さ せば流される。意地を通せば窮屈だ。とかくに人の世は住みにくい。 住みにくさが@こう#高$じると、安いところへ引き越したくな る。どこへ越しても住みにくいと@さと#悟$った時、詩が生まれ て、@え#画$が出来る。 [ ……] 越すことのならぬ世が住みにくければ、住みにくいところをどれほ どか、@くつろげ#寛容$て、@つか#束$の@ま#間$の命を、束 の間でも住みよくせねばならぬ。ここに詩人という天職が出来て、こ こに画家という使命が@くだ#降$る。あらゆる芸術の士は人の世を @のどか◆#長閑$にし、人の心を豊かにするがゆえに@たつ#尊$ とい。 」 言うまでもなく、夏目漱石の名作『草枕』冒頭の部分である。ここ にあるのはいわゆる「写研方式」と呼ばれるルビ指定方式の変形であ る。ここには全角の「@」+文字(列)+全角の「 (◆)#」+文字 (列)+全角の「$」という記号と文字(列)の組合せである。例文 から対象になる組合せを抜き出すと、 @やまみち#山道$ @かど#角$
第2章 テキスト一括処理の技法
125
@じょう#情$ @さお#棹$ @こう#高$ @さと#悟$ @え#画$ @くつろげ#寛容$ @つか#束$ @ま#間$ @くだ#降$ @のどか◆#長閑$ @たつ#尊$ というふうにたった 4 行(パラグラフ)のなかに 13 ものルビ表記セ ットがある。これは「写研方式」の表記だと、最初の例は @山道#やまみち$ という形式になるのが普通だ。間違って逆になっている。つまり 「@」と「#」のあいだが親文字、 「#」と「$」のあいだがルビ文字 となるという組合せとなるのである。また「◆」が付いているのはル ビを均等割りする指定である。例文で挙げれば、これも @のどか◆#長閑$ ではなく、 @長閑#のどか◆$
126
となるべきところだろう。 さて、これをとりあえず「親文字(ルビ文字) 」というかたちにし たいというのが与えられた課題であった。そこで最初に考えた正規表 現による検索文字列のパターンを、 「 @ ¥(.+¥) # ¥(.+¥) $」 (@#$はすべて全角、あとは半角) とし、置換文字列を 」 (パーレン( )は全角) 「 ¥2(¥1) としたところ、見事に失敗した。最初の行はうまく置換できたが、2 行目など「角(かど) 」とならずに「智に働けば棹(かど#角$が立 つ。@じょう#情$に@さお)させば流される。意地を通せば窮屈 だ。とかくに人の世は住みにくい。 」となってしまったのだ。なぜか と言えば、 「.+」というメタキャラクタはひとつの行のなかで最長一 致しようとする性質をもつからで、この例の場合、最初の「@かど ……」からこの行で最後に「$」がある「……#棹$」までが検索対 象になってしまった。その結果、 「#棹$」の「棹」が「¥2」で受け られてしまい、「@かど……」の「@」以下が「¥1」で受けられて 「 () 」に入れられてしまったというわけなのである。3 行目と最終行 も同じ結果を示すことになったが、1 行目だけがうまくいったのは、 行のなかにこのルビ指定形式が 1 箇所の場合だけ、うまくマッチする しかなかったからである。ここでは検索文字列パターンの指定に問題 があったのである。ここではすべての文字列に該当する「.+」の指定 が間違っていたのであり、最後の「#棹$」以前の「@」も「#」も
第2章 テキスト一括処理の技法
127
「$」もすべて「.+」で受けられてしまったために生じた間違いなの であった。 それではどうするか。要するに、ここで考えておかなければならな いことは、「@」のつぎにくる「#」を確実に検索し、そのつぎの 「$」もまた見落とすことがないようにすればよいのである。そのた めには「.+」ではなく、 「#」 「$」の文字以外の文字(列)を指定す る方法、すなわち「¥([^ #]¥)」と「¥([^ $]¥)」を検索文字列に代入 すればよかったのである。つまり検索文字列は、 @ ¥([^ #]+¥) # ¥([^ $]+¥) $ とすればいい。ただ、これに「◆」のある場合も追加すれば、どうな るか。 「◆」があってもなくてもいいという意味では「◆*」とすれば よいし、もし出てくれば、そこまでが「¥1」で受けられるべき最初 の文字(列)ということになるわけだから、 「¥([^ #]¥)」ではなく、 「¥([^ ◆#]¥)」とし、そのうしろに「#」だけではなく「◆* #」を 入れておけばよい。つまり、最終的な検索文字パターンは、 @ ¥([^ ◆#]+¥) ◆* # ¥([^ $]+¥) $ でよかったことになる。ちなみにこの種の例文のあるテキスト全文で 1283個のルビ指定の組合せを一瞬で一括変換することもできた。こ れは Jedit4 のようなテキストエディタでもさきほどの検索文字列と 置換文字列の指定で簡単に実現できるのである。これを SED スクリ プトのかたちで書くと、
128
●スクリプト実例 21 「 # ルビを修正する s/ @ ¥([^ ◆#]+¥) ◆* # ¥([^ $]+¥)$/¥2(¥1)/g」 となるのである。 以上のような正規表現を駆使したパターン検索と置換をひとつひと つ考え的中させていくことは編集作業効率をどれほど上げてみせるこ とか。あとはそれぞれの編集者が実践的に利用するなかで実感として 感じてくれればいいのである。
2-6 その他の SED 活用法 SED のコマンドには既述した一括置換のための y コマンド、s コ マンド以外にも多数のコマンドがある。使用するツールによってもサ ポートされているものとされていないものがさまざまにあるようで、 26種類(あるいは28種類)のコマンドがある。このなかには[出版の ためのテキスト実践技法]にはほとんど出番のないものも多いが、知 っておくと便利なものもある。くわしくは SED に関する本あるいは それぞれのツールのマニュアルを見てもらいたいが、ここでは[出版 のためのテキスト実践技法]にとって最小限必要と思われるコマンド とその具体例を紹介しておきたい。 また、SED には起動時オプションというものがあり、コマンドラ イン入力などで SED を起動するときにスクリプト(あるいはスクリ プトファイル)を指定したり、出力の方法を指定したりする。またこ れと関連することでもあるが、s コマンドには置換結果の表示や置換 プロセスを指定するフラグというものもある。さらには、SED コマ
第2章 テキスト一括処理の技法
129
ンドを特定の場所において走らせたり走らせなかったりする「アドレ ス」という指定の方法がある。 これらのさまざまな SED の機能をうまく複合させることによって 原稿の整理が驚くほど効率よく進められることができるようになるの だ。 あらためて整理してみよう。SED によるテキスト一括処理に必要 なセットは以下の 3 つから成り立っている。 SED 1 コマンド(+ オプション、フラグ) スクリプトまたはスクリプトファイル(アドレス指定をふく 2 む) 処理対象ファイル 3 この処理結果を別個に出力ファイルとしてとりだすことができれ ば、どんなツールを使おうがかまわない。あとはそれぞれの処理結果 がいかにうまく目標を達成することができたかという問題の確認と、 方法のたえざる改訂があるのみである。 2-6-1 SED の起動時オプション SED を自在に使いこなすには使い勝手のいいツールがあるに越し たことはない。Macintosh 用には SedMac といったすぐれた GUI (Graphical User Interface)をもつツールはあるが、Windows 系の ツールはそれにくらべるといちじるしく見劣りする。 とはいえ、SEDという UNIX系のツールを使うには本来はコマンド ライン入力の方法がオーソドックスであることはこれまでも見てきた とおりである。SedMac においてももちろんコマンドライン入力の手 法は実現できる。その手法をついでに簡単に説明しておこう。 「2-1-3 SED のインストール」のところで SedMac をふつうにインストール した場合、SedMac 本体は「Macintosh_HD:SEDS:SedMac_1.0.1」と
130
いう階層に置かれているので、これをダブルクリックで起動する。(*) ここで「Environment」欄で作業フォルダの場所とスクリプトファ イルをおいてあるフォルダ名を設定しておくと、あとでパスを省略で きるので入力が必要だ。作業フォルダ名は「CD=Macintosh HD: SEDS:SedMac 1.0.1」 、スクリプトファイルのあるフォルダはたとえ ば「SEDFILE=Macintosh_HD:SEDS:SedMac_Interface 1.0:Scripts」 などと記述し、処理対象ファイルやスクリプトファイルをそれぞれの フォルダに作成またはコピーする。【図26】なお、SedMac では Windows とはちがってディレクトリ階層を区切るセパレータには円 記号「¥」ではなく半角コロン「:」をもってするので注意。また、 SedMac のコマンドライン入力では MS-DOS のようにファイル名を とくに短くする必要はない。ただタグ付き正規表現の作動は不十分で しかないのが残念だ。 Windows 系ではいまのところ MS-DOS プロンプトという MSDOS のエミュレーション・ツールが案外いちばん使えるかもしれな い。既述したように、これはもっぱらコマンドライン入力のためのツ ールであり、MS-DOS という性格上いろいろ制約もあるが、ドラッ グ&ドロップが使える点がともかく便利なのである。あとは慣れるだ けだ。 さて、そうしたコマンドライン入力をするうえで、SED ツールを 起動させるとともにいくつかのオプション指定をすることによって SED の働きを方向づけることができる。ツールの種類によってもさ まざまなヴァリエーションがあるが、主要なものはほぼ共通してい る。それらについて以下に簡単に説明しておこう。 なお、コマンドラインの入力は、たとえば MS-DOS プロンプト上 では
第2章 テキスト一括処理の技法
131
図2 6
C:¥Windows>sed_ 各種オプション _ スクリプト(ファイル)_ 編集ファイル _>_ 出力ファイル というふうに記述する。(**) なお、オプションはかならず半角ハイフ ンのうしろに半角小文字でつづける。 まず -e オプションと -f オプションは、そのあとにつづくスクリプ ト(編集コマンド)の記述またはスクリプトファイルを指定する。 -e オプションはそのあとに半角スペースをあけてスクリプトをダイ レクトに記述する。複数のスクリプトを「;」で区切ることによって 一度に記述することができるツールもある。ただし MS-DOS の制約 がいろいろあり、処理対象ファイル名は 8 文字 +3 文字の拡張子のい わゆる「8.3形式」にしなければならないうえに、コマンドラインの 記述は全体で127文字以内にしなければならないので、あまり長いス クリプトの記述はできない。-e オプションは簡単なコマンドあるいは
132
その場かぎりのコマンドでテキスト処理をしようとするときに用いる ものと言えよう。またほかにオプション指定がなくスクリプトがひと つだけの場合は「-e」の記述を省略することができる。 -e オプションにくらべると -f オプションは長くて複数行におよぶ編 集コマンドを収録したスクリプトファイルそのものを読みこむことが できるので、大がかりなテキスト処理に向いている。スクリプトはな るべくファイル化して保存しつつたえず改訂をくわえていくようにし たい。-f オプションも同時にいくつかのファイルを指定することがで き、指定された順に処理を実行する。また -e オプションと -f オプシ ョンを混合しても使用できる。 -i オプションはそのあとに半角スペースをあけて入力リストファイ ルからファイル名を順に取りだし、順番に処理を実行したり、-a オプ ションまたは -o オプションのようにそのあとにつづく出力ファイル に追加出力または上書き出力するように指定すできるツールもある。 -g オプションのようにすべての s コマンド(置換コマンド)にたい して g フラグを付けて処理することを指示するもの、-n オプション のように出力を抑制してしまうもの(特定のコマンドと連}して出力 する、使い方しだいでは役に立つオプション) 、などいろいろある。 これらがすべての SED ツールで機能するとはかぎらないので注意が 必要だ。 (*)SedMac でのコマンドライン入力をよく使うのであれば、デスクトップあるいは 手ごろなランチャーソフトなどにエイリアスを入れておくと話が早い。 (**) ここでも「_」は半角スペースを示す。 「_>_ 出力ファイル」は別ファイルに出 力するとき以外は不要である。またファイル名は原則的にフルパス表示が必要で ある。
第2章 テキスト一括処理の技法
133
2-6-2 s コマンドに付加するフラグ [ 出版のためのテキスト実践技法]で SED ツールをもちいる場合、 もっとも有用なコマンドが s コマンドであることはこれまで記述して きたとおりである。s コマンドの s は「substitution」 (置換)から取 られたものだろうが、テキスト一括処理の基本はほとんどすべて検索 と置換によるものだから、このコマンドがうまく使いこなせれば目的 の大半は達成できるのである。 この s コマンドに特有のものとしてフラグという一種のオプション 指定がある。これも一種のコマンドなのだが、s コマンドのパターン 検索と置換文字列の指定にたいして、その置換方法や出力方法を指定 することができる。使いかたによっては便利なオプションであるの で、簡単に紹介しておこう。既述したように s コマンドの書式は s/パターン検索/置換文字列/フラグ という形式で、通常は最後に g フラグを付けることで処理対象ファ イル全般に検索と置換をおこなうことができる。この最後のフラグを 指定しないでおくと、1 行中で初出のものしか置換しない。 おもしろいのは p フラグで、これは置換した行があったらその行 を出力するというもので、どこで置換がなされたかがわかるようにす ることができる。置換のあった行を再度出力するので、その行は 2 行 になる。この場合、既成の g フラグ付き s コマンドのスクリプトフ ァイルを使うときは g フラグを p フラグに変更して使うことになる。 コマンド行が多数の場合はエディタなどで正規表現をもちいて 「/g$」を「/p」に一括置換すればよい。 この s コマンドの p フラグを使って置換した行の一覧を作ること も可能だ。どこをどう修正したかのリストを作ることで、著者などに
134
安心してもらえるといった利点がある。このためには前項で述べた SED の -n オプションと p フラグを使うのである。-n オプションとい うのは SED の作業領域に読みこんだ行の出力を抑制するという妙な 機能だが、じつは p フラグというオプションを使うと、-n オプショ ンにもかかわらず置換行を出力するという機能を生かせるために、置 換行だけが出力されることになるのである。コマンドラインで入力す るには sed_-n_-e_s/パターン検索/置換文字列/p_(処理対象ファイル 名)_>_ 修正 .new といった形式になる。 「-e_s/ パターン検索 / 置換文字列 /p」のかわ りに -f オプションで p フラグ付きのスクリプトファイルを指定する ことはもちろんできる。また「_>_ 修正 .new」でわざわざファイル に出力させないでウィンドウに出力させることもできるので、この出 力先の記述は省略してもよい。また出力ファイル名はなんであっても かまわないし、パス名を入力すればどこにでもファイルを作ることが できるのは言うまでもない。 2-6-3 コマンド処理の対象行をアドレスで指定する SED はテキストの一括処理を高速かつ的確に実現するが、テキス トの内容によっては部分的にこの処理を実行しないほうがいい場合も ある。たとえば引用文などのように、地の文とは異質の内容のものが テキストにふくまれている場合、地の文と同じ処理をしてはまずいこ とがある。他人の文章を引用する場合、とりわけそれが日本語による オリジナルからの引用の場合には、地の文には適用してもかまわない 表記統一なども、原文の尊重という観点から適用することは不適切に
第2章 テキスト一括処理の技法
135
なる。文学作品などは漢字の使いかたひとつとっても重要な意味がふ くまれていると考えるべきだから、こうした部分にはスクリプトを適 用させない処置が必要である。 それにはどうするか。特定の行だけにコマンドを適用させるという 場合と、特定の行以外のところだけコマンドを適用させるということ の 2 種類が考えられる。つまり図の部分と地の部分のどちらかにのみ コマンドを適用させることができなければならない。テキストのなか になんらかの目印が必要であり、 「アドレス」と呼ばれる位置指定を することによってこの作業を実現することができる。 こうしたアドレス指定をともなう SED のコマンド処理の基本書式 は アドレス { スクリプト (スクリプト) } という書式である。1 行目のアドレス指定にすぐつづけて半角の「{」 を入力してすぐ改行し、スクリプトを 1 行ごとに入力しては改行し (1 行でも複数でも可) 、最後に半角の「}」で閉じる。このアドレス の直後の「{」と最終行に単独でおかれた「}」のあいだのスクリプト を指定されたアドレスにたいして実行せよ、という指示なのである。 「{ }」はコマンドの一種と言える。 アドレス指定のひとつの方法はテキストの何行目 (*) かを直接指定 する方法である。たとえば n 番目の行(段落)だけをアドレス指定 するときには
136
n{ スクリプト } とする。つまり最初の行を指定したいときには n = 1 となる。また n 行目から m 行目までをアドレス指定するには n,m{ スクリプト } とする。つまり最初の10行を指定したいときには、n = 1, m =10で ある。テキストの行数がわかっているときにはこうした書式をとるこ とができる。なお、行末という特殊な位置をあらわす正規表現は「$」 であるが、アドレス指定で使うときにはこのままのかたちで最終行を 示すので間違えないようにする必要がある。この場合は ${ スクリプト } でいいのである。 さて、長いテキストを SED で処理しようとするときに、いちいち 行数を調べていられないのが普通だろう。そうしたときにアドレス指 定に一般的に使われるのが正規表現である。この正規表現を使った書 式は
第2章 テキスト一括処理の技法
137
/正規表現/{ スクリプト } というかたちになる。すなわち半角のスラッシュ「/」で囲むことで 正規表現によるアドレス指定であることを示す。またある正規表現を ふくんだ行で始まり、別の正規表現をふくんだ行で終わるアドレス指 定の方法は /正規表現/,/正規表現/{ スクリプト } でいい。あるいは何行目かがわかっている行から始まり、ある正規表 現をふくむ行までを指定することもできる。つまり 1 行目を「n,/正 規表現/{」とするだけである。その逆に「/正規表現/,n{」という指定 も可能だ。 それではどんなふうにこのアドレス指定を使ってテキスト処理をす るかを例示してみよう。たとえば行頭に全角または半角の算用数字で 始まり、つぎに「章」の文字がつづくような行を見つけたら、その前 に「 【改ページ】第」という文字を付加しようというような例である。 つまり章見出しを改ページ指定しながら「第1章」∼「第 10 章」と いうふうに変更しようというような場合である。この場合のスクリプ トは以下のようになる。 ●スクリプト実例 22 「 # 章見出しを変更し改ページ指定する
138
/^[1-90-9]+ 章 /{ s/^¥([1-90-9]+¥) 章 /【改ページ】第 ¥1 章 /g }」 これをさらに高度化すると、アドレスにたいするコマンド処理では なく、アドレス以外の場所でのコマンド処理、たとえば引用文のとこ ろだけテキスト一括処理をしないように指定することができる。この 場合は、半角の反転演算子「!」をアドレスの直後に付加してスクリ プトを前置修飾することによって、正規表現で指定した行(の範囲) 以外にスクリプトを実行させることができるのである。たとえば、す べての引用文にたいして冒頭に「< 引用 >」を、最後に「 引用 >」 と入力してあり、この開始タグと終止タグ (**) を目印に、これ以外の 全文にたいしテキスト一括処理をしようとするならば、つぎのような スクリプトで実現できる。 ●スクリプト実例 23 「 # 引用文をテキスト一括処理の対象外とする /^<引用>/,/<¥/引用>$/!{ s/敢えて/あえて/g s/¥([^ 言き判文]¥) 明か ¥([^ さしすせそりる]¥)/¥1 明らか★ ¥2/g s/辺り/あたり★/g [ 以下略] }」 言うまでもなく、この[以下略]にはコマンドを必要なだけ並べて いく。こうすることによって引用文の多い文章などの一括処理も可能 となるのである。
第2章 テキスト一括処理の技法
139
(*) この場合の行数はあくまでも論理行、つまり段落ごとの数である。 (**) これらの割付けにかんするタグ指定の方法については次章で説明する。
2-6-4 SED の各種コマンド [ 出版のためのテキスト実践技法]における SED の活用という側面 においては大半が s コマンドの活用であるということを 2-6-2 で述べ たが、知っておいて損のないコマンドもいくつかある。その前に SED の働きの定義づけをもういちど確認しておくことにしよう。 「Sed LOGOS 版 2.42」のマニュアルによれば、 「一般に sed は、入力 された 1 行を現テキストバッファにコピーした後、これに対して "address" の適合するすべてのコマンドを適用し、標準出力に出力し てバッファをクリアすることを繰り返します」ということになる。ま た「ホールドスペースと呼ばれる第 2 のバッファがあることを知るの も有用でしょう。このホールドスペースには、現テキストバッファか らテキストをコピーしたり、また、ホールドスペースから現テキスト バッファにコピーを追加したり、また交換したりすることができま す」という点もとりあえずおさえておきたい。つまり SED はバッフ ァというメモリ上で 1 行(またはコマンドによっては複数行)のデー タを読みこんでは指定されたコマンド処理をほどこし、クリアしては つぎの行を読みこんで同じ作業を繰り返していくというツールであ り、通常はパターンスペースと呼ばれる作業領域への 1 行ごとのコピ ー(入力)と処理後の出力をするバッファ・メモリのほかに、コマン ドによってはデータを一時保管することのできるホールドスペースを 利用することのできるツールなのである。 すでにスクリプト実例を挙げて紹介した y コマンド、s コマンド以 外では、削除コマンドとしての d コマンドなどは役に立つコマンド
140
かもしれない。というのはこのコマンドは改行マークをふくむ 1 行全 体を削除することのできるコマンドだからである。たとえば無駄な空 行が多いデータからこれらの空行を全部削除しようとして s コマンド をもちい、 /^$/{ s/^$//g } としても、実際には空行は削除されない。なぜなら s コマンドが検 索・置換の対象にしているのは改行マーク以前の部分、つまりなにも のも対象にしないのである。これを実現するのが d コマンドなので ある。 /^$/{ d } あるいは簡潔に /^$/d とするだけでいい。こうした処理をコマンドラインで実行させるには sed_-e_/^$/d_ 処理対象ファイル名 _>_ 修正 .new とでもすればいい。この d コマンドを反転演算子「!」とともに使う
第2章 テキスト一括処理の技法
141
と、たとえば目次などをファイルから抽出することができる。たとえ ば中見出しに「2-1」 「2-2」……、小見出しに「2-1-1」 「2-1-2」……な どを使っている本章のようなテキストからこれらの見出しを抽出する には /^2-[0-9]/!d で十分である。これをコマンドラインで指定するには sed_-e_/^2-[0-9]/!d_ 処理対象ファイル名 _>_ 修正 .new でいい。これは「2-6-2」で -n オプションと s コマンドの p フラグを 組み合わせた処理について述べたのと同類の機能をもつスクリプト で、現テキストバッファの内容を(-n オプションにもかかわらず) 出力するという p コマンドとじつは同じものになる。つまりコマン ドライン入力では sed_-n_-e_/^2-[0-9]/p_ 処理対象ファイル名 _>_ 修正 .new でもいいのである。 つぎに挙げておきたいのは、指定された文字列を特定の箇所に挿入 あるいは追加する i コマンド、a コマンドである。たとえば手紙の冒 頭(1 行目)に「ことしも残るところあと旬日となり、お忙しいこと と存じます。 」という一文を挿入し、最後に「2001年12月20日 西谷 能英」と追加したいという場合のスクリプトは
142
●スクリプト実例 24 「 #i コマンド、a コマンドで挿入と追加をする 1{ i ことしも残るところあと旬日となり、お忙しいことと存じます。 } ${ a2001 年 12 月 20 日 西谷能英 }」 という記述で実行できる。こうした挿入コマンド、追加コマンドは定 型文書などにはとくに役に立つだろう。 このほかのコマンドには[出版のためのテキスト実践技法]に役立 ちそうなものはあまりない。 「:」を使うラベルというコマンドは b コ マンド、t コマンドとセットになってその位置で「分岐」という働き をする。バッファメモリの内容を第 2 の作業領域たるホールドスペー スにコピーしたり置換や追加したり、さらには交換したりする g コ マンド、G コマンド、h コマンド、H コマンド、x コマンドといった さまざまなコマンドもあるが、やや専門的すぎて実用性に乏しい。 最後にひとつだけ N コマンドを挙げておこう。これは SED の働き のなかでは特殊な意味をもつコマンドである。通常 SED は 1 行ずつ バッファにコピーを送りこむのだが、このコマンドを使うと改行マー クをはさんで 2 行目を強制的に読みこんでくれるのである。ただし 2 行単位で検索したり置換したりするには ¥n (¥r) を使えるエディタの ほうが簡単なので、N コマンドはとくにおすすめはしない。
第2章 テキスト一括処理の技法
143
2-7 テキストエディタでのテキスト処理 これまで SED という UNIX 系のツールを Macintosh や Windows 上に移植した各種ツールを使って、さまざまなテキスト処理をおこな う手法や実際のスクリプトを見てきた。これらの一括処理は簡単なも のならその場でスクリプトを作成して実行し、複雑だったり大がかり だったりする処理はスクリプトファイルに保存しておいたものをファ イル指定によって実行させるというものだった。これらの処理のう ち、SED 独自のコマンドはともかく、正規表現を使った検索と置換 といった、実際に SED においてももっとも?繁に使われるコマンド は、エディタにおいてもある程度以上に実現できるのである。たった 1 種類の検索・置換でも、タグ付き正規表現をうまく使えば、いちど でかなり大量の置換処理ができる場合もけっこうある。このあたりの ことは『出版のためのテキスト実践技法/執筆篇』の「3-7-2 テキス トエディタによる検索と置換の基本テクニック」でも簡単に触れた。 以下では、わざわざ SED を導入しなくても、エディタでできる範 囲の検索・置換をできるだけ高度なレベルで実行してみようと考える (かもしれない)ひとのために Windows 用の秀丸と Macintosh 用の Jedit を例にとって簡単な解説をしておこう。 2-7-1 秀丸エディタの技法 秀丸エディタは Windows 系のテキストエディタのなかでは抜群の 人気とシェアを誇っているエディタである。秀丸の人気の高さは豊富 な機能と動作環境やキー操作のカスタマイズ性の高さなどによる。こ れに匹敵するのが縦書き入力もでき細かい印刷指定もできる QX エ ディタであるが、一般的な使い勝手の良さで秀丸に一歩を譲るよう だ。
144
この秀丸エディタは検索と置換にかんしても正規表現を、v.3.0 か らはタグ付き正規表現もサポートしている。これによって既述した SED の編集コマンドに該当するパターン検索とそれに対応する置換 文字列を指定し、変換することができる。ただ SED のように大量の コマンドを同時に走らせてテキスト全体を一気に変換するような荒技 はできない。 秀丸エディタで検索と置換をおこなうためには、できれば以下のよ うないくつかの基礎知識と条件設定を準備しておきたい。 まず検索と置換メニューの呼び出しのショートカットを覚える。 1 検索:Ctrl+F 置換;Ctrl+R ちなみに、検索文字列を選択(単語ならダブルクリックで選択して もいい)し、検索または置換メニュー呼び出しのショートカットを押 すと、選択文字列を対象としたメニューが呼び出せる。いちいちコピ ー&ペーストするのは面倒だ。 検索にも置換にも「下候補」と「上候補」というコマンドがあ 2 る。検索対象を順に見ていくときに使う検索系コマンドで、重要な働 きをするので、デフォルトで以下のショートカットが割り当てられて いる。 下候補:F3 上候補:Shift+F3 これでもいいが、 「上候補」はもっと簡単に「下候補= F3」と並べ て「F4」キーを割り当てるほうが覚えやすいし操作も楽である。そ のためにはキー割り当てを変更する必要がある。その方法を以下に記 しておこう。 「その他」メニュー∼「キー割り当て」を選択すると開 かれるダイアログで、左側の「キー」欄の「F4」をクリックする。 デフォルトではなにも割り当てられていないので、右側の「コマン
第2章 テキスト一括処理の技法
145
図2 7
ド」欄からプルダウンメニューで「検索系」を選び、そのなかの「上 候補」をクリックして「OK」ボタンを押す。ついでに「保存」ボタ ンを押してたとえば「default.key」を選び「OK」を押すと上書き保 存する。これでいつでもカスタマイズしたキー割り当てを読み込むこ とができるし、一覧表を作成することもできる。 【図27】 検索と置換のダイアログのラジオボックスで「次の秀丸も続けて 3 検索(置換) 」のチェックを入れておけば、マルチファイル検索がで きる。 「置換の前に確認」のチェックを入れておけば、 「全置換」を選 んでもひとつひとつ確認しながら置換したりパスしたりすることがで きる。文字が大文字か小文字かはっきりしないときには「あいまい検 索」のラジオボックスにチェックを入れる。 「大文字/小文字の区別」 と「単語の検索」ボックスは必要におうじてチェックを入れる。 「正 規表現」のボックスにチェックを入れると、前記 2 つのラジオボック スがグレートーンになり、選択不可になる。 ( 【図 5】参照) 検索パターンで常用する正規表現の記述式などはできればなんら 4 かのかたちで反復使用できるようにしておきたい。たとえば半角英数 文字のパターンは「[A-Za-z0-9]」であり、全角スペースを除く和文は 「[、- 煕]」である。これらの文字パターンをたとえば「[A-Za-z0-9] = えいすう」 「[、- 煕] =わぶん」などと単語登録する。あるいは保存の
146
きくクリップボード・ユーティリティに保存登録して、たえずそこか ら引っぱり出せるようにする。または秀丸のクリップボード履歴から 引き出すようにする。 【図28】ただしこれはパソコンの電源がオンに なっているあいだだけしか記憶されない。検索または置換ダイアログ で「検索」欄にカーソルがある状態で Alt+ 下向き矢印キーを押すと 検索文字履歴がプルダウンで示される。これは保存されるので使え る。いずれにせよ、よく使う検索パターン文字列はなんらかのかたち で保存して再利用するようにつとめるべきである。とりわけ正規表現 で複雑な間違いやすいパターン指定をするときなどに便利である。 5 『出版のためのテキスト実践技法/執筆篇』で秀丸はタグ付き正規 表現をサポートしていないと書いたが、実際は v.3.0 からサポートす るようになっている。ただしこれは秀丸独自の書式になっているので 注意が必要だ。前方参照する文字列パターンは「¥f」と「¥f」で区切 るようになっている。たとえば半角英数文字のパターンは「¥f[A-Zaz0-9]¥f」で、それを置換する文字列は「¥1」 「¥2」……でタグ付き正 規表現として受けられるようになっている。秀丸用にタグ付き正規表 現の記述を変更しなければならないが、とにかくこれはテキスト処理 にたいしてかなり強力な武器になっている。もうひとつ、改行コード (¥n)をふくんだ複数行の検索が可能になっているのも秀丸の強みの ひとつになっている。たとえば、空行が 2 つ続く箇所を探すには 「.¥n¥n¥n.+」で検索すればいい。最初の「.¥n」は文字のある行の最 後の部分を示し、そのあとに「¥n」が 2 つ続き、さらに文字列が続 くというパターン指定である。秀丸ではタブコード(¥t)も検索可能 である。 こうして秀丸エディタだけでも、手間はかかるが、ほとんどの検 索・置換処理は可能であることになる。あとはパターン検索文字列を うまく書けるように工夫することである。
第2章 テキスト一括処理の技法
147
図2 8
2-7-2 Jedit の技法――複数一括置換マクロと JMultiReplace Windows 系の秀丸エディタと双璧をなすのが Macintosh 用の Jedit v.4 であろう。ここでも秀丸とおなじく、テキスト一括処理の検 索と置換をおこなうための基礎知識と条件設定を準備しておこう。 まず検索メニューの呼び出しのショートカットを覚えること。秀 1 丸とちがって Jedit では検索メニューと置換メニューは同じダイアロ グを使う。これは LightWayText でも YooEdit でも同じでいずれも 「Command+F」でいい。秀丸のように検索文字列を選択した状態で ショートカットで検索・置換メニューを呼び出しても別に自動的に検 索文字列として貼り付けられるわけではない。 ( 「2-5-1 漢字表記の統 一をとる(2) 」の【図 23】 【図 24】を参照) Jedit 2 の検索は「検索条件の指定」ダイアログで「検索」ボタン をクリックするか、Command+G で次の検索をする。前を検索する には Shift+Command+G か、Shift キーを押しながら「検索」ボタン をクリックする。検索された文字列は反転した状態になっているの で、 「置換 :」欄で置換文字列を指定している場合には、 「置換」ボタ ンをクリックするか Command+R でいい。 「置換&検索」ボタンを
148
クリックすると、置換しながらつぎの検索対象にジャンプするので効 率はいい。Command+L というショートカットでも実行できる。ま た「ファイル」メニュー∼「初期設定」∼「キーコマンド」でカスタ マイズすることもできない。一般に Jedit のキーカスタマイズは秀丸 にくらべると種類がいちじるしく限定されている。 Jedit 3 の「検索条件の指定」ダイアログではほかに「一括検索」 と「一括置換」ができる。 「一括検索」ボタンをクリックすると、別 ウィンドウで「Mark List」が立ち上がる。検索文字列を先頭に行末 までの検索結果が表示される。どの 1 行でもダブルクリックすれば該 当箇所にジャンプする。(*) このリストを見ながら該当箇所だけを選 択的に呼び出して修正したり確認したりすることができる。なお、検 索であれ一括検索であれ、 「書類を巡回」ラジオボックスにチェック を入れておく必要がある。また「先頭へ検索」ラジオボックスをチェ ックするとカーソル位置から逆順に検索する。 また 4 Jedit ではマルチファイル検索ができる。 「検索条件の指定」 ダイアログの「置換 :」欄の下のアイコンをクリックすると、マルチ ファイル検索用のダイアログが開かれる。右側にある「追加」ボタン をクリックすると、 「ファイル / フォルダの追加」ダイアログが開か れ、そこから必要なファイルやフォルダをクリックして選択すると、 チェックマークの付いたファイル(ファイル一覧)が現われる。ここ にいくつでも検索対象ファイルを指定することができる。 「登録」ボ タンをクリックするとファイルセット名の指定ができる。すでにファ イルセットが登録してあれば、 「ファイルセット」のボタンのプルダ ウンメニューから登録セットを呼び出すこともできる。継続中の仕事 など、このファイルセットにしておくと便利である。用がすめば、 Option を押しながらファイルセット名を選択するとセットごと削除 される。 【図2 9】
第2章 テキスト一括処理の技法
149
図2 9
Jedit 5 ももちろん正規表現をサポートしている。 「検索条件の指 定」ダイアログで「正規表現」ラジオボックスにチェックを入れて、 「検索 :」欄に正規表現の書式を記述する。この書式は秀丸などとまっ たく同じでよいが、タグ付き正規表現では秀丸のような特殊なルール はなく、 「¥(」と「¥)」 (または {})ではさまれたパターン検索文字列 は「置換 :」欄で「¥1」 「¥2」……で受けられる。(**) なお、秀丸のと きもそうだが、こうした正規表現の記述は複雑でややこしいものが多 いから、なるべく単語登録するか、CopyPaste のようなクリップボ ード・ユーティリティを利用して保存しておきたい。 最後に 6 Jedit の決定的な機能強化は、JMultiReplace というフリ ーウェアのツールを同居させることによって複数一括置換ができるよ うになったことであり、ここでも正規表現とタグ付き正規表現による 置換が可能になったことである。これは一度に200種類までの複数文
150
図3 0
字列の置換が可能なので、ほとんど SED の s コマンドのスクリプト ファイルと同じぐらいのテキスト一括処理が可能になったと言ってよ い。これはほかのテキストエディタでも未装備の強力なツールであ り、じつはこれさえあれば、s コマンドに対応する作業にかんするか ぎり SED をどうしても使わなくてもいいぐらいなのである。ただし やや安定性に欠けるうらみがあるのはやむなしか。この JMultiReplace のインストールは以下の通り。JMultiReplace フォル ダを Jedit4.0 フォルダにコピーするとともに、そのなかの「複数一括 置換」というスクリプト編集プログラムのアイコンを Jedit4.0 フォル ダのなかの Macro Menu Items フォルダにコピーして再起動するだ けである。すると「マクロ」メニューのなかに「複数一括置換」が選 択できるようになり、これを選択すると「複数文字列の置換」ダイア ログが開かれるのである。このリストは保存したり読みこみができる ので、再利用が可能である。 【図3 0】 (*) この「Mark List」を利用して、Jedit のどれでもいいファイルの必要な箇所に マーク(文字列を選択して Command+M で指定)をしてデスクトップにファイ
第2章 テキスト一括処理の技法
151
ル保存しておくと、このリストファイルをブックマークとして該当する箇所にフ ァイルオープン&ジャンプすることができる。この機能は秀丸にも「検索」メニ ュー∼「マーク一覧」でもサポートされている。 (**)『出版のためのテキスト実践技法/執筆篇』で Jedit ではタグ付き正規表現がで きないと記述したのは誤りである。
152
第 3 章 テキストの割付け処理から入稿まで
3-1 編集処理の基本理念 第 2 章でファイルの技術上の欠陥を是正する作業や用字用語の統一 の処理のためのさまざまな具体的方法の説明はひとまず終了した。な かでも SED によるテキスト一括処理の方法がどれほど編集作業の効 率アップにつながるかは理解してもらえたことと思う。ここではそれ らの処理をふくめて、印刷所への入稿にいたるまでの編集プロセスを 総括的に説明しておこう。 ところで、本書の最大の眼目は、原稿を印刷所に入稿するまえに、 ゲラになったときにむだな赤字が出そうな箇所を事前にどれだけ効率 よく修正し、なおかつ印刷所のオペレーターの手を経ないで容易にス ピーディに、たとえ複雑な組版であっても実現してしまえるか、とい う点にある。 そのためには著者の執筆段階での理解と協力がいかに大切であるか がその出発点であることは『出版のためのテキスト実践技法/執筆 篇』で述べたとおりである。しかし、この点は一部のひとがしたよう に誤解してもらいたくないが、著者に執筆にあたってこうした入力技 法の習得を要求しているわけではない。パソコンにかなり精通してい
第3章 テキストの割付け処理から入稿まで
153
るひとからどうしたらいいのかよく知らない初心者まで、こうした [出版のためのテキスト実践技法]の基本を理解してほしいというこ とは述べた。なぜならパソコンに精通した(つもりになっている)ひ との場合は、必要もないのにみずからの入力技術を見せたがる傾向が あるからだし、初心者はただただどうしたらいいのかわからないか ら、 [出版のためのテキスト実践技法]の基本をたとえ一部分でも理 解してもらえば、それだけでもなにも知らないよりははるかに意味が あるからである。それ以外はむしろ編集者のバックアップの問題であ ることを強調したはずである。 いずれにせよ、問題は最終的には編集者の編集技法への意欲と理解 の問題に帰着するのである。だからこそこの『出版のためのテキスト 実践技法/編集篇』が書かれる意味があったのだが、編集者には著者 ができないテキスト処理および編集処理をマスターする必要があるの である。そうしなければ、いつまでたってもファイルの内容に手を加 えることもできないし、結局は印刷所まかせということから脱却でき ないだろう。 しかし、ここでも勘違いされては困るのは、編集者が印刷所の仕事 までしなければならないのか、というよくある疑問である。たしかに 編集者がファイルの処理にいつまでも手間どっているようではこうし た的外れな疑問に絶好の口実を与えてしまうことになる。そうならな いためには、編集者はテキストを編集処理する最小限の技術の習得と そのために必要なツールをそろえるぐらいの努力を怠ってはならない のは言うまでもない。この『出版のためのテキスト実践技法/編集 篇』はべつに魔法を可能にするのではなく、理に適った技法の可能性 がパソコンをつうじて存在することを主張しているだけである。 さて、あらためて編集者のテキスト編集処理とはなにかを整理して みよう。
154
すでに SED をつうじて用字用語の統一やファイル技術上の欠陥を 是正するテキスト一括処理の方法は述べてきた。これだけでもゲラに してから以後の赤字を大幅に減少させてきているはずである。しかし 何度でもくりかえし使えるスクリプトを増補し改訂することは次の仕 事をいっそうやりやすくするために必要なことは当然だが、これらの 一般的で、どの本にもある程度は共通するスクリプトだけで解決がつ くとはかぎらない。ケースバイケースでさまざまな特殊な処理を必要 におうじておこなわなければならないこともあるだろう。その内容に よっては SED で新しいスクリプトを工夫することもあるかもしれな い。ここまでついてきてくれた読者なら、自分でもなんとかスクリプ トを編み出すことができるようになっているかもしれない。SED の 場合は通常はファイルの上書きをすることはないから、試行錯誤でス クリプトがうまく機能するようになるまでテストをかさねてみる必要 もあろう。うまくいけば、結局そのほうが編集処理が早くなるし、な によりもその快感は替えがたい。あとで再利用もきく。あるいはあま り複雑な問題でなければエディタの検索・置換メニューでも十分であ る。 とにかく通読の過程のどこかで修正すべき問題点に気がついたとこ ろで、さかのぼって全文にわたる修正処理をすることができるのがこ の[出版のためのテキスト実践技法]の具合のいいところなのであ る。編集者は原稿の通読や検討にあたって、さまざまな水準の問題を 同時多発的に考慮していかなければならないから、なにも問題になる ようなパターンがその初出箇所で見出されるとはかぎらない。なんと なく気になっていて、最後のほうでそうしたパターンをやはり変更し ようと判断するにいたる場合だってある。著者から一括して変更でき ないかと頼まれることだってけっこうあるのだ。たとえばある大著で 「彼」という表記を「かれ」というひらがな表記に変更したいという
第3章 テキストの割付け処理から入稿まで
155
申し出が仮ゲラの最後の段階であって、数千箇所におよぶ修正を一挙 におこなったこともある。こうした作業を人間の目と手をつうじでお こなおうとすれば膨大な時間がかかるうえに見落としも100や200は出 てきてしまうにちがいない。そもそも本ゲラになっていたらそこまで は実際上できないというのが普通である。残念ながらあきらめざるを えないということになりかねないのである。 ともかくこうした後処理をする場合、未読の部分はこうした一括処 理をしておいても、そこを読む段階ですぐ見分けがつくからあまり気 にすることはないが、誤変換の起こりそうなパターン処理は既読部分 にかんしてはひとつひとつ確認してから置換をするようにしたほうが 安全である。だからなるべく早めにこうしたパターンを見つけるよう にすることもあとの作業が快適かつ高速になるわけである。 しかし編集作業はこうしたテキスト一括処理だけでは十分ではな い。印刷所に入稿するにはつねに割付け処理、さまざまな指定などを おこなう必要があるからだが、それをファイル上でおこない、印刷所 の組版システムにテキストデータが流しこまれたときに、それらの割 付けや指定が機械的に処理されてゲラに実現されるようにすることで ある。どんなに複雑なデータであっても、割付けや指定さえしっかり していれば、印刷所の組版ソフトは正確にデータを指定通りに組み上 げるのである。そのためにはすこしばかり馴染みにくく見えても、そ れはこれまでペーパーのうえで指定してきたことをファイル上でする だけのことである。ゲラが指定通りに組み上がってしまえば、あとは 著者に再確認の意味でゲラを見てもらう以外にほとんどなにもするこ とがなくなっているはずである。編集者はこのゲラを念校のつもりで 出してもらうことになる。したがってよほどのことがないかぎり、初 校責了になるというのは嘘でも偽りでもないのである。このあたりの 編集手順を以下に記述しよう。
156
3-2 割付け処理の手順 3-2-1 HTML もどきタグの埋めこみ 用字用語の統一やファイル技術上の欠陥を是正するテキスト処理と いう仕事とは別に、つぎにおこなう編集作業はいわゆる〈割付け〉で ある。 (これらの作業はどちらを先行させてもかまわない。たんに記 述上の前後関係にすぎない。 )しかしここでも従来のように、紙の上 に赤字で割付け指定をしていくのではなく、ファイルに割付け指定用 の文字や記号を埋めこんだり、指示を書きこんでいくという作業がテ キスト処理のもうひとつの仕事である。この指定ないし指示は、印刷 所の高度な編集機にテキストデータが流しこまれたときに自動的に変 換されてゲラが組み上がるようになるための符牒の役割をもつ。これ をタグ付けと呼ぶが、それはなにも絶対的に決められた約束事ではな いので、こうしなければならないという共通のルールではない。編集 者と印刷所のオペレーターのあいだできちんと意志が伝わればいいの である。ただ、毎回ちがったルールを用いるのでは間違いのもとにな るので、できれば決まったルールを確立しておくほうがおたがいに仕 事がしやすかろうというだけのことである。ましてこれが業界として なんらかのルール化ができてくるならば、だれが編集しても、どこの 印刷所で仕事を引き受けても、一定の確実さが保証されるのである。 したがって、わたしがこれから提示する割付け処理の方法は、自分 で現場的に実践してきてその有効性が証明ずみのものとして、しかし ながらあくまでもひとつの私案として提案するものである。わたしは これを「HTML もどきタグ」と呼んでおく。ブラウザでホームペー ジなどを見せるための簡単な構造化言語である HTML(HyperText Markup Language)はいまのところきわめて一般的に使われている ハイパーテキスト用の言語であり、多少の知識をもっていればだれに
157
第3章 テキストの割付け処理から入稿まで
でもわかりやすい形式をもっている。たとえば見出し行などを 6 段階 の大きさに設定するために文字列の前に
…… の開始タ グをおき、文字列のうしろにそれに対応する
…… と いう終止タグをおけば、それはなんらかの文字の大きさとして指定さ れたことになる。
と ではさまれればボールド体(太字) に、
と ではさまれればイタリック体(斜体)になるといっ
た具合である。つまり、開始をしめす < > と終了をしめす > のか たちで示されたコマンドによってテキストデータが構造化されて立ち 上がるという仕組みである。 書籍の割付け作業というのもどこかこのハイパーテキスト的な構造 化を与える作業に似ている。だからこの HTML もどきのタグ付けを 導入しようというのはそんなに違和感を与えるものではないはずだ し、なによりもわかりやすさという点で他のどんな方法よりもすぐれ ていると考えられる。あとは印刷所に入稿するときに、それぞれのタ グの意味をきちんと特定した指定書をいっしょに渡せばいい。しかも この指定方法はなるべく変更しないようにしていくことが肝要なので ある。そうしないと、編集者自身がこの割付け指定作業をしているあ いだに混乱してしまうことだってありうるからだ。 そこでわたしが実践しているタグ付けのパターンを以下に示してお こう。(*)【図3 1】 *見出し関係
文字列
……大見出し
文字列
……中見出し
文字列
……小見出し *強調関係
文字列 または¶文字列♪……ゴチック
文字列 ……ボールド
158
図3 1
文字列 ……アンダーライン < 傍線 > 文字列 傍線 > ……傍線
文字列 または_ ̄文字列 ̄_……イタリック *ルビ、傍点、主要な欧文特殊文字など _ ^ 親文字列【ルビ文字列】^ _……ルビ指定 _¨文字列¨_……傍点指定 a'/A'/i'/I'/u'/U'/e'/E'/o'/O'/c'/C' … … ア ク サ ン テ ギ ュ (á/Á/í/Í/ú/Ú/é/É/ó/Ó/c´ /C´) e`/E` ……アクサングラーヴ(è/È)
第3章 テキストの割付け処理から入稿まで
159
a^/A^/i^/I^/u^/U^/e^/E^/o^/O^ ……アクサンシルコンフレ ックス(â/Â/î/Î/û/Û/ê/Ê/ô/Ô) c&/C& ……セディーユ(ç/Ç) a``/A``/i``/I``/u``/U``/e``/E``/o``/O`` … … ウ ム ラ ウ ト (ä/Ä/ï/Ï/ü/Ü/ë/Ë/ö/Ö) B& ……エスツェット(ß) a&e/A&E/o&e/O&E/f&f/f&i な ど … … リ ガ チ ャ ー ( 合 字 ) (æ/Æ/œ/Œ/ff/fi) e  ̄ /i  ̄など……ギリシャ語、ラテン語長音文字(e¯ / ¯ı ) ○
N%o% ……上付き文字(半角の % ではさむ) (N ) H$2$O ……下付き文字(半角の $ ではさむ) (H2O) _' 文字列 /'_ ……シングルクウォートの開きと閉じ(‘ … ’) _" 文字列 /"_ ……ダブルクウォートの開きと閉じ(“ … ”) *その他 <S1> 文字列 ……活字を小さくする < 引用 > 文字列 引用 > ……引用の部分指定 < 地ツキ > 文字列 地ツキ > ……地ツキ指定 【改丁】(**) ……ここから改丁にする 【改ページ】……ここから改ページにする (*) このうちの多くは『出版のためのテキスト実践技法/執筆篇』で 例示したものと同じであるが、一部追加または修正したものがある。 (**)【 】という記号セットは通常あまり使用されないのと、目につき やすいという性質上、割付け指定あるいは疑問点の指摘などに用いる と便利なので使うことにしている。
160
3-2-2 割付け作業の種類 前節で割付けという仕事はハイパーテキスト的な構造化を与える作 業に似ていると書いた。ここでは原稿ファイルにさまざまな編集処理 のプロセスを挿入していくことになる。それらの手順や方法を以下に わかりやすく説明していこう。割付け作業にはどんな種類があるだろ うか。 ( )原稿の全体を見渡して、どれが一番主要なレベルの構成単位で 1 あり、どれがその次のランクに位置しているか、さらにその下にラン クされるものがあるのかどうか、まずこうした原稿の基本構造を確認 するところから割付け作業は始まる。部、章、節、項といったその本 の構成レベルを確認し、あるいはその中間に位置する単位のようなも のがあるかどうかを確認する。部立てになっているのか、章が最大の 構成単位なのか、節や項、中見出しや小見出しといったものはあるの かないのか、よく見きわめることである。それらに「
文字列
」「
文字列
」「
文字列
」といった レベルを設定する。改丁や改ページといったページ指定をするときに は必要な箇所に【改丁】または【改ページ】というタグを埋めこんで いく。 ( )つぎに文中の小さな補足的説明(たとえば亀甲〔 2 〕で指示さ れるようなそれ)や、後注のように章末または巻末にまとめられるよ うな文のまとまりを小活字によって示そうとする場合。たとえばそれ らに「<S1> 文字列 」といった処理をするか、 「 【これ以後すべ て、8 ポ 1 字下げにする】 」といった指定を入れる。またタイトルの あとにエピグラフなどが入る場合もある。そうしたときにも、 「 【この 部分、7 ポ 20 字下げ、行間 5 ポ】 」などと具体的な指示を書きこむ。 こうした特定の指示は自動処理できないので、印刷所のオペレーター にデータの流しこみのあとに手動で処理してもらうことになる。(*)
第3章 テキストの割付け処理から入稿まで
161
( )ルビ、傍点、イタリック、欧文特殊文字といった、学術書や専 3 門書などにはよく出てくる文字列の指定作業もある。また引用などの 場合、たとえば前後 1 行アキにして 2 字下げのインデント処理をする ことも必要かもしれない。これらには前節で指定した < 引用 > 引 用 > タグを前後に埋めこむ。なお、引用文は原文表記をそのままに しておく必要があるので、事前に引用タグをファイルに埋めこんだう え、 「2-6-3 コマンド処理の位置をアドレスで指定する」で指摘した ように、アドレス指定をして引用部分にテキスト一括処理コマンドを 走らせないようにする必要がある。 ( )図版や写真などをページに挿入する場合には、具体的にファイ 4 ルに書きこむ。たとえば「 【ここに「写真 3」が入る。10行分アキ】 」 とか、 「 【このあたり奇数ページに「図版 5」を入れる】 」などといっ た指示である。 こうしたファイル上のタグや指示のデータの大半は、印刷所の組版 編集機の設定で一括自動変換されるときに、ブラウザにおける HTML タグのように、必要な処理をほどこされたあとは自動的に脱 落するように設定されることになる。このタグや指定をふくんだ文字 セット自体が指定された文字処理に変換されるように設定されると考 えてもよいだろう。とにかくこれらのタグや指定は必要がなくなれば 削除されるべきなのは言うまでもない。 こうしたタグや指定とは別に、これは割付けの範囲をこえるが、通 読の過程で見いだされた原稿の疑問点があった場合に、一時的に訂正 案または修正案をファイルに書きこむこともできる。たとえば「 【こ の表現を……に変更する?】 」などとしてファイル化し、後述するよ うに、このファイルを仮ゲラとして出力したときに著者の目に止まり やすくするのである。これらは著者の訂正確認を見て、編集者がファ イル上で訂正してしまえば、このプロセスはそこで終了する。
162
(*) 本書では DTP 用のタグ埋め込みの説明はしていないが、DTP に流しこむため のより高度な割付け指定をすることは可能である。この方法を用いれば出版社内 で完全版下まで自動処理で作成することができる。ただしこれは高度で複雑なフ ァイル処理の技術を必要とするので、かならずしも一般的ではない。必要と思う ひとは各自で考案されればよいだろう。そのさいには HTML タグもどきではな く、XML(eXtensible Markup Language) あるいは SGML(Standard Generalized Markup Language) のタグ付けが必要になろう。
3-2-3 割付け作業の効率化 さて、それではこれらのタグや指定を効率的に埋めこむにはどうす ればいいのか。一括処理しうるものとできないものがあり、またもと もとの原稿の成り立ちによっても一括処理しうるものとできないもの もある。ここではあらかじめ一括処理をほどこしうるものにたいして は一気にタグの埋めこみをし、その他のものは必要におうじてファイ ルまたは原稿をチェックしながら、これらの処理を手作業でおこなう ことになる。 実際の作業効率からすると、もっとも具合がいい編集作業手順は次 の方法である。 まず、著者から原稿とファイルを受け取るときに、漢字の使いかた (漢字の開きかた) 、送りがなの使いかた、固有名詞の確認、世紀や年 月日の表記法などの原則的な表記の統一基準を確認しておき、それに したがって SED をもちいて前掲の用字用語の統一等のテキスト一括 処理をしてしまう。つぎにここで提案していくような割付け作業を気 がつく範囲でできるだけ処理してしまう。それを今度は、後述するよ うに、WinLPrt のようなテキストファイルを自由に書式設定して印 刷できるツールを使って、その本にあわせたページ設定で仮ゲラを出
第3章 テキストの割付け処理から入稿まで
163
力する。この仮ゲラには、すでにテキスト一括処理された用字用語そ の他のデータが反映されており、さまざまなタグ付けや指定がそのま ま出力されているのである。つまりタグ付けや指定それ自体はテキス トデータなのだから、当然そのまま出力されることになるわけだ。そ してようやくこの仮ゲラを編集者は通読することになる。しかしここ までの処理がうまくいっていれば、たいていの一般的問題はすでに解 決されてゲラとして出力されているのが確認できることになっている ので、むだなところに神経をくばらずにテキストの通読に没頭するこ とができる。もちろん、ここで内容上の問題を中心にさらに徹底的に 疑問や問題点を洗い出し、疑問点などの追加は仮ゲラに鉛筆等で書き こみを入れ、著者の確認を要請するようにする。また技術上の見落と しなどがあれば、赤字を書きこむか、いきなりファイルにタグなどの 入力をしてしまえばよい。つまり著者に確認してもらう必要のある箇 所と印刷所入稿用のタグ指定その他の箇所は、後者が内容上の変更で はなく著者に確認してもらう必要がないという意味でファイルの修正 を優先してかまわないのである。さて、こうして通読を終えた仮ゲラ は、もし赤字や確認箇所がすくなければそのまま著者に渡されるか、 もういちど追加入力したものを再出力して著者に渡される。そのさ い、著者にタグ付けや割付け上の指定の部分の意味を説明して理解し てもらうようにする。 こうして仮ゲラでひとまず著者校正をしてもらうのだが、経験上、 すでにこの段階で入る赤字はきわめて少なくなっている。あらかじめ 問題になりそうなところは修正してしまってあるのだから当然の結果 である。そして戻ってきた仮ゲラを見ながらファイル修正すれば、こ の段階でほとんど内容上のチェックと割付け作業は終了したことにな る。いや、事実上の編集作業は終わったも同然なのだ。したがって印 刷所にこの修正ファイルを入稿するのは、念校を出してもらうためな
164
のだというわたしの主張が絵に描いた餅でないことは理解してもらえ るだろう。 それでは実際の割付け作業の手順の説明にもどろう。 たとえば前節の( )の作業では、まず【改丁】または【改ペー 1 ジ】というタグの埋めこみをすませたい。必要な箇所はすぐ見つかる だろうからこれらをコピー&ペーストで必要な箇所の前に貼り付けて いく。これには独立したページになる「扉」ページなどにも適用すべ きである。 「部」とか「章」もこうした処理の対象である。例を挙げ れば、 【改丁 = 扉】出版のためのテキスト実践技法/編集篇 【改ページ】第1章 これからの編集者は何をするのか といった具合である。さらに章タイトルを大見出しにすることがわか っていれば、ついでにこれに
タグを付加してしまうこ とも都合がいい。 【改ページ】
第1章 これからの編集者は何をするのか
うしろの タグはあとから検索して付けることも、後述する クリップボード・ユーティリティなどに登録しておいたタグを検索・ 置換のあいだにペーストしてもよい。エディタでこの作業をおこなう 簡単な方法としては、 「検索・置換」メニューの検索文字列に「^[□ _]* 第」と入力し、置換文字列に「 【改ページ】
第」として、検 索し確認しながら置換していく方法でもさほど手間はとらない。 さらにこれらのタグ埋めこみのより高度な方法として SED を使う
第3章 テキストの割付け処理から入稿まで
165
場合を想定してみよう。たとえば本文がひとつのファイルにまとめら れていて、 「第」と全角算用数字と「章」で構成される章立てが多く あるような場合を想定してみると、これらの文字列を一発で検索・置 換するには、 ●スクリプト実例 25 「 # 章のタイトルに【改ページ】 タグを付ける s/^[□ _]* 第 ¥([1 - 9][0 - 9]*¥) 章 /【改ページ】 第 ¥1 章 <¥/H1>/g」 とすればよい。これはスペースがあってもなくても「第…章」という かたちではじまる文字列があれば、スペースを削除して「 【改ページ】 」という文字列を、さらに最後に「
」という文字列を追 加するというスクリプトである。ついでに章タイトルを何行どりにす るかを暫定的に決め、タイトルのうしろに空行をその分だけ入力して おくのもいい。 節とか項、あるいは中見出しと小見出しなどもこのさい同じような 方法を見つけることができれば、 または の入力を先に処理してしまったほうがいい。場合によっては原稿を見 ながら手動でコピー&ペーストすることになる。それでも全体の構成 が見やすくなるし、あとでこれらのタグを検索することで一括処理し たりすることもしやすくなる。 前節( )の作業でも、原稿に補足のための注(主として〔 2 〕の かたちで示される)が数多くあるような場合、たとえばこの〔 〕は ほかには使われることがないか、ほとんどないから、 〔 〕を検索し、 その前後に <S1> を配することでエディタでも簡単に検索・ 置換ができる。ここでも SED を使うとすれば、
166
●スクリプト実例 26 「 # 補足注に <S1> タグを付ける s/〔¥([^〕 ]+¥)〕/<S1>〔¥1〕<¥/S1>/g」 とすればよい。 また印刷所に新規テキスト入力してもらうような場合、ルビや傍点 が?出するような原稿の場合には、たとえば傍点は「◇文字列◆」と するような取り決めをしておいて、あとはエディタで「◇」を 「_¨」に、 「◆」を「¨_」に一括変換するだけでよい。またルビな どの場合はやや複雑であるが、すでに「2-5-9 ルビの修正」で例示し たように、いわゆる「写研方式」と呼ばれるルビ指定方式がある。全 角の「@」+親文字(列)+全角の「×」+ルビ文字(列)+全角の 「=」という記号と文字(列)の組合せでルビを指定する方式である。 こうした方式で入力されているファイルをわたしの方式に変換するに はやはり SED の力が必要になる。この場合のスクリプトは、 ●スクリプト実例 27 「 # 写研方式ルビ指定の変換 s/ @ ¥([、- 煕]+¥) × ¥([ぁ - んァ - ヶー]+¥) = / _ ^¥1【¥2】^ _ /g」 となる。ここで親文字列を示す「([、- 煕]+」は英数文字と全角スペー スを除いたすべての和文をあらわし、ルビ文字列を示す「[ぁ - んァ ヶー]+」はひらがなとカタカナのすべてをあらわしている。ルビ文字 にはひらがなとカタカナしか通常は存在しないからである。 これ以外のタグ入力はほとんど手動に頼らざるをえない。なかには
第3章 テキストの割付け処理から入稿まで
167
特殊なパターンが見つけられれば、それなりの一括処理が可能だが、 原則的には一般化できないのが普通である。しかしいちいちこれらの 記号文字列を入力するのは大変である。そこで活用すべき方法が単語 登録であったり、必要なユーティリティがクリップボード・ユーティ リティである。 これらについては『出版のためのテキスト実践技法/執筆篇』の 「4-2 単語登録による高速化」と「4-3 クリップボード・ユーティリ ティの活用」でくわしく書いたので、ぜひ参照してもらいたい。そこ で触れたように、とりわけクリップボード・ユーティリティはこれら のタグの埋めこみのように何種類ものタグ文字列を同時並行的に何度 もくりかえし使う場合にはとくに役にたつ。Windows における 「 qtclip 」 と か 「 ToClip for Windows 」、 Macintosh に お け る 「CopyPaste」といったクリップボード・ユーティリティは保存機能 があるので、必要なデータを一覧からいつでも取りだすことができる のである。(*) 編集にはこれらのクリップボード・ユーティリティは 絶対的に必要なツールであり、これらに各種タグ文字列を登録・保存 しておけば効率よくこれらのタグ付けができるようになる。正規表現 を用いた検索・置換のためのパターン指定、たとえば半角英数文字列 を あ ら わ す 「 ¥([A-Za-z0-9]+¥) 」 や 和 文 一 般 を あ ら わ す 「 ¥([ 、 煕]+¥)」などもクリップボードに貼り付けておくと、記述が簡単にな る。 (*)『出版のためのテキスト実践技法/執筆篇』で「qtclip」は保存機能がないとし たのは、わたしの使っていたのが古いヴァージョンだったかららしく、最新ヴァ ージョン(v. 2.6)では保存機能がある。保存されたデータ欄が上に、そのつどコ ピーされたデータ欄が下にあり、下欄は電源を落とすとクリアされるが、上欄は 保存されている。下欄から上欄にドラッグ&ドロップすると、保存の対象にされ る。
168
3-3 仮ゲラの出力による校正作業―― WinLPrt による出力 以上で編集作業の前半部(予備段階)はとりあえず終了である。あ とは著者との校正作業に入るわけだが、この後半部(仕上げ段階)の うち、その前段が仮ゲラによる著者との校正∼編集者による赤字修正 の段階であり、その後段が印刷所への入稿を経て本ゲラ(と、仮ゲラ と区別する意味でそう呼んでいる)による最終確認∼責了段階であ る。 ここではこの後半部にはいったところでの最後のヤマ場である仮ゲ ラによる校正作業について再整理しておこう。 編集者はひととおりのファイル処理を終わったところでこのファイ ルをそのままのかたちで出力(プリントアウト)し、用字用語の不統 一や割付けのタグ付けや指定のミスや見落としがないかを確認しなが ら原稿の徹底的な通読をこの段階でおこなうのである。前述したよう に、ここで再修正をおこなったり仮ゲラに疑問点や修正案を書きこ み、この仮ゲラが著者へ渡されるのである。しかし何度も言うよう に、もともとの原稿内容に大きな問題点がふくまれているのでなけれ ば、この仮ゲラによる校正作業はきわめて快適なものとなっているは ずである。編集者は若干の修正以外には表記の問題などではもはや大 きな問題に遭遇して困惑するようなことはほとんどないであろう。小 さな問題が発見されても、その段階でエディタなどによって全ファイ ル検索と置換をおこなうことができるから、あくまでも通読に専念で きるという仕組みになっている。一方で、著者のほうはあまり見慣れ ないタグ指定に面食らうことはあっても、約束事の原理さえわかって しまえばすぐ慣れてしまうだろうし、それらのタグや指定が正確に機 能するかどうかは本ゲラで確認すればよいことだから、ここでは編集 者の疑問や修正案にたいしてきちんと回答してもらえればよいのであ
第3章 テキストの割付け処理から入稿まで
169
る。それを編集者はファイル上で再修正をおこない、必要なら再出力 したり、その仮ゲラの再校を著者にもう一度みてもらうこともありう るが、そうしたケースはむしろ稀であろう。実際のところ、この仮ゲ ラの段階で生ずる赤字はすでにかなり少なくなっているはずだから で、再校が必要になるのは著者が内容上の修正を相当程度おこなって しまう場合に限られるからである。 仮ゲラの出力はどんなかたちでもいいが、できれば本ゲラのページ 組みと同じものにしたほうがいい。全体のページ数もふくめ、仕上が りのイメージが見えやすいからであるし、著者にも安心感を与えるこ とができる。通常は Word や一太郎といったワープロにデータを流 しこんで書式設定することになるだろうが、もし Windows 環境にあ るなら絶好のプリント・ユーティリティがある。つまり WinLPrt の 出番である。 WinLPrt は堀田俊哉氏作のシェアウェアだが、テキストファイル を自由自在に出力するうえできわめて高機能のユーティリティ・ソフ トである。Windows 系のエディタでは、いわゆる「縦中横」の出力 もできる QX エディタのような高機能エディタもあるが、書式設定 できるのが10種類まででプリンタの選択との連}がかなり複雑だとい うように使い勝手がいまひとつなのにくらべて、WinLPrt は書式設 定はほとんど無限にできるし操作性もよいのでお奨めできる。とにか くテキストファイルでさえあれば、なんでも好みの書式設定に流しこ んで出力してしまえるので便利である。書式設定もいちど設定してし まえば、ファイルと無関係に保存しておいて何度でもいつでも流用で きる。そこがファイルごとに書式を設定しなければならないワープロ より優れているところなのである。言ってみれば、書式という鋳型を あらかじめ作ってしまうという手順なのだ。 ここでは WinLPrt の驚くほど多様な機能を紹介する場ではないの
170
図3 2
で、 [出版のためのテキスト実践技法]にかんする機能に限定して説 明しておきたい。 まず、WinLPrt を起動すると通常はメインウィンドウが開かれる (設定によって起動画面を選択することができる) 。 【図32】ツールバ ーのカスタマイズももちろんできるが、デフォルト設定でとりあえず は十分だ。そのなかの「プリンタ選択」のボックスに現在使用可能な プリンタが示されているので確認する。もしいくつかのプリンタが使 用可能で他のプリンタが設定されているなら、プリンタコントロール
第3章 テキストの割付け処理から入稿まで
171
パネルから必要なプリンタアイコンを選択し、プリンタメニューから 「通常使うプリンタに設定」でプリンタを選択しなおす。ツールバー の右端にあるプリンタフォルダのアイコンをクリックしてもこの画面 を呼びだすことはできる。 つぎに「書式選択」のボックスに現在選択されている書式名が提示 されている。起動直後は通常は「デフォルト書式」のチェックボタン を付けられた書式が選択されている。これはボックスの書式名の横の アイコンにチェックが付けられているので確認できる。もっともよく 使う書式をデフォルト書式にしておくのが賢明だ。もしここで選択さ れているのとは異なる書式を使おうとするなら、書式名ボックスの右 端に付いている「▼」のプルダウンメニューをクリックして出てくる 書式一覧から該当する書式を選択するか、もし適当な書式がなければ 新規に作成する必要がある。これらは保存しておけばどんなファイル にたいしてでも何度でも使用することができるから、できれば必要に なるたびに新しい書式を作成することが望ましい。 【図33】 新しい書式をつくるにはいろいろな方法があるが、まず「書式」メ ニューから「書式設定」を選び、 「書式情報」タブのダイアログで書 式名ボックスのすぐ下にある「ベース書式」ボックスからベースにす べき書式を選択する。これらは既成の書式はすべて利用可能であるか ら、それらのどれかをベース書式にすることも可能だが、できればも っともベーシックな書式を作っておいてそれを流用して作成すること が望ましい。 「A4 標準」とか「B5 標準」とでもいうような標準書式 をあらかじめ作っておくと便利である。 【図34】これらの内容はあま り変更しないようにする。ベース書式が変更になると、それに依拠し ている他の書式も変更されてしまうことになるからである。ともかく こうしたベース書式を選択し、書式名を書き替えると右の上から 2 番 目の「変更」ボタンが「追加」ボタンに変更されるので、既成の書式
172
図3 3
を上書きしてしまうことはない。書式名を入力し、書式設定メニュー からそれぞれのタブで設定をしたあと、右上の「OK」ボタンを押せ ば完了である。 ここで書式設定のタブについて簡単に触れておこう。目的は当面必 要な書式、つまり1行の文字数と 1 ページの行数、それに適合する用 紙サイズ、さらには上下 2 段組にするのか、左右の見開き 2 ページ組 にするのか、出力フォントの種類とサイズ、ヘッダー(ゲラで言えば 「柱」 )とフッター(同じく「ノンブル」 )とその書体・サイズ・位置
第3章 テキストの割付け処理から入稿まで
173
図3 4
の指定、禁則処理など出力にあたっての細かい指定、などがその主要 な設定課題である。 ここでもっとも重要なのはページ設定である。もし本の最終のペー ジ設定が四六判で、1 行45字組・1 ページ17行とでもするつもりなら、 「用紙」タブで用紙サイズを B5 にし、 「フォント」タブで漢字フォン トと英字フォントを 9 ポに設定する。この 2 種類のフォントをそれぞ れ別々に設定することもできる。つぎに「ページ書式」タブでとりあ えず余白を適切と思われる数字に設定し、 「段組み」のところでプル ダウンメニューから「段組み・横」と 2 段を選択する。こうすると見 開き 2 ページのかたちに組むことができる。間隔は25ミリ程度でい い。 【図35】さらに「行桁数」タブで「ピッチ指定」か「行桁指定」 のどちらかのラジオボックスを選択する。 「行桁指定」を選ぶと 1 行
174
図3 5
の字数と 1 ページの行数の設定はできるが、 「ページ書式」タブでの 余白の指定に関連するので、フォントサイズが自動的に算出されて変 更されてしまう。指定した 9 ポにするには余白を調節する。 「ピッチ 指定」を選ぶと、文字間隔、行間隔が細かく設定できる。決まった字 数、行数にするにはプレビューを見ながらこれらの間隔を変更した り、ページ書式の余白を調節したりして、気に入ったかたちになるま でこの設定をくりかえす。やや面倒だが、このほうが納得のいくかた ちに仕上げやすい。ちなみにこの書式設定の場合、あとは「禁則」タ ブで禁則処理を「追い出し+ぶら下がり」などに設定したり、ワード ラップやジャスティフィケーションのラジオボックスにチェックを入 れる、など好みにおうじて細かい設定をする。最後にヘッダー、フッ ターの位置、フォントの種類とサイズなどを決定し、プリンタを設定
第3章 テキストの割付け処理から入稿まで
175
図3 6
すればほぼ終わりである。ベース書式でこれらの基本設定をすませて あれば、行間や字間のピッチを変えたり余白を調整したりするぐらい で新しい書式ができてしまう。 【図3 6】 WinLPrt のすごいところはこれにとどまらない。書式設定の画面 右下の「高度」ラジオボックスにチェックを入れると「見出し行」設 定ができ、見出しを別フォント、別サイズで出力できたり、さまざま なフィルタ処理などもできるのである。なにしろ「sed32.DLL」や 「GAWK32.DLL」をインストールすると、SED や awk といった UNIX 系ツールと関連してフィルタ処理にも使えるという超スグレも のなのである。WinLPrt を使って SED のフィルタ処理をつうじた出 力も可能なのであり、たんなるプリント・ユーティリティではないと ころがおもしろい。
176
Macintosh 系には残念ながらこれほどすぐれたプリント・ユーテ ィリティは存在しない。したがってページ組のかたちで仮ゲラを出力 することはむずかしい。しかし Jedit でも YooEdit でも適当な形やフ ォントや文字サイズを指定してきれいな出力をすることはできる。エ ディタは出力のためのソフトではないから、どうしても書式を整えた い場合は印刷のためのソフトとしてのワープロで代用するしかない。 もっとも最近みつけた「DropTextPrinter」というシェアウェアが あり、書式設定などは WinLPrt にくらべてはるかにシンプルだが、 とりあえずテキストデータの出力は可能である。書式設定も複数つく って保存しておくこともできる。 ともあれ、こうしたツールを使って出力された仮ゲラを編集者と著 者のあいだで必要なら何度でも(と言ってもたいていは一度ですむ) 往復することで印刷所を通さずとも校正を重ねることができる。もち ろんパソコンによる出力なので経費はきわめて安くできるのである。
3-4 印刷所への入稿――最終確認としての出校 こうした仮ゲラによる著者校正と編集者による赤字修正を経て、い よいよ最終段階へはいるわけである。しかし、すでに記述してきたよ うに、この最終段階はなにも難関というようなことはなく、最後の仕 上げといったおもむきのものである。編集者が最後にするべきこと は、ファイル修正したテキストデータを必要なら完全原稿に再出力 し、データを FD 化することと、もうひとつは印刷所のオペレーター へのきちんとした指示書を作成することである。これまで述べてきた ような各種のタグや指定の意味を明確にすることによって、印刷所の オペレーターが編集者の意図を十分に理解できるようにすることであ
第3章 テキストの割付け処理から入稿まで
177
る。この段階で や といったタイトルまわりの書体やサ イズを編集者ははじめて考えればいいのである。 これまでのようにあらかじめ割付けを確定してからでないとゲラが 出せず、したがって通読、校正などがそのあとになってしまうような ことはなく、まずタグ指定による仮指定によって仮ゲラを作成し、そ の段階でとことん内容チェックと修正をしてしまうから、もはや大き な修正をおそれることがなくなった段階で最終の割付け指定をするの である。こんな確実で楽なことはないのではなかろうか。 そして言うまでもなく、この段階までで大きな修正(大幅な削除や 構成の変更など)がもしあったとしても、印刷所入稿以前の段階で処 理がすませられるのだから、むだなコストや手間がかからないのであ る。パソコン上で大きな修正をするといっても、画面とファイルのう えでのことだから、実際のところは簡単な技術処理上のことでたいし た問題にはならない。むしろ本ゲラにしてからどうしても大きな修正 が必要になったり、それがコスト上その他の関係でできないためにみ すみす目をつぶったりせざるをえないことのほうがどれだけ損失にな るか、はかりしれないのである。むしろこうした大きな修正をいとわ ずに本の内容に即した思い切った修正を編集者のほうから提案するこ とだって考えられるのだ。 最後に、わたしが印刷所への入稿時に原稿とともに渡した本書の組 版指定書の実例を参考までにお見せしよう。 「 ◆『出版のためのテキスト実践技法/編集篇』組版指定書 ★四六判並製カバー ★版面=天より22ミリ、小口より16ミリ、ノドより17ミリ ★本文=13Q中M31字(字送り12. 5H)×27行(行送り 22H)横1段 組。
178
★「付録」ページ=10Q中M39字×48行(行送り12H) ★ ……
で指定:大見出し(章タイトルほか)=15Q 太 ゴチ詰め・天ツキ、左右中央、9 行どり(うしろの空行分ふくむ) 。 ★ ……
で指定=13Q太ゴチ詰め。 ★ <S1> …… で指定=11Q中M(行送り18. 5H) 。 ★目次=本文と同じ。 ★扉・扉裏=15Q太ゴチ詰め・天付き、左右中央。ただし ……
は13Q太ゴチ詰め、左右中央。 ……
は10Q太ゴ チ詰め、左右中央。 ★ノンブル=11Qガラモンド・両頁天・小口より16ミリ、本文版面よ り 7 ミリアキ。 ★柱=10Q太ゴチ・奇数頁、ノンブルより11ミリのダッシュはさむ、 天ツキ・章タイトル名(例:第1章 なんのためのテキスト実践か) ★ルビ形式=_ ^ 親【おや】^ __ ^ 文【も】^ __ ^ 字【じ】^ _ _ ^ 列【れつ】^ _(ただし本文に使用例なし) ★傍点形式=_¨と¨_ではさんである。例:_¨傍点¨_(ただし 本文に使用例なし) ★イタリック形式=_ ̄と ̄_ではさんである。例:_ ̄ S  ̄_ tream _ ̄ ED  ̄_ itor ★ゴチック形式=は¶と♪ではさんである。例:¶【図 1】♪(この 場合の【】はイキ) ★図版処理=原則は左右中央、天地なりゆき。指定なしの場合は左右 版面合わせ。 ★欧文特殊文字指定=以下の要領です(ただし本書では書式指定以外 の使用例なし) アクサンテギュー→ e'/a'/o'/y'/E' など(l'、s' などの子音との組合 せのときは通常のアポストロフィとして使用)
第3章 テキストの割付け処理から入稿まで
179
アクサングラーヴ→ e` アクサンシルコンフレックス→ a^/i^/u^/e^/o^ c セディーユ→ c&/C& ウムラウト→ a``/i``/u``/e``/o``/A``/O`` など エスツェット→ B& 合字→ o&e/a&e/O&E/A&E ギリシャ語、ラテン語長音文字→ e  ̄、i  ̄ 上付き文字(半角の % ではさむ)→ N%o%(ナンバー記号) ★約物間の二分ツメは未処理。ツメてください。 ★「=」は全角内2分ダブルハイフン。 (ただし本文に使用例なし) ★「−」は全角内2分ハイフン。 (ただし本文に使用例なし) ★スペース、空行はそのままイキ。 ★行頭にタブが入っているところは 2 字下げ。 ★「¥」記号が印刷ユーティリティ WinLPrt の問題ですべてバック スラッシュになっています。これはすべてファイルのまま。 ★「屡々」は正字にしてください。 以下は留意事項。 ★原稿とファイルに異同がある場合はすべてファイル優先。 ★【 】は割付け指定。確認したら削除し詰めてください。ただし 【図…】の【 】はイキ。 」
あとがき
「 はじめに」で記したように、本書は『出版のためのテキスト実践技 法/執筆篇』の続篇あるいは姉妹篇として刊行されるものである。 『執筆篇』はどちらかと言えば、著者の出版用原稿入力のための基本 ルールについてのマニュアルだったのにくらべ、本篇のほうはより出 版編集に即したノウハウについて述べたマニュアルである。前著が著 者のみならず編集者もふくめたパソコン入門者用の基礎篇だったとす れば、本書はパソコン中級者向けと言ってもいいかもしれない。た だ、編集者は、SED や正規表現についての知識や理解が不十分であ っても、本書に記したツールやスクリプトファイルを流用して実質的 な成果をあげることは可能である。 UNIX 系のツールである SED はもともと自由に使ってかまわない プログラムであり、それを Macintosh や Windows に移植した SED ツールの多くはフリーウェア(無償ソフト)である。その意味では本 書で公開している技法やスクリプトファイルもまたフリーウェア的な ものである。これらのファイルは未來社ホームページの「未來社アー カイヴ」ページからもその最新ヴァージョンがダウンロード可能にし てあるので、本を見ながら入力されてもいいし、未來社ホームページ からコピーしてもらってもいい。だれにでも自由に使ってもらってい いものとして提示される。望むらくは、もしこの本を参考にして自分 でより使い勝手のよいスクリプトなどを考案されたら、ぜひわたしに も教えてほしいというだけである。 本書の原稿の仕上げ段階になって、専門書取次の鈴木書店が破産申
あとがき
請をおこなったことは、わたしにとっても大変にショッキングな事件 であった。その背景には出版不況とともに専門書の売れゆき不振とい うゆるがせにできない現実があり、著者から読者まで専門書をとりま く状況のいっそうのきびしさが予想されることになったからである。 このままでは少部数の専門書刊行はますます困難になってしまう。 専門書出版の困難さはいまに始まったことではないけれども、これ まで出版にかかわってきた者として、なんとしてもこの困難のなかか らでも〈出版文化〉と呼ぶにあたいするものを存続させていきたいと 思っている。その一念から本書の執筆をつづけてきたのだが、いよい よ専門書の編集作業における[出版のためのテキスト実践技法]の真 価が問われる時代にはいったと思わざるをえない。 『 出版のためのテキスト実践技法/執筆篇』にたいしてさまざまな誹 謗や中傷をくわえる者が少なからずいた。いずれも狭い業界内先陣争 いの自慢話のついでにわたしの本に言いがかりをつけているにすぎな い。たんに著者や編集者をコキ使うための本であるといったような読 まずにする言いがかりもある。その一方で、この方法の意義を認め、 続篇たる本書の刊行を待ち望んでくれた多数の読者の声も聞えてきて いる。本書を読んでもらえば、わたしがはじめから意図していた方向 がようやく理解してもらえると思う。もっと言えば、この[出版のた めのテキスト実践技法]の方向性にもとづかないかぎり、これからの 専門書編集はむずかしいのではないかとわたしは確信している。この 思いが読者(編集者)につたわり、実践的に自分の仕事に適用してみ て、効果があることを納得してくれることを切に願う理由である。 それからもうひとつ主張しておきたいことがある。この[出版のた めのテキスト実践技法]は著者と編集者(出版者)のための技法であ ることはもちろんだが、この技法の浸透によって有利になるのは著者 と編集者だけではない。見逃してならないのは、専門書のような少部
数の書物が刊行しやすくなることによって、その仕事を受ける印刷所 にとっても利益になることである。なぜなら、一点ごとの刊行経費 (時間がその最大の要素だが)が軽減できるために印刷所としては請 求額が減少するという事態が生ずる代わりに、この方法の浸透によっ て刊行点数が大幅に増大することが可能になるからである。わたしの 計算では編集者の労力は半減以下になるはずであり、したがって同じ 実働時間で 2 倍以上の生産性が上がるはずである。企画の実現可能性 もおおきく高まることによって、これまで採算の面で実現が見送られ てしまった企画の多くが実現可能になるのである。そうした未知の可 能性を秘めた書物のなかに重要な書物の多くがどれだけ眠らされてき たであろうか。本書の刊行がきっかけとなって将来の名著がつぎつぎ と刊行されるようになれば、著者・編集者・印刷所の、そして読者ま でがいずれも報われることになる。楽観することができにくくなった 時代とはいえ、そうした事態の出現を望まないわけにはいかないので ある。 本書の刊行にあたって、高橋陽氏にはゲラの通読ばかりか、スクリ プトの問題点のご指摘にいたるまで多大な協力をしていただいた。最 後になったが、SED にたいするわたしの蒙を啓いてくれたこととあ わせてお礼のことばもない。また、戸田ツトム氏には前著ともども本 書にふさわしい装幀をしていただけたことをうれしく感謝する次第で ある。 2002年 1 月 5 日 西谷能英
付録
付録
[付録 1]編集用日本語表記統一基準 version 1.3 (★はママのものもありうるもの→★の付いたものは変換後に確認する) ●ふつうは変換したほうがいいと思われるもの(きりがないので?度の高いものだけ) 敢えて→あえて 明か→明らか★ 辺り→あたり 余り→あまり★ 予め→あらかじめ 凡ゆる→あらゆる (在り/有り/あり)方→ありかた 有(り)難(い/き/く)→ありがた(い/き/く) 有(り)難う→ありがとう 有(り)様→ありさま 如何に→いかに 幾らか→いくらか 些か→いささか 何れ→いずれ 頂(い/か/き/く/け/こ)→いただ★(い/か/き/く/け/こ)(例外:本来の 動詞の場合) 一応→いちおう 何時→いつ★ 一向→いっこう★(例外:一向宗、一向一揆) 一切→いっさい★(例外:一切れ) 一緒→いっしょ 一斉→いっせい★ 一層→いっそう★ 一体→いったい★(例外:一体化、一体となる、同一体、など) 一旦→いったん 色々→いろいろ (の)内(なる/に/の)→(の)うち★(なる/に/の) 於(いて、ける)→おいて、おける 往々→おうおう 大いに→おおいに 大袈裟→大げさ 概ね→おおむね 恐らく→おそらく 各々→おのおの 面白(い/か/き/く/け/し/そ)→おもしろ(い/か/き/く/け/し/そ) 及び→および★ 凡そ→およそ★ 却って→かえって 拘らず→かかわらず★(例外:「こだわらず」と読む場合) 掛け→かけ★(例外:命がけ、心がけ、手がけ) 且つ→かつ 嘗て→かつて 辛うじて→かろうじて
付録
極めて→きわめて (じ/た/の/る)位→(じ/た/の/る)くらい★(例外:位階、位相、位置、など) 極く→ごく (う/た/る/年)毎→(う/た/る/年)ごと★ 如(き/く)→ごと(き/く) 殊に→ことに 差し当た(って/り)→さしあた(って/り) 早速→さっそく 様々→さまざま 更に→さらに★(例外:夜更に、など) 然し→しかし 然るべき→しかるべき ?りに→しきりに 従って→したがって★(例外:動詞の場合) 々→しばしば 暫く→しばらく かも知れ(ず/な/ぬ/ま)→かもしれ(ず/な/ぬ/ま) 随分→ずいぶん 直ぐ→すぐ 精々→せいぜい 其れ→それ 大し(た/て)→たいし★(た/て)(例外:増大した、拡大した、など) 大体→だいたい★ 大抵→たいてい 大分 / だいぶ★(例外:拡大分、大分県、大分市、など) 沢山→たくさん 只→ただ 但し→ただし 直ちに→ただちに (私/わたし/あたし/僕/ぼく/君/きみ/あなた/あんた/男/女/彼/彼女)達 →たち★ 忽ち→たちまち (う/く/す/た/る)度→(う/く/す/た/る)たび★(例外:度合い、度数、度 量、など) 度々→たびたび 多分→たぶん (の/る)為→(の/る)ため 段々→だんだん★ 因みに→ちなみに 丁度→ちょうど 一寸→ちょっと★(例外:一寸法師など) 遂に→ついに (思い/顔/考え/気が/傷/縛り/突き/投げ/引き/惹き/結び)付(い/か/ き/く/け/こ)→(思い/顔/考え/気が/傷/縛り/突き/投げ/引き/惹 き/結び)つ(い/か/き/く/け/こ) (位置/裏/運命/片/価値/関連/気/心/根拠/順位/順序/性格/近/秩序/特
徴/名/根/方向)付(い/か/き/く/け/こ)→(位置/裏/運命/片/価 値/関連/気/心/根拠/順序/性格/近/秩序/特徴/名/根/方向)づ(い/ か/き/く/け/こ) 都度→つど 手掛かり→手がかり 出来(ず/た/て/な/ま/よ/れ/る)→でき★(ず/た/て/な/ま/よ/れ/ る) (例外:名詞の場合) 到底→とうてい 何処→どこ (た/の/る)所→(た/の/る)ところ(例外:所在、所属、所長、所得、所有、な ど) 途端→とたん 兎(に/も)角→と(に/も)かく 共に→ともに★ 無(い/か/き/く/け/し)→な★(い/か/き/く/け/し) 乃至→ないし 尚(お)→なお 尚更→なおさら 仲々→なかなか 乍ら→ながら 就中→なかんずく 並びに→ならびに 成(る)程→なるほど 俄(か)→にわか (く/た/の/る)筈→(く/た/の/る)はず 果たして→はたして★(例外:動詞の場合) 甚だ→はなはだ 遙か→はるか★ 相応し(い/か/き/く/け)→ふさわし(い/か/き/く/け) 普段→ふだん (い/う/た/の/る/れ/今/先)程→ほど★(例外:程度) 殆ど→ほとんど 誠に→まことに★ 正に→まさに★(例外:公正に、校正に、厳正に、方正に、など)、 先ず→まず 益々→ますます 又→また★(例外:柴又) 迄→まで 寧ろ→むしろ 無闇→むやみ 巡(っ/ら/る)→めぐ★(っ/ら/る)(例外:動詞の場合) 滅多(に)→めった(に) 若しくは→もしくは 勿論→もちろん 以って→もって
付録
尤も→もっとも 専ら→もっぱら 元々→もともと 最早→もはや 貰(い/う)→もら★(い/う)(例外:動詞の場合) 諸々→もろもろ 矢張(り)→やはり (が/それ/た/の/る/れ)故→(が/それ/た/の/る/れ)ゆえ★(例外:故意、 故郷、故人、など) 様(な/に)→よう★(な/に)(例外:多様、同様、など) 漸く→ようやく 余程→よほど 分(か) (っ/ら/り/る/れ/ろ)→わか★(っ/ら/り/る/れ/ろ) 解(か) (っ/ら/り/る/れ/ろ)→わか★(っ/ら/り/る/れ/ろ) 僅か→わずか 亘(っ/ら/り/る/れ/ろ)→わた(っ/ら/り/る/れ/ろ) [特殊事例] 上記→前記★(縦組の場合) 上掲→前掲★(縦組の場合) 上述→前述★(縦組の場合) づつ→ずつ★ (長/短/全/続)編→(長/短/全/続)篇 未来社→未來社 文芸春秋→文藝春秋 丸山真男→丸山眞男 ●どちらかを選択して使用するもの (の/る)間(か/で/に/の/を/、)←→(の/る)あいだ★(か/で/に/の/ を/、 ) 宛(て)←→あて★ 後で←→あとで★(例外:最後で、直後で、背後で、前後で、など) 表す←→表わす★←→あらわす★(例外:発表する、公表する、代表する、など) 現(し/す/れ)←→現わ(し/す/れ)←→あらわ(し/す/れ) 或(る)いは←→あるいは 或る←→ある★ 行(か/き/く/け/こ/っ)←→い★(か/き/く/け/こ/っ)(本来の動詞以外 のとき) 依然←→いぜん 致(さ/し/す/せ)←→いた★(さ/し/す/せ) 至(ら/り/る/れ/ろ/っ)←→いた(ら/り/る/れ/ろ/っ) 今←→いま★(例外:今朝、今回、今度、今月、など) (た/の/る)上(で/に/、)←→(た/の/る)うえ★(で/に/、)(例外:上下を あらわす場合) 後ろで←→うしろで 生れ←→生まれ 得(な/る/、 )←→え★(な/、)←→う★(る/、)
置く←→おく★(例外:本来の動詞の場合) 行(い/う/え/っ/わ)←→行な★(い/う/え/っ/わ)←→おこな★(い/う/ え/っ/わ) 自ずから←→おのずから 折←→折り★←→おり★ 関わ(ら/り/る/れ/ろ/っ)←→かかわ(ら/り/る/れ/ろ/っ) 係わ(ら/り/る/れ/ろ/っ)←→かかわ(ら/り/る/れ/ろ/っ) 限り←→かぎり 難い←→がたい 形(で/に/の)←→かたち★(で/に/の) 仮(り)に←→かりに 来(た/て)←→き★(た/て)(本来の動詞以外のとき) 下さ(い/っ/ら/り/る/れ/ろ)←→くださ★(い/っ/ら/り/る/れ/ろ) 来る←→くる★(本来の動詞以外のとき) 詳し(い/く)←→くわし(い/く) 決して←→けっして★ 来な(い/か/く/け)←→こな★(い/か/く/け)(本来の動詞以外のとき) 頃←→ころ★←→ごろ★ 際(に/の/、 )←→さい★(に/の/、) 実(に/の/は/を)←→じつ★(に/の/は/を)(例外:現実に、事実に、忠実に、 など) 済(む/ま/ん)←→す★(む/ま/ん) 過ぎ(ず/ない)←→すぎ★(ず/ない)(例外:本来の動詞の場合) 既に←→すでに 即ち←→すなわち 全て、総て←→すべて (に)対(する/して)←→(に)たい★(する/して) 絶えず←→たえず (の)類←→(の)たぐい★(例外:類型、類似、類推、類比、など) 例えば←→たとえば 単(なる/に)←→たん★(なる/に)(例外:簡単、単純、など) 違いな(い/く)←→ちがいな★(い/く)(例外:間違いない、など) 続(い/か/き/く/け/こ)←→つづ(い/か/き/く/け/こ) 常に←→つねに★(例外:非常に、平常に、尋常に、など) (た/る/の)時(か/が/で/と/に/の/は/ま/も/、)←→(た/る/の)とき ★(か/が/で/と/に/の/は/ま/も/、) 時々←→時どき←→ときどき 特に←→とくに★ 伴う←→伴なう←→ともなう 直(さ/し/す/せ/そ/ら/り/る/れ/ろ)←→なお★(さ/し/す/せ/そ/ ら/り/る/れ/ろ) (の/る)中(か/で/に/の/へ/を)←→(の/る)なか★(か/で/に/の/ へ/を) (例外:内部の意味のとき) 何物←→何もの
付録
何(だ/て/で/と/の/ら)←→なん★(だ/て/で/と/の/ら) (が/た/の/は/る)後に←→(が/た/の/は/る)のちに★ 外(さ/し/す/せ/そ/れ)←→はず(さ/し/す/せ/そ/れ) 一つ←→ひとつ 人々←→人びと 一人←→ひとり★(例外:同一人) 風(に/の)←→ふう★(に/の)(例外:風に吹かれ) 再び←→ふたたび 他なら(ず/な)←→外なら(ず/な)←→ほかなら★(ず/な) 紛れ←→まぎれ(例外:気紛れ) 全く←→まったく 見い出(さ/し/す/な)←→見出(さ/し/す/な)←→みいだ(さ/し/す/な) 見事←→みごと 難し(い/か/く/け)←→むずかし★(い/か/く/け) 無論←→むろん★ 目指(さ/し/す/せ)←→めざ(さ/し/す/せ) 持(た/ち/つ/っ/て/と)←→も★(た/ち/つ/っ/て/と)(例外:本来の動 詞の場合) 最も←→もっとも★(例外:最大級比較の場合) (の)下(に/で/、 )←→(の)もと★(に/で/、)(例外:上下をあらわす場合) 基づ(い/か/き/く/け/こ)←→もとづ(い/か/き/く/け/こ) ●世紀、年月日の統一 一[〇 - 九]世紀←→十[一 - 九]世紀 二[〇 - 一]世紀←→二十[一]世紀 [二、三] [〇 - 九]世紀←→[二、三]十[一 - 九]世紀 (元号 +)一[〇 - 九]年←→十[一 - 九]年 一[〇 - 二]月←→十[一 - 二]月 一[〇 - 九]日←→十[一 - 九]日 ●人称の統一 私←→わたし 我々←→われわれ 我が←→わが 我等←→我ら←→われら 君←→きみ 彼←→かれ 【変更履歴】 *2000/6/2(v. 1. 0) 「編集用日本語表記統一基準」v. 1. 0 として未來社ホームページの「未來社アーカイヴ」 のなかにリリース。 *2000/7/3(v. 1. 01) v. 1. 0 に若干の補足と修正。 *2001/3/5(v. 1. 1) 西谷能英著『出版のためのテキスト実践技法/執筆篇』の付録に収録するために v.
1. 01 に補足と大幅修正。 *2001/6/6(v. 1. 2) ●どちらかを選択して使用するもの、以下の部分の変更案を双方向性の矢印(←→) に変更し、どちらの可能性も同等にあることを明らかにした。 *2001/12/24(v. 1. 3 =現ファイル) 西谷能英著『出版のためのテキスト実践技法/編集篇』の付録に収録するために v. 1. 3 に補足と大幅修正。
[付録 2]SED 用スクリプト一覧(前項「編集用日本語表記統一基準」にもとづき、よ り多様な処理をくわえたスクリプト) # 全角数字を半角数字に変換する y/0123456789/0123456789/ # 全角アルファベットを半角にする y/ ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijk lmnopqrstuvwxyz /ABCDEFGHIJKLMNOPQRSTUVWXYZabcde fghijklmnopqrstuvwxyz/ # 全角マイナスを長音記号に y/ − / ー / # 記号類は全角に y/?!/ ?! / y/(){}[]<>「」/() {} [] 〈〉 「」/ y/+-=#$%&¥*@/ +−=#$%&¥*@ / y/。、ー・/。、ー・/ # 句読点を, .から、 。に戻す。 y/,./、。/ # 行頭 ・ 行末のむだなスペース削除 s/^[□ _]+¥([^ □ _]+¥)/ □ ¥1/g s/^[□ _]+$//g s/¥([^ □ _]+¥)[□ _]+$/¥1/g # 行頭 2 分下げ s/^ □ ¥([「『〈《([〔“]¥)/¥1/g s/^_+¥([「『〈《([〔“]¥)/¥1/g # 和文中、欧文中のむだなスペース削除 s/¥([、- 煕]¥)[□ _]+¥([、- 煕]¥)/¥1¥2/g s/¥([?!]¥)¥([、- 煕]¥)/¥1 □ ¥2/g s/¥([?!]¥) □ ¥([」』’”〉》]〕}】]¥)/¥1¥2/g s/¥([?!]¥)[□ _]+$/¥1/g s/¥([A-Za-z0-9]¥) □ ¥([A-Za-z0-9]¥)/¥1_¥2/g
付録
s/¥([A-Za-z0-9]+¥)_[□ _]+¥([A-Za-z0-9]+¥)/¥1_¥2/g s/¥([A-Za-z0-9]+¥)_[□ _]+¥([A-Za-z0-9]+¥)/¥1_¥2/g s/¥([])A-Za-z0-9]¥)[□ _]+¥([,.;:]¥)/¥1¥2/g s/¥([,.;:]¥)[□ _]*¥([[(A-Za-z0-9]¥)/¥1_¥2/g #() []は欧文中では半角に s/¥([]A-Za-z0-9]¥)(¥([[A-Za-z0-9(]¥)/¥1_(¥2/g s/¥([)A-Za-z0-9]¥)[¥([[A-Za-z0-9(]¥)/¥1_[¥2/g s/¥([]A-Za-z0-9]¥))¥([^,.;:]¥)/¥1)_¥2/g s/¥([A-Za-z0-9)]¥)]¥([^,.;:]¥)/¥1]_¥2/g s/¥([A-Za-z0-9]¥))¥([,.;:]¥)/¥1)¥2/g s/¥([A-Za-z0-9]¥)]¥([,.;:]¥)/¥1]¥2/g #,.;: のうしろに半角スペース挿入 s/¥([]A-Za-z0-9)]¥)¥([,.;:]¥)¥([A-Za-z0-9]¥)/¥1¥2_¥3/g s/¥([]A-Za-z0-9)]¥)¥([,.;:]¥)¥([A-Za-z0-9]¥)/¥1¥2_¥3/g # 漢字を開く(第一段階) s/敢えて/あえて/g s/¥([^ 言き判文]¥) 明か ¥([^ さしすせそりる]¥)/¥1 明らか★ ¥2/g s/辺り/あたり★/g s/余り/あまり★/g s/予め/あらかじめ/g s/凡ゆる/あらゆる/g s/[在有あ] り方/ありかた/g s/有り* 難 ¥([いきく]¥)/ありがた ¥1/g s/有り* 難う/ありがとう/g s/有り* 様/ありさま/g s/如何に/いかに/g s/幾ら/いくら/g s/些か/いささか/g s/何れ/いずれ/g s/頂 ¥([かきくけこ]¥)/いただ ¥1 ★/g s/一応/いちおう/g s/何時 ¥([^ 間]¥)/いつ★ ¥1/g s/一向 ¥([^ 宗一]¥)/いっこう★ ¥1/g s/一切 ¥([^ れ]¥)/いっさい ¥1/g s/一緒/いっしょ/g s/一斉/いっせい★/g s/一層/いっそう/g s/¥([^ 位と統同]¥) 一体 ¥([^ 化]¥)/¥1 いったい★ ¥2/g s/一旦/いったん/g s/色々/いろいろ/g s/の内 ¥([^ 縁奥外側在示心政戦相的発部紛包密務面容]¥)/のうち★ ¥1/g s/於 ¥([いけ]¥)/お ¥1/g s/往々/おうおう/g s/大いに/おおいに/g s/大袈裟/大げさ/g
s/概ね/おおむね/g s/恐らく/おそらく/g s/各々/おのおの/g s/面白 ¥([いかきくけしそ]¥)/おもしろ ¥1/g s/及び/および★/g s/凡そ/およそ★/g s/却って/かえって/g s/拘らず/かかわらず★/g s/¥([^ 心手]¥) 掛け/¥1 かけ★/g s/¥([ 心手]¥) かけ★/¥1 がけ/g s/且つ/かつ/g s/嘗て/かつて/g s/辛うじて/かろうじて/g s/極めて/きわめて/g s/¥([じたのる]¥) 位 ¥([^ 階相置]¥)/¥1 くらい★ ¥2/g s/極く/ごく/g s/¥([うたる年]¥) 毎/¥1 ごと★/g s/如 ¥([きく]¥)/ごと ¥1/g s/殊に/ことに/g s/差し当た*¥([っり]¥)/さしあた ¥1/g s/早速/さっそく/g s/様々/さまざま/g s/¥([^ 変夜]¥) 更に/さらに★/g s/然し/しかし/g s/然るべき/しかるべき/g s/?りに/しきりに/g s/従って/したがって★/g s/々/しばしば/g s/暫く/しばらく/g s/かも知れ ¥([ずなぬま]¥)/かもしれ ¥1/g s/随分/ずいぶん/g s/直ぐ/すぐ/g s/精々/せいぜい/g s/其れ/それ/g s/¥([^ 拡増]¥) 大し ¥([たて]¥)/¥1 たいし★ ¥2/g s/大体/だいたい★/g s/大抵/たいてい /g s/¥([^ 拡増]¥) 大分 ¥([^ 県市類]¥)/¥1 だいぶ★ ¥2/g s/沢山/たくさん/g s/只/ただ/g s/但し/ただし/g s/直ちに/ただちに/g s/¥([私僕君男女彼]¥) 達/¥1 たち/g s/¥([くしたみ]¥) 達/¥1 たち★/g s/忽ち/たちまち/g
付録
s/度々/たびたび/g s/¥([うくすたる]¥) 度 ¥([^ 合数量]¥)/¥1 たび★ ¥2/g s/多分/たぶん★/g s/¥([のる]¥) 為/¥1 ため/g s/段々/だんだん/g s/因みに/ちなみに/g s/丁度/ちょうど/g s/一寸 ¥([^ の法]¥)/ちょっと★ ¥1/g s/遂に/ついに/g s/¥([裏片気心近名根]¥) 付 ¥([いかきくけこ]¥)/¥1 づ★ ¥2/g s/¥([置命値連拠格序徴向]¥) 付 ¥([いかきくけこ]¥)/¥1 づ★ ¥2/g s/¥([顔傷]¥) 付 ¥([いかきくけこ]¥)/¥1 つ★ ¥2/g s/¥([いえがりきげび]¥) 付 ¥([いかきくけこ]¥)/¥1 つ★ ¥2/g s/都度/つど/g s/手掛かり/手がかり/g s/出来 ¥([^ 上事]¥)/でき★ ¥1/g s/到底/とうてい/g s/何処/どこ/g s/¥([たのる]¥) 所 ¥([^ 在属長得有]¥)/¥1 ところ★ ¥2/g s/途端/とたん/g s/兎 ¥([にも]¥) 角/と ¥1 かく/g s/共に/ともに★/g s/無 ¥([いかきくけさし]¥)/な★ ¥1/g s/乃至/ないし/g s/¥([^ 高]¥) 尚お*/なお★/g s/尚更/なおさら/g s/¥([。、たのる只]¥) 中 ¥([かでにのへを]¥)/¥1 なか★ ¥2/g s/世のなか★/世の中/g s/仲々/なかなか/g s/乍ら/ながら/g s/就中/なかんずく/g s/並びに/ならびに/g s/成る* 程/なるほど/g s/俄か*/にわか/g s/¥([くたのる]¥) 筈/¥1 はず/g s/果たして/はたして★/g s/遙か/はるか★/g s/相応し ¥([いかきくけ]¥)/ふさわし ¥1/g s/普段/ふだん/g s/¥([いうたのるれ今先]¥) 程 ¥([^ 度]¥)/¥1 ほど★ ¥2/g s/殆ど/ほとんど/g s/誠に/まことに★/g s/¥([^ 公厳方]¥) 正に/¥1 まさに★/g s/先ず/まず/g s/益々/ますます/g
s/又/また★/g s/迄/まで/g s/て見る/てみる/g s/寧ろ/むしろ/g s/無闇/むやみ/g s/巡 ¥([っらる]¥)/めぐ★ ¥1/g s/滅多に/めったに/g s/若しくは/もしくは/g s/勿論/もちろん/g s/以って/もって/g s/尤も/もっとも/g s/専ら/もっぱら/g s/元々/もともと/g s/最早/もはや/g s/貰 ¥([うい]¥)/もら★ ¥1/g s/諸々/もろもろ/g s/矢張り*/やはり/g s/¥([がたのれる]¥) 故 ¥([^ 意郷国人]¥)/¥1 ゆえ★ ¥2/g s/¥([^ 多同変模]¥) 様 ¥([なにの]¥)/¥1 よう★ ¥2/g s/漸く/ようやく/g s/余程/よほど/g s/¥([^ 見自何難部]¥)[判分解] か*¥([らりるれろっ]¥)/¥1 わか★ ¥2/g s/僅か/わずか/g s/亘 ¥([るっ]¥)/わた ¥1/g # 漢字を開く(第二段階) s/¥([のる]¥) 間 ¥([かでにのを、」]¥)/¥1 あいだ ¥2/g s/宛て*¥([^ 先]¥)/あて★ ¥1/g s/¥([^ 以最直背前]¥) 後で/¥1 あと★で/g s/¥([^ 公代発]¥) 表わ*¥([さしすせそれ]¥)/¥1 表わ★ ¥2/g s/¥([がでとにはを]¥) 現わ*¥([しすれ]¥)/¥1 現わ★ ¥2/g s/或る* いは/あるいは/g s/或る/ある★/g s/¥([てに]¥) 行 ¥([かきくけこっ]¥)/¥1 い★ ¥2/g s/依然/いぜん/g s/至 ¥([らりるれろっ]¥)/いた ¥1/g s/¥([^ 一合]¥) 致 ¥([さしすせそ]¥)/¥1 いた★ ¥2/g s/¥([たるの。、]¥) 今 ¥([^ 朝回紀度後年月日晩夜]¥)/¥1 いま★ ¥2/g s/¥([たのる]¥) 上 ¥([でに、]¥)/¥1 うえ★ ¥2/g s/後ろで/うしろで/g s/生れ/生まれ★/g s/得る/うる★/g s/¥([しりれを]¥) 得 ¥([ずたてな]¥)/¥1 え★ ¥2/g s/て置 ¥([いかきくけこ]¥)/てお ¥1 ★/g s/¥([をがは]¥) 行な*¥([いうえっわ]¥)/¥1 おこな ¥2/g s/自ずから/おのずから/g s/¥([たるの時]¥) 折り*¥([^ 角衝]¥)/¥1 おり★ ¥2/g
付録
s/[関係] わ*¥([らりるれろっ]¥)/かかわ ¥1/g s/¥([いのる]¥) 限り/¥1 かぎり/g s/難い/がたい/g s/¥([るたう]¥) 形 ¥([でにの]¥)/¥1 かたち★ ¥2/g s/仮り* に/かりに/g s/¥([てに]¥) 来 ¥([たて]¥)/¥1 き★ ¥2/g s/¥([をて]¥) 下さ ¥([いっらりるれろ]¥)/¥1 くださ★ ¥2/g s/¥([にて]¥) 来る/¥1 くる★/g s/詳し ¥([いかくけ]¥)/くわし ¥1/g s/¥([^ 解対]¥) 決して/¥1 けっして★/g s/て来な ¥([いかくけ]¥)/てこな★ ¥1/g s/¥([^ 近先日]¥) 頃/¥1 ころ★/g s/¥([^ 交国実戸手間]¥) 際 ¥([しにのは、]¥)/¥1 さい★ ¥2/g s/¥([^ 現事真忠]¥) 実 ¥([なにのはを]¥)/¥1 じつ★ ¥2/g s/済 ¥([むまん]¥)/す★ ¥1/g s/過ぎ ¥([ずな]¥)/すぎ★ ¥1/g s/既に/すでに/g s/即ち/すなわち/g s/[全総] て/すべて/g s/に対 ¥([すし]¥)/にたい★ ¥1/g s/絶えず/たえず/g s/の類 ¥([^ 縁型似推比]¥)/のたぐい★ ¥1/g s/例えば/たとえば/g s/¥([^ 簡]¥) 単 ¥([なに]¥)/¥1 たん★ ¥2/g s/¥([^ 間]¥) 違いな ¥([いく]¥)/¥1 ちがいな★ ¥2/g s/続 ¥([いかきくけこ]¥)/つづ ¥1/g s/¥([^ 異尋正非平]¥) 常に/¥1 つねに★/g s/¥([うたのる]¥) 時 ¥([^ 間期代点]¥)/¥1 とき★ ¥2/g s/特に/とくに★/g s/伴な*¥([いうえおっ]¥)/ともな ¥1/g s/¥([^ 硬素正率実廉]¥) 直 ¥([さしすせそらりるれろ]¥)/¥1 なお★ ¥2/g s/何物/何もの/g s/何 ¥([ただてでとのら]¥)/なん★ ¥1/g s/¥([。、(がたのはる]¥) 後 ¥([にの]¥)/¥1 のち★ ¥2/g s/¥([^ 以意除疎度]¥) 外 ¥([さしすせそれ]¥)/¥1 はず★ ¥2/g s/一つ/ひとつ/g s/人々/人びと/g s/¥([^ 同]¥) 一人/¥1 ひとり★/g s/風 ¥([でなにの]¥)/ふう★ ¥1/g s/再び/ふたたび/g s/[他外] なら ¥([ずな]¥)/ほかなら★ ¥1/g s/¥([^ 気]¥) 紛れ/¥1 まぎれ★/g
s/全く/まったく/g s/見い* 出 ¥([さしすせそ]¥)/みいだ★ ¥1/g s/見事/みごと/g s/難し ¥([いかきくけさそ]¥)/むずかし★ ¥1/g s/無論/むろん★/g s/目指 ¥([さしすせそ]¥)/めざ ¥1/g s/¥([^ 維金気心支手把]¥) 持 ¥([たちつってと]¥)/¥1 も★ ¥2/g s/最も/もっとも★/g s/の下 ¥([にで、]¥)/のもと★ ¥1/g s/基づ ¥([いかきくけこ]¥)/もとづ ¥1/g # 特殊表記 s/上 ¥([記掲述]¥)/前 ¥1/g s/づつ/ずつ★/g s/¥([長短全続]¥) 編/¥1 篇/g s/¥([〇一二三四五六七八九十]¥) 才/¥1 歳/g s/未来社/未來社/g s/文芸春秋/文藝春秋/g s/丸山真男/丸山眞男/g # 人称の統一 s/私/わたし/g s/我々/われわれ/g s/我が/わが/g s/¥([我彼]¥) 等/¥1 ら/g s/我 [等ら]/われら/g s/君/きみ/g s/彼/かれ/g # 世紀、月月日の統一 s/[00]¥([年月日世]¥)/〇 ¥1/g s/[11]¥([年月日世]¥)/一 ¥1/g s/[22]¥([年月日世]¥)/二 ¥1/g s/[33]¥([年月日世]¥)/三 ¥1/g s/[44]¥([年月日世]¥)/四 ¥1/g s/[55]¥([年月日世]¥)/五 ¥1/g s/[66]¥([年月日世]¥)/六 ¥1/g s/[77]¥([年月日世]¥)/七 ¥1/g s/[88]¥([年月日世]¥)/八 ¥1/g s/[99]¥([年月日世]¥)/九 ¥1/g s/[11 一] 〇世紀/十世紀/g s/[11 一]¥([一二三四五六七八九]¥) 世紀/十 ¥1 世紀/g s/[22 二] 〇世紀/ 二十世紀/g s/[22 二]¥([一二三四五六七八九]¥) 世紀/二十 ¥1 世紀/g s/[00]¥([〇一二三四五六七八九]¥) 年/〇 ¥1 年/g s/[11]¥([〇一二三四五六七八九]¥) 年/一 ¥1 年/g
付録
s/[22]¥([〇一二三四五六七八九]¥) 年/二 ¥1 年/g s/[33]¥([〇一二三四五六七八九]¥) 年/三 ¥1 年/g s/[44]¥([〇一二三四五六七八九]¥) 年/四 ¥1 年/g s/[55]¥([〇一二三四五六七八九]¥) 年/五 ¥1 年/g s/[66]¥([〇一二三四五六七八九]¥) 年/六 ¥1 年/g s/[77]¥([〇一二三四五六七八九]¥) 年/七 ¥1 年/g s/[88]¥([〇一二三四五六七八九]¥) 年/八 ¥1 年/g s/[99]¥([〇一二三四五六七八九]¥) 年/九 ¥1 年/g s/[00]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥) 年/〇 ¥1¥2 年/g s/[11]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥) 年/一 ¥1¥2 年/g s/[22]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥) 年/二 ¥1¥2 年/g s/[33]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥) 年/三 ¥1¥2 年/g s/[44]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥) 年/四 ¥1¥2 年/g s/[55]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥) 年/五 ¥1¥2 年/g s/[66]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥) 年/六 ¥1¥2 年/g s/[77]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥) 年/七 ¥1¥2 年/g s/[88]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥) 年/八 ¥1¥2 年/g s/[99]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥) 年/九 ¥1¥2 年/g s/[11]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八 九]¥) 年/一 ¥1¥2¥3 年/g s/[22]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八 九]¥) 年/二 ¥1¥2¥3 年/g s/¥([治正和成]¥)[11 一] 〇年/¥1 十年/g s/¥([治正和成]¥)[11 一]¥([一二三四五六七八九]¥) 年/¥1 十 ¥2 年/g s/¥([治和]¥)[22 二] 〇年/¥1 二十年/g s/¥([治和]¥)[22 二]¥([一二三四五六七八九]¥) 年/¥1 二十 ¥2 年/g s/¥([治和]¥)[33 三] 〇年/¥1 三十年/g s/¥([治和]¥)[33 三]¥([一二三四五六七八九]¥) 年/¥1 三十 ¥2 年/g s/¥([治和]¥)[44 四] 〇年/¥1 四十年/g s/¥([治和]¥)[44 四]¥([一二三四五六七八九]¥) 年/¥1 四十 ¥2 年/g s/ 昭和 [55 五] 〇年/昭和五十年/g s/ 昭和 [55 五]¥([一二三四五六七八九]¥) 年/昭和五十 ¥1 年/g s/ 昭和 [66 六] 〇年/昭和六十年/g s/ 昭和 [66 六]¥([一二三四五六]¥) 年/昭和六十 ¥1 年/g s/[11 一] 〇月/十月/g s/[11 一] 一月/十一月/g s/[11 一] 二月/十二月/g s/[11 一] 〇日/十日/g s/[11 一]¥([一二三四五六七八九]¥) 日/十 ¥1 日/g s/[22 二] 〇日/二十日/g s/[22 二]¥([一二三四五六七八九]¥) 日/二十 ¥1 日/g s/[33 三] 〇日/三十日/g s/[33 三] 一日/三十一日/g
# 十なし世紀、月月日の統一 s/[00 〇] 世紀/〇世紀/g s/[11] 世紀/一世紀/g s/[22] 世紀/二世紀/g s/[33] 世紀/三世紀/g s/[44] 世紀/四世紀/g s/[55] 世紀/五世紀/g s/[66] 世紀/六世紀/g s/[77] 世紀/七世紀/g s/[88] 世紀/八世紀/g s/[99] 世紀/九世紀/g s/[11 一 ]¥([〇一二三四五六七八九]¥) 世紀/一 ¥1 世紀/g s/[22 二 ]¥([〇一二三四五六七八九]¥) 世紀/二 ¥1 世紀/g s/[00] 年/〇年/g s/[11] 年/一年/g s/[22] 年/二年/g s/[33] 年/三年/g s/[44] 年/四年/g s/[55] 年/五年/g s/[66] 年/六年/g s/[77] 年/七年/g s/[88] 年/八年/g s/[99] 年/九年/g s/[00]¥([〇一二三四五六七八九]¥) 年/〇 ¥1 年/g s/[11]¥([〇一二三四五六七八九]¥) 年/一 ¥1 年/g s/[22]¥([〇一二三四五六七八九]¥) 年/二 ¥1 年/g s/[33]¥([〇一二三四五六七八九]¥) 年/三 ¥1 年/g s/[44]¥([〇一二三四五六七八九]¥) 年/四 ¥1 年/g s/[55]¥([〇一二三四五六七八九]¥) 年/五 ¥1 年/g s/[66]¥([〇一二三四五六七八九]¥) 年/六 ¥1 年/g s/[77]¥([〇一二三四五六七八九]¥) 年/七 ¥1 年/g s/[88]¥([〇一二三四五六七八九]¥) 年/八 ¥1 年/g s/[99]¥([〇一二三四五六七八九]¥) 年/九 ¥1 年/g s/[00]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥) 年/〇 ¥1¥2 年/g s/[11]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥) 年/一 ¥1¥2 年/g s/[22]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥) 年/二 ¥1¥2 年/g s/[33]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥) 年/三 ¥1¥2 年/g s/[44]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥) 年/四 ¥1¥2 年/g s/[55]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥) 年/五 ¥1¥2 年/g s/[66]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥) 年/六 ¥1¥2 年/g s/[77]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥) 年/七 ¥1¥2 年/g s/[88]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥) 年/八 ¥1¥2 年/g s/[99]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥) 年/九 ¥1¥2 年/g
付録
s/[11]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八 九]¥) 年/一 ¥1¥2¥3 年/g s/[22]¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八九]¥)¥([〇一二三四五六七八 九]¥) 年/二 ¥1¥2¥3 年/g s/[00] 月/〇月/g s/[11] 月/一月/g s/[22] 月/二月/g s/[33] 月/三月/g s/[44] 月/四月/g s/[55] 月/五月/g s/[66] 月/六月/g s/[77] 月/七月/g s/[88] 月/八月/g s/[99] 月/九月/g s/[11 一][〇一二] 月/一 ¥1 月/g s/[00] 日/〇日/g s/[11] 日/一日/g s/[22] 日/二日/g s/[33] 日/三日/g s/[44] 日/四日/g s/[55] 日/五日/g s/[66] 日/六日/g s/[77] 日/七日/g s/[88] 日/八日/g s/[99] 日/九日/g s/[11 一]¥([〇一二三四五六七八九]¥) 日/一 ¥1 日/g s/[22 二]¥([〇一二三四五六七八九]¥) 日/二 ¥1 日/g s/[33 三][00 〇] 日/三〇日/g s/[33 三][11 一] 日/三一日/g # ルビの()を【】にする s/ _ ^¥([、- 煕]+¥)(¥([、- 煕]+¥))^ _ / _ ^¥1【¥2】^ _ /g # 送りがなの統一(全部送る) s/上 ¥([らりるれろっ]¥)/上が★ ¥1/g s/¥([表現]¥)¥([さしすせそれ]¥)/¥1 わ★ ¥2/g s/合 ¥([さしすせそ]¥)/合わ★ ¥1/g s/受 ¥([合止取]¥)/受け★ ¥1/g s/打 ¥([合上落込出立取抜払]¥)/打ち★ ¥1/g s/浮 ¥([ばびぶべぼん]¥)/浮か★ ¥1/g s/浮 ¥([上沈出立]¥)/浮き★ ¥1/g s/生れ/生まれ★/g s/起 ¥([さしすせそらりるれろっ]¥)/起こ★ ¥1/g s/行 ¥([いうえおわっ]¥)/行な★ ¥1/g s/落 ¥([合込着]¥)/落ち★ ¥1/g s/落 ¥([さしすせそ]¥)/落と★ ¥1/g
s/¥([終変代]¥)¥([らりるれろっ]¥)/¥1 わ★ ¥2/g s/聞え/聞こえ★/g s/組 ¥([合上入込]¥)/組み★ ¥1/g s/繰 ¥([上入下返込出]¥)/繰り★ ¥1/g s/決 ¥([らりるれろっ]¥)/決ま★ ¥1/g s/異 ¥([らりるれろっ]¥)/異な★ ¥1/g s/過 ¥([さしすせそ]¥)/過ご★ ¥1/g s/立 ¥([合上入去向]¥)/立ち★ ¥1/g s/突 ¥([合上入落刺出立]¥)/突き★ ¥1/g s/突込/突っ★込/g s/取 ¥([合扱上入下落込締出立違持]¥)/取り★ ¥1/g s/引 ¥([合上入起下落込籠締出立取抜払]¥)/引き★ ¥1/g s/振 ¥([上落返込出抜払]¥)/振り★ ¥1/g s/振舞/振る★舞/g s/向 ¥([いうえおわっ]¥)/向か★ ¥1/g s/向合/向き★合/g s/分 ¥([らりるれろっ]¥)/分か★ ¥1/g # ルビを修正する s/@ ¥([^ ◆#]+¥) ◆* # ¥([^ $]+¥)$/¥2(¥1)/g
[付録 3]参考文献一覧 ■ SED 関係 ◇高橋陽著『sed による編集& DTP[実践]自動処理テクニック』1998年、技術評論 社…… SED についての最も具体的なマニュアル。CD-ROM 付き。 ◇浦山毅著『電子編集のススメ ── sed の活用』1998年、同成社…… MS-DOS での SED の編集活用をめざした先駆的な SED 本。 ◇デール ・ ドゥラティ + アーノルド ・ ロビンス著/福崎俊博訳『sed & awk プログラ ミング 改訂版』1997年、オライリー ・ ジャパン…… SED にかんする究極的な専門書。 awk についても詳しい。 ■正規表現について ◇ジェフリー ・E. F. フリードル著/歌代和正監訳『詳説 正規表現』1999年、オライリ ー ・ ジャパン……正規表現を勉強するには最高の本。Perl についての論述が中心なの でむずかしいが、マニア向け。 ◇ IDEA・C 著『正規表現の達人』2001年、ソフトバンク……正規表現を簡略に知るに は好適。 ■テキストエディタ関連書 ◇高橋陽 + 吉澤亨史 + 松本慧著『Jedit スーパーマニュアル』2001年、ラトルズ…… Jedit 開発者の松本慧氏をふくむ Jedit オフィシャルガイド。Jedit4用のマクロなどの入 った、CD-ROM 付き。 ◇鐸木能光著『テキストファイルとは何か?──知らぬでは済まぬ電脳社会の常識』 2001年、地人書館……テキストファイルについての丁寧な説明書。 ◇鐸木能光著『ワードを捨ててエディタを使おう 第 2 版』2001年、SCC …… Word 批
付録
201
判と QX エディタのすすめ。QX 関連 CD-ROM 付き。 ■パソコン用語関連 ◇岡本茂【監修】大島邦夫+堀本勝久著『最新パソコン用語事典 2001-02’年版』2001 年、技術評論社……パソコン用語についてなら、とりあえずこれ 1 冊はまず必要。
[付録 4]テキスト関連ソフト・ユーティリティのダウンロード先一覧 本書で推奨しているソフトあるいはユーティリティは、未來社ホームページの「未來社 ア ー カ イ ヴ 」 の ダ ウ ン ロ ー ド 用 ペ ー ジ ( http://www.miraisha.co.jp/mirai/archive. html)からプログラムの圧縮ファイルを取り出し、解凍したうえでインストールする ことができます。また、以下の代表的な Web サイトからも最新ヴァージョンをダウン ロードすることができます。 Yahoo! JAPAN http://www.yahoo.co.jp/ インフォシーク http://www.infoseek.co.jp/ 窓の杜 http://www.forest.impress.co.jp/ Vector http://www.vector.co.jp/ ●謝辞 ここに転載・収録させていただいたそれぞれのプログラムファイルの作者に感謝ととも にお礼を申し上げます。シェアウェアご利用の方は作者あてに料金をお支払いくださ い。なお、それぞれのプログラムファイルは以下の作者自身のホームページ等から最新 版がダウンロードできます。 ●Windows 系 秀丸エディタ Ver.3.13(hm313.exe)(テキストエディタ) http://hidemaru.xaxon.co.jp/ QX エディタ Ver.6.6(qxn66.lzh)(テキストエディタ) http://www2k.biglobe.ne.jp/~araken/ WinLPrt Ver 6.04.6(wprt646.exe)(テキストファイル印刷用ユーティリティ) http://www.htosh.com/ ComWin 3.97(comwp397.exe)(エミュレーション) http://hp.vector.jp/authors/VA002891/ DiskMirroringTool32 for BackUp v.3.33(dmt333.lzh)(バックアップ・ユーティリテ ィ) http://hp.vector.jp/authors/VA005759/ ToClip for Windows v.1.88(tc188.exe)(クリップボード・ユーティリティ) http://www2s.biglobe.ne.jp/~t-susumu/toclip/ QTClip 2.6(qtclip26.lzh)(クリップボード・ユーティリティ) http://www2k.biglobe.ne.jp/~araken/ Explzh for Windows v.3.39(explz339.exe)(圧縮・解凍ソフト) http://village.infoweb.ne.jp/~fwhv5283/ UNLHA32. DLL v.1.63(ulh3163.exe)(圧縮・解凍用ライブラリ) http://www2.nsknet.or.jp/~micco/micindex.html UNZIP32. DLL v. 5. 40(1999/2/11)(圧縮・解凍用ライブラリ) http://www.csdinc.co.jp/
* 秀丸エディタは斉藤秀夫氏作のシェアウェアです。 *QX エディタ、QTClip は新井健二氏作のシェアウェアです。 *WinLPrt は堀田俊哉氏作のシェアウェアです。 *ComWin は前寺正彦氏作のシェアウェアです。 *DiskMirroringTool32 for BackUp はCSQ氏のシェアウェアです。 *ToClip for Windows は寺尾進氏作のフリーウェアです。 *Explzh は鬼束裕之氏のシェアウェアです。 *UNLHA32. DLL は Micco 氏のフリーウェアです。 *UNZIP32. DLL は庄田隆司氏のフリーウェアです。 ● Macintosh 系 Jedit4. 0. 9(2)(テキストエディタ) Jedit409J.sea.bin(Classic OS 用フルセット版) Jedit409JX.dmg.gz.bin(Mac OS X 用フルセット版) Jedit409JUpd.sea.bin(Classic OS 用アップデート版) Jedit409JXUpd.dmg.gz.bin(Mac OS X 用アップデート版) JMultiReplace108J4.sea.hqx(Jedit4 の複数一括置換用マクロ ・ プログラム) Macro CollectionJ.sea.hqx(Jedit4 用マクロプログラム 10 種) 以上の入手先は http://www.matsumoto.co.jp/ LightWayText for Mac4.0.1(テキストエディタ) LightWayText_4.0.1_MacOS7_9.bin(Classic OS 用) LightWayText_4.0.1_MacOS_X.bin(Mac OS X 用) http://homepage1.nifty.com/lightway/ YooEdit (PPC) 1. 71(テキストエディタ) YE171p.sea.bin http://www2s.biglobe.ne.jp/~yex/ SedMac1.0.1.sit.bin(SED 本体) SedMacInterface1.0.cpt.bin(SED 用ユーティリティ) http://www.imasy.or.jp/%7Eiwao/ *Jedit, JMultiReplace, Macro Collection は株式会社まつもと作のシェアウェアです(後 者 2 つはフリーウェア)。 *LightWayText for Mac は山下道明氏作のシェアウェアです。 *YooEdit は田川洋一氏作のフリーウェアです。 *SedMac, SedMacInterface は山下巌氏作のフリーウェアです。
著者略歴
西谷能英(にしたに・よしひで) 1 9 4 9年、東京生まれ。 東京大学大学院フランス語フランス文学科修士課程修了。 1 9 7 6年、未來社入社。編集部を経て1992年より代表取締役。 『出版のためのテキスト実践技法/執筆篇』のほか、野沢啓の名で詩集『決意の人』、評 論集『移動論』 『隠喩的思考』(いずれも思潮社)その他がある。 現在、日本現代詩人会、日本文藝家協会所属。
出版のためのテキスト実践技法/編集篇 2002年1月2 5日 初版第一刷発行 本体1 6 0 0円+税 西谷能英
著者
西谷能英
発行者
株式会社 未來
定価
発行所
東京都文京区小石川3−7−2 振替0 0 1 7 0 ‐ 3 ‐ 8 7 3 8 5 電話 (0 3) 3 8 1 4 ‐ 5 5 2 1∼4 (営業部) 0 4 8 ‐ 4 5 0 ‐ 0 6 8 1∼2 URL:http://www.miraisha.co.jp/ Email:[email protected] 萩原印刷
印刷・製本
ISBN 4-624-00022-6 C0000 Yoshihide Nishitani 2002
[参考]出版のためのテキスト実践技法/執筆篇[目次]
はじめに――出版のためのテキスト実践技法 第 1 章 なんのためのテキスト実践か 1-1 出版をとりまく一般的状況 1-2 書物はすぐれたハードウェアである 1-3 出版は著者と編集者のコラボレーション 1-4 テキスト処理の技法は著者と編集者にとって意識革命である 1-5 デジタル化が企画を生み出す 1-6 著者に要求されているものはなにか 1-7 編集者はテキストエディタを駆使すべし 第 2 章 テキスト実践技法のために――基礎篇 2-1 出版に必要なのはテキストファイル 2-2 テキストファイルとはなにか 2-2-1 テキストデータのしくみ 2-2-2 なぜ改行が必要か 2-2-3 拡張子の概念と改行コードの形式 2-3 テキストエディタというツールとその種類 2-4 テキストエディタにはなにができるか 2-4-1 ファイルを開く 2-4-2 整形と検索・置換作業 第 3 章 執筆のためのテキスト入力マニュアル ――出版をより高速に、より安価にするにはどうするか 3-1 著者の仕事はテキストファイルの作成だけ ――入力されたものしかほんとうのデータではない 3-2 段落処理の基本 3-2-1 段落の最後はかならず改行マーク 3-2-2 行頭はスペース入力が基本
あとがき
3-3 スペース、タブの使い方 3-3-1 無用なスペース、タブは使わない 3-3-2 必要な半角スペースもある 3-3-3 タブの使用は特殊な指定にかぎる 3-4 数字の使い方 3-4-1 英数文字は半角が基本 3-4-2 記号の時計数字と丸付数字は使わない 3-4-3 漢数字への変換の必要 3-4-4 世紀、年月日等の表記統一の原則化 3-5 記号の使い方 3-5-1 ルビ、傍点、欧文特殊文字の扱いは記号による指示でよい 3-5-2 記号使用の原則いくつか 3-6 表記の基本的統一 3-6-1 漢字の使い方は厳密にしよう 3-6-2 漢字の開き方の意識化 3-7 検索と置換の技法 3-7-1 表記のブレだけでも直したい 3-7-2 テキストエディタによる検索と置換の基本テクニック 3-7-3 正規表現の基礎 3-8 原稿の保存と出力 3-8-1 原稿はかならず一度出力し、読み直す 3-8-2 原稿保存の基本 3-9 電子メールによる添付ファイルの送り方 第 4 章 執筆のためのパソコン技法 ――原稿書きのスピードアップのために 4-1 ファイル管理の技法 4-2 単語登録による高速化 4-2-1 よく使う単語、文字列は単語登録する 4-2-2 単語登録のテキスト書き出しとリスト作成の方法 4-3 クリップボード・ユーティリティの活用 4-4 ショートカットキーコマンドをなるべく覚える
4-5 テキストエディタのカスタマイズ 4-5-1 キーコマンドなど徹底的にカスタマイズして使おう 4-5-2 テキストエディタの操作性を自分用に変更する 4-6 バックアップは絶対必要 あとがき [付録] 「編集用日本語表記統一基準」 テキスト関連ソフト・ユーティリティのダウンロード先一覧