本連載を執筆している伊藤(@takahi_i)です。今回はRedPenの多様な利用方法について解説します。前半ではLaTeXなど様々なフォーマットで書かれた文書にRedPenを適用する方法について解説します。後半ではRedPenをコマンド以外から利用する方法など、現在のRedPenをとりまく状況について解説します。
多様なフォーマットで書かれた文書への対応
技術文書のフォーマットはRedPenがサポートするMarkdownやWiki記法以外にもたくさんあります。たとえば、多くの論文はLaTeXを利用して記述されます。マニュアルであればSphinxを利用しているグループもあるかもしれません。
以下、例としてLaTeXフォーマットで書かれた文書にRedPenを適用する方法について解説します。
LaTeX文書にRedPenを適用
残念ながら現状のRedPenはLaTeX文書に対応していません。そこで私がLaTeXで文書を書くときにはPandocというフォーマット変換ツールを利用します。
PandocはLaTeXやRST等の多くのデータフォーマットをサポートしています。Pandocのインストール方法についてはPandocのホームページを参照してください。
では実際にLaTeX文書にたいしてRedPenを適用しましょう[1]。今回利用するLaTeXのサンプル文書プロジェクトをGitHub上に作りました。サンプル文書はmain.texという名前で保存されています。
このプロジェクトを次のコマンドでダウンロードします。
ではLaTeX文書(main.tex)に次のようにPandocを適用します。
その結果、main.mdというMarkdownフォーマットに変換された文書が生成されます。生成されたMarkdownフォーマット文書(main.md)にRedPenを適用します。
すると、次のような検査結果が出力されます。
入力文書(main.tex)の校正は終わっているにもかかわらず、いつくかエラーが出力されてしまっています。これらのエラーはPandocがLaTeX文書をMarkdownに適用した際に混入してしまったものです。残念ながら現在のところPandocに由来するエラーをとりのぞく簡単な方法は存在しません。とはいえ一部のエラーに目をつぶれば、問題なく利用できるでしょう。
LaTeX以外の文書にRedPenを適用
ここではLaTeX文書にRedPenを適用しました。Panndocにサポートされていれば、LaTeX以外のフォーマットでもMarkdownに変換してRedPenを適用できます。
多様な利用環境
前節ではRedPenを多様なフォーマットの文書に適用する方法について述べました。本節ではRedPenをコマンドライン以外で簡単に利用する方法について解説します。
サーバ
RedPenはコマンド以外にもサンプルサーバを提供しています。残念ながら現状のサンプルサーバは半構造化データに対応していないなど、機能が十分提供されていません。コマンドに比べ機能は十分ではありませんが、RedPenが行う処理をUIをとおして体験できるようになっています。
RedPenサーバはリリースページに存在するwarファイルをダウンロードして使用します。warファイルは次のコマンドで実行できます。
上記のコマンドを実行すると、RedPenサーバが立ち上がります。サーバが立ち上がった後ウェブブラウザで"localhost:8080"にアクセスしてください。すると、次のUIページが表示されます。
ではUIページの入力フォームに、次の文章を入力してみましょう。
そして"Validate Japanese"をクリックすると、次図のようにエラーがフォームの下に列挙されます。
Herokuボタン
さらにRedPenサーバはHerokuボタンから立ち上げられます。Heroku上にRedPenが立ち上がることで、ユーザ環境でサーバを管理する手間がなくなります。
Herokuボタンをクリックすると、次の画面に遷移します。
画面内の"Deploy for Free"と書かれたボタンをクリックすると、Heroku環境でRedPenサーバの配備がはじまります。
Atomからの利用
AtomはGitHubが公開したエディタです。Atomの特徴のひとつに豊富なパッケージ(機能拡張)群があります。
パッケージの中には他のエディタを利用する人が乗り換えやすいようにキーバインドをシミュレートするものが存在します。私は長年Emacsで文書を書いていたのですが、Emacsのキーバインドをシミュレートするパッケージを利用することで比較的簡単に乗り換えられました。
先日@griffin_stewieさんがAtomのRedPenパッケージを作成しました。詳しい使い方は@griffin_stewieさんのRedPen パッケージについてのブログ記事に説明があるのでそちらを参照してください。
実はこの原稿をAtom Editorで書きRedPenパッケージでチェックしています。コマンドラインと違って、リアルタイムに検査結果が表示されるので大変便利です。次図はAtom Editorでの作業の様子です。
Homebrew対応
@kozo2さんがRedPenのHombebrew用のforumlaを記述してプルリクエストを送っています。もうしばらくするとマージされるのではないかと思います。HomeBrew対応によりRedPenをインストールするコストがさらに低減されることが期待できます。
Rubyバインディング
RedPen自体はJavaで記述されていますが、RubyからRedPenを簡単に呼び出すためのGemを@akinomurasameさんが公開しました。普段Rubyを利用される方は、文書執筆する際に是非いちど試してみてください。
まとめ
今回はRedPenを多様な状況で利用する方法について解説しました。前半ではRedPenがサポートしていない多様なフォーマットで書かれた文書にRedPenを適用する方法について述べました。後半では、RedPenが提供するコマンド以外での利用方法について解説しました。