uplatexでsynctexの2バイト文字が文字化け

uplatexでsynctexの2バイト文字が文字化け

- 田中 徹 の投稿
返信数: 11
Windows11で エディタは秀丸64ビット,ビュアーはSumatraPDFで作業をしております。
祝鳥でなく,自前でファイル名をバッチファイルに渡し,dvipdfmxでpdfを作成しています。
職場(学校)と自宅のどちらでも作業できるようにGoogleDriveにソースを置いていますが
GoogleDriveの更新が遅いのか,SumatraPDFの即時更新がうまくいかず,
ソースはGoogleDrive,PDFの吐き出しはPCのローカルフォルダ (C:\TeX-PDF という名前)
jobname.synctexも先のTeX-PDF にムーブして platexでSumatraPDFの快適さを味わっていました。

ここで,uplatex を使う必要が出てきたとき SumatraPDFでジャンプを行おうとすると
 H:\?}?..........(文字化けが続きます)\tex-wk\ へのカレントフォルダの移動に失敗しました
とのダイアログが出現し,うまくいきません。
synctexファイルを確認してみると5920行中 3行に文字化けがあることがわかりました。
文字化けの内容は
 Input:1:H:/?}?C?h???C?u/tex-wk/2024/?c???Y??/./帰納法テンプレート.tex
のような形です。
 H:\マイドライブ\tex-wk/2024\田中添削\帰納法テンプレート.tex があってほしい形です。
フォルダ名(ファイル名)の漢字を用いなければ良さそうですが,GoogleDriveの「マイドライブ」は
Windows日本語環境では変更することに躊躇します。

TeXworks や VScode など統合環境を使用することも考えられますが,
秀丸で蓄積した入力用のマクロも捨てがたいものがあります。

synctexで文字化けしない設定をご教示いただければ幸いです。

uplatex タイプセットのためのバッチファイルです
 uplatex -synctex=-1 -shell-escape  %1
 dvipdfmx  -o C:\tex-pdf\%1.pdf %1
 move /Y %1.synctex C:\tex-pdf
 del %1.dvi >nul

よろしくお願いいたします。
田中 徹 への返信

Re: uplatexでsynctexの2バイト文字が文字化け

- 和田 勇 の投稿

ptex2pdfでsynctexファイルの文字化け を参考にどのように再現環境を準備するか検討しているのですが、 いくつか確認したいことがあります。

  1. ご使用されているTeXLive のバージョンは?  → 2. の結果で作成される .log ファイルの情報でもわかります
  2. 以下の platex でも uplatex でも処理できるソースhello.texを使ってテストした結果を教えてください
    • hello.tex を テスト-platex.tex 及び テスト-uplatex.tex として H:\マイドライブ\tex-wk\2024\田中添削 に配置
    • それぞれのファイルを提示されたスクリプトなどで plate uplatex で処理する
    • その結果のレポートをお願いします。またそれぞれの .log .pdf 及び .synctex の合計6ファイルを添付してください。
和田 勇 への返信

Re: uplatexでsynctexの2バイト文字が文字化け

- 田中 徹 の投稿
和田 様
返答ありがとうございます。

以下回答になります。

> TeXLive のバージョンは
  logファイルによれば 2019 です。

> 合計6ファイルを添付
添付いたします。

よろしくお願いいたします。
田中 徹 への返信

Re: uplatexでsynctexの2バイト文字が文字化け

- 和田 勇 の投稿

テスト環境

  • ソースはarticle.clsjsarticle.cls に変更されたのですね
  • 使用されている TeXLive 環境は W32TEX ですね。

エンジン検出結果

PDF に出力されるエンジン情報が想定していたものと違いますね。

   テスト-platex.pdf
   Page 1: Hello TEX!

   テスト-uplatex.pdf
   Page 1: Hello TEX!

macOS でですがTeXLive 2019 の platex で実行すると以下のようになります。

   js-hello.pdf
   Page 1: Hello, pLATEX + dvipdfmx!

.log について

uplatex 環境では utf8.uptex になっていますね。 これが platex 環境と同じ utf8.sjis なれば解決するかもしれないですね。 (この項、検討中)

    ==> テスト-platex.log <==
    This is e-pTeX, Version 3.14159265-p3.8.2-190131-2.6 (utf8.sjis) (TeX Live 2019/W32TeX) (preloaded format=platex 2019.6.4)  19 NOV 2024 14:50

    ==> テスト-uplatex.log <==
    This is e-upTeX, Version 3.14159265-p3.8.2-u1.25-190131-2.6 (utf8.uptex) (TeX Live 2019/W32TeX) (preloaded format=uplatex 2019.6.4)  19 NOV 2024 14:51

