VSCODEでのコンパイル時のエラーについて

VSCODEでのコンパイル時のエラーについて

- 宜史 江田 の投稿
返信数: 10
windows11 Homeのバージョン22H2、VSCODEでコンパイルをしたときに、かなりの高頻度で以下のエラーが発生します。環境構築については
https://qiita.com/passive-radio/items/623c9a35e86b6666b89e
というページに書いてあることをそっくりそのまま実行しました。

I can't write on file `SAGT.pdf'.
Please type another file name for output
c:/Users/takaf/TEX_TEST/SAGT.tex:51: Emergency stop.
...not:N \tex_shipout:D \box_use:N \l_shipout_box

[{
"resource": "/c:/Users/takaf/TEX_TEST/SAGT.tex",
"owner": "LaTeX",
"severity": 8,
"message": " ==> Fatal error occurred, no output PDF file produced!\nTranscript written on SAGT.log.\nLatexmk: Getting log file 'SAGT.log'\nLatexmk: Examining 'SAGT.fls'\nLatexmk: Examining 'SAGT.log'\nLatexmk: Errors, in force_mode: so I tried finishing targets\n------------\nRunning 'start start \"SAGT.pdf\"'\n------------\nCollected error summary (may duplicate other messages):\n",
"source": "LaTeX",
"startLineNumber": 51,
"startColumn": 1,
"endLineNumber": 51,
"endColumn": 65536
}]

一応コンパイルはできているのですが目次の部分が表示されず、またVSCODEを再起動したときに限り問題なくコンパイルできます。メッセージを頼りに色々調べてはみたのですが、良い情報は得られず、自分では何に問題があるのか皆目見当も付きません。どうか問題解決にご協力お願いします。
宜史 江田 への返信

Re: VSCODEでのコンパイル時のエラーについて

- 和田 勇 の投稿
エラーが発生した時、スクリーンショットを見せていただけますか?

vscode の window とエラー表示されていればそれも含めたものでお願いします。

またコマンドプロンプトなどで SAGT.tex のあるディレクトリに移動し、 latexmk SAGT を実行したらどうなりますか?
その際、エラーの場合は、コマンドプロンプトに表示されたものを新規テキストファイルにコピペで作成したものを添付してください。

添付するものが複数ある場合は zip で固めてアップロードしてください。


和田 勇 への返信

Re: VSCODEでのコンパイル時のエラーについて

- 宜史 江田 の投稿
直接コンパイルしたときは問題が起きたり起きなかったりと、どうもよくわからない状況です。それから時間をおいて再び自動コンパイルを再び試したところ、特にエラーは発生しませんでした。ですが代わりに、警告と情報が一つずつ表示されました。
宜史 江田 への返信

Re: VSCODEでのコンパイル時のエラーについて

- 和田 勇 の投稿

「問題のコード.txt」の最低限の修正

提供していたスクリーンショットより、vscode latexmk 周り設定ではという想定から「問題のコード.txt」をデバッグをまず片付けることにします。

少なくとも latexmkrc の記述に $pdf_mode = 4; が適切に入っていると判断はしています。

  • 数式ブロック区間を示す $ の対をなしていない箇所ありエラーや行溢れを誘発しています

    1. 257 行目で最終的に $ が一個余分になりエラーを誘発(@@ -253,7 +261,7 @@ 参照)
    2. 62 行目は長い数式ブロックになってしまうため分割できず行溢れ発生(@@ -59,8 +59,16 @@ 参照)
  • 92 行目あたりで発生していた旧式の\bf を改めてね ... はちょっとわかりにくいけど 14 行目を \textbf に書き換えてください(@@ -11,7 +11,7 @@ 参照)

  • 以上三箇所を直せばビルドはできるようになりますが ・・・その部分の修正イメージです。

    @@ -11,7 +11,7 @@
    \newtheorem{defi}{定義}[section]
    \newtheorem{lemm}{補題}[section]
    \newtheorem{exa}{例}[section]
    -\renewcommand\proofname{\bf [証明]}
    +\renewcommand\proofname{\textbf{[証明]}}
    \DeclarePairedDelimiter{\abs}{\lvert}{\rvert}
    
    \title{集合と位相(内田)}
    @@ -59,8 +59,16 @@
    
    $[\mathcal{O}_3](O_\lambda \mid \lambda \in \Lambda)$を$\mathcal{O}$の元からなる集合とすると$\bigcup_{\lambda \in \Lambda} O_\lambda \in \mathcal{O}$
    
    -位相$\mathcal{O}を与えられた集合X$を\textbf{位相空間}といい、$(X,\mathcal{O})$で表す。$\mathcal{O}に属するXの部分集合を位相空間(X,\mathcal{O})の開集合(厳密には\mathcal{O}\textbf{-開集合})$という。
    -この場合も、集合$Xの元を位相空間(X,\mathcal{O})の\textbf{点}$という。
    +位相
    +$ \mathcal{O}     $ を与えられた集合
    +$ X               $ を\textbf{位相空間}といい、
    +$ (X,\mathcal{O}) $ で表す。
    +$ \mathcal{O}     $ に属する
    +$ X               $ の部分集合を位相空間
    +$ (X,\mathcal{O}) $ の開集合(厳密には
    +$ \mathcal{O}     $ \textbf{-開集合})という。
    +この場合も、集合
    +$ X               $ の元を位相空間
    +$ (X,\mathcal{O}) $ の\textbf{点}という。
    
    
    \section{近傍系と連続写像}
    @@ -253,7 +261,7 @@
    \end{theo}
    
    \begin{proof}
    -$B_1$を位相空間$(X,\mathcal{O})の部分空間$B$
    +$B_1$を位相空間$(X,\mathcal{O})$の部分空間$B$
    \end{proof}
    
  • お節介ですが、数式ブロックの表現を @@ -59,8 +59,16 @@ のような形に整形したものを添付します。参考にしていただければと思います。

    • この方法は、現役時代に同様な対処した時のことを思い出してクイックハックしてみました
