RedPenを使って技術文書を手軽に校正しよう

第4回 RedPenの利用方法

この記事を読むのに必要な時間:およそ 3 分

本連載を執筆している伊藤@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という名前で保存されています。

このプロジェクトを次のコマンドでダウンロードします。

$git clone git@github.com:takahi-i/gihyo-redpen-latex.git

ではLaTeX文書(main.tex)に次のようにPandocを適用します。

$pandoc -s main.tex -o main.md

その結果,main.mdというMarkdownフォーマットに変換された文書が生成されます。生成されたMarkdownフォーマット文書(main.md)にRedPenを適用します。

$redpen -c redpen-conf.xml -f markdown main.md

すると,次のような検査結果が出力されます。

$redpen --conf redpen-conf.xml -f markdown main.md
17:02:43.052 [main] INFO  cc.redpen.ConfigurationLoader - Loading config from specified config file: "/Users/ito/work/gihyo-redpen-latex/redpen-conf.xml"
17:02:43.132 [main] INFO  cc.redpen.ConfigurationLoader - Succeeded to load configuration file
17:02:43.132 [main] INFO  cc.redpen.ConfigurationLoader - Language is set to "ja"
17:02:43.133 [main] INFO  cc.redpen.ConfigurationLoader - More than one "symbol " blocks in the configuration
17:02:43.852 [main] INFO  cc.redpen.parser.SentenceExtractor - "[., ?, !]" are added as a end of sentence characters
...
main.md:1: ValidationError[InvalidSymbol], 不正なシンボル ":" がみつかりました at line: authors: 伊藤 敬彦 title: 自動文書検査ツール RedPen
main.md:1: ValidationError[DoubledWord], 一文に二回以上利用されている単語 ":" がみつかりました at line: authors: 伊藤 敬彦 title: 自動文書検査ツール RedPen
main.md:4: ValidationError[InvalidSymbol], 不正なシンボル "\" がみつかりました at line: 規約にしたがった文書記述をサポートするツールとして RedPen \cite{redpen} を作成した.

入力文書(main.tex)の校正は終わっているにもかかわらず,いつくかエラーが出力されてしまっています。これらのエラーはPandocがLaTeX文書をMarkdownに適用した際に混入してしまったものです。残念ながら現在のところPandocに由来するエラーをとりのぞく簡単な方法は存在しません。とはいえ一部のエラーに目をつぶれば,問題なく利用できるでしょう。

※1
本連載ではLaTeXをコンパイルしてDVIファイルを生成する処理の解説はしません。対象文書をコンパイルしたい場合には,ご自身の環境に日本語LaTeX環境がインストールしていただきplatexコマンドを実行してください。

LaTeX以外の文書にRedPenを適用

ここではLaTeX文書にRedPenを適用しました。Panndocにサポートされていれば,LaTeX以外のフォーマットでもMarkdownに変換してRedPenを適用できます。

ノート:LaTeXサポート

本節で述べたように現状のRedPenはLaTeXをサポートしていません。ただRedPenを作りはじめて以来,LaTeXをサポートしてほしいという声を多数いただいています。そのため中期的にRedPen自体でLaTeXをサポートする予定です。LaTeXサポートに着手する時期ですが,現在取り組んでいるエラー箇所の位置を出力に加える部分の実装が終わった後を想定しています。

多様な利用環境

前節ではRedPenを多様なフォーマットの文書に適用する方法について述べました。本節ではRedPenをコマンドライン以外で簡単に利用する方法について解説します。

サーバ

RedPenはコマンド以外にもサンプルサーバを提供しています。残念ながら現状のサンプルサーバは半構造化データに対応していないなど,機能が十分提供されていません。コマンドに比べ機能は十分ではありませんが,RedPenが行う処理をUIをとおして体験できるようになっています。

RedPenサーバはリリースページに存在するwarファイルをダウンロードして使用します。warファイルは次のコマンドで実行できます。

$java -jar redpen-server-1.0.1.war

上記のコマンドを実行すると,RedPenサーバが立ち上がります。サーバが立ち上がった後ウェブブラウザで"localhost:8080"にアクセスしてください。すると,次のUIページが表示されます。

RedPenサーバ

画像

ではUIページの入力フォームに,次の文章を入力してみましょう。

最近利用されているソフトウェアの中には複数の計算機上で動作(分散)するものが多く存在し、このような分散ソフトウェアは複数の計算機で動作することで大量のデータを扱えたり,高負荷な状況に対処できたりします。
本稿では,複数の計算機(クラスタ)でで動作する各サーバーを「インスタンス」と呼びまます。
たとえば検索エンジンやデータベースではインデックスを複数のインスタンスで分割して保持します。
このような場合、各インデクスの結果をマージしてclientプログラムに渡す機構が必要となります。

そして"Validate Japanese"をクリックすると,次図のようにエラーがフォームの下に列挙されます。

RedPenサーバのエラー出力

画像

著者プロフィール

伊藤敬彦(いとうたかひこ)

ソフトウェアエンジニア。専門はデータマイニングと情報検索だが,他にも色々やってみたいと感じている。

コメント

コメントの記入