VScode上でtexファイルをコンパイルできない

VScode上でtexファイルをコンパイルできない

- Kudo 000 の投稿
返信数: 8
コンパイル時にエラーが発生し、No pages of outputとなり出力されない。
環境はWindows10。
TeXlive2021でlatexmkを経由してplatex形式で出力しています。

自宅のPCでは問題なくコンパイルできるのですが(2019ver)、理由がありノートPCでも扱えるようにしたいです。システム系のことはざっくりしかわからないので詳細に教えて頂けると幸いです。

以下にターミナル内のエラー文、現在のjsonファイル.latexmkrcファイルを記載させて頂きます。なお.latexmkrcファイルはC:Users/adminにあります。

エラー文
Latexmk: Invoked as 'c:\texlive\2021\texmf-dist\scripts\latexmk\latexmk'
Rc files read:
/cygdrive/c/Users/admin/.latexmkrc
Latexmk: This is Latexmk, John Collins, 17 Mar. 2022. Version 4.77, version: 4.77.
Latexmk: applying rule 'latex'...
Rule 'latex': File changes, etc:
Changed files, or newly in use since previous run(s):
c:/Users/admin/OneDrive/GraduationResearch/ProjectTex/2022_04_04/2022_04_04.tex
Rule 'latex': The following rules & subrules became out-of-date:
latex
------------
Run number 1 of rule 'latex'
------------
------------
Running 'platex -synctex=1 -interaction=nonstopmode -recorder -output-directory="out" "c:/Users/admin/OneDrive/GraduationResearch/ProjectTex/2022_04_04/2022_04_04.tex"'
------------
This is e-pTeX, Version 3.14159265-p3.8.1-180226-2.6 (utf8.euc) (TeX Live 2018/Cygwin) (preloaded format=platex)
restricted \write18 enabled.
entering extended mode
! I can't find file `c:/Users/admin/OneDrive/GraduationResearch/ProjectTex/2022_04_04/2022_04_04.tex'.
<*> ...search/ProjectTex/2022_04_04/2022_04_04.tex
(Press Enter to retry, or Control-D to exit)
Please type another input file name
! Emergency stop.
<*> ...search/ProjectTex/2022_04_04/2022_04_04.tex
No pages of output.
Transcript written on out/texput.log.
Latexmk: fls file doesn't appear to have been made.
Latexmk: Couldn't read log file 'out/2022_04_04.log':
No such file or directory
----------------------
This message may duplicate earlier message.
Latexmk: Failure in processing file 'c:/Users/admin/OneDrive/GraduationResearch/ProjectTex/2022_04_04/2022_04_04':
*LaTeX didn't generate the expected log file 'out/2022_04_04.log'
----------------------
Latexmk: If appropriate, the -f option can be used to get latexmk
to try to force complete processing.
Latexmk: Getting log file 'out/2022_04_04.log'
Latexmk: Errors, so I did not complete making targets
Collected error summary (may duplicate other messages):
latex: Run of rule 'latex' gave a non-zero error code
C:\texlive\2021\bin\win32\runscript.tlu:915: command failed with exit code 12:
perl.exe c:\texlive\2021\texmf-dist\scripts\latexmk\latexmk.pl -outdir=out "-latex=platex -synctex=1 %O %S" -interaction=nonstopmode c:/Users/admin/OneDrive/GraduationResearch/ProjectTex/2022_04_04/2022_04_04



settings.json
"latex-workshop.latex.clean.fileTypes": [
"*.aux",
"*.bbl",
"*.blg",
"*.idx",
"*.ind",
"*.lof",
"*.lot",
"*.out",
"*.toc",
"*.acn",
"*.acr",
"*.alg",
"*.glg",
"*.glo",
"*.gls",
"*.ist",
"*.fls",
"*.log",
"*.fdb_latexmk",
"*.snm",
"*.nav",
"*.dvi",
"*.synctex.gz"
],

// 生成ファイルを "out" ディレクトリに吐き出す
"latex-workshop.latex.outDir": "out",

// ビルドのレシピ
"latex-workshop.latex.recipes": [
{
"name": "latexmk",
"tools": [
"latexmk"
]
},
{
"name": "ptex2pdf",
"tools": [
"ptex2pdf"
]
}
],
// ビルドのレシピに使われるパーツ
"latex-workshop.latex.tools": [
{
"name": "latexmk",
"command": "latexmk",
"args": [
"-outdir=%OUTDIR%",
"-latex=platex -synctex=1 %O %S",
"-interaction=nonstopmode",
"%DOC%"
],
},
{
"name": "ptex2pdf",
"command": "ptex2pdf",
"args": [
"-l",
"-ot",
"-kanji=utf8 -synctex=1",
"-interaction=nonstopmode", // エラー発生時に自動でビルド停止
"%DOC%"
]
}
],
"latex-workshop.view.pdf.viewer": "tab",
"security.workspace.trust.untrustedFiles": "open",

