note:検索・置換と正規表現
これまで検索・置換する時に出てきた謎の記号たちは正規表現[regular expression]といい、簡単に言うと「表記ゆれを含めて検索するための一種の言語」です。
例えば前項で解説した !! は、これしか使っていないなら普通に検索すればいいんですが、!?も使っていたりところによって半角だったり全角だったりするとその度に条件を変えて検索し直さないとなりません。[!?!?]{2,3}
は、それらを一気に全部ヒットさせるように正規表現を使って書いたものです。書き方を変えることでもっと複雑な条件でも自在に検索・置換できるようになります。
正直これはこれでまた別の新たなる魔道でして、TeX同様極めるには時間がかかります。なので、自分の原稿のどこに何が書かれてるか把握していてわざわざ検索する必要がない人、元々執筆ルールが決まっていて表記ゆれが少ない人、覚えることを最小限にするためなら手で書き換えることも厭わない人は、使わなくてもなんとかなります。TeXコマンドだけを覚えて、該当する箇所に目視で書き込むようにしてください。
しかし大長編や他人の原稿などではそうはいきません。目視検索&手書き置換では限界があるので、エディタの機能と正規表現を使うことになります。
正規表現の踏み込んだ文法解説はこのサイトの範囲を超えるので行いません。小説組版の用途だけなら、当サイトからのコピペのみで大丈夫だと思います。(不具合があったら教えてください)
興味が湧いた方は、4回連載の「初心者歓迎!手と目で覚える正規表現入門」などで勉強してみてください。小説や組版に限らず、使いこなせると大変便利です。
コピペ時の注意
結論から言いますと、これ以降の記事に出てくる正規表現はTeXWorks含む古いテキストエディタでは動きません。検索・置換作業は新仕様に対応したエディタを使うことを強くおすすめします。
対応しているエディタはMery、Sublime Text(試用期間つきシェアウェア)、Atom(戻り読みのみ非対応)。オンラインで使えるツールには正規表現M@STER、Online regex tester and debuggerがあります。
贔屓のテキストエディタで使えるかどうかは、「Unicode文字プロパティ」と「戻り読み(後読み)」対応かを調べてみてください。RubyかPerl(PCRE)処理系、または鬼車/鬼雲エンジン搭載だと安心です。
好きなエディタで書けるのがTeXのいいところと言い切ったにも関わらずこんなことになってしまうのは筆者の力不足と、あとは拡張性・将来性のことがあってです。
例えば全ての漢字にヒットさせるには、幅広いエディタで使える古い文法では[一-龠]
、対応エディタでしか使えない新しい文法では[\p{Han}]
と書きます。ところが古い書き方では洩れる漢字が出てきます。JIS第三水準くらいまでならいけるはずですが、それでも人名や地名などでどんな難しい漢字を使うとも限りません。小説ということで、凝った文体を使いたい人も多いでしょう。
漢字以外の例でも、新文法の方が正確・柔軟に検索できるので、ここでは新しい文法の方を採用することにしました。
本文編集と組版を行ったり来たりしてるとだんだん疲れてきてもう全部TeXWorksでやりたくなってくるんですが、旧式の正規表現と文字列処理系の難しさに諦めました。そんなわけでしばらく2エディタ(場合によっては3エディタ)体制にお付き合いください。すみません。
青空文庫形式を使っている人へ
青空文庫式の注記を使っている場合、検索・置換のパターンがそうでない場合と大きく変わります。TeXコマンド解説と分けるため、詳しい置換パターンは青空文庫からの置換(作成中)にまとめました。記事の初めから順に注記をTeXコマンドに置換していってください。