> ! I can't find file `"|extractbb --version"'.
橋爪 豪志さんの情報から extractbb.exe は C:\w32tex\bin\extractbb.exe になるようインストールされるかもしれませんが、コマンドプロンプトで「 dir C:\w32tex\bin\extractbb.exe 」としてファイルの存在は確認できますか?
合わせて「 where uplatex 」の結果も補助情報として教えてください。
ないとしたら W32TEX を再インストールした時どのようなことをされたか教えてください。
また、uplatex を実行した際に .log ファイルがあるかと思いますが、
c:/w32tex/share/texmf-dist/tex/platex/jsclasses/jsarticle.cls
のように w32tex のパスが含まれているか確認してください。
それはともかく、もう少し情報を!!
where extractbb
を実行すると bin64 bin の二つが表示されますか?
それとログを見比べたら l3backend-dvipdfmx.def が違っているようなので急遽アップデート中。↓↓↓↓ mac 側のものと同じ内容のようなので差分を比較しましたがぱっと見おかしなところはないので、明朝レポートします。
c:/w32tex/share/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def
橋爪 File: l3backend-dvipdfmx.def 2021-05-07 L3 backend support: dvipdfmx
和田 File: l3backend-dvipdfmx.def 2021-03-18 L3 backend support: dvipdfmx
追伸
「パスを通す」っていうけどどうやって確認するかというときに windows コマンドプロンプトでは where をpowershell やそのほかでは which (-a) コマンドを使います。
識者の方へ HELP
橋爪さんのログには restricted と表示されているのですがこの障害に影響するのでしょうか。
アップデートしましたが、問題なく終了
一時退避していた l3backend-dvipdfmx.def をカレントに置いたままにしていてあたふたしましたが、アップデート後、問題なくタイプセットできました。
where uplatex extractbb で w32tex のものが起動されることを確認
C:\w32tex\bin64\uplatex.exe
C:\w32tex\bin\uplatex.exe
C:\texlive\2021\bin\win32\uplatex.exe
C:\w32tex\bin64\extractbb.exe
C:\w32tex\bin\extractbb.exe
C:\texlive\2021\bin\win32\extractbb.exe
ログを比較してみました。(- で始まる行は橋爪さん、+ は和田のそれぞれの結果)
-This is e-upTeX, Version 3.141592653-p3.9.0-u1.27-210218-2.6 (utf8.uptex) (TeX Live 2021/W32TeX) (preloaded format=uplatex 2021.5.12) 14 MAY 2021 19:11
+This is e-upTeX, Version 3.141592653-p3.9.0-u1.27-210218-2.6 (utf8.uptex) (TeX Live 2021/W32TeX) (preloaded format=uplatex 2021.5.12) 15 MAY 2021 08:16
entering extended mode
-restricted \write18 enabled. ← 橋爪さんの方では restricted が表示されている
+ \write18 enabled.
%&-line parsing enabled.
**text.tex
(./text.tex
@@ -50,26 +50,47 @@
(c:/w32tex/share/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def
File: l3backend-dvipdfmx.def 2021-05-07 L3 backend support: dvipdfmx
-! I can't find file `"|extractbb --version"'. ←橋爪さんの環境ではここでエラー
-<to be read again>
... 省略 ...
-l.65 \l__sys_internal_tl
+(|extractbb --version)
... 以下差異がありすぎるため省略
追加テストのお願い
橋爪さんの方で PATH を編集されたとのことなのでw32tex\bin64 w32tex\bin に先行するパスの中に問題があるかもしれないので、 以下のように コマンドプロンプトで一時的に w32tex\bin64 w32tex\bin を先頭に宣言してテストしていただけませんか
set PATH=C:\w32tex\bin64;C:\w32tex\bin;%PATH%
ログなどの長い行のファイルなどは添付ファイルでアップロードできます。複数ある時は zip などでまとめてください。
# 「識者の方」ではありませんが…。
> 橋爪さんのログには restricted と表示されているのですがこの障害に影響するのでしょうか。
可能性はなくはないですけれど、多分、その可能性は低いのではないかと思います。
というか、和田さんのお手元で “\write18 enabled.” となっていることのほうが
ちょっと不思議です。和田さんは実行時に常に “-shell-escape” を付けてらっしゃる
のでしょうか。
で、現在では多くの場合 “restricted \write18 enabled.” となっているのは、texmf.cnf
で shell_escape_commands が設定されているからですよね。
ここに extractbb がないと、extractbb が自動実行されないわけですけれど、現在の
W32TeX の texmf.cnf [2021/05/08] を確認してみますと:
shell_escape_commands = \
bibtex,pbibtex,repstopdf,epspdf,extractbb,gregorio,\
makeindex,mendex,kpsewhich,r-mpost,texosquery-jre8
となってますので、この点は問題なさそうです。
# 今回の問題に関して少し調べてみようとしたのですが、私の手元は W32TeX [2020/07/19] で、
# l3backend-dvipdfmx.def も [2020-06-29] と古いので、これを [2021-05-07] のものと置き
# 換えてみましたら、extractbb のチェック以前に:
#
# Check if the loaded kernel is at least enough to load this file. The kernel
# date has to be at least equal to \ExplBackendFileDate or later. If \__kernel
# _dependency-version_check:Nn doesn't exist we're loading in an older kernel,
# so it's an error anyway.
#
# の部分で引っ掛かってしまいましたので、諦めました…。
> restricted の件
当初の説明では -shell-escape を指定しているとのことでしたので、付けてやっていました。指摘に従い取り除くと橋爪さんのログとこの部分は一致しました。
> texmf.cnf の件
ということは橋爪さんの環境で別の texmf.cnf があるかもしれないですね。
なので以下のコマンドで、最初に表示される texmf.cnf に extractbb が記述されているか確認してください > 橋爪さん
kpsewhich -a texmf.cnf
powershell になってしまいますが powershell の alias コマンド sls (Select-String) を使うと簡単に判明します。私の場合
sls extract c:/w32tex/share/texmf-dist/web2c/texmf.cnf
C:\w32tex\share\texmf-dist\web2c\texmf.cnf:540:bibtex,pbibtex,repstopdf,epspdf,extractbb,gregorio,\
# 先日の私の余計な投稿の後始末です。
# 問題解決に寄与しないノイズで申し訳ありません…。
(1)restricted mode について、説明が雑過ぎましたので、別のトピックのほうに、
ちゃんとした文書を引用しました:
restricted mode の件(お詫びと補足)
2021年 05月 16日(日曜日) 10:43 - ut の投稿
https://okumuralab.org/tex/mod/forum/discuss.php?d=3120
(2)先日は、私の手元のシステムが古いので「諦めました」と書きましたが、
その後、適当に:
\documentclass[uplatex]{jsarticle}
\ExplSyntaxOn
% from: l3backend-dvipdfmx.def [2021-05-07]
\group_begin:
\cs_set:Npn \__sys_tmp:w #1 Version ~ #2 ~ #3 \q_stop {#2}
\sys_get_shell:nnNTF { extractbb~--version }
{ \char_set_catcode_space:n { `\ } }
\l__sys_internal_tl
{
\int_const:Nn \c__kernel_sys_dvipdfmx_version_int
{
\exp_after:wN \__sys_tmp:w \l__sys_internal_tl
\q_stop
}
}
{ \int_const:Nn \c__kernel_sys_dvipdfmx_version_int { 0 } }
\group_end:
\ExplSyntaxOff
\begin{document}
\ExplSyntaxOn
\int_use:N \c__kernel_sys_dvipdfmx_version_int
\ExplSyntaxOff
\end{document}
とかしてみましたら、私の手元の W32TeX [2020/07/19] でも動きました。
見当はずれな書き込みをすいませんでした。
原因わかりました
extractbb を削除した texmf.cnf を読み込むようにしたところ ! I can't find file `"|extractbb --version"'. でエラーになりました。
ということで、 kpsewhich.exe -a texmf.cnf で複数あったら c:/w32tex/share/texmf-dist/web2c/texmf.cnf をベースに 再度内容を検討してください。
** 修正イメージ > diff.exe -u c:/w32tex/texmf.cnf c:/w32tex/share/texmf-dist/web2c/texmf.cnf
--- c:/w32tex/texmf.cnf Sun May 16 11:44:55 2021
+++ c:/w32tex/share/texmf-dist/web2c/texmf.cnf Sat May 08 08:26:45 2021
@@ -537,7 +537,7 @@
% practical use for being called from TeX.
%
shell_escape_commands = \
-bibtex,pbibtex,repstopdf,epspdf,gregorio,\ ← extractbb を削除した
+bibtex,pbibtex,repstopdf,epspdf,extractbb,gregorio,\
makeindex,mendex,kpsewhich,r-mpost,texosquery-jre8
% we'd like to allow:
** 参照する texmf.cnf > kpsewhich.exe -a texmf.cnf
c:/w32tex/texmf.cnf ←これを参照する
c:/w32tex/share/texmf-dist/web2c/texmf.cnf
PS ut さんの訂正投稿に触発されて、ひょっとしたら extractbb の未記入な texmf.cnf を読み込めば確認できるのではと思い、テストしたらピンポンでした。 :-)
ううむ ... どこがおかしくなったのだろう。 以下のコマンド出力結果をあらためて見せていただけませんか?
where uplatex extractbb
C:\w32tex\bin64\uplatex.exe C:\w32tex\bin\uplatex.exe C:\texlive\2021\bin\win32\uplatex.exe
extractbb --version
This is extractbb Version 20210318 Copyright (C) 2008-2021 by Jin-Hwan Cho and Matthias Franz This is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
kpsewhich -a texmf.cnf
c:/w32tex/share/texmf-dist/web2c/texmf.cnf
ここで表示される texmf.cnf を添付ファイルで見せてください。 (同じ名前が複数のディレクトリにある場合の zip や tarファイル作成方法がわからなければ一ファイルづつでも結構です)
texmf.cnf
同じですね。どこに問題があるか uplatex のソースを再度見直します。
ちなみに今更ですが今回問題となっているファイルのチェックサムは以下の bat スクリプトで取得できます。
@echo off
certutil -hashfile C:\w32tex\bin64\uplatex.exe SHA256
certutil -hashfile C:\w32tex\bin\uplatex.exe SHA256
certutil -hashfile C:\w32tex\bin64\extractbb.exe SHA256
certutil -hashfile C:\w32tex\bin\extractbb.exe SHA256
certutil -hashfile c:/w32tex/share/texmf-dist/web2c/texmf.cnf SHA256
私のところでは以下の通り。余分な行が表示されて見辛いのですが ... 参考までに。
SHA256 ハッシュ (対象 C:\w32tex\bin64\uplatex.exe):
9f35e1fbb5b3a4b71bd1fed7c634b8876bcd965eaa0865c6b6424eb99a301c2e
CertUtil: -hashfile コマンドは正常に完了しました。
SHA256 ハッシュ (対象 C:\w32tex\bin\uplatex.exe):
95d54b7a2b1dabe39230289070c7723d19701c9a0787d93609d5ecf98feb935b
CertUtil: -hashfile コマンドは正常に完了しました。
SHA256 ハッシュ (対象 C:\w32tex\bin64\extractbb.exe):
aebf8242f8d6e73cd57ce6f9b2675f2b5e8a6ee7590b6ee2bdcd03655273c4b1
CertUtil: -hashfile コマンドは正常に完了しました。
SHA256 ハッシュ (対象 C:\w32tex\bin\extractbb.exe):
f0c2f47737b339b8f42c8bb2164debc4ebf03c186552be4892457fb390cf6f34
CertUtil: -hashfile コマンドは正常に完了しました。
SHA256 ハッシュ (対象 c:/w32tex/share/texmf-dist/web2c/texmf.cnf):
bf44ca53432c1a319d45b300dcb105c0b425b8ff3fda9b728d7d898f4de3f2cb
CertUtil: -hashfile コマンドは正常に完了しました。
Ghostscript とPATH
GSのPATH が影響するかどうかわかりませんが検証時点での PATH
echo %path:;=&echo.%
C:\Windows\system32
C:\Windows
C:\Windows\System32\Wbem
C:\Windows\System32\WindowsPowerShell\v1.0\
C:\Windows\System32\OpenSSH\
C:\texlive\2021\bin\win32
C:\w32tex\bin64
C:\w32tex\bin
C:\Users\i-wada\scoop\shims
C:\Users\i-wada\AppData\Local\Microsoft\WindowsApps
お詫び
whichi uplatex extractbb の出力結果から extractbb 誤って削除していました :-(
バッチファイルをダブルクリックできない件
コマンドプロンプトで実行できませんか? 念の為私が使ったものをアップします。
というより、ソースを追うより環境変数・レジストリを調べたほうが良さそうな気がする ... インターネット検索中です
texlive
私も、latex ができないと仕事にならないのではとの 回避策 の一つとして考えていましたが、何らかの理由で W32TEX なのだろうと提言を控えていました。
こちらもバッチファイルの起動に失敗とのこと。それも別の環境ですしね。
私は、iso イメージをマウントし例えば E ドライブにマウントされた状態とした場合
管理者権限つきでコマンドプロンプトを起動
E:
install-tl-windows.bat
再確認
uplatex はコマンドプロンプトで実行?それともTeXworks のような guiアプリで?
W32TEX 関連のハッシュ値は問題ないようですね
uplatex の確認時の起動方法は了解
texlive インストールできない
「'ver' は、内部コマンド云々」ですがこれは
rg -w -i -e ver install-tl-windows.bat
12:for /f "usebackq tokens=2 delims=[]" %%I in (`ver`) do set ver_str=%%I
から発せられています。 ver はOS のバージョン情報を取り出す cmd.exe の組み込みコマンドです。 エクスプローラからのダブルクリックで起動できない原因は cmd.exe が他のものが動いているかどうかチェックする必要があります。
where cmd
の結果一番最初に C:\Windows\System32\cmd.exe が出てくるかまず確認。 別の報告で C:\Windows\System32 が最初の方に来ているので問題はないとは思いますが、ダブルチェックのためお願いします。
次に、それが改竄されているか否かチェックサムで確認してください。 チェックサム情報は以下を参考にしてください。
certutil -hashfile C:\Windows\System32\cmd.exe SHA256
SHA256 hash of C:\Windows\System32\cmd.exe:
b99d61d874728edc0918ca0eb10eab93d381e7367e377406e65963366c874450
CertUtil: -hashfile command completed successfully.
PS 野暮用で外出します。帰宅は 19:00 か 20:00 です。それまでに解決していると良いのですが。
中間報告です。
チェックサム
チェックサムとは→ファイルの同一性チェック
途中まで書いたけどlatex から離れてしまうので詳しくはwikipesia に任すことにして、 ファイルのチェックサムとかハッシュ値は同義と捉えてください。 ファイルに「abc」と書かれていれば、同じハッシュ計算方法を用いれば同じ値になるので、遠隔地にある巨大なバイナリファイルと違いがあるかどうかの目安に使うものです。これを利用しているものは、見たこともあるかもしれないけど git が有名。Windows の robocopy の遠隔地との同期の場合はこれを使っていると思います。
ただし、一つのチャックサム計算だけでは改竄などのチェックができないのでファイルサイズなども一つの指針にすることがあります。私の場合は以下の通り。
c:\Windows\System32 のディレクトリ
2021/05/03 12:40 289,792 cmd.exe
ファイルスタンプは、Windows の場合、インストール時の時刻が採用されるケースが多いので比較対象から普通外します。
- 気になってる点(すんなり解決できないので、些細な点にも気になってしまっています)
橋爪さんのチェックサム値は、MACアドレス表記のように二桁ごとに空白が入っています。人間の目には優しんだけど、普通は空白がついていないのだが、なんかオプションとかがあるのかな?
和田の cmd.exe とハッシュ値が違う件について
和田は Win10_20H2_v2_Japanese_x64 の ISO イメージを利用しています。橋爪さんの環境では Windows update などで他のものになってるかもしれません。
W32TEX のファイルのハッシュ値が同じなのは、お互いに直近の最新 W32TEX からインストール・アップデートしたからでしょう。
コマンドの場合は、バージョンが違ってるかどうかは昨今のアプリは -v --version とかで知ることができるのですが、cmd.exe にはそのような機能はないようです。ただ cmd.exe を実行した時、表示されるものがそうだと言えば言えないことはないと思いますが、私の場合は、以下のようになります。
Microsoft Windows [Version 10.0.19042.985]
(c) Microsoft Corporation. All rights reserved.
コマンドプロンプトで ver と入力すると上の行だけ表示され、以下のようになります。
ver
Microsoft Windows [Version 10.0.19042.985]
virus 感染の懸念は多分ない
橋爪さんのところでは、職場と自宅二箇所で同じ現象が出ているので virus 感染ではないと思いますが ...
にたようなことは office でもかつてあったようですが、cmd.exe でそのような問題が発生していたら、緊急アップデートが話題になるはず。
現在仕切り直しして再検討中
- 簡単に解決できない時は、瀬織通り最初に戻って .. ということで仕切り直しています。
- windows 8.1 64 bit の ISO イメージダンロード中
W32TEX のチェックだけでなく Windows 8.1 でtexlive2021 ISO イメージからインストールできるか否かのチェックのためも含めて。
ハッシュの出力や cmd.exe のハッシュ値が違う件
橋爪さんの職場は Windows 8.1 、一方和田は Windows 10 なので違うのはほぼ当然。
ご自宅のマシン環境
本来なら別スレッドの方が良いのですが、簡単に OS のバージョンは?
一応、最近 Windows 10 環境での texlive 2021 インストールを何回か対応していたので、簡単な情報をメモしておきます。
ユーザ名に日本語などを含んだ場合は、以下のコマンドを管理者コマンドプロンプトで実行する
set TEMP=C:\texlive\temp
set TMP=C:\texlive\temp
mkdir %TEMP%
ユーザ名が日本語含んでいてもいなくてもiso イメージが E ドライブにマウントされていたとして以下を管理者コマンドプロンプトで実行
E:
install-tl-windows.bat
環境変数 COMSPEC はどうなっているでしょうか?
echo %COMSPEC%
通常は C:\WINDOWS\system32\cmd.exe
になっているはずです。
「'C:\Users...\Desktop\hoge.bat'が見つかりません。名前を正しく確認したかどうかを確認してから、やり直してください。」
過去に同様の投稿がありますが解決していないようですね……
試しに「Windows cannot find 'D:\install-tl-windows.bat'. Make sure you typed the name correctly, and then try again.」で検索してみたところ (英語のメッセージはMicrosoft Language Portalで調べることができます)、
StackExchange に類似の現象が環境変数 ComSpec を COMSPEC にリネームしたら直ったという不思議な投稿がありました。
環境変数の名前は大文字小文字関係ないはずなので不思議ですが、 確かに COMSPEC が適切に設定されていないと問題が起きそうです(CRT の system 関数等も COMSPEC を参照していますし)。
一応訂正しておく
echo %path:;=&echo.%
C:\w32tex\bin64
C:\w32tex\bin
C:\Windows\system32
C:\Windows
C:\Windows\System32\Wbem
C:\Windows\System32\WindowsPowerShell\v1.0\
C:\Windows\System32\OpenSSH\
C:\texlive\2021\bin\win32
C:\Users\i-wada\scoop\shims
C:\Users\i-wada\AppData\Local\Microsoft\WindowsApps
間話休題な呟きですが、W32TEX の今後の予定とかわからないのですが、阿部さんや角藤さんがお暇でしたらインストーラやホームページを見直し・検討していただければと思って書いています。
W32TEX を今年の初めに入れた時は特に問題はなかった。
その仮想環境は作業終了したので削除した。
最近別の仮想環境に W32TEX のインストールをと思って、https://www.ms.u-tokyo.ac.jp/~abenori/soft/abtexinst.html や http://w32tex.org/index-ja.html を参考に試みたのですが、あちこちでリンクがおかしくて http://w32tex.org/index-ja.html の CTAN のリンクなどがいくつかアクセスできなかった。
でも日本のミラーサイトにはミラーされている。
texlive 2021 がリリースされてまだ細部の調整中かもしれないのでそのうち治るだろうけど ...
じゃ powershell のお勉強がてら標準でバンドルされている curl.exe (nit powershell's alias's curl) で、日本にミラーされているところから丸ごと
ダウンロードして、インストーラを起動すればできるか実験してみようってことにし、なんとかインストールできた。が 64 ビットの対応などが必要なこと知らず今まで 32ビット版で検証していた次第です。
今回、アップデートが必要になったので abenori さんのインストーラを使い、リポジトリのデフォルトの ctan mirror ではやはりエラーになるので、今回は、このフォーラムでも時々出てくる北陸先端を指定してアップデートしたら 64 ビット対応に調整してくれました。