tex2text.rb (テキスト抽出簡易版)

tex2text.rb は,texファイルから plain text を抽出する Ruby スクリプトです. PDFからテキストを抜き出すときに,図表中の文字列が混ざってしまうのを避けるために作ってみました. 作成中の英語論文の中から本文だけを抜き出して スペルチェッカにかけるという程度の用途を想定しています. ただし,LaTeX 文書としての処理はまじめにやってないので,独自マクロを大量に使う人には向きません. Ruby 1.8 で開発しています.日本語を通す実験はしていません.

利用上の規約は今のところ特にありません. 時間の都合で極めて単純な("泥臭い")実装を しているので,もしスクリプトを改造するなどした場合は, メール等でフィードバックしていただけると幸いです.

使い方

ruby tex2text.rb foo.tex
ruby tex2text.rb -s foo.tex   # 文区切り以外の改行,参考文献記号なども除去. こちらを推奨

標準出力にテキストが出てくるので, 適当にリダイレクトするなどして使ってください.

ダウンロードはこちら

都合によりテキストファイルになっていますが, そのまま拡張子を .rb にして使ってください. スクリプト自体の改行コードは LF です(古いバージョンは CRLF でした). ファイル保存時,改行コードが CRLF になったりすると, "Command not found" とかではまりますので,いちおう保存したあとに確認してください.

2007.04.30 "\%" の "%" 以降がコメントとして除去される問題が修正されました. 送っていただいたパッチに感謝. 今のところ "\%" はそのままにしてます("%" に置換したりはしてません).
2006.10.03 \input の多段階の処理に対応し,また,中括弧や数式の除去も少し(エスケープへの対応など)改善しました. また,begin/end の部分は "--- begin ... ---" のようなメッセージを挿むようにしました. プログラムの構造化途中で中途半端なコードになってるのは許してください.
2005.10.07 \item の除去に対応しました.description 環境での "[]" はそのまま残ります.
2005.07.22 数式の除去に対応しました.また,"-s" オプション設定時は, できるだけ改行を取り除くようになりました. (明らかに英文対応なコードですが,改行を取り除くとき, 半角空白を必要なら挿入するようになっています).
2005.07.20 文中のフォント変更タグの除去,\footnote の除去に対応しました. footnote が取り除かれた後には "(*1)" のような指示が入ります. \footnote の中身はやはりストリーム末尾に付加されます. "tex2text -s filename" で,footnote 除去後の "(*1)",文献引用の "[1]" を 挿入しない文章を生成できます. これで,より,スペルチェッカにかけやすい結果を生成できるようになりました. "\char" など一部のタグを取り除かなくなったので,若干,使い勝手は変わっています.
2005.07.17 \verb に対応しました.\verb の中身は(スペルチェックの邪魔になるので)"Verb n" という表現に置換され, 中身のほうは,ストリームの末尾に付加されるようになりました.
2004.12.28 引用ドキュメントが存在しない場合にエラーが出る問題を修正しました。
2004.12.24 Ruby 1.8 で Syntax Error が出る問題を修正しました。

変換サンプル

変換前:
\section{Solution Name: Assertion with Aspect}

We propose to use aspects to declare assertion.
\emph{Assertion} consists of an assertion statement, 
preconditions and postconditions\cite{Meyer}. 


変換後:
1 Solution Name: Assertion with Aspect


We propose to use aspects to declare assertion.
Assertion consists of an assertion statement, 
preconditions and postconditions[3]. 

Copyright (C) Takashi Ishio, 2006, All Rights Reserved.

Return to the Top page.