Visual Studio Codeの挙動がいつもと変わった?

Visual Studio Codeの挙動がいつもと変わった?

- 伊藤 直人 の投稿
返信数: 12
普段、Visual Studio CodeとLaTeX WorkshopでLaTeXを利用しています。
私は、settings.jsonを添付のように記述しており画面の左半分をLaTeXのソース、右半分をそのソースをコンパイルし生成されるpdfというように利用しています。

今までは更新ボタンを押すとpdfは表示されたまま、コンパイルが完了すると表示されるpdfが更新されていました。しかし今日、VsCodeを開き、黄緑色の右三角ボタンを押すとpdfが非表示になりコンパイル完了後に再度、開くことが必要になりました。←この状況を文字で説明できているか自信がないのでその状況を録画した動画のリンクを貼ります:https://youtu.be/-BivGFbuXkY

以前、このような挙動でなかったため、私側の問題なのかバグのようなものなのか判断できず質問させていただきました。
よろしくお願いします。

なお、詳細な環境は以下のとおりです。不足のものがあればすみません。
os:macOS Ventura 13.1
Visual Studio Code:バージョン: 1.74.3 (Universal)
TeXLive:2022
伊藤 直人 への返信

Re: Visual Studio Codeの挙動がいつもと変わった?

- 和田 勇 の投稿
提供された settings.json を使っての検証は行ってはいませんが
気になる点を挙げてみます。


最後に変更を加えた事象を思い出しましょう。
きっと settings.json を修正されていたのだと思います。

ざっと見ると ptex2pdf に「-us」オプションを渡しているからでは?
以下は比較しやすいように編集したものでですが

        { "name": "upLaTeX", "command":"ptex2pdf",
            "args": [ "-interaction=nonstopmode", "-l", "-u", "-us", .... ] },
{ "name": "pLaTeX", "command":"ptex2pdf",
            "args": [ "-interaction=nonstopmode", "-l",      "-us", ... ] },

ptex2pdf --help から想像するの -us は -s のタイポかしら?

それと、latex-workshop には通常見かけないものが含まれています。

  "C_Cpp.intelliSenseEngine": "Tag Parser"
  "python.defaultInterpreterPath": "/opt/homebrew/bin/python3",
  "python.languageServer": "Pylance",

cpp 関連ファイルを編集や python 周りのファイルを編集した時、
これらのオプションが有効になっているのかやや疑問です。
和田 勇 への返信

Re: Visual Studio Codeの挙動がいつもと変わった?

- 伊藤 直人 の投稿

和田様

ご返信ありがとうございます。

「ptex2pdf に「-us」オプションを渡している」ことについて

ptex2pdf に「-us」オプションを渡している を渡していることについては私のミスです。ご指摘いただきありがとうございます。

そして、このことは最初の質問に書いておくべきだったと思うのですが症状が発生するのはlatexmkを使ってlualatexでコンパイルしたときだけのようです。私のrecipeの中にあるplatex,uplatexでは上のオプション変更の前後を問わず症状は発生しませんでした。

settings.jsonをいじった記憶があるか

settings.jsonの最終変更日は昨年の12月11日でした。お恥ずかしい話ですがその日に何を変更したかは覚えていません。

ただ、年明けにLaTeXを使った時は症状は発生しませんでした。

「latex-workshop には通常見かけないものが含まれています」について

この件につきましてもご指摘いただきありがとうございます。私がsettings.jsonの書き方をあまり理解していないのが原因です。時間があるときに勉強して直したいと思います。

今後どうするか

この問題の解決策として私が思いつくのは「vscodeの再インストール」ですがそれはした方が良いでしょうか。

よろしくお願いします。

伊藤 直人 への返信

Re: Visual Studio Codeの挙動がいつもと変わった?

- 和田 勇 の投稿
- vscode でビルドで問題があったら
 -「表示」→「出力」(⌘ + Shif+ U)で表示されるウィンドウを注視することかな
      そこにヒントが表示されていると思う

- settings.json より .latexmkrc ないし latexmk あるいはビルドソースそのものではないのでは?

  - プロジェクトで git などのバージョン管理ツールを利用されていれば修正履歴から推測可能になります

- vscode の再インストール必要か? ... 現時点では不要と考えています
  - settins.json の変更日付からもアプリを再インストールしてもあまり意味がないです。

以上から提供してほしい情報
1) 【「表示」→「出力」(⌘ + Shif+ U)】で表示されている内容(特に上部)
  あるいは
  latemk -f -gg -lualatex -synctex=1 -interaction=nonstopmode -file-line-error ビルドするファイル名
2)  latexmk が絡んでいるとのことなので、ビルドディレクトリで latexmk -C で先頭に表示される
  以下の二つのファイル(存在しなければ表示されません)

   - ホームディレクトリの .latexmkrc と
   - ビルドディレクトリの .latexmkrc か latexmkrc




和田 勇 への返信

Re: Visual Studio Codeの挙動がいつもと変わった?

- 伊藤 直人 の投稿

和田様

ご返信ありがとうございます。

和田様からご要望のありました情報について以下のように提供させていただきます。見当違いな情報でしたら申し訳ございません。

試しているソース

\documentclass{jlreq}

\begin{document}
こんにちは

\end{document}

【「表示」→「出力」(⌘ + Shif+ U)】で表示されている内容(特に上部)あるいはlatemk -f -gg -lualatex -synctex=1 -interaction=nonstopmode -file-line-error ビルドするファイル名

これらについては添付ファイルで添付させていただきます。

ホームディレクトリの .latexmkrc と- ビルドディレクトリの .latexmkrc か latexmkrc

これにつきましてはターミナルで次のように表示されました。

naoto-ito@Naoto-Macmini downloads % latexmk -C
Rc files read:
  NONE
Latexmk: This is Latexmk, John Collins, 7 Jan. 2023. Version 4.79.
No specific requests made, so using default for latexmk.
Latexmk: Doing main (small) clean up for 'test.tex'
Latexmk: Doing extra clean up (of final output files) for 'test.tex'

以上、よろしくお願いします。

伊藤 直人 への返信

Re: Visual Studio Codeの挙動がいつもと変わった?

- 伊藤 直人 の投稿
先ほど、下のこと試してみると症状が改善されました。

試してみたのは次のことです。
1. vscodeの再インストール(設定や情報も消去)→この時点では解決しなかった。
2.LaTeX workshopのversionを最新の9.4.5から9.4.4へ変更(解決せず)→9.2.0(解決)→9.4.5に戻す(解決)

私のしたことが解決に至ったのかは定かではありませんがひとまず解決しました。
そして、現在、もしこの事案について調べれている方がおられましたら申し訳ございません。




伊藤 直人 への返信

Re: Visual Studio Codeの挙動がいつもと変わった?

- 和田 勇 の投稿
現象を確認しました。

ヒントは「(u)platex」では問題ないとのこと。

そこで、オプションをひとつづつ精査してゆくと「-gg」を外すと、(u)platex と
同様な処理が行われ pdf を表示した windows は表示されたままになっている。

  -gg      - Super go mode: clean out generated files (-CA), and then
                process files regardless of file timestamps

ということなので「 -gg の動き」を以下のように手動でエミュレートしてみました。

  - vscode で pdf ファイル (test.pdf) を開く(表示させる)
      - vscode のターミナルコンソールでその pdf を削除( rm test.pdf とか latexmk -C tetsで)

上記、2番目の操作で test.pdf を表示されていた window は消えます。

よって、「-gg」の操作をどのようにレシピに反映させるか否かになると思います。
和田 勇 への返信

Re: Visual Studio Codeの挙動がいつもと変わった?

- 伊藤 直人 の投稿

和田様

検証を行っていただきありがとうございます。

昨日の返信では症状が改善したと書いていましたが今日になり、また再発しました。

そこで和田さんにご教授いただいた-ggオプションを削除したところ症状が改善しました。

