dvipdfmx でフォントを発見できない

Re: dvipdfmx でフォントを発見できない

- Suda M の投稿
返信数: 0
ありがとうございます。
確かにそこもおかしかったです。普段の Overleaf の設定をそのまま持ってきたのですが、書き換えの際に見落としていました。


本件、解決しましたのでご報告いたします。
原因は2つありました。


1. ご指摘いただいた環境変数の設定ミス
ENVディクショナリに値を設定する際、値区切りの文字を ; (セミコロン) ではなく : (コロン) にしていたことが原因でした。
コロンをセミコロンに置換することで、latexmkコマンドでビルドする際にも texmf-distなどの中身も正常に検索してくれるようになりました。

2. プロジェクトディレクトリに latexmkrc ファイルが残っていた
こちらがメインの原因でした。お恥ずかしい限り。
latexmkは、プロジェクトディレクトリ(カレントディレクトリなのかも)に latexmkrc ファイル(ファイル名先頭にドット無し)があると、そちらの設定も使用するようです。
今回のプロジェクトは Overleaf から持ってきたもので、Overleaf側の設定のために latexmkrc ファイルがプロジェクトディレクトリに配置してありました。この latexmkrc ファイルには Overleaf にあわせてフォント格納先を示す環境変数などが書かれていますが、これはWindows環境においては誤った設定であるため、フォントを発見できずビルドに失敗します。
P.S. に書いた Mac 環境で上手く動くのは、Mac が Unix ベース(と書くと火種ですが)であるため環境変数の設定をそのまま流用できていたためでした。


今後Overleafとローカル環境をGitで連携して同時に使う人へのメモ
以下のようにすればローカル環境とOverleaf環境を並行して使うことができます。

1. Overleafからプロジェクトをクローンする
2. プロジェクトディレクトリの latexmkrc のうち、Windowsマシンでは適用したくない部分を以下の if ブロックで囲む

if ($^O ne 'MSWin32') {

}


3. Gitにコミットしてpushする

なお、latexmkrc を .gitignore に追加して Overleaf 環境のみに残すという方法をはじめに思いついて試してみましたが、Overleaf側が .gitignore を無視して latexmkrc をコミットしてくる(どういう実装なんだ)ので、この方法は使えませんでした。