.latexmkrc
!/usr/bin/env perl

# LaTeX
$latex = 'platex -kanji=utf8 -synctex=1 -halt-on-error -file-line-error %O %S';
$max_repeat = 5;

# BibTeX
$bibtex = 'pbibtex %O %S';
$biber = 'biber --bblencoding=utf8 -u -U --output_safechars %O %S';

# index
$makeindex = 'mendex %O -o %D %S';

# DVI / PDF
$dvipdf = 'dvipdfmx %O -o %D %S';
$pdf_mode = 3;

# preview
$pvc_view_file_via_temporary = 0;
if ($^O eq 'linux') {
$dvi_previewer = "xdg-open %S";
$pdf_previewer = "xdg-open %S";
} elsif ($^O eq 'darwin') {
$dvi_previewer = "open %S";
$pdf_previewer = "open %S";
} else {
$dvi_previewer = "start %S";
$pdf_previewer = "start %S";
}

# clean up
$clean_full_ext = "%R.synctex.gz"

一点気になった点はtexliveのコマンドプロンプトではのパスが通っているが、ターミナルだとエラーとなる事です…

ご教授お願い致します。
Kudo 000 への返信

Re: VScode上でtexファイルをコンパイルできない

- m c の投稿
> ! I can't find file `c:/Users/admin/OneDrive/GraduationResearch/ProjectTex/2022_04_04/2022_04_04.tex'.

もしかして,OneDrive上のファイルでしょうか?
そのtexファイルをOneDrive上ではなく,PC上に直接配置した場合の処理結果はどうなるでしょうか.
Kudo 000 への返信

Re: VScode上でtexファイルをコンパイルできない

- はやて (h20y6m) の投稿

TeXlive2021でlatexmkを経由してplatex形式で出力しています。

と書かれていますがログを見ると

This is e-pTeX, Version 3.14159265-p3.8.1-180226-2.6 (utf8.euc) (TeX Live 2018/Cygwin) (preloaded format=platex)

Cygwin の platex が起動されているようです。

Windows の TeX Live 2021 と Cygwin の TeX Live 2018 が混在してしまっていてうまく動かないのだと思います。

一点気になった点はtexliveのコマンドプロンプトではのパスが通っているが、ターミナルだとエラーとなる事です…

「ターミナル」とはもしかして Cygwin のターミナルでしょうか。

Cygwin で TeX Live を使うのなら Cygwin に TeX Live をインストールして Windows にはインストールしない。

Windows の TeX Live を使うのなら Cygwin を使わずコマンドプロンプトや PowerShell 等を使う。

のどちらかにしたほうが良いと思います。

一つの PC に複数の TeX 環境をインストールすると混乱します。

はやて (h20y6m) への返信

Re: VScode上でtexファイルをコンパイルできない

- Kudo 000 の投稿
返信ありがとうございます。
コロナウイルスに感染しまして返信遅れ申し訳ありません。

ターミナルはVSCode内のターミナルです。
VSCode初期状態での表示は

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

新しいクロスプラットフォームの PowerShell をお試しください https://aka.ms/pscore6

PS C:\Users\admin\OneDrive\GraduationResearch\ProjectTex\2022_04_04>

となっているので恐らくPowerShell上で動いているはずです。

私の知識不足でCygwinの知識が無いのですが、
「Windows の TeX Live を使うのなら Cygwin を使わずコマンドプロンプトや PowerShell 等を使う。」
をVSCode上で実現するには具体的にどのような操作が必要なのでしょうか。

重ねての質問申し訳ありません。
何卒宜しくお願い致します。
Kudo 000 への返信

Re: VScode上でtexファイルをコンパイルできない

- 和田 勇 の投稿
  • 環境変数 PATH はどのようになっていますか?

  • VSCode のトップバーにある「ターミナル」から「新しいターミナル」を選択してターミナルを開いて以下のコマンドの処理結果を教えてください

       $env:path -split ';'
       
  • また、2022_04_04.tex のあるディレクトリで latexmk が実行できるか試してみてください

       latexmk 2022_04_04
       
和田 勇 への返信

Re: VScode上でtexファイルをコンパイルできない

- Kudo 000 の投稿
・VSCode のトップバーにある「ターミナル」から「新しいターミナル」を選択してターミナルを開いて以下のコマンドの処理結果を教えてください

>>実行しました

