【環境】
Microsoft Windows 10 Pro (64bit) 10.0.16299 ビルド 16299
TeX Live 2018 64bit版
ptex2pdf version 20180514
uplatex (e-upTeX) 3.14159265-p3.8.1-u1.23-180901-2.6
dvipdfmx Version 20181012
---
【やりたいこと】
C:\workにおいて,ptex2pdfを用いてtest.texからtest.pdfを生成する際に,
「C:\work2以下にある」かつ「fileというディレクトリ直下にある」
という条件で,C:\work2\テスト\file\test2.texを見つけさせたい.
ただし,できればTeX Liveのシステムをいじりたくない.
---
【検証1】
C:\workにtest.texを置く.
(以下test.texの内容)
\documentclass[uplatex]{jsarticle}
\begin{document}
\input{test2.tex}
\end{document}
(以上test.texの内容)
C:\work2\テスト\fileにtest2.texを置く.
(以下test2.texの内容)
test
テスト
(以上test2.texの内容)
環境変数TEXINPUTSを以下のそれぞれのように設定
.//;C:/work2//;
.//;C:/work2//file;
.//;C:/work2/テスト//;
.//;C:/work2/テスト//file;
.//;C:/work2/テスト/file;
コマンドプロンプトにて以下のコマンドを実行
cd C:\work
uplatex test.tex
ptex2pdf -l -u test.tex
---
【検証1の結果】
uplatex…いずれの場合もtest.dviの生成に成功.
ptex2pdf…TEXINPUTSが「.//;C:/work2//;」のときのみtest.pdfの生成に成功.それ以外のときはtest2.texがnot found.
(以下エラーメッセージを含む,コンソール出力)
This is ptex2pdf[.lua] version 20180514.0.
Processing test.tex
This is e-upTeX, Version 3.14159265-p3.8.1-u1.23-180901-2.6 (utf8.uptex) (TeX Live 2018/W32TeX) (preloaded format=uplatex)
restricted \write18 enabled.
entering extended mode
(./test.tex
pLaTeX2e <2018-07-28u02>+1 (based on LaTeX2e <2018-04-01> patch level 5)
(c:/texlive/2018/texmf-dist/tex/platex/jsclasses/jsarticle.cls(guessed encoding: UTF-8 = utf8)
Document Class: jsarticle 2018/06/23 jsclasses (okumura, texjporg)
(c:/texlive/2018/texmf-dist/tex/platex/jsclasses/jslogo.sty)) (./test.aux)
! LaTeX Error: File `test2.tex' not found.
Type X to quit or <RETURN> to proceed,
or enter new name. (Default extension: tex)
Enter file name:
(以上エラーメッセージを含む,コンソール出力)
---
【検証2】
ptex2pdf.luaの410~418行目をコメントアウト.
(以下ptex2pdf.luaの410~418行目)
-- we are still here, so we found a file
-- make sure that on Windows/uptex we are using utf8 as command line encoding
if os.type == 'windows' then
if use_uptex == 1 then
os.setenv('command_line_encoding', 'utf8')
else
os.setenv('command_line_encoding', 'none')
end
end
(以上ptex2pdf.luaの410~418行目)
後は検証1と同じことを行う.
---
【検証2の結果】
uplatex…いずれの場合もtest.dviの生成に成功.
ptex2pdf…いずれの場合もtest.pdfの生成に成功.
---
【考察と質問】
TEXINPUTSを「.//;C:/work2//;」とすればtest2.texは見つかりますが,file直下を探すという指定ができていません.
また,どうもcommand_line_encoding=utf8が悪さをしているようなので,
ptex2pdf.luaの410~418行目をコメントアウトすれば,file直下を探すという指定はできます.
しかし,TeX Liveのシステムをいじるのは気持ち悪いです.いじらずにfile直下を探すよう指定できないものでしょうか.
---
【余談】
検証ではなく実用ではVSCodeとLaTeX workshopを使っていますが,
この場合,LaTeX Compilerのログにおいて,日本語を含むパスの日本語の部分が,文字化けしているのも気持ち悪いです.