LaTeX
VSCode
synctex

SyncTex で2時間消費…VSCode で SyncTex を適用するときの注意点

修士論文を執筆する際,Visual Studio Code の拡張機能 LaTeX Workshop を使用していました.バージョンは 1.19.2 です.
VSCode で .tex 形式での文書を作成するときには SyncTex という機能を使えます.
この機能がよくわからずしょうもないことで2時間も消費してしまったので,ここに記録として置いておこうと思います.

SyncTex の機能

そもそも SyncTex を使うことで何ができるのかというと,編集中の .tex の現在のカーソル位置から PDF 文書側の該当位置にジャンプすることができるようになり,編集している行が今どのようになっているのかをすぐに確認できます.これはカーソル位置で右クリックをし,SyncTex from cursor を選択することでジャンプできます.
また,PDF 側からのジャンプも可能であり,View LaTeX PDF file in new tab を選択し,表示された PDF 文書内の検索したい文字列にマウスポインタを重ねて Ctrl + 左クリック をすると,該当する .tex ファイルの該当箇所にジャンプしてくれます.
これは .tex ファイルとコンパイル後に出力された .pdf ファイルを SyncTex というコマンドにより紐づけされることで実現されています.

私はこの .tex ファイル側から PDF ファイル側にジャンプするという機能を実行することはできたんですが,逆の PDF ファイル側から .tex ファイル側へのジャンプが実行できなかったのです.それは .tex ファイルまでの絶対パスの中に日本語で設定したフォルダが存在していたのが原因でした.

[21:46:25] Executing synctex with args edit,-o,22:224.01326315789473:442.4257894736841:c:\Users\User_name\Dropbox\paper\shuron\main.pdf
[21:46:25] SyncTeX to file c:\Users\User_name\Dropbox\paper\shuron\survey.tex

上記のように,shuron の部分を 修論 などという全角の日本語入力になっていたため,文字化けしてしまい正常に動作しなかったということです.アルファベットに修正することで,やっと動きました.

まとめ

やはりフォルダ名やファイル名に日本語入力もしくは全角入力をすることは絶対にしないほうが良いことがわかりました.これは今回の件のみに限らず,プログラミングをする際や日常生活におけるフォルダ作成であっても常に注意をしておくべきだと感じました.

あと,VSCode では絶対パスに全角日本語が入力されていた場合動作しなかったのですが,TexWorks ではジャンプすることができました.自分以外に少なくとも1人はこの現象に陥っている方がいらっしゃると思います.その方の手助けになれば幸いです.