PS C:\Users\admin\OneDrive\GraduationResearch\ProjectTex\2022_04_04> $env:path -split ';'
C:\Software\VMware\VMware Workstation Pro\bin\
C:\Software\R\Rtools\bin
C:\Software\R\Rtools\mingw_64\bin
C:\Program Files (x86)\Common Files\Oracle\Java\javapath
C:\WINDOWS\system32
C:\WINDOWS
C:\WINDOWS\System32\Wbem
C:\WINDOWS\System32\WindowsPowerShell\v1.0\
C:\WINDOWS\System32\OpenSSH\
C:\Program Files\Intel\WiFi\bin\
C:\Program Files\Common Files\Intel\WirelessCommon\
C:\Program Files (x86)\Wolfram Research\WolframScript\
C:\Software\Python\python-3.7.2\Scripts\
C:\Software\Python\python-3.7.2\
C:\Software\W32TeX\bin64
C:\Software\W32TeX\bin
C:\Software\Ghostscript\gs9.26\bin
C:\Software\Ghostscript\gs9.26\lib
C:\Cygwin\bin
C:\Program Files\MATLAB\R2021b\bin
C:\Users\admin\AppData\Local\Microsoft\WindowsApps
C:\Software\Quartus\modelsim_ase\win32aloem
C:\Users\admin\AppData\Local\Programs\Microsoft VS Code\bin
C:\texlive\2021\bin\win32
C:\Users\admin

・また、2022_04_04.tex のあるディレクトリで latexmk が実行できるか試してみてください

>>実行ができず以下エラーが吐き出されました。

PS C:\Users\admin\OneDrive\GraduationResearch\ProjectTex\2022_04_04> latexmk 2022_04_04
プログラム 'latexmk' の実行に失敗しました: この操作
に対して指定されたファイルには、アプリケーションが関
連付けられていません。発生場所 行:1 文字:1
+ latexmk 2022_04_04
+ ~~~~~~~~~~~~~~~~~~。
発生場所 行:1 文字:1
+ latexmk 2022_04_04
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ResourceUnavailable:
(:) [], ApplicationFailedException
+ FullyQualifiedErrorId : NativeCommandFailed

追記:
OSがクリーンインストールされている違うPCでは同じように作業したところ正常に動きました。正常に動作する自宅PCと前述のPCはCygwinはインストールされていません。よろしくお願い致します。


Kudo 000 への返信

Re: VScode上でtexファイルをコンパイルできない

- 和田 勇 の投稿
  • ううむ cygwin 環境の他に W32TeX も入っているのかな?

    • 過去の環境が引き継がれているだけで実態がないだけかもしれない
  • 環境変数 PATH は、たとえば latexmk (latexmk.exe) としてプログラムを起動しようとした時、どのディレクトリにあるかの目安です

  • texmk が C:\Cygwin\bin と C:\texlive\2021\bin\win32 両方に存在した場合は、先に記述したパスディレクトリのものを参照します。

  • 簡単な対処方法

    • コルタナで「環境変数の編集」を検索し起動し一番先頭に以下のパスを設定し、vscode を再起動

      C:\texlive\2021\bin\win32

    • 上記でダメなら「コントロールパネル」の「システム環境変数」で システム及びユーザの Path で C:\texlive\2021\bin\win32 をC:\Cygwin\bin より先になるように順番を変更する

  • お節介

    • C:\Software\W32TeX\bin64 C:\Software\W32TeX\bin が存在しなければ削除して良い

    • 存在していれば C:\texlive\2021\bin\win32 より下になるように設定

和田 勇 への返信

Re: VScode上でtexファイルをコンパイルできない

- Kudo 000 の投稿
返信ありがとうございます。
結果から申し上げると使えるようになりました!助かりました!
以下、和田様の今後のFourumの対応に役立てればと思い今回の手順を記載させていただきます。

  • コルタナで「環境変数の編集」を検索し起動し一番先頭に以下のパスを設定し、vscode を再起動
    • C:\texlive\2021\bin\win32をPath先頭に変更しましたが依然エラーが起こりました。

  • 上記でダメなら「コントロールパネル」の「システム環境変数」で システム及びユーザの Path で C:\texlive\2021\bin\win32 をC:\Cygwin\bin より先になるように順番を変更する
  • コントロールパネルからシステムのPathで C:\texlive\2021\bin\win32 をC:\Cygwin\bin より先になるように順番を変更しました。
  • 正常に動作するようになりました

先にCygwinにPathが通ってしまいエラーを引き起こしていたようです。C:\Software\W32TeX\bin64 C:\Software\W32TeX\binはすでに削除済みだったのでPathから削除しました!
長期間対応いただきありがとうございました!