概要
Windows 10 において Visual Studio Code の 拡張機能 LaTeX Workshop の数式プレビュー機能が正常に動作しない場合,拡張機能が保存されているパスに日本語が含まれていないか確認する.
詳細
Visual Studio Code の拡張機能 LaTeX Workshop には,MathJax でレンダリングした数式を hover に表示する機能がある.以下,この機能を Hover Preview と呼ぶ.
困ったこと
Hover Preview をさせようとしても 読み込んでいます...
1 としか表示されない.
原因探し
View LaTeX Workshop extension log の確認
エラーメッセージは見当たらず.
Developer: Show Logs... の確認
Developer: Show Logs... は Ctrl+Shift+P を押して show logs
などと入力すると出てくる.ここでは次のようなエラーメッセージを発見.
[2019-11-09 14:20:45.615] [renderer1] [error] 不明なエラーが発生しました。ログで詳細を確認してください。
よく調べてみると,このエラーはコンパイル実行時に発生しているものだった.しかし詳細がわからないので,別のところを見てみる.
Developer: Toggle Developer Tools の確認
Developer: Toggle Developer Tools は Ctrl+Shift+P を押して developer tools
などと入力すると出てくる.ここでは次のようなエラーメッセージを発見.
[Extension Host] Error when JSON.parse theme files. console.ts:137
[Extension Host] Unexpected token ] in JSON at position 3948 console.ts:137
この2つのメッセージは,数式にカーソルをあわせて Hover Preview をさせようとするたびに現れていた2.さらにコンソールを遡ると,最初の方で次のようなエラーメッセージを発見.
[Extension Host] Can't load MathJax.js from file:///c:/Users/ユーザー名/.vscode/extensions/james-yu.latex-workshop-8.3.1/node_modules/mathjax/unpacked/MathJax.js console.ts:137
[Extension Host] Error: Could not load script: "file:///c:/Users/%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E5%90%8D/.vscode/extensions/james-yu.latex-workshop-8.3.1/node_modules/mathjax/unpacked/MathJax.js" console.ts:137
数式のレンダリングに必要な MathJax が読み込めていないのだ.
解決方法
MathJax を指定するパスの中に日本語(筆者の場合はユーザー名が該当)が含まれていることが原因と考え,ユーザーフォルダ名を英数字のものに無理やり変更した3.すると,無事に Hover Preview が表示されるようになった.
改めて Developer: Toggle Developer Tools を確認すると,MathJax を読み込めていないという旨のエラーももちろん解消されていた.しかし
[Extension Host] Error when JSON.parse theme files. console.ts:137
[Extension Host] Unexpected token ] in JSON at position 3948 console.ts:137
のエラーは,数式にカーソルをあわせるたびに相変わらず発生していた.このエラーの原因は不明だが,特に支障はないので今回はスルーする.
参考
- LaTeX Workshop - Visual Studio Marketplace
- VSCode拡張のLaTeX Workshopにコントリビュートした話 - Qiita
- Windows10のユーザーフォルダ名変更 - Qiita