普段、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
私は、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
提供された 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 周りのファイルを編集した時、
これらのオプションが有効になっているのかやや疑問です。
気になる点を挙げてみます。
最後に変更を加えた事象を思い出しましょう。
きっと 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 周りのファイルを編集した時、
これらのオプションが有効になっているのかやや疑問です。
和田様
ご返信ありがとうございます。
「ptex2pdf に「-us」オプションを渡している」ことについて
ptex2pdf に「-us」オプションを渡している を渡していることについては私のミスです。ご指摘いただきありがとうございます。
そして、このことは最初の質問に書いておくべきだったと思うのですが症状が発生するのはlatexmk
を使ってlualatex
でコンパイルしたときだけのようです。私のrecipeの中にあるplatex,uplatex
では上のオプション変更の前後を問わず症状は発生しませんでした。
settings.jsonをいじった記憶があるか
settings.jsonの最終変更日は昨年の12月11日でした。お恥ずかしい話ですがその日に何を変更したかは覚えていません。
ただ、年明けにLaTeX
を使った時は症状は発生しませんでした。
「latex-workshop には通常見かけないものが含まれています」について
この件につきましてもご指摘いただきありがとうございます。私がsettings.jsonの書き方をあまり理解していないのが原因です。時間があるときに勉強して直したいと思います。
今後どうするか
この問題の解決策として私が思いつくのは「vscodeの再インストール」ですがそれはした方が良いでしょうか。
よろしくお願いします。
- 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
-「表示」→「出力」(⌘ + 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
和田様
ご返信ありがとうございます。
和田様からご要望のありました情報について以下のように提供させていただきます。見当違いな情報でしたら申し訳ございません。
試しているソース
\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'
以上、よろしくお願いします。
現象を確認しました。
ヒントは「(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」の操作をどのようにレシピに反映させるか否かになると思います。
ヒントは「(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」の操作をどのようにレシピに反映させるか否かになると思います。
「改善していた」とのこと、私のところでは前々回の投稿のように見えていたので
改めて昨日の投稿を確認し、追跡調査 ...
改めて 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
改めて昨日の投稿を確認し、追跡調査 ...
改めて 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
私は、伊藤さんが投稿した内容の中のいくつかのキーワードで
もしやと思って、google 先生に教えてもらいながら探したのですよ。
でもあのヒントで追っかけたのですね。すごい、すごい。
私はまだまだ一人ボッチ git なので、
多数の人と協調してgit を使う経験は少ないのですが、
現役時代にもっともっと勉強して身につけておくべきツールだと反省しています。
一番の利点はリポジトリを消さない限り、
バックアップを作らずにファイル編集したりしても元に戻せるところかな。
もちろんファイルを削除してしまっても復元できるのは便利です。
騙されたと思って使って欲しいと思っています。
もしやと思って、google 先生に教えてもらいながら探したのですよ。
でもあのヒントで追っかけたのですね。すごい、すごい。
私はまだまだ一人ボッチ git なので、
多数の人と協調してgit を使う経験は少ないのですが、
現役時代にもっともっと勉強して身につけておくべきツールだと反省しています。
一番の利点はリポジトリを消さない限り、
バックアップを作らずにファイル編集したりしても元に戻せるところかな。
もちろんファイルを削除してしまっても復元できるのは便利です。
騙されたと思って使って欲しいと思っています。
もう本題とは関係なくなっていますが、参考のため。
- ptex2pdfに
-us
のような無効なオプションを渡した場合、無視されるようです。例えばエンジンがuplatexなら以下のように警告が出ます。uplatex: unrecognized option `-us'
詳しく言うと、「ptex2pdfは自分の知らないオプションをuplatexに渡す」→「uplatexは無効なオプションを警告付きで無視する」となるようです。 setting.json
にはVSCodeの全ての設定が単純に列挙されているので、LaTeX Workshop以外の設定が混ざっているのは正常です。LaTeX Workshop関連の設定のキーが必ずlatex-workdshop.
から始まっているのは「設定ファイルがそういう形式だから」というわけです。