Совместимость с Textext (Inkscape), GhostScript и MaTeX (mathematica)

Следующий вопрос связан с установкой пакета MaTeX в Mathematica и трудностями, с которыми я сталкиваюсь при его совместимости с Inkscape Textext (дополнение LaTeX).

Сначала я резюмирую свою проблему в Длинной истории (у меня есть подробная серия событий в Длинной истории). Затем я представляю свои вопросы в разделе Вопросы и предоставляю некоторую дополнительную информацию о версиях различных программ в разделе Дополнительная информация.

Короче говоря

У меня возникают проблемы с использованием надстройки Textext в Inkscape и пакета MaTeX в Wolfram Mathematica. Я пытался удалить и переустановить все связанные программы Inkscape, но ничего не изменилось.

Длинная история

Я использую Inkscape для создания рисунков с кодом LaTeX (используя текстовый текст в соответствии с этим руководством https://people.orie.cornell.edu/jmd388/design/guides/textext.pdf). Раньше я устанавливал Textext, и Inkscape работал хорошо, позволяя мне включать текст LaTeX в свои рисунки.

Я также использую Wolfram Mathematica. Чтобы включить текст LaTeX в Mathematica, мне нужно было установить пакет MaTeX (отсюда https://github.com/szhorvat/MaTeX). Однако, как только я это сделал, Textext перестал работать.

Я удалил и переустановил все связанные с inkscape программы — pstoedit, ghostscript, GSview, ImageMagick, Textext и сам Inkscape — но MaTeX все равно не работал. Текстовый текст теперь работает, а MaTeX — нет.

Ошибка, которую Mathematica выдает при запуске пакета MaTeX, следующая:

MaTeX::gserr: Error while running Ghostscript.

Изучив эту проблему, я понял, что проблема может быть связана с версией Ghostscript. Я выполнил следующую строку в команде:

gswin64c.exe -o mt-gs.pdf -dNoOutputFonts -sDEVICE=pdfwrite mt.pdf

и результат, который я получаю,

**** Could not open temporary file '' ****Unable to open the initial device, quitting.

Но когда я только положил

gswin64c.exe -o mt-gs.pdf -dNoOutputFonts mt.pdf

Ghostscript вроде работает (то есть выскакивает окно pdf и тут же закрывается).

Кроме того, когда я пытаюсь запустить GS в другом файле PDF, я получаю следующую ошибку.

Could not open the scratch file encoded_file_ptr_0.
+ c:\users\cjl\artifex\gs-release'9.21\ghostpdl-9.21\base\gdevp14.c:6044: gs_pdf14_devide_push<>: Fatal
GPL Ghostscript 9.21: Unrecoverable error, exit code 255

где тот же файл работает на GS другого компьютера (так что файл должен быть в порядке).

В целом, я не могу использовать MaTeX на данный момент, так как я получаю эту ошибку, которая заставляет меня создавать рисунки в Mathematica и перемещать их в Inkscape, чтобы включить метки осей и другие обозначения (чтобы шрифты были согласованы).

Вопросы

  1. Что не так с моим Ghostscript? Как я могу это исправить?
  2. Кто-нибудь сталкивался с такими трудностями раньше (заставить пакеты Textext и MaTex работать одновременно)?
  3. Кто-нибудь знает, как исправить MaTeX/Textext, чтобы оба работали?

Дополнительная информация

Вот характеристики моей ОС, а также версии различных задействованных программ:

  • ОС Виндовс 7 64-битная.
  • Mathematica версии 11.1.1.0 для 64-битной Windows.
  • Инкскейп версии 0.48
  • Призрачный скрипт версии 9.21
  • pstoedit и importps версии 3.7
  • ImageMagick версии 7.0.7 — Q16
  • Версия текста 0.4.4
  • MiKTeX 2.9 (обновлено сегодня).

Буду очень признателен за любые комментарии и идеи. заранее спасибо


person user54011    schedule 18.09.2017    source источник
comment
Я просто хочу прояснить, что эта проблема на самом деле не связана ни с MaTeX, ни с Mathematica. Мне нужно было установить пакет MaTeX... как только я это сделал, Textext перестал работать. ← MaTeX состоит из набора текстовых/исходных файлов, размещенных в каталоге конфигурации Mathematica. Его установка не может сломать другую программу. Для работы MaTeX требуются определенные пакеты LaTeX (например, standalone). Установка новых пакетов LaTeX может привести к поломке программы, основанной на LaTeX (например, текстового текста).   -  person Szabolcs    schedule 19.09.2017
comment
Более того, тот факт, что Ghostscript не может обработать PDF-файлы на вашем компьютере даже при запуске независимо от MaTeX, показывает, что сбой происходит в Ghostscript, а не в MaTeX.   -  person Szabolcs    schedule 19.09.2017
comment
Выпущен MaTeX 1.7.2. Он будет сообщать об ошибках, связанных с Ghostscript, более подробно, чтобы упростить отладку.   -  person Szabolcs    schedule 19.09.2017
comment
Я обновил MaTeX до текущей версии 1.7.2. Теперь я получаю ошибку: MaTeX: Error while running Ghostscript. GPL Ghostscript 9.21 (2017-03-16) Copyright (C) 2017 Artifex Software, Inc. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details. **** Unable to open the initial device, quitting. GPL Ghostscript 9.21: **** Could not open temporary file ''. Я думаю, это то, чего мы ожидали, верно?   -  person user54011    schedule 20.09.2017


Ответы (1)


В вашей команде Ghostscript нет ничего плохого, но для устройства pdfwrite требуется возможность записи временных файлов во временный каталог системы. (другие устройства, такие как устройство отображения по умолчанию, не всегда требуют возможности записи временных файлов)

Пустое имя файла подозрительно в ошибке, это невозможно.

Очевидно, существует какая-то проблема, потому что файл «encoded_file_ptr.0», по-видимому, также не может быть создан, и это действительное имя файла.

Я должен был бы догадаться о какой-то проблеме с разрешениями. Я отмечаю, что вы используете Windows Ghostscript, вы используете его под каким-то Linux-подобным? Я бы подозревал, что есть какие-то проблемы с разрешениями или доступом к временному разделу, если это так.

Вы пробовали запускать Ghostscript из командной оболочки Windows?

person KenS    schedule 18.09.2017
comment
Спасибо за ваш комментарий. Ранее я запускал GS из командной строки Windows. Я попытался запустить cmd от имени администратора и запустить GS, но все равно получаю те же ошибки. - person user54011; 18.09.2017
comment
Вы в состоянии создать отладочную версию Ghostscript и отлаживать ее? Я могу сказать вам, где установить точку останова, и что я хотел бы видеть, так это стек вызовов в этой точке. Я не могу воспроизвести это локально..... - person KenS; 18.09.2017
comment
Вы должны быть очень конкретными, так как я новичок в этом. Как создать отладочную версию? И где вы хотите, чтобы я установил точку останова? :-) - person user54011; 18.09.2017
comment
Хм, вам понадобится копия Microsoft Visual Studio Community Edition (бесплатная) и текущий исходный код Ghostscript, для которого вам нужно будет использовать Git, чтобы получить копию из нашего репозитория Git. Или вы можете перейти сюда: git.ghostscript.com/?p=ghostpdl. git;a=summary и сделайте снимок одного из коммитов. Затем из Visual Studio вы открываете проект /ghostpdl/windows/ghostpdl.sln, выбираете «Отладка» и «x64» в диспетчере конфигурации и выбираете «Сборка». Если вы еще не являетесь разработчиком Windows, я вполне понимаю, что вам может показаться, что это требует слишком много усилий. - person KenS; 19.09.2017
comment
Глядя на (очень) старый ответ, возможно, у вас нет временного каталога. Если вы откроете командную оболочку Windows и сделаете ECHO% TEMP%, что вы получите? - person KenS; 19.09.2017
comment
Когда я набираю ECHO %TEMP%, я получаю список каталогов: каталог miktex\bin, gs9.21\lib, gs9.21\bin, OmageMagick-7.0.4+Q16 и Ghostgum\pstoedit. Это то, что вы ожидали? - person user54011; 20.09.2017
comment
@ user54011 Это выглядит неправильно. Это должно быть что-то вроде C:\Users\YourName\AppData\Local\Temp (в зависимости от вашей версии Windows). Вы редактировали свою переменную TEMP вместо PATH? - person Szabolcs; 20.09.2017
comment
Bulzai - Я только что вернул переменную TEMP, и теперь MaTeX работает нормально! Большое спасибо!!! - person user54011; 20.09.2017