2020年2月1日土曜日

Word での一斉置換


半角文字しか使わない西洋では問題にならないものと思いますが、半角と全角を混ぜこぜにする日本語では、少し見栄えが文章で問題になることがあります。MS-Word では、半角と全角文字の間に少しだけ間隔を入れてくれる機能があります。

「段落」→「体裁」→「日本語と英字(数字)の間隔を自動調整する」

今ちょうど卒論と修論のチェックの真っ最中ですが、上記の機能をオンにしていても、次のようなことが起こります。下記の文章を Times New Roman などで表示させると、半角のカッコの前後が本当に窮屈なのです。

A-buffer(20mM Tris-HCl, pH6.8, NaCl 30mM)5000mlNMRチューブに入れた。」

そこで一斉に検索&置換することにしました。要は、次のように書きたいわけです。

A-buffer (20 mM Tris-HCl, pH 6.8, NaCl 30 mM) 5,000 mL NMR チューブに入れた。」

NMR 管の中に buffer をどうやって 5L も入れるんだというツッコミは置いておいて。

ところが文章の中には、すでに両端にスペースを付けている箇所もあって、つまり、場所によってポリシーがばらばら。。。本来は文章の論理を修正しないといけないのに、なぜかこのような枝葉末節の修正に時間をとられてしまうのは馬鹿らしいものです。

あまりワードの検索&置換をしたことがなかったのですが、Word にもワイルドカードというものがあるのを初めて知りました。いつもは Perl などを使って PDB の側鎖の表記を修正したりするのに使っています(これ自動化が進んでいる結晶構造解析の人にはピンと来ないかも)。ちょっとややこしいかったのですが、何とか次のようにすることで一斉に修正ができました。

「検索と置換」で「オプション」をクリックします。すると、詳細な検索と置換が可能となります。また、「ワイルドカードを使用する」にチェックを入れます。

まずは、5000 のような数値に 5,000 のようにコンマを加えます。


[1-9] の箇所は、1 から 9 までの数値のいずれかを表します。[0-9] にしておいた方が良かったかもしれません。

次は後ろカッコ(半角)の後にスペースを入れています。


半角スペースに気を付けてください。大げさに書くと次のようになります。
\)([!    ])
これで、後ろカッコの後にスペース以外の文字が来たら、という意味になります。
)    \1
これで、後ろカッコの後にスペースを置き、さらに次の1文字を置いてくださいという意味になります。

前カッコ(半角)の前にもスペースを入れます。


好き好きかもしれませんが、pH と数値の間にも半角スペースを入れましょう。


数値と単位の間にもスペースを入れた方が見易いです。


と、ここまで書いてみましたが、単純に(ワイルドカードを使わずに)「(」を「(   」に一斉置換した方が分かり易いかもしれません。その場合は余計にスペースが入る箇所も出てきてしまいますので、今度はスペース2個が連続している箇所をサーチしてスペース1個に自動置換すればよいでしょう(これを連続スペースがなくなるまで何度か繰り返す)。

最後に注意点です。一斉置換すると、しばしば予期しない置換が起こります。そのため、複製したファイルに対してこのような操作を行い、いつでも元に戻せるようにオリジナルのファイルは残しておきましょう。あるいは、「保存」ボタンを押してから操作を行い、失敗したら保存せずに終了させる。


0 件のコメント: