TeX Live 2021 Windows 版同梱の pdf2dsc が動かない

TeX Live 2021 Windows 版同梱の pdf2dsc が動かない

- 井汲 景太 の投稿
返信数: 4
TeX Live 2021 Windows 版に同梱されている ghostscript 一式の中の pdf2dsc に不具合があるようなので報告します。この影響で、AUCTeX の preview-latex が動かなくなっています。TeX Live のメールリストアーカイブをざっと眺めた限りでは出ていない話題のようです。

1. TeX Live 2021
任意の pdf(ここでは、texmf-dist/doc/amstex/amstinst.pdf を使ってみますが pdf の選択にはよらないと思います)を、書き込み権限のある適当なディレクトリにコピーして、pdf2dsc を実行すると次のようなエラーになります。指定した dsc ファイル(この例では xyz.dsc)は作られません。

C:\Users\景太\Documents\test-tex>pdf2dsc amstinst.pdf xyz.dsc
Error: /invalidfileaccess in --file--
Operand stack:
PDFfile (amstinst.pdf) (r)
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 2022 1 3 %oparray_pop 2021 1 3 %oparray_pop 2009 1 3 %oparray_pop 1865 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval--
Dictionary stack:
--dict:757/1123(ro)(G)-- --dict:0/20(G)-- --dict:77/200(L)--
Current allocation mode is local
Last OS error: Permission denied
Current file position is 1814
GPL Ghostscript 9.53.3: Unrecoverable error, exit code 1

path と rungs -h の出力です。

C:\Users\景太\Documents\test-tex>path
PATH=C:\texlive\2021\bin\win32;C:\texlive\2020\bin\win32;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:\Users\景太\AppData\Local\Microsoft\WindowsApps;C:\Users\景太\AppData\Local\GitHubDesktop\bin;C:\Users\景太\AppData\Local\Microsoft\WindowsApps;c:\NTEmacs\bin;

