実現したいこと
texファイルのフルパス中に日本語が入っていても、Windows10のVisual Studio Code上でlatexmkを用いてショートカットキーを用いて楽にコンパイルできるようにしたいです。
また、補足情報になぜ日本語のパス名でコンパイルしたいのか、今の状況、譲れない点、譲歩できる点を記載しています。
発生している問題・エラーメッセージ
フルパス中にC:\Documents\プログラミング\main.tex
のようにして、フルパス中プログラミング
などの日本語が入るとUTF-8に変換された際に文字化けし、texファイルとしては許されていない文字に文字化けするようで、コンパイルできません。
実際にC:\Documents\プログラミング\main.tex
のファイルをコンパイルした時のエラーメッセージは以下のようになります。
Latexmk: This is Latexmk, John Collins, 26 Dec. 2019, version: 4.67. Latexmk: Filename 'c:/Documents/�v���O���~���O/main' contains character not allowed for TeX file. Latexmk: Stopping because of bad filename(s). C:\texlive\2019\bin\win32\runscript.tlu:907: command failed with exit code 2: perl.exe c:\texlive\2019\texmf-dist\scripts\latexmk\latexmk.pl -synctex=1 -interaction=nonstopmode -file-line-error -pdfdvi c:/Documents/�v���O���~���O/main
この時のmain.texのファイルの中身は以下です。
main
1\documentclass[dvipdfmx, a4paper, 11pt]{jsarticle}%A4用紙縦、明朝(デフォルト)11ポイント 2\begin{document} 3テンプレートです. 4\end{document}
応急処置的な解決法
フルパス中にプログラミング
という文字が含まれている場合は、ターミナルで、以下を実行してフルパスで実行しないようにしています。
$ cd C:\Documenst\プログラミング $ latexmk main.tex
環境
- OS : Windows10 pro
- エディタ : Visual Studio Code
- texディストリビューション : Tex Live
- texのコンパイルレシピ: latexmk
- pdf Viewer : texworks
- VSCode で TeX を書こう
上記のサイトを見て、Vscodeの設定をしました。ただし、viewerの部分はtexworksに変えています。
latexmkrc
1#!/usr/bin/env perl 2# file .latexmkrc 3# author Ryotaro Onuki 4# created_at 2019.01.25 5# modified_at 2019.02.05 6 7## latex commands 8$latex = 'platex -synctex=1 -halt-on-error'; 9$latex_silent = 'platex -synctex=1 -halt-on-error -interaction=batchmode'; 10$bibtex = 'pbibtex -kanji=utf8'; 11$dvipdf = 'dvipdfmx %O -o %D %S'; 12$makeindex = 'mendex %O -o %D %S'; 13$max_repeat = 5; 14 15## pdf mode 16$pdf_mode = 3; # 0: none, 1: pdflatex, 2: ps2pdf, 3: dvipdfmx 17 18## viewer settings 19$pvc_view_file_via_temporary = 0; 20if ($^O eq 'darwin') { 21 # OSX 22 $pdf_previewer = 'open -a Preview'; 23} elsif ($^O eq 'linux') { 24 # linux 25 $pdf_previewer = 'evince'; 26} else { 27 # Windows 28 $pdf_previewer = '"C:\texlive\2019\bin\win32\texworks.exe" -reuse-instance %O %S'; 29} 30 31## output directory 32$aux_dir = "build/"; 33$out_dir = "build/";
補足情報
なぜ日本語のパス名でコンパイルしたいのか
- texファイルの名前を英字にするのは構わないのですが、フォルダの名前まで英字にするとファイル整理の際に見づらくなると思っているためです。
今の状況
このサイトから文字化けした時に~
が入っているため、コンパイルできないことまではわかりましたが、Windowsでの日本語の文字化けを解決する方法は載っていなかっため、今回質問しました。
- また、いらない情報かもしれませんが、記載しておきます。
今のところプログラミング
という文字以外で許されない文字に文字化けするものは見つけていません。
そのため、プログラミング
という文字さえ入っていなければコンパイルできる状態ではあります。
譲りたくない点
- エディタはVscodeでお願いします。
- 理由にも書きましたが、あくまでフォルダ名は日本語にしたいと思っていますので、フォルダ名を英字にしろっていうのは無しでお願いします。
譲歩できる点
- latexmkを使用しているのはあくまでも中間ファイルをまとめてbuildフォルダに置くことができて、フォルダ内がすっきりするため使用しているだけです。
そのため、中間ファイルがまとめられる、または消せて、その上でVscodeでショートカットキーが使えるのであれば、latexmkでなくても構いません。
- 何か設定する際にコマンドを使う際には
git bash
、(power shell
)、wsl
がインストールされている状態ですので、Linuxコマンドであっても構いません。
追記
大変長くなってしまい、申し訳ないです。
コンパイルする方法がない、あるいは、推奨されない(texの挙動がおかしくなる)等の理由で解決できる方法がなければそれでもかまいません。
解決できる方法があるのであれば、知りたいと思って、質問した次第です。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/23 22:41
2020/01/24 01:12
2020/01/24 01:12