Closed doraTeX closed 6 years ago
「LaTeX Compiler Path にコンパイラのパスを指定しなかった場合に発生する問題」がもう一件見つかりました。「入力ファイルと同じフォルダ上で作業」がONのとき,入力ファイルと同じディレクトリを TEXINPUTS に含める設定を行いますが,その処理で
[cmdline appendFormat:@"export TEXINPUTS=\"%@:`kpsewhich -progname=%@ -expand-var=\\\\$TEXINPUTS`\";", additionalInputPath, latexPath.programName];
となっており,そこで kpsewhich
に対して LaTeX Compiler Path から取得した Compiler Name を渡すようになっています。よって,LaTeX Compiler Path に独自スクリプト名が指定されていると,何というコンパイラを指定しているのか分からず,kpsewhich
を正しく実行できません。
まあ,これは現状の設計ではどうしようもない感じなので,「独自スクリプト指定」はあくまで本来のサポート外機能とし,どうしても「『独自スクリプト指定』かつ『入力ファイルと同じフォルダ上で作業』」ということがしたい場合は,その独自スクリプト名をコンパイラ名と同じ platex
とかにすることで偽装して対応してもらう,としましょう。
LaTeX Compiler Path として,通常は
platex
のようなLaTeXコンパイラのパスを直接指定することを想定していますが,そこに(ptex2pdf の呼び出しをさらにラップするような)独自スクリプトを指定したいという要望がありました。その場合,LaTeX Compiler Path としてそのスクリプトのパスを指定すれば大半の部分はうまく動きますが,「pdfcrop類似処理のために呼び出すpdfTeXの本体が LaTeX Compiler に指定されたコンパイラと同ディレクトリに存在することを仮定している」という部分が障害となります。
対処として,とりあえず,「その方法で見つからなかった場合は DVI Driver Path と同ディレクトリに pdfTeX バイナリが存在するかどうかをチェックする」(どちらの方法でも見つからなかった場合はエラーを返す)というステップを挟むことにします。