この記事では、ONLYOFFICEエディターでこの問題を解決する方法について説明します。 答えは簡単です。K-「変換」。 古い式を編集可能な新しい式に変換し、私たちのアイデアに非常に満足しています。 なぜこのようにしたのか、変換がどのように機能するのかを読み進めてください。

数式の二元論
Microsoftエディターでは、2つの異なる形式で数式を入力できます。
古い式形式は、Microsoft Equationアドインを使用して2007年より前にMS Officeで作成された式です。 たとえば、Wordでこのような数式を作成するには、ユーザーはメニュー([ 挿入 ]-> [ オブジェクト] -> [ Microsoft Equation] )を使用してサードパーティのエディターを呼び出します。 このコマンドは、数式エディターを開きます。これは、実際にはDesign ScienceのMath Typeプログラムの簡略版です。
したがって、古い式はOLEオブジェクトです。 Wordは、ドキュメントの特定の領域を別のアプリケーションに提供するだけで、このアプリケーションがドキュメント内で何をするのかさえ知らない。 閉じた後、MS Equation Wordは、作成された数式をテキストに埋め込まれた画像として参照します。 テキスト自体を編集することはできません-数式エディタを再度呼び出す必要があります。
2007年、docxへの移行が始まりました。 彼と一緒に、Microsoftには独自の数式エディタがあり、その可能性ははるかに広くなっています。 まず、より数学的な記号とパターンがあります。 第二に、新しいエディターにより、Wordは数式を画像としてではなく、テキストの一部として使用できます。 したがって、新しい数式エディターはWYSIWYGエディターです。
数学者や数式を必要とするすべての人の生活は、新しいエディターの登場によって簡素化されたように思われました。 しかし、問題がありました。 docx形式への移行はすぐには行われませんでした-doc形式の大量のドキュメントが残っていました。 また、多くのドキュメントがドキュメントに永続的に保存され続けます。 そして、これは驚くことではありません-多くは古いコンピューターと古いバージョンのMS Officeを持っています。
そのため、ユーザーはdocxとdocの両方でファイルを保存します。 さらに、docxに変換されることのないドキュメント形式の膨大な数のドキュメント、およびこれらのドキュメントとそれらで作成された数式を処理しなければならない膨大な数のユーザーがいます。
さまざまなドキュメントエディターが問題を解決する方法
- 2人の編集者 。 すべての消防士のために、Microsoftは2つの数式エディターを保持しています-ツールバー上の新しいエディターと同じアドレスにある古いエディター(メニューInsert- > Object )。 古いエディタが開発されていないことは論理的です。 doc形式のドキュメントまたは古い式を含むdocxファイルを開いた場合にのみ存在します。
- ゼロエディター 。 Wordのオンラインバージョンは、原則として式をサポートしていません。 彼女はビューアでそれらを表示しますが、編集モードでは、式の代わりに謎の碑文「方程式」が表示されます。
- 新しい数式のサポート 。 Googleドキュメントでは、古い数式と写真が表示され、新しい数式では編集が可能です。 以前の記事で、数式の編集に対するGoogleのアプローチについて書きました 。 つまり、このエディターで複雑な数式を編集することは物理的に不可能です。 まず、数式を作成するとき、ユーザーは1行で作業します(行列、方程式系などを使用することはできません)。 次に、既存のフォントのシンボルを使用して、数式を表示または入力します。
- ネイティブ形式に変換します 。 OpenOfficeは、両方のタイプの数式を独自の形式に変換し、排他的に機能します。
ONLYOFFICEアプローチ
当然、両方のタイプの数式をサポートしたかったのです。 同時に、新しい式を正確に基礎としてとることは論理的に思えた。 主な形式はdocxです。
Microsoftのような2つのエディターを作成したくありませんでした-リソースを消費し、有望ではありません。 さらに、docxに保存されている古い数式を完全に表示できます。 別のエディターを作成するのは非常に奇妙なことであり、ここで私たちが決めたのは、ユーザーに新しい数式で好きなことをさせ、古い数式をベクター画像として表示することです。 しかし、これは、彼がその中の何も変更できないことを意味するものではありません-エレガントなマウスの動き(ダブルクリックとも呼ばれます)と古い数式が新しい、完全にアクセス可能な編集に変換されます。
変換の仕組み
古い数式は、wocxベクターイメージの形式とOLEオブジェクト(古い数式のバイナリ)の2つのバージョンでdocxドキュメントに保存されます。 古い式がドキュメント内で見つかった場合、Wordで記録されたものなどの画像として表示します。 したがって、ONLYOFFICEエディターでは、古い数式を含むファイルがWordの場合と同様に開きます。
変換するとき、フォーマット内の何か、つまり 古い式と新しい式の形式が根本的に異なるため、変更します。 しかし、ドキュメントのすべてのオブジェクトを編集できるようになったため、これは簡単に修正できます。
ちょっとした秘密 :実際、ユーザーが望む前に式が変換されます。 ファイルを開く前にサーバー上のバイナリを解析し、ドキュメントの外観を保持するために画像を表示します。 ただし、ユーザーが必要に応じて、これらの写真をすぐに変換済みの数式に変更します。
ここでは、オリジナルと呼ぶことができます。古いフォーマットを新しいフォーマットに変換する人はいません。 さえ言葉。 ONLYOFFICEエディターを使用すると、ドキュメント内の式を修正してから、すべてをdocxに変換し、二度と考えることはありません。
このような変換を行うには、仕様がどこにも見つからない閉じた形式を開く方法を学習する必要がありました。 概して、それはリバースエンジニアリング手法によって解析されます。 数式を含む何百もの小さなファイルでかなりの時間を費やし、数式に追加する内容によってバイナリの動作がどのように変化するかを観察する必要がありました。 しかし、それは価値がありました。 数式の代わりに写真をユーザーに残すことはできませんでした:)
難しさ
古い数式を新しい数式に変換するときに発生する可能性がある唯一の問題は、形式が互いに互換性がないことです。 そのような場合、1つの式を同様の式に変換するために一生懸命作業する必要がありました。
たとえば、古い形式の3つの方程式のシステムを考えます

方程式の場合、左揃え(中央/右)が新しい形式で指定されます;そのような揃えはありません(式は中央揃えされます)

新しい数式で左揃えを実装するには、各方程式の先頭に&を置きます。 基準線間の最小距離を増やすと、

原則として、許容可能な変換結果。 変換後、必要に応じて、変数の前の適切な場所に&を配置することにより、システムをもう少し編集できます。古い式では困難な結果が得られます

結論の代わりに
私たちは、ONLYOFFICEユーザーにとって可能な限り便利な数式の操作を試みましたが、結果に非常に満足しています。 古い形式の式を新しい形式に変換することで、docxへの普遍的な移行に貢献したことを願っています。 ドキュメントから数式を取得し、再びそこに戻ることはありません。
そしてまだ-私たちはエディターの改善をやめません。 近い将来の主な優先事項は、脚注の作成です。 さらに、すぐにすべてのONLYOFFICEモジュールの大規模な更新パッケージが提供されます。 主なものの1つは、レビュー権限を持つdocxドキュメントの提供です(エディターのバージョン3.6で登場しましたが、現在では、作業がさらに便利になっています)。 一般的に、私たちと一緒にいてください:)