私は文芸同人誌の入稿用PDFを作成するとき、Cloud LaTexというオンラインツールを使用している。
Cloud LaTexを使用すると非常に整った入稿用PDFを作れるのだけれど、その際、普通の原稿(.txt)データに少し手を加えたものを元にすると、もっと手軽に美しく出力できるようになる。
たとえば文内の全角空白すべてに「行頭以外なら全角空白になるが、行頭なら空白にならない記号」を仕込んだり、「――」を「どんなフォントでも繋がるダッシュ2つぶん記号」に置き換えたり。ひと手間加えると、目視で潰すべき粗が減る。つまりミスが減る。
そこでサクラエディタを使用し、「.txtファイルの中身をCloud LaTex用に整えるキーマクロ」を組んでみた。
前提
「りお」さんのnote記事『【Cloud LaTeXで小説同人誌】 #0 Wordと仲良くなれないのでLaTeXを使おう』に倣ってCloud LaTexのベース環境を整えている。
「ちょっと難しいCloud LaTexをコピペだけで使えるようにしよう」という趣旨で、わかりやすく詳しく解説してくださっている素晴らしい記事。
Wordと付き合いかね、「Word 設定を勝手に変えない」「Word ルビ 重なる」などでWEB検索していた折にたどり着いたこの記事……この記事に出会っていなければ、私はきっと今でもWordと無意味な格闘を続けていただろう。本当にありがとうございます。
マクロでやりたいこと
原稿の本文たる.txtファイルに、以下を反映させる。
- すべての行頭に全角空白を挿入
- 行頭以外の全角空白をすべて「\zenaki{}」に置換
- 「――」を「\jdash{2}」に置換
- 「!?」や「?!」があれば、縦横中にする
マクロ処理を実行する前にやること
目視で、「!」や「?」のうしろに「全角空白」が入っていることを確認する。
「空白がすでに入っていたらスルーし、入っていなかったら全角空白を入れる」処理もマクロに組み込めそうなものだが、正規表現をコピペでしか使えない私のような人間にはハードルが高い。
どうせマクロを走らせる前に本文を読み返すので、その時に対処すればいいやと思っている。
マクロの本文
サクラエディタのキーマクロで作成したもの。置換方法は前述、「りお」さんのnote1を参照した。
//キーボードマクロのファイル
SelectAll(0); // すべて選択
LTrim(0); // 左(先頭)の空白を削除
ReplaceAll('^(?!「|(|『|【|[|《|〈|{|〔)', ' ', 60); // すべての行頭に全角空白を挿入(字下げ)
ReplaceAll('(?!^) ', '\\\\zenaki{}', 60); // 全角空白を記号「\zenaki{}」に置換
ReplaceAll('――', '\\jdash{2}', 56); // ダッシュを記号「\jdash{2}」に置換
ReplaceAll('──', '\\jdash{2}', 56); // 罫線を記号「\jdash{2}」に置換
ReplaceAll('!!', '\\tcy{!!}', 56); // !!を縦横中(\tcy{!!})に置換
ReplaceAll('!?', '\\tcy{!?}', 56); // !?を縦横中(\tcy{!?})に置換
ReplaceAll('?!', '\\tcy{?!}', 56); // ?!を縦横中(\tcy{?!})に置換
ReplaceAll('??', '\\tcy{??}', 56); // ??を縦横中(\tcy{??})に置換
拡張子「.mac」で適当な名前をつけて保存。
サクラエディタの[設定]>[共通設定]>[マクロ]から、空いてる番号を選択し、先ほど保存した「〇〇.mac」ファイルを設定する。
以降は、[ツール]>[登録済マクロ]から、登録したマクロが使えるようになる。
おわりに
正規表現に詳しくないため、おおよそを先達ブログからのコピペでまかなっている。
自分の書いた小説を本にするだけなら手動で置換してもよかったのだが、文芸誌の制作をするにあたり沢山の人から多種多様な原稿をお預かりしたことをきっかけに、効率化を図ることにした。
他にもいろんな処理をマクロで便利にしてゆけそうなので、時間が空いたら正規表現について勉強してみようと思う。
参考にしたWEBページ
Thank you sooo much!!!
- りおさんのnote連載#3。【Cloud LaTeXで小説同人誌】 #3 本文を LaTeX 用に編集しよう ↩︎
他、サクラエディタ同梱のヘルプファイル「macro.chm」のお世話になりました。