syntex ファイルについて

結果が報告されていませんでしたが、uplatex 環境ではファイルパスが platex 環境とは違いますね。

  • platex環境のもの

    Input:1:H:/<83>}<83>C<83>h<83><89><83>C<83>u/tex-wk/2024/<93>c<92><86><93>Y<8d>í/./<83>e<83>X<83>g-platex.tex
    
  • uplatex環境のもの

     Input:1:H:/?}?C?h???C?u/tex-wk/2024/?c???Y??/./<83>e<83>X<83>g-uplatex.tex
    

現状の検証

当方 サポートが終了したW32TEX 環境を準備できず、どのように検証するか検討していますが、 田中さんの方では TeXLive 2024 に更新等の検討は可能ですか?

和田 勇 への返信

Re: uplatexでsynctexの2バイト文字が文字化け

- 田中 徹 の投稿
和田 様

> 結果が報告されていませんでしたが、uplatex 環境ではファイルパスが platex 環境とは違いますね

2つともソースファイルは
 H:/マイドライブ/tex-wk/2024/田中添削/テスト-(u)platex.tex
として置いてあります。
(エンコードはどちらも S-JIS でした)

> TeXLive 2024 に更新等の検討は可能ですか?

現在学校で使用している,PCはコケたときにダメージが大きいので
家で眠っているPCを TeXLive2024 にすることは可能です。

勝手ながら
自宅に帰ってから,PC を TeXLive2024 にインストール完了したら
またご連絡をこの掲示板でお知らせするということでお願いできますでしょうか。
田中 徹 への返信

Re: uplatexでsynctexの2バイト文字が文字化け

- 和田 勇 の投稿

2024年 11月 19日(火曜日) 16:01 - 和田 勇 の投稿 の「.log について」の項で検討中の「uplatex 環境で utf8.uptex となっている件」

  • windows , TeXLive 2024 環境 で uplatex してみたところ W32TeX(2019) 同様に utf8.uptex になっていましたので問題はありません

    • 漢字-js-hello-uplatex.log の先頭行で確認しました。

      1:This is e-upTeX, Version 3.141592653-p4.1.1-u1.30-230214-2.6 (utf8.uptex) (TeX Live 2024) (preloaded format=uplatex 2024.10.17)  19 NOV 2024 19:46
      

「syntaxファイルについて」の項に関して

次の記述において、言葉足らずで誤解を与えてしまったようです。

          結果が報告されていませんでしたが、uplatex 環境ではファイルパスが platex 環境とは違いますね。
  • 結果が報告されていませんでした

    当初示されたビルドスクリプトを用いて .pdf .syntax が作成されましたが、 問題の uplatex での処理結果を知りたかったのですが、その件についての報告がなかったことを 端折って記述してしまいました。

  • uplatex 環境ではファイルパスが platex 環境とは違いますね

    .syntax ファイルに記録されたファイルパスでデイレクトリ部分の情報が uplatex での処理では正く処理されていないですよという意味合いでした。

    • platex 環境
        Input:1:H:/<83>}<83>C<83>h<83><89><83>C<83>u/tex-wk/2024/<93>c<92><86><93>Y<8d>í/./<83>e<83>X<83>g-platex.tex
        ⇩
        ⇩ SJIS コードに表現すると
        ⇩
        Input:1:H:/マイドライブ/tex-wk/2024/田中添削/./テスト-platex.tex
    
    • uplatex 環境(ディレクトリ部分が正しく処理できていない)
        Input:1:H:/?}?C?h???C?u/tex-wk/2024/?c???Y??/./<83>e<83>X<83>g-uplatex.tex
        ⇩
        ⇩ SJIS コードに表現すると
        ⇩
        Input:1:H:/?}?C?h???C?u/tex-wk/2024/?c???Y??/./テスト-uplatex.tex
    

    なお、Windows のTeXLive 2024 での uplatex 環境で親ディレクトリが Non-Ascii 文字を含む場合でも .synctex には正くディレクトリパスの処理が行われているようです。

環境変数 command_line_encoding=utf8

以前紹介した ptex2pdfでsynctexファイルの文字化け2015年 03月 16日(月曜日) 20:04 - Akira Kakuto の投稿 に記述されている command_line_encoding=utf8 の実験環境が用意できないので検証はできないのですが、 可能であれば uplatex 用のビルドスクリプトに環境変数 command_line_encodingutf8 と設定して試すことはできないでしょうか?

