Ошибка pdf2dsc: неверный доступ -.locksafe--

Это проблема, с которой я столкнулся в Preview-latex от AUCTeX. Однако я считаю, что проблема должна быть вызвана ghostscript, особенно инструментом pdf2dsc.

Команда выполняется в среде оболочки

pdf2dsc input.pdf output.dsc

(где файл input.pdf был успешно создан pdflatex) создаст пустой файл output.dsc и следующее сообщение об ошибке, которое нарушает цепочку команд предварительного просмотра,

Error: /invalidaccess in --.locksafe--
Operand stack:
   true   --nostringval--   --dict:1152/1684(ro)(G)--   getenv   --nostringval--
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1862   1   3   %oparray_pop   1861   1   3   %oparray_pop   1845   1   3   %oparray_pop   1739   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   1870   0   3   %oparray_pop   1869   0   3   %oparray_pop   --nostringval--
Dictionary stack:
   --dict:1152/1684(ro)(G)--   --dict:0/20(G)--   --dict:72/200(L)--
Current allocation mode is local
Current file position is 2063
GPL Ghostscript 8.70: Unrecoverable error, exit code 1
Error: /invalidaccess in --.locksafe--
Operand stack:
   true   --nostringval--   --dict:1152/1684(ro)(G)--   getenv   --nostringval--
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1862   1   3   %oparray_pop   1861   1   3   %oparray_pop   1845   1   3   %oparray_pop   1739   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   1870   0   3   %oparray_pop   1869   0   3   %oparray_pop   --nostringval--
Dictionary stack:
   --dict:1152/1684(ro)(G)--   --dict:0/20(G)--   --dict:72/200(L)--
Current allocation mode is local
Current file position is 2063
GPL Ghostscript 8.70: Unrecoverable error, exit code 1

Страница man и поиск в Google дают очень мало информации об этом "locksafe" сообщении об ошибке, поэтому я хотел бы узнать, есть ли у вас, ребята, способ исправить это.

Благодарю.

РЕДАКТИРОВАТЬ Входной файл был сгенерирован путем компиляции следующего минимального текстового файла

\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\begin{document}

\begin{equation}
1 + 1 = 2
\end{equation}
\end{document}

по версии PDF 3.14159265-2.6-1.40.15.

pdfTeX 3.14159265-2.6-1.40.15 (TeX Live 2014)
kpathsea version 6.2.0
Copyright 2014 Peter Breitenlohner (eTeX)/Han The Thanh (pdfTeX).
There is NO warranty.  Redistribution of this software is
covered by the terms of both the pdfTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the pdfTeX source.
Primary author of pdfTeX: Peter Breitenlohner (eTeX)/Han The Thanh (pdfTeX).
Compiled with libpng 1.6.10; using libpng 1.6.10
Compiled with zlib 1.2.8; using zlib 1.2.8
Compiled with xpdf version 3.03

Я подозревал, что практически любой ввод PDF (например, сгенерированный latex -> dvipdf) вызовет ту же ошибку. Я делаю это в ~/Deskop/input дорожка.

Я также использую предложенную команду

gs -sDEVICE=ps2write -o out.dsc input.pdf

и это производит out.dsc файл успешно. Рисунок png, полученный на следующем шаге

gs -sDEVICE=png16m -o out.png out.dsc 

довольно размыто.

В любом случае, я настраиваю переменную AUCTeX, и последний шаг от dsc к png не работает, вот вывод

Preview-LaTeX exited as expected with code 1 at Sun Jan  8 12:14:19
Running `Preview-PDF2DSC' with ``gs -sDEVICE=ps2write -o _region_.prv/tmp19812cJl/preview.dsc _region_.pdf''
GPL Ghostscript 8.70 (2009-07-31)
Copyright (C) 2009 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Processing pages 1 through 1.
Page 1

Preview-PDF2DSC finished at Sun Jan  8 12:14:19
Running `Preview-Ghostscript' with ``gs -dOutputFile\=\(_region_.prv/tmp19812cJl/pr1-\%d.png\) -q -dNOSAFER -dNOPAUSE -DNOPLATFONTS -dPrinted -dTextAlphaBits\=4 -dGraphicsAlphaBits\=4 -sDEVICE\=png16m -r200.255x200.074''
Ghostscript filter: Args out of range: [(1 102368)], 1

РЕДАКТИРОВАТЬ

Я отправил отчет об ошибке в Bugzilla.

Между тем, обновление до ghostscript 9.20(последний) и AUCTeX 11.89(последний) решает проблему.

Спасибо @KenS.

1 ответ

Решение

Ну, простой ответ заключается в том, что никто не сможет помочь с 7-летней версией Ghostscript, не увидев входной файл.

Ошибка проста: при выполнении оператора.locksafe (который является нестандартным расширением Ghostscript, предоставленным из-за проблем безопасности пользователей Linux), программа попыталась запретить доступ к объекту.

Программа PostScript pdf2dsc (которая в меру сложная) не выполняет оператор.locksafe напрямую. Он вызывает.setsafe, а.setsafe вызывает.locksafe, поэтому, возможно, именно этот путь вызывает проблему.

Однако, как я уверен, вы знаете, что отладка части программного обеспечения в значительной степени требует, чтобы мы запускали программное обеспечение в тех же условиях, чтобы увидеть, какие пути он выберет. Поскольку вы не предоставили исходный входной файл, я не могу этого сделать. Я также не собираюсь пытаться отлаживать старую версию.

Если честно, если вам нужен DSC-совместимый PostScript, вам лучше использовать текущую версию Ghostscript и устройство ps2write.

gs -sDEVICE=ps2write -o out.dsc input.pdf
Другие вопросы по тегам