C:\Users\景太\Documents\test-tex>rungs -h
GPL Ghostscript 9.53.3 (2020-10-01)
Copyright (C) 2020 Artifex Software, Inc. All rights reserved.
Usage: gs [switches] [file1.ps file2.ps ...]
Most frequently used switches: (you can use # in place of =)
-dNOPAUSE no pause after page | -q `quiet', fewer messages
-g<width>x<height> page size in pixels | -r<res> pixels/inch resolution
-sDEVICE=<devname> select device | -dBATCH exit after last file
-sOutputFile=<file> select output file: - for stdout, |command for pipe,
embed %d or %ld for page #
Input formats: PostScript PostScriptLevel1 PostScriptLevel2 PostScriptLevel3 PDF
Default output device: display
Available devices:
bbox bit bitcmyk bitrgb bitrgbtags bj10e bj200 bjc600 bjc800 bmp16 bmp16m
bmp256 bmp32b bmpgray bmpmono bmpsep1 bmpsep8 cdeskjet cdj550 cdjcolor
cdjmono chameleon declj250 deskjet devicen display djet500 djet500c
eps2write eps9high eps9mid epson epsonc fpng ibmpro ijs ink_cov inkcov
jetp3852 jpeg jpegcmyk jpeggray laserjet lbp8 lj250 ljet2p ljet3 ljet3d
ljet4 ljet4d ljetplus m8510 mswinpr2 necp6 nullpage pam pamcmyk32
pamcmyk4 pbm pbmraw pclm pcx16 pcx24b pcx256 pcxcmyk pcxgray pcxmono
pdfimage24 pdfimage32 pdfimage8 pdfwrite pgm pgmraw pgnm pgnmraw pj pjxl
pjxl300 pkmraw plan planc plang plank planm planr plib plibc plibg plibk
plibm png16 png16m png256 pngalpha pnggray pngmono pngmonod pnm pnmcmyk
pnmraw ppm ppmraw ps2write psdcmyk psdcmyk16 psdcmykog psdrgb psdrgb16
pxlcolor pxlmono r4081 spotcmyk st800 stcolor t4693d2 t4693d4 t4693d8
tek4696 tiff12nc tiff24nc tiff32nc tiff48nc tiff64nc tiffcrle tiffg3
tiffg32d tiffg4 tiffgray tifflzw tiffpack tiffscaled tiffscaled24
tiffscaled32 tiffscaled4 tiffscaled8 tiffsep tiffsep1 txtwrite uniprint
xpswrite
Search path:
C:/texlive/2021/tlpkg/tlgs/lib ; C:/texlive/2021/tlpkg/tlgs/fonts ;
C:/texlive/2021/tlpkg/tlgs/Resource/Init ;
C:/texlive/2021/tlpkg/tlgs/Resource ; C:/texlive/2021/tlpkg/tlgs/kanji ;
C:\WINDOWS/Fonts ; C:/texlive/2021/texmf-dist/fonts ; C:/Windows/Fonts ;
C:/WINDOWS/Fonts ; C:/windows/Fonts
For more information, see C:/gs/gs9.53.3/doc/Use.htm.
Please report bugs to bugs.ghostscript.com.

私以外にも「エラーになる」という報告があるので、私の個人的な環境に起因する問題ではないと思います。

2. ghostscript.com 公式
Ghostscript そのものの問題ではない感じです。https://www.ghostscript.com/download/gsdnld.html から AGPL ライセンス windows 64bit 版をダウンロード・インストールし、path を c:\program files\gs\gs9.54.0\bin と c:\program files\gs\gs9.54.0\lib が先頭に来るように調節して試すと問題ありません。上記の例を実行すると何の文句もなく実行され、xyz.dsc が作られます。

3. TeX Live 2020
TeX Live 2020 同梱版でも問題はありません。再び path を調節し、C:\texlive\2020\bin\win32 が先頭に来る状態で試すとやはり正常に終了します。

4. TeX Live 2021 更新版
tlmgr で tlgs.win32 を現時点の最新版に更新してみましたが、ghostscript のバージョンが 9.54.0 に上がっただけで、エラーは解消しませんでした。
井汲 景太 への返信

Re: TeX Live 2021 Windows 版同梱の pdf2dsc が動かない

- はやて (h20y6m) の投稿

TeX Live 2020 と 2021 を挙動を比較してみたところ、 gswin32c.exe 実行時の -dDELAYSAFER オプションの有無が異なっていました。

TeX Live 2021 では C:\texlive\2021\texmf-dist\scripts\tlgs\gswin32\pdf2dsc.tlu から -dDELAYSAFER オプションが削除されていました。

pdf2dsc.tlu に -dDELAYSAFER オプションを追加してみたところうまくいきました。

はやて (h20y6m) への返信

Re: TeX Live 2021 Windows 版同梱の pdf2dsc が動かない

- Akira Kakuto の投稿
> TeX Live 2021 では
> C:\texlive\2021\texmf-dist\scripts\tlgs\gswin32\pdf2dsc.tlu から
> -dDELAYSAFER オプションが削除されていました。

すみなせん。 -dDELAYSAFER (-dNOSAFER と同意) があると"任意の
プログラムを実行できる" というセキュリティの問題があるので、
削除していました。しかし pdf2dsc には必須なので、元に戻して
おきました。pdf に対するコマンドなので、多分この場合にはセキュリティ
は問題ないと思います。
しかし念のため、信頼のおける場合にのみ使用してください。
Akira Kakuto への返信

Re: TeX Live 2021 Windows 版同梱の pdf2dsc が動かない

- 井汲 景太 の投稿
ありがとうございます。利用先の ctan mirror がまだ更新されてないらしくて試せてないですが、理由がはっきりしてるので安心しました。
Akira Kakuto への返信

Re: TeX Live 2021 Windows 版同梱の pdf2dsc が動かない

- 井汲 景太 の投稿
CTAN mirror に更新が来たので試してみたところ、ちゃんと動くようになっていました。AUCTeX の preview-latex もバッチリです。ありがとうございました。