和田 勇 への返信

Re: VSCODEでのコンパイル時のエラーについて

- 宜史 江田 の投稿
返信が遅れてしまいましたが、改善案を試したところ問題なくコンパイルすることができました。ありがとうございました。
宜史 江田 への返信

Re: VSCODEでのコンパイル時のエラーについて

- 宜史 江田 の投稿
すいません。解決したと思っていたのですが再び同じエラーが発生しました。心当たりがあるとすればコード51行目の\newpageです。これが書かれていないと上手く改ページがなされません。どう改善するのが良いでしょうか。それからエラー発生時の出力も書いておきます。

Latexmk: Cannot remove file 'SAGT.pdf'
Error message = 'Permission denied'
Initial Win CP for (console input, console output, system): (CP932, CP932, CP932)
I changed them all to CP932
Rc files read:
C:/Users/takaf/.latexmkrc
Latexmk: This is Latexmk, John Collins, 4 Apr. 2023. Version 4.80.
Latexmk: Doing main (small) clean up for 'c:/Users/takaf/TEX_TEST/SAGT.tex'
No existing .aux file, so I'll make a simple one, and require run of *latex.
Force everything to be remade.
Latexmk: applying rule 'lualatex'...
Rule 'lualatex': Reasons for rerun
Category 'other':
Rerun of 'lualatex' forced or previously required

