UserDict를 포스트스크립트 파일에 로드

UserDict를 포스트스크립트 파일에 로드

사용자 사전을 하나의 파일에 저장하고 다른 파일의 시작 부분에 동일한 사전을 로드하는 방법은 무엇입니까? 이는 사전이 동일한 파일의 맨 위에 정의된 것과 동일한 결과를 제공해야 합니다.

좀 더 명확하게 말하면: 나는 글로벌 사전을 썼습니다.객체 사전에는 여러 변수 및 프로시저 정의가 포함되어 있습니다.

!%PS-Adobe-3.0 EPSF-3.0

/ObjDict 30 dict def
ObjDict begin
...
/particle 
{  
     /posy exch def
     /posx exch def
     ...
} bind def
...
end %ObjDict

%%EOF

이제 프로그램을 호출하고 싶습니다.입자해당 위치와POSX시뮬레이션 프로그램으로 생성하려는 다른 파일에서. 예를 들어:

!%PS-Adobe-3.0 EPSF-3.0

ObjDict begin
    0.5 0.5 particle
    0.1 0.0 particle
    0.3 0.3 particle
end %ObjDict

%%EOF

첫 번째 파일에 정의된 ObjDict 사전을 두 번째 파일이 인식하도록 하는 쉬운 방법이 있습니까? 미리 감사드립니다!

답변1

이 질문은 StackOverflow에 더 적합할 수 있지만 마이그레이션하기에는 너무 오래되었습니다. 또한 userdict포스트스크립트 언어 정의를 위한 특정 사전을 간단히 호출합니다.사전또는받아쓰기.

EPS(Encapsulated PostScript) 파일을 만들려는 것 같습니다. EPS 파일은 독립적으로 설계되었습니다. 따라서 다른 파일의 데이터에 의존해서는 안 됩니다.

이러한 일반 PostScript를 만들려면 첫 번째 줄을 다음으로 변경하세요.

%!

또는

%!PS

. 그런 다음 run연산자를 사용하여 사전과 함께 파일을 실행할 수 있습니다 .

  • (파일 이름)   달리기   -

true setglobal또한 할당 모드를 전역으로 변경하지 않는 한 "전역" 사전을 생성하지 않았습니다. 그러나 def전역 메모리에 할당된 개체를 단순히 사용할 수는 없다는 점에도 유의하세요 . 전역 메모리의 객체는 로컬 메모리의 사전이나 배열에 저장할 수 없습니다(예 userdict: . 따라서 전역 배열이 정말로 필요한 경우 이를 globaldict.

currentglobal
  true setglobal
  globaldict /ObjDict 30 dict put
setglobal

그러나 아마도 전역 메모리를 사용할 필요는 없을 것입니다.

관련 정보