Включение файла postscript в другой файл? - PullRequest
2 голосов
/ 28 сентября 2011

Интересно, существует ли стандартный способ включить postscript файл в другой.Например, скажем, у меня есть один файл данных, созданный сторонней программой:

%!PS
\mydata [ 1 2 3 4 5 6       
(...)
1098098
1098099
] def

, и я хотел бы включить его в основной документ PS

%PS
\processData
{
mydata { (..) } foreach
}

(...)

(data.ps) include %<=== ???

Спасибо

Ответы [ 3 ]

3 голосов
/ 29 сентября 2011

Стандартный способ включить PostScript - сделать так, чтобы код включал файл EPS (Encapsulated PostScript).Существуют правила о том, как инкапсулированный PostScript должен быть создан и как его включать.См. Adobe Tech Note 5002 «Спецификация формата инкапсулированного файла PostScript»

Простое выполнение «запуска» для файла PostScript может хорошо работать, но также может вызвать проблемы.Многие файлы PostScript (особенно созданные третьими лицами) будут содержать определения процедур, которые могут конфликтовать с вашими собственными именами, а также включенная программа может оставить интерпретатор в состоянии, отличном от того, в котором он был при запуске включенного файла.По крайней мере, вы должны выполнить пару сохранения / восстановления для кода, включенного через «run».

3 голосов
/ 15 октября 2013

Я бы предложил мета-решение: использовать препроцессор C или препроцессор M4.Они являются мощными инструментами, и их мощь может найти применение и другими способами, не только включением файлов.Хотя об этом не спрашивали, но использование Makefile будет целесообразно для автоматизации всего рабочего процесса.Используя препроцессор и Makefile в комбинации, вы можете элегантно автоматизировать обработку сложных включений и даже больше.

C Препроцессор

Включая файл:

#include "other.ps"

Командная строка для предварительной обработки:

cpp -P main.pps main.ps

M4 Препроцессор

Включение файла:

include(other.ps)

Командная строка для предварительной обработки:

m4 main.pps > main.ps
3 голосов
/ 29 сентября 2011

Требуемый оператор: run.

string run - выполнить содержимое именованного файла

К сожалению, runне допускается, если в интерпретаторе установлена ​​опция SAFER.

Редактировать: У Билла Кассельмана, автора "Математических иллюстраций", есть Perl-скрипт с именем psinc , который можно использовать для"preprocess" для ваших файлов PostScript, включая все (...) run файлы.

...