2011-07-06 25 views
1

GIF形式で保存されたMathTypeの方程式をMathMLに変換したいと考えています。まず、これらのGIFファイルを開いてMathType 6.7に保存しました。その結果、MathMLテキストがGIFファイルの最後に挿入されます。MathTypeの式をMathML形式に変換するにはどうすればよいですか?

<mn > XXX </MN>

:私はPerlスクリプトを使用して、これらのGIFファイルからのMathMLテキストを抽出する場合しかし、私は、次のテキストとしてのMathMLテキスト内のいくつかの文字化けを見つけました

上記の行では、「mn」ラベルの前に文字化けした文字「」が挿入されています。このMathTypeのBUGですか?この問題を回避するにはどうすればよいですか?テストGIFファイルをアップロードしました。 URLは:http://ubuntuone.com/p/1352/

更新: ここではMathMLの完全ブロックを貼り付けようとしましたが、MathMLテキストの構文形式が乱されていました。そこで私はGitHubにMathMLを貼り付けました:https://gist.github.com/1068723

MathMLテキストの7行目に「&#x00A0;&#x00A0;?#x00A0;」という文字化けがあります。

のMathMLテキストが含まれていないオリジナルのGIFファイル:https://gist.github.com/1068749

おかげで、 thinkhy

+0

@Bob Mathews:私はMathTypeに関するあなたの答えを読んだ。私の質問にもお答えください。ありがとう。 – thinkhy

+0

GIFイメージのGIFファイルはありますか? –

+0

@Jason SこれらのGIF画像は、MathType 6.7で生成されたもので、MathTypeの式形式の余分なデータが含まれています。 – thinkhy

答えて

2

おかげthinkhy:MathTypeのによって生成されたGIF画像からのMathMLを抽出http://ubuntuone.com/p/13Ba/

Perlスクリプト。データを間違って抽出している可能性があります(スクリプトはまだ見ていません)。あなたのGIFのうち1つだけがMathMLを持っていました - ファイル名が106Rから始まるもの。その場合、最後までMathMLのように見える最初のビットからすべてのバイトを取得するだけでは、奇数バイトを定期的に取得します。最後のバイトを除く255バイトです。 (これはあなたが見ているジャンク文字ではないようです。)255の理由は、MathMLが複数のコメントレコードに分散され、それぞれのレコードがレコード内のバイト数で始まるからです。 (無料ダウンロード、下のリンク)MathTypeのSDKから:


GIFイメージファイル

のMathMLテキストは14バイトのヘッダで構成されてアプリケーションの拡張子を録音、などGIFファイルに埋め込まれている(応用Extension Descriptor)、その後にMTEFデータが続きます。ヘッダーには以下が含まれます。

Byte Introducer = 0x21; 
Byte ExtensionLabel = 0xFF; 
Byte BlockSize = 0x0B; 
Byte ApplicationId[8] = "MathType"; 
Byte AuthenticationCode[3] = "003"; 

データはこのヘッダーの後に続き、255バイト以下の一連のブロックとして書き込まれます。各ブロックは、データが続く1バイトカウントで始まります。最後は長さが0のブロックとしてマークされます。

ヘッダーは、データを抽出する最も簡単な方法は、14バイトヘッダーのファイルをスキャンし、次にMathMLデータブロックが続くことを期待するほどユニークです。適切にGIFレコードをデコードすることはそれほど難しいことではありませんが、明らかにGIF仕様を読む必要があります。


あなたはすでにSDKを使用してもよいが、あなたがいたかどうかと言うので、ここでのリンクだしませんでした:http://www.dessci.com/en/reference/sdk/

+0

あなたの返信はThaxです。私はちょうど私のポストを更新しました。 – thinkhy

+0

ありがとうございます。今、私はMathMLを正常に抽出します。あなたが言ったように、私は既にMathType SDKを使用しています。しかし、C/C++よりもPerlを使用する方が簡単だと思います。だから私は抽出のために私のPerlスクリプトを更新しました:https://gist.github.com/1069127 – thinkhy

+0

それは知って素晴らしいです;更新していただきありがとうございます。また、dessciドットコムのボブで私にメールを送ってもらえますか?それはあなたのスクリプトの最初のバージョンです。 – afwings

関連する問題