doraTeX/TeX2img

オリジナルスクリプトが残すsynctex.gzファイル

Closed this issue · 6 comments

かわいい通知を出すためにTeX2imgに登録しているYasunariスクリプトでは,ご存知の通りptex2pdfを用いておりTeXShopでも登録しているため-synctex=1が渡っています。そのためAuto Detectさせてuplatexを使った場合には残らないsynctex.gzファイルがソースと同一のディレクトリに残ってしまいます。auxファイルなどは削除されているように,synctex.gzファイルも削除する仕様にしていただけますでしょうか。

LaTeXエンジンに独自スクリプトを登録するのはあくまで「裏技」なので,公式サポート予定はありません(本当にサポートしようとすると色々なケースがありすぎて考慮しきれないため)が,独自スクリプトを使わなくても,LaTeXエンジンの設定部に -synctex=1 を付けた場合には .synctex.gz が生成するため,独自スクリプトとは独立な問題として,「aux以外の補助ファイルをどうするか」は検討に値します。

ただし,その場合,-synctex=1 のときの .synctex.gz だけを追加考慮する,というのでは片手落ちになりますよね。-recorder オプションなど,LaTeXエンジンがコンパイル時に吐き出す補助ファイルは他にもありえますので。「吐き出される可能性のある補助ファイルをどこまで考慮して消去するか」というのを明文化するのはなかなか大変そうです。逆に,補助ファイルのbasename.* の形をしたファイルを全部補助ファイルと見なして一斉消去する,という手もあり得そうです。

補助ファイルのbasename.* の形をしたファイルを全部補助ファイルと見なして一斉消去する,という手もあり得そうです。

意外にも同じディレクトリに,同名の画像を保存している例を見つけました。このような場合は少し困ってしまうかもしれません。

screen shot 2018-09-20 at 1 09 15

synctex.gzも含めて削除してくれるTeXShopのTrash Aux Filesにおける仕様を,そのまま使えれば実装は楽だと思います。

いえ,そのようなケースにおいて他のファイルを巻き込むケースはありません。補助ファイルのbasename.* と書いたのは,TeX2img が作成する temp37607-404B373D-14E1-435A-9F29-76538AD7F775.aux のような名前のファイルのことです。

いえ,そのようなケースにおいて他のファイルを巻き込むケースはありません。

「外部ファイル入力」かつ「入力ファイルと同じフォルダ上で作業」の場合は,巻き込みの危険が高いことに気づきました。やはり,ホワイトリスト方式で,消去すべき拡張子を個別に列挙する方が無難そうです。

synctex.gzも含めて削除してくれるTeXShopのTrash Aux Filesにおける仕様を,そのまま使えれば実装は楽だと思います。

TeXShopの Trash AUX Files では,次の拡張子を一括削除しています。

  • aux
  • blg
  • brf
  • glo
  • idx
  • ilg
  • ind
  • loa
  • lof
  • log
  • lot
  • mtc
  • mlf
  • out
  • ttt
  • fff
  • ent
  • css
  • idv
  • wrm
  • 4ct
  • 4tc
  • lg
  • xref
  • bcf
  • gtex
  • gaux
  • glog
  • pdfsync
  • synctex
  • synctex(busy)
  • fdb_latexmk
  • fls
  • toc

ただ,よく分からない拡張子も多いし,css とかは無関係なファイルの巻き込みの危険性が高そうなので,この仕様に沿うのは気が乗りません。もっと安全側に倒した設計にした方がよさそうです。

自分が去年書いていたことの意味がわからなくなりました……😓

「外部ファイル入力」かつ「入力ファイルと同じフォルダ上で作業」の場合は,巻き込みの危険が高いことに気づきました。

「外部ファイル入力」かつ「入力ファイルと同じフォルダ上で作業」の場合であっても,入力ファイルをいったん temp37607-404B373D-14E1-435A-9F29-76538AD7F775.aux のような長いテンポラリな名前でそのフォルダ内にコピーしてから作業を始めるのだから,作業後に 補助ファイルのbasename.* を一括削除する分には「巻き込み」の危険性はなさそうに思います。

が,とりあえず,安全側に倒して,有名どころの拡張子を列挙して削除対象に加えておきました。