.NETプログラマーへ:LaTeXをすばやく表示する方法

この記事では、.NETプログラムでLaTeXドキュメントを表示するいくつかの方法について説明します。 情報は、主に教育分野で働くプログラマーに役立ちます。 問題のすべては、モスクワの主要な技術大学の1つである高等数学科での開発における私たち自身の経験でテストされています。



挑戦する


多くの科学文書は、LaTeXのソフトウェアパッケージで(これらの目的に最も適したテキスト形式として)自動的に作成されるため、各文書はできるだけ早くドラフトとしてユーザーに表示する必要があります。 「自動的に」とは、ユーザーがLaTeXドキュメントを手動で入力せず、それが何であるかさえ知らないことを意味します。 ドキュメントの最終バージョンが作成されると、LaTeXにエクスポートされるか、インストールされたTeXディストリビューションを使用してPDFに変換されて印刷されることが理解されています。 下書きは、サードパーティ製のプログラムを使用せず、可能な限り高速で表示する必要がありますが 、その正確性は保証されています。 文書のサイズは数枚のA4シートを超えず、式の数は中程度です。



TeXをインストールせずに文書を最後に印刷する必要がある場合、TeXからの独立性を強調するのはなぜでしょうか。 ポイントは、著者によって開発されたソフトウェアコンプレックスの詳細です。



解決策




選択する方法は何ですか?



テーブル内のメソッドの比較を想像できます。



方法 メリット 欠点
「額に」
  • 実装は非常に単純です-pdflatexを実行し、コンパイルが完了するのを待って、結果のドキュメントを開く必要があります。
  • 最適な互換性-LaTeXは、望みどおりに表示されます。
  • 速度が悪い。 pdflatexがパッケージをロードする間、フォントを読み込む間、当分の間、多くの時間が経過します。 非常に最近のハードウェアでは、コンパイルは5〜10秒続きます(MikTeX)。
  • TeXディストリビューションに依存-プログラムを使用するすべてのコンピューターにインストールする必要があります。 これには、PDFビューアーなどへの依存も含まれます。 プログラムが自宅のコンピューターの教授によって使用される場合、膨大な忍耐力を蓄え、探偵スキルを示す必要があります。
Integre techexplorer経由
  • 高速。 techexplorerは起動時に初めて数秒かかりますが、プログラムの起動中に初期化できます。
  • TeXディストリビューションからの独立。
  • 互換性はまあまあです。 techexplorerにはLaTeX特有の概念があります。たとえば、三角関数を\ define \ sin {\ operatorname {sin}の形式で使用する前に宣言する必要があります。 techexplorerが理解していないすべて(実際には多く)は、赤で強調表示されています。
  • 実装は複雑です。 techexplorerの方が優れている場合は、LaTeXドキュメントをディスクに保存し、ファイル名をWebBrowser.Navigateに転送できます。 ただし、同じドキュメントの2つのバージョン-エクスポート用の「通常のLaTeX」と「わかりやすいtechexplorer」を維持する必要があります。
  • Techexplorerの依存関係。 ただし、これは桁違いに簡単かつ迅速に配置され(msiは独自のソフトウェアの配布に含めることができます)、ActiveXセキュリティ制限は1つのレジストリエントリによって修正されます。
MathML経由
  • ドキュメントが小さい場合は高速。 Gecko(Firefoxエンジン、MathMLのみをサポートする唯一のエンジン)は、たとえば、多くの式を含む科学論文などの大きなドキュメントを表示する際に特定の問題を抱えていますが、タスクにはこれに関する要件はありませんでした。
  • LaTeXからMathMLへの変換は、オープンソースのlatex2mathmlオープンソースの自作ライブラリによって実行されます。 これは、著者がCodePlexにアップロードしたものです。 互換性エラーが発生した場合、いつでもカスタマイズできます。
  • サードパーティソフトウェアからの完全な独立。 Geckoエンジンの.NETラッパーであるGeckoFXを使用します。 Gecko(xulrunner)自身は、プログラムの一部として配布できます。
  • 互換性。 多くの設計では、LaTeXはXHTML + MathMLで類似物を実装する必要がありますが、これは必ずしも些細なことではありません。 latex2mathmlにはあまりありません。
  • 実装の複雑さは前のものから続きます。
  • MathMLはGeckoによって正式にサポートされていますが、非常に厄介な機能がいくつかあります。 たとえば、ドキュメントのサイズを変更するときの完全な再描画とブレーキ。




以下は、PDF、techexplorer、およびMathML / FirefoxでのLaTeXマッピングの例です。











PDFは明らかにディスプレイ品質のリーダーであり、MathML / Firefoxおよびtechexplorerには独自のエラーがあります。



速度比較表の表示:



方法 時間、s(LaTeX、8.5 kb、130行b 101式) 時間、s(LaTeX、1 kb、30行、11式)
「額に」 14 11
techexplorer 3 3
Mathml 12 3




最初のケースでは、ドキュメントはPDFに変換され、Adobe Readerで表示されました。 2番目では、Internet Explorerで直接表示されました。 3番目では、XHTML + MathMLに変換され、Firefoxで表示されました。 コンピューター構成:Windows 7 x86、Core 2 Duo T7500、4GB DDR2。 Firefoxで比較的大きなドキュメントでMathMLの速度が低下していることがわかります。



主観的に-最初の方法は最も信頼性が高いが、遅い、2番目-高速で低品質、3番目-完全にデバッグされていない新しいテクノロジーを使用します。



ご覧のとおり、それぞれの方法には長所と短所があります。 最近まで、作者はtechexplorerを使用していましたが、4年間開発されておらず、将来問題を引き起こす可能性があります。 残念ながら、latex2mathmlの湿気はすぐに結果を達成することを可能にせず、誰にとっても普遍的な解決策ではありません。



この記事は、.NETプログラムのLaTeXクイックディスプレイの問題を解決する方法の概要にすぎません。 詳細に興味があれば、喜んで説明します。



All Articles