TeX SourceをBrowser内で簡易確認する
TeXコードまたは単一.texをBrowser内の独自Parserで解析し、限定HTML・MathML Previewと構文診断を確認できます。SourceをDevelopTools Serverへ送信・保存しません。
数式区切りを入力して確認する結論:簡易Previewと完全LaTeX Compileを分ける
$...$、\(...\)、\[...\]の対を確認し、現行Tool対応のCommandへ絞ります。$$はDisplay構文として保証されません。
標準LaTeXで正しい式でも現行の限定Rendererで未対応の場合があります。
最小例で確認する
Inline: \( \alpha + \beta \)
Display: \[ \frac{a}{b} \]
最小Sourceで区切り・Command・Environmentを一つずつ確認し、問題が消えた段階から元Sourceへ戻します。
表示されない原因を上から除外する
- Delimiter不足
- Brace不足
- 未対応Command
- 未対応Environment
- Package・Macro依存
- 本番Engineとの差
このViewerは独自の簡易TeX解析器である
現行ToolはKaTeX、MathJax、pdfLaTeX、XeLaTeX、LuaLaTeXを実行しません。Repository内のJavaScriptでTeXの一部を解析し、安全なHTMLとMathMLへ変換する簡易Viewerです。TeX LiveやOverleafの完全なDocument Compile、PDF生成、Package実行を再現するものではありません。
| 方式 | 主な出力 | 現行Tool |
|---|---|---|
| 独自簡易解析器 | 限定TeXからHTML・MathML | 採用。Version付き外部Rendererではない |
| KaTeX | 対応範囲の数式をHTML・MathML等へ描画 | 未使用 |
| MathJax | TeX Input ProcessorからWeb向け出力 | 未使用 |
| LaTeX Engine | 文書を組版してPDF等を生成 | 未使用 |
「Overleafで動く=このViewerでも同じ表示」「Errorがない=本番Compile成功」とは判断できません。提出物は指定Engine、Package、Font、Build手順で最終確認します。
現行TeX・LaTeXプレビューの対応範囲
| 分類 | 対応 | 現在の境界 |
|---|---|---|
| 入力 | 直接入力、.tex・.txtを1件選択またはDrop、UTF-8・Shift_JIS | 複数File Project、URL取得、includeには未対応 |
| 表示 | Source/Previewの分割・単独表示、Light・Dark、折返し、サイズ調整 | PDF Previewや画像Exportには未対応 |
| 文書 | 見出し、段落、強調、List、Quote、Verbatim、Tabular、参照の一部 | Document ClassやPage Layoutを組版しない |
| 数式 | $...$、\(...\)、\[...\]、equation・align・gatherの限定変換 | $$...$$をDisplay構文として保証せず、aligned・matrix・cases・arrayは未対応 |
| 診断 | 波括弧、単一$、begin/end、未対応Commandを行番号付き表示 | Missing $ inserted、Undefined control sequence、列数、Overfull hboxを実Compiler同様には診断しない |
| Package・Macro | \usepackageを記述できるがPackageは実行しない | newcommand、def、BibTeX、TikZ、graphicx等を展開しない |
| 出力 | TeX Copy・保存、Preview HTML保存・別Tab・印刷 | PDF、SVG、PNG、MathML単体Copyには未対応 |
画面にない機能を前提に案内しません。未対応CommandのWarningは「無効なLaTeX」の断定ではなく、この独自簡易Rendererの対応外を示します。
数式区切りとEnvironmentを実装範囲で確認する
| 入力 | 用途 | 現行Tool |
|---|---|---|
| $ E = mc^2 $ | Inline数式 | 対応 |
| \( E = mc^2 \) | Inline数式 | 対応 |
| \[ E = mc^2 \] | 別行数式 | 対応 |
| $$ E = mc^2 $$ | Plain TeX由来の別行表記 | Display構文として非対応 |
| equation・align・gather | 別行・複数行数式 | 限定対応 |
| aligned・matrix・pmatrix・cases・array | 数式内構造 | 現行Rendererでは未対応 |
文章中の数式は \( E = mc^2 \) です。
\[
\sum_{n=1}^{\infty} \frac{1}{n^2}
\]
標準LaTeXの正しい構文、KaTeX・MathJaxの対応構文、現行Toolの対応構文は別です。数式が出ない場合は区切り、Command、Environment、括弧を順に確認します。
Errorと未対応Warningを分けて読む
| 表示 | 現行Toolが検出する内容 | 判断 |
|---|---|---|
| Error | 余分・未閉じ波括弧、未閉じInline $、begin/end不整合 | 入力位置へ移動してSourceを修正 |
| Warning | document環境なし、未対応Command | 完全LaTeXで有効か、Tool対応外かを分ける |
| 非対応診断 | Missing $ inserted、Extra alignment tab、Overfull hbox、File not found等 | 本番EngineのLogで確認 |
診断には行番号とSource上の開始位置があり、項目を選ぶと該当行へ移動できます。Column番号やCompiler Log全文は表示しません。Errorが出ても入力Sourceは保持され、修正後に再Previewできます。
\begin{align}
a &= b
\end{equation}
表示される文言は現行解析器の診断です。LaTeX Engineが返すUndefined control sequenceやMissing $ insertedをそのまま再現したものではありません。
Package・画像・Macro・Engineは本番環境で確認する
- \usepackage{amsmath}等はSourceとして保持されますが、Package Codeは読み込まれません。
- \includegraphics{figure.png}の画像File、BibTeX、分割Sourceは同時読込されません。
- \newcommandや\defによるCustom Macroは定義・展開されません。
- pdfLaTeX、XeLaTeX、LuaLaTeXのEngine選択機能はありません。日本語組版やFont設定も再現しません。
- Overfull \hboxはCompile停止ErrorではなくBoxのはみ出しWarningですが、現行Viewerは検出しません。
Quick preview: DevelopTools custom parser → HTML / MathML
Final check: project LaTeX engine + packages + fonts + resources → PDF
日本語TextはBrowser FontでHTML表示できますが、日本語LaTeXの組版対応を意味しません。LuaTeX-ja等を使う文書は、そのPackageとEngineを導入した環境で確認します。
入力TeXをBrowser内で安全に扱う境界
TeX Source、数式、著者名、診断対象はBrowser内で解析され、Tool本体にSourceをfetch・sendBeaconで外部送信する処理はありません。LocalStorageへ保存するのはThemeやEditor Size等の設定だけで、Sourceや履歴は保存しません。
- PreviewはApplication DOMと分離したsandbox付きiframeのsrcdocへ表示します。
- 生成Previewにはdefault-src noneのContent Security Policyを設定します。
- Raw HTMLと診断文言をEscapeし、入力scriptを実行しません。
- \hrefと\urlはhttps、http、mailtoだけをLinkにし、javascript:やdata:をLink化しません。
- 外部画像やHTML拡張Commandを無条件に許可しません。
Site共通の広告・Analytics、Browser Extension、組織Networkまで含めて「通信が一切ない」と保証する表現は避けます。未公開論文や社内資料は組織Policyを優先してください。
Realtime Preview・大きなSource・Mobileを確認する
Realtime Previewは入力後220ms待って更新し、500,000bytesを超えるSourceでは自動更新を止めて手動更新を促します。Issue表示も最大100件に制限しています。入力は消去せず、修正を継続できます。
- 1KB、10KB、100KB程度から段階的にRender時間を測ります。
- 深い波括弧Nestや大量の未対応CommandでもPageが操作可能か確認します。
- 長い数式はPreview内で横Scrollし、過度に縮小しません。
- 900px以下ではSourceとPreviewを縦配置し、表示Modeも切り替えられます。
- Font Size、Editor Height、左右比率を調整してSourceと結果を比較します。
Macro展開自体を実装していないためKaTeXのmaxExpand・maxSize設定は使いません。独自Parserの入力Size、診断件数、DebounceでUI負荷を抑えます。
DevelopTools内で用途を分けて確認する
- Markdown文書全体をMarkdown Viewerで確認する
- MarkdownとHTMLを相互変換する
- 修正前後のTeX Sourceをテキスト差分比較する
- Unicode記号とCode Pointを確認する
TeX数式・Sourceの簡易Preview、Markdown文書表示、HTML変換、Text Diff、Unicode参照は別機能です。TeXからMarkdownやHTMLへ完全変換できるとは案内しません。
LaTeX・KaTeX・MathJaxの一次資料を使い分ける
- The LaTeX Project
- LaTeX2e unofficial reference manual
- KaTeX: Supported Functions
- KaTeX: Options
- MathJax: TeX and LaTeX Support
- MathJax: Safe Extension
- CTAN: LuaTeX-ja
- Overleaf: Errors
LaTeX構文とEngineはLaTeX Project、PackageはCTANと提供元、KaTeX・MathJaxは各公式Documentationを優先します。現行ToolはどちらのLibraryも利用しないため、Supported Functionsを現行Toolの対応一覧として転載しません。
まとめ
- 開始・終了Delimiterを対で確認する
- InlineとDisplayの対応表を見る
- 有効なLaTeXとTool未対応を分ける
Source、Math Mode、Command、Environment、Renderer、Package・Engineの順で確認すると、入力ErrorとWeb簡易Previewの未対応を混同せずに切り分けられます。
具体例:LaTeX数式が表示されない原因を確認する
問題を再現する最小Source「Inline: \( \alpha + \beta \) / Display: \[ \frac{a}{b} \]」を用意し、Sourceと診断を同時に確認します。
簡易Previewの結果だけで完全LaTeXの成否を決めず、本番EngineのLogと公式Documentationを照合します。
- 元Sourceを残し、問題を再現する最小Copyを入力します。
- Delimiter、Brace、begin/end、未対応Commandの診断を確認します。
- 診断項目から該当行へ移動し、一度に1か所だけ修正します。
- Realtime Previewまたは手動更新で変化を確認します。
- 修正版を保存し、指定LaTeX EngineとPackageで最終Compileします。
現行ToolはSourceを変更・補完せず、PDFも生成しません。元Sourceを残し、本番BuildのError・Warningを最終判断に使ってください。
よくある質問
- KaTeXやMathJax、TeX Liveを使用していますか?
- 使用していません。Repository内の独自JavaScriptで限定TeXをHTML・MathMLへ簡易変換します。完全なLaTeX Compilerではありません。
- Package、画像、Custom Macro、複数texも表示できますか?
- 表示できません。単一Sourceの基本構文だけを扱い、Package実行、画像File、BibTeX、include、newcommand・defの展開には対応しません。
- 入力Sourceや診断内容は外部へ送信・保存されますか?
- Tool本体は外部送信せず、Sourceや履歴をLocalStorageへ保存しません。保存するのは明示操作したFileと表示設定だけです。