具体的には .bat 相当のスクリプトであれば SET command_line_encoding=utf8 を powershell であれば $env:command_line_encoding "utf8" だと思います。 (この項、Windows に詳しい人のフォローいただけると幸いです)

田中 徹 への返信

Re: uplatexでsynctexの2バイト文字が文字化け

- 田中 徹 の投稿
和田 様

帰宅してから通信環境なのか原因が不明ですが
TeXLive2024 インストールに6時間強かかりただいま終了しました。
Pathなど設定し直し uplatex でも synctex が文字化けしないことを確認いたしました。

「初期ロットには手を出すな」をいいわけにアップデートを怠ってきたツケが回ってきたようです。

お付き合いいただきありがとうございました。
田中 徹 への返信

Re: uplatexでsynctexの2バイト文字が文字化け

- 和田 勇 の投稿

なぜ田中さんの環境でlatex エンジン、dvipdfx エンジン検出用のテスト用 latex ソースで latex エンジンや dvipdfx の情報が表示できないのかわからないのですが、 とりあえず TeXLive 2024 をインストールすれば当面のトラブルは回避できそうですね。

そうそう現行の W32TEX(2019) の TEXMFLOCAL の移植をお忘れなく。 もし TeXLive 2024 に移行するならとりあえず 現状の :c:/tex を usb などの 外部記憶メディアに保存しておかれると良いと思います。

和田 勇 への返信

Re: uplatexでsynctexの2バイト文字が文字化け

- 田中 徹 の投稿
和田 様

> なぜ... latex エンジン、dvipdfx エンジン検出用のテスト用 latex ソースで latex エンジンや dvipdfx の情報が表示できないのかわからないのですが
申し訳ありません。

> ソースはarticle.cls をjsarticle.cls に変更されたのですね
少し話しがかみ合わないなと思いながらも継続していました。
改めて見返したところ,和田様の最初の投稿に hello.tex にリンクが張ってありました。
今回のソースは,私が自作したもので行いました。
田中 徹 への返信

Re: uplatexでsynctexの2バイト文字が文字化け

- 和田 勇 の投稿
田中さんへ

検証されていたソースの違いについては、了解しました。

私が知りたかったのは、platex uplatex でそれぞれ処理したあと、
生成される文字列(今回の場合は syntex 用のファイルパス)でしたので、
.log からその情報が得られましたので、田中さんの採られた方法でも十二分でした。
この点明記していなかったことをお詫びいたします。

ところで、この不具合 TeXLive 2024 に移行すれば解消はできると考えていますが、
その後の対応等の進捗は如何でしょうか?
和田 勇 への返信

Re: uplatexでsynctexの2バイト文字が文字化け

- 田中 徹 の投稿
和田 様

些末(だった)な質問を気にかけていただき恐縮です。
当方の通信環境なのか何なのか判明はしていませんが,
1~2時間程度で終わるというインストールが6時間以上かかりました。

どうしても uplatex を使用しなければならない
(他人のソースをタイプセットしなければならないことはないので)
(高校教師をやっていると 数学イチ,ニなどに全角ローマ数字やマル1など入っているソースを処理することがたまにあります)

週末にでも,時間と心の余裕ができたら,TeXLiveに移行しようと思っています。

ありがとうございました。
田中 徹 への返信

Re: uplatexでsynctexの2バイト文字が文字化け

- 和田 勇 の投稿

了解です。

インストールに長時間要したとのこと、遅いリポジトリサーバに繋がったかもしれませんね。 ISO イメージをダウンロードしておく方法もありますので検討してみてください。 それでも1時間、2時間くらいはかかるので、寝る前に仕掛けて、朝起きたら終わってる感じで気長にやってください。

TeXLive 2024 への移行のことだと理解しました。 が、 TEXMFLOCAL や TEXMFHOME においたものの移植を忘れないようにしてください。 それぞれのディレクトリ情報は、W32TEX 環境で以下のコマンドで確かめ、保存ないし TL2024 インストール後同環境でのそれぞれにコピーしてください。

     kpsewhich --var-value TEXMFLOCAL
     kpsewhich --var-value TEXMFHOME

TeXLive はデフォルトで 4G 以上、運用には 8G 以上が必要なのですが、 お使いの環境のストレージ領域に余裕があるのであれば、 TeXLive は C:\texlive にインストールされますので、 W32TEX の内容を壊すことはないので、 万が一のため W32TEX はそのまま温存でも良いと思います。 環境変数 Path の設定を W32TEX 用にすれば、W32TEX での処理も可能になりますので。

必要なパッケージなどが TEXMF に配置してあったとかの対処のためにも検討してください。