------------
Run number 1 of rule 'lualatex'
------------
------------
Running 'lualatex -synctex=1 -interaction=nonstopmode -file-line-error -recorder -synctex=1 -interaction=nonstopmode "c:/Users/takaf/TEX_TEST/SAGT.tex"'
------------
This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)
restricted system commands enabled.
(c:/Users/takaf/TEX_TEST/SAGT.tex
LaTeX2e <2023-06-01> patch level 1
L3 programming layer <2023-08-11>
(c:/texlive/2023/texmf-dist/tex/luatex/luatexja/ltjsarticle.cls
Document Class: ltjsarticle 2022/09/12 ltjsclasses
(c:/texlive/2023/texmf-dist/tex/luatex/luatexja/luatexja.sty (c:/texlive/2023/texmf-dist/tex/luatex/luatexja/luatexja-core.sty (c:/texlive/2023/texmf-dist/tex/luatex/luatexbase/luatexbase.sty (c:/texlive/2023/texmf-dist/tex/luatex/ctablestack/ctablestack.sty)) (c:/texlive/2023/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty) (c:/texlive/2023/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty (c:/texlive/2023/texmf-dist/tex/generic/infwarerr/infwarerr.sty) (c:/texlive/2023/texmf-dist/tex/generic/iftex/iftex.sty)) (c:/texlive/2023/texmf-dist/tex/latex/xkeyval/xkeyval.sty (c:/texlive/2023/texmf-dist/tex/generic/xkeyval/xkeyval.tex (c:/texlive/2023/texmf-dist/tex/generic/xkeyval/xkvutils.tex (c:/texlive/2023/texmf-dist/tex/generic/xkeyval/keyval.tex)))) (c:/texlive/2023/texmf-dist/tex/latex/etoolbox/etoolbox.sty) (c:/texlive/2023/texmf-dist/tex/latex/everyhook/everyhook.sty (c:/texlive/2023/texmf-dist/tex/latex/svn-prov/svn-prov.sty)) (c:/texlive/2023/texmf-dist/tex/luatex/luatexja/ltj-base.sty) (c:/texlive/2023/texmf-dist/tex/luatex/luatexja/ltj-latex.sty (c:/texlive/2023/texmf-dist/tex/luatex/luatexja/patches/lltjfont.sty (c:/texlive/2023/texmf-dist/tex/latex/base/tuenc.def)) (c:/texlive/2023/texmf-dist/tex/luatex/luatexja/patches/lltjdefs.sty
(c:/texlive/2023/texmf-dist/tex/luatex/luatexja/jfm-ujisv.lua)
(c:/texlive/2023/texmf-dist/tex/luatex/luatexja/jfm-ujis.lua)) (c:/texlive/2023/texmf-dist/tex/luatex/luatexja/patches/lltjcore.sty (c:/texlive/2023/texmf-dist/tex/latex/l3kernel/expl3.sty (c:/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-luatex.def))) (c:/texlive/2023/texmf-dist/tex/luatex/luatexja/patches/lltjp-atbegshi.sty) (c:/texlive/2023/texmf-dist/tex/luatex/luatexja/patches/lltjp-geometry.sty (c:/texlive/2023/texmf-dist/tex/generic/iftex/ifluatex.sty)))) (c:/texlive/2023/texmf-dist/tex/luatex/luatexja/luatexja-compat.sty)) (c:/texlive/2023/texmf-dist/tex/platex/jsclasses/jslogo.sty)) (c:/texlive/2023/texmf-dist/tex/latex/graphics/graphicx.sty (c:/texlive/2023/texmf-dist/tex/latex/graphics/graphics.sty (c:/texlive/2023/texmf-dist/tex/latex/graphics/trig.sty) (c:/texlive/2023/texmf-dist/tex/latex/graphics-cfg/graphics.cfg) (c:/texlive/2023/texmf-dist/tex/latex/graphics-def/luatex.def))) (c:/texlive/2023/texmf-dist/tex/latex/amsmath/amsmath.sty
For additional information on amsmath, use the `?' option.
(c:/texlive/2023/texmf-dist/tex/latex/amsmath/amstext.sty (c:/texlive/2023/texmf-dist/tex/latex/amsmath/amsgen.sty)) (c:/texlive/2023/texmf-dist/tex/latex/amsmath/amsbsy.sty) (c:/texlive/2023/texmf-dist/tex/latex/amsmath/amsopn.sty)) (c:/texlive/2023/texmf-dist/tex/latex/amsfonts/amssymb.sty (c:/texlive/2023/texmf-dist/tex/latex/amsfonts/amsfonts.sty)) (c:/texlive/2023/texmf-dist/tex/latex/mathtools/mathtools.sty (c:/texlive/2023/texmf-dist/tex/latex/tools/calc.sty) (c:/texlive/2023/texmf-dist/tex/latex/mathtools/mhsetup.sty)) (c:/texlive/2023/texmf-dist/tex/latex/amscls/amsthm.sty) (c:/texlive/2023/texmf-dist/tex/latex/titlesec/titlesec.sty) (./SAGT.aux) (c:/texlive/2023/texmf-dist/tex/latex/base/ts1cmr.fd) (c:/texlive/2023/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
) (c:/texlive/2023/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty (c:/texlive/2023/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg)) (c:/texlive/2023/texmf-dist/tex/latex/amsfonts/umsa.fd) (c:/texlive/2023/texmf-dist/tex/latex/amsfonts/umsb.fd)
No file SAGT.toc.
(c:/texlive/2023/texmf-dist/tex/latex/amsfonts/ueuf.fd)
c:/Users/takaf/TEX_TEST/SAGT.tex:60: I can't write on file `SAGT.pdf'.
Please type another file name for output
c:/Users/takaf/TEX_TEST/SAGT.tex:60: Emergency stop.
...not:N \tex_shipout:D \box_use:N \l_shipout_box
\__shipout_drop_firstpage_...
l.60 $
[\textbf{O}_1]X \in \mathcal{O},\varnothing \in \mathcal{O} $
69846 words of node memory still in use:
150 hlist, 13 vlist, 703 rule, 33 mark, 39 local_par, 1 dir, 16 math, 1053 glue, 40 kern, 233 penalty, 778 glyph, 21474 attribute, 67 glue_spec, 2006 attribute_list, 2 temp, 2 if_stack, 23 write, 112 user_defined nodes
avail lists: 1:13,2:28,4:1,5:6,8:4,10:24
c:/Users/takaf/TEX_TEST/SAGT.tex:60: ==> Fatal error occurred, no output PDF file produced!
Transcript written on SAGT.log.
Latexmk: Missing input file 'SAGT.toc' (or dependence on it) from following:
No file SAGT.toc.
Latexmk: Getting log file 'SAGT.log'
Latexmk: Examining 'SAGT.fls'
Latexmk: Examining 'SAGT.log'
Latexmk: Errors, in force_mode: so I tried finishing targets
------------
Running 'start start "SAGT.pdf"'
------------
Collected error summary (may duplicate other messages):
lualatex: Command for 'lualatex' gave return code 1
Refer to 'SAGT.log' and/or above output for details

C:\texlive\2023\bin\windows\runscript.tlu:921: command failed with exit code 12:
perl.exe c:\texlive\2023\texmf-dist\scripts\latexmk\latexmk.pl -f -gg -pv -lualatex -synctex=1 -interaction=nonstopmode -file-line-error c:/Users/takaf/TEX_TEST/SAGT
添付 スクリーンショット (3).png
宜史 江田 への返信

Re: VSCODEでのコンパイル時のエラーについて

- m c の投稿
横入りで失礼します.

PDFファイルのビューワにAcrobat Readerをお使いで,SAGT.pdfをAcrobat Readerで開いたままコンパイルしていませんか?

もしそうでしたら,Acrobat Readerで開いているpdfファイルを閉じてからコンパイルしてみてください.
#Acrobat / Acrobat Readerは開いているファイルをロックします
m c への返信

Re: VSCODEでのコンパイル時のエラーについて

- 和田 勇 の投稿
そうでした、忘れていた .pdf が書き込めないという問題は、 m c さんの指摘が考えられますね。

とはいえ提示されたログを見ると以下の記録が気になります。

          c:/Users/takaf/TEX_TEST/SAGT.tex:60: Emergency stop.
          ...not:N \tex_shipout:D \box_use:N \l_shipout_box
          \__shipout_drop_firstpage_..
          l.60 $
          [\textbf{O}_1]X \in \mathcal{O},\varnothing \in \mathcal{O} $

この $  [\textbf{O}_1]X \in \mathcal{O},\varnothing \in \mathcal{O} $ を
そのまま入れても特に差し込んでもエラーにはならないので、
考えられるのは、59 行目までに変更したところに問題があるのではと思います。

解析できなければ、エラーが発生した時点の SAGT.tex と
ビルドで生成された SAGT.log を zip でまとめてアップロードしてください。

和田 勇 への返信

Re: VSCODEでのコンパイル時のエラーについて

- はやて (h20y6m) の投稿
> c:/Users/takaf/TEX_TEST/SAGT.tex:60: I can't write on file `SAGT.pdf'.
> Please type another file name for output
> c:/Users/takaf/TEX_TEST/SAGT.tex:60: Emergency stop.
> ...not:N \tex_shipout:D \box_use:N \l_shipout_box
> \__shipout_drop_firstpage_...
> l.60 $
> [\textbf{O}_1]X \in \mathcal{O},\varnothing \in \mathcal{O} $

これは SAGT.tex の 60 行目の時点で 1 ページ目の内容が確定し
1 ページ目を PDF に出力しようとしたら PDF が書き込み禁止だった(I can't write ...)ため
ユーザーに別のファイル名を入力するように求めた(Please type ...)が
latexmk から実行されたときはユーザーからの入力ができないので
どうすることもできず Emergency stop(緊急停止)するしかなかった
ということです。

SAGT.tex の内容自体はエラーの直接の原因ではありません。

m c さんが指摘するように Acrobat Reader 等で PDF を開いたままにしているためだと思います。
はやて (h20y6m) への返信

Re: VSCODEでのコンパイル時のエラーについて

- 宜史 江田 の投稿
m cさんもはやてさんもアドバイスありがとうございます。助言を受け、PDFを閉じてからコンパイルしてみたところ、エラーが表示されることはなくなりました。
おそらく自力では解決できなかったと思います。本当にありがとうございました。
宜史 江田 への返信

Re: VSCODEでのコンパイル時のエラーについて

- m c の投稿
それは良かったです.
直前のポストにAcrobat Readerの画面がありましたので,もしやと思った次第です.

TeXでタイプセットする際のPDFビューワは別なもの,例えばPopplerとかMuPDFの系列のビューワを利用されるのが良いと思います.
具体的なものは
https://texwiki.texjp.org/?Poppler
とか
https://texwiki.texjp.org/?MuPDF
に記事がありますので,そこから選択されるのが良いと思います.
#私はWindowsを使っていないので,どなたかご紹介いただけるとよいのですが...