-ggオプションが有効な状態でなぜ、一時的に解決したのか疑問ではありますが解決することができ感謝の念に堪えません。

ありがとうございました。

伊藤 直人 への返信

Re: Visual Studio Codeの挙動がいつもと変わった?

- 和田 勇 の投稿
「改善していた」とのこと、私のところでは前々回の投稿のように見えていたので
改めて昨日の投稿を確認し、追跡調査 ...

改めて git で clone して 'pdf tab' でコミットログ検索すると、
今回の事象に関連しそうなコミットがありました。

それを見ると、「プレビューするファイルを表示する」から
「プレビューするファイルにアクセスできれば表示する」
のような感じの修正が施されているように読み取れます。

これが数秒間隔で数回行われるなどすればある程度は解消はs売るけど ...

一時的に解消した理由はわかりませんが
latexmk -gg で pdf  が削除され再作成されるまでの時間が考慮されていない気がする。
(でも pdf って、今関わっているものでは数分から10分、20分要するものもあり,
 瞬時に再作成できるものばかりではないので、どれだけ wait するかって決め打ちするのは難しい)

以下は、 git でログを調べるためのヒントです。

- git url .... https://github.com/James-Yu/LaTeX-Workshop.git
- 特定の文字列のコミット情報を探す
  git log --grep 'pdf tab'
- コミット情報から修正内容を表示する
  git show ハッシュ値
  今回の場合は
  git show 664c6e1335d316938ef311ea8917f8fe5bde44f9
和田 勇 への返信

Re: Visual Studio Codeの挙動がいつもと変わった?

- 伊藤 直人 の投稿
和田様

ご返信ありがとうございます。
そして、状況について分析をしていただきありがとうございます。
git(hub)は少しだけ使ったことがあるのですが和田さんのようにコミットログを分析するなどの技量は持ち合わせておりませんでしたので大変参考になりました。
伊藤 直人 への返信

Re: Visual Studio Codeの挙動がいつもと変わった?

- 和田 勇 の投稿
私は、伊藤さんが投稿した内容の中のいくつかのキーワードで
もしやと思って、google 先生に教えてもらいながら探したのですよ。

でもあのヒントで追っかけたのですね。すごい、すごい。

私はまだまだ一人ボッチ git なので、
多数の人と協調してgit を使う経験は少ないのですが、
現役時代にもっともっと勉強して身につけておくべきツールだと反省しています。

一番の利点はリポジトリを消さない限り、
バックアップを作らずにファイル編集したりしても元に戻せるところかな。
もちろんファイルを削除してしまっても復元できるのは便利です。

騙されたと思って使って欲しいと思っています。
和田 勇 への返信

Re: Visual Studio Codeの挙動がいつもと変わった?

- Z. R. の投稿

もう本題とは関係なくなっていますが、参考のため。

  • ptex2pdfに-usのような無効なオプションを渡した場合、無視されるようです。例えばエンジンがuplatexなら以下のように警告が出ます。
    uplatex: unrecognized option `-us'
    詳しく言うと、「ptex2pdfは自分の知らないオプションをuplatexに渡す」→「uplatexは無効なオプションを警告付きで無視する」となるようです。
  • setting.jsonにはVSCodeの全ての設定が単純に列挙されているので、LaTeX Workshop以外の設定が混ざっているのは正常です。LaTeX Workshop関連の設定のキーが必ずlatex-workdshop.から始まっているのは「設定ファイルがそういう形式だから」というわけです。
Z. R. への返信

Re: Visual Studio Codeの挙動がいつもと変わった?

- 和田 勇 の投稿
フォローありがとうございます。

- 「-us」 の指定についてはもう少し調べて回答すればよかったと反省しております。
- settings.json の latex-workshop のブロック(?)に他の設定が混じっていることにか関して
  - latex-works では無視されるとは思ってはいましたが、
   python の lsp 連携や C++ の設定を記述したからといって、
   python コード編集時に lsp が動くなどとは思わないでほしい
  くらいの意味で書いたのですが、いずれにせよ言葉足らずでした。