サーチ…


備考

PostScriptは、逆仕上げのスタックベースのダイナミックに型付けされたダイナミック名前空間のスクリプティング言語で、ベクタの記述からレンダリングされたイメージを生成するプリミティブが組み込まれています。 PostScriptは、PDFファイル形式と同じ「Adobe Image Model」を採用しています。

PostScriptは、簡単に機械で生成できるように設計されているため、多くのプログラムで出力形式として使用されています。

LISPのように、PostScriptはホモ型であり、コードとデータは同じ表現を共有します。プロシージャは、プロシージャをデータとして実行し、結果としてプロシージャを生成することができ、 連結プログラミングの技術にも役立ちます。

インストールまたはセットアップ

本物のAdobe PostScriptインタプリタは、ハイエンドプリンタ、Display PostScript(DPS)製品、およびAcrobat Distiller製品で使用できます。標準の作成者として、これらの製品はPostScript実装の違いを説明する目的で「標準実装」と見なされています。

PLRMで定義されたインタプリタへの標準インタフェースはプログラムストリームであり、基本となるチャネルまたはOS /コントローラの詳細に応じて、テキストまたはバイナリのどちらでもよい。 Acrobat Distillerには、入力ポストスクリプトプログラムを選択するためのGUIフロントエンドがあり、pdfとして出力します。 Distillerでは、エラーやその他のプログラム出力を報告するために、出力テキストストリームを使用するためのサポートも限られています。 GSViewは、Ghostscriptをインタプリタとして使用して同様のワークフローを行うための同様のGUIフロントエンドを提供します。

GhostscriptとXpostはどちらもコマンドラインモードで動作します。実行するポストスクリプトプログラムファイルはコマンドライン( gs program.psまたはxpost program.ps )にxpost program.psすることができ、グラフィックスウィンドウを開いてグラフィカル出力を表示します。オプションは、グラフィックスをディスクファイルのようにレンダリングしたり、グラフィックスを完全に抑止したり、テキストスクリプト言語のようにポストスクリプトを使用したりするために使用されます。

さまざまな通訳はそれぞれ独自のインストールとセットアップの指示があり、ここでそれらを再現するのは無駄です(古いものになりがちです)。

自由に利用できるPostScriptインタプリタ

  • Ghostscriptは、すべての主要なプラットフォームおよびLinuxディストリビューション、ソースまたはバイナリ形式、GNUライセンス、またはArtifexソフトウェアとのその他のライセンス契約の下で利用できます 。 Ghostscriptは完全なPostScript 3標準を実装しています。

  • Xpostは、BSD-3節のライセンスの下、すべての主要なプラットフォームのソース形式で入手できます。いくつかのレベル2拡張といくつかのDPS拡張でレベル1標準を実装します。

PostScriptの一般的な説明

PostScriptは、Adobe Systemsによって設計および開発されたチューリング完全な汎用プログラミング言語です。 PostScriptで開花したアイデアの多くは、XeroxとEvans&Sutherlandのプロジェクトで培ったものでした。

現実のアプリケーションの主なものは、歴史的にページ記述言語 、または単一ページEPS形式のベクトルグラフィックス画像記述言語です。動的に型定義され、動的にスコープされ、スタックベースであり、逆ポーランド語の構文がほとんどです。

PostScriptには3つのメジャーリリースがあります。

  1. PostScriptレベル1 - 1984年にApple LaserWriterレーザープリンタの常駐オペレーティングシステムとして発売され、Desktop Publishing Eraを開始しました。
  2. Postscript Level 2 - 1991年にリリースされたこのバージョンでは、画像解凍、RIP分離、自動拡張ディクショナリ、ガベージコレクション、Named Resources、PostScriptプログラムストリーム自体のバイナリエンコーディングなど、レベル1のいくつかの重要な改善が行われました。
  3. PostScript 3 - 1997年にリリースされた最新の、おそらく最も広く採用されているバージョン。それにはスムーズシェーディングなどのレベル2よりもいくつかのインポートの改良が含まれています。 「レベル」という用語は削除されています。

PostScriptは通常、ページ記述言語として使用されます。したがって、多くのプリンタでラスタイメージを生成するために実装されていますが、他の目的にも使用できます。 bcよりも記憶に残るオペレータ名を持つ簡単な逆ポリッシュ電卓です。別のプログラムで生成された出力形式です(通常は他の言語で出力されます)。

PostScriptファイルは通常7ビットクリーンなASCIIですが、レベル2標準で説明されているいくつかの種類のバイナリエンコーディングが存在します。プログラマブルであるため、プログラムはそれ自身のために任意の複雑なエンコーディングスキームを実装することができます。国際的に難読化されたポストスクリプトコンペティションがあり、Cよりもややアクティブではありません。

オンライン参考文献

よくある質問

書籍

  • Postscript Language Reference Manual、1ed、1985。小規模で、要約ページからの簡単なオペレータインデックス(後のエディションからは欠落している)のために推奨されます。

  • 実世界追記。ハーフトーン処理の優れた適用範囲を含む様々なトピックに関する様々な著者による章。

関数のローカルネームスペース

Postscriptは、動的名前空間またはLISP 1言語です。しかし、手続きやアルゴリズムを実装するのに必要なその他の効果にローカル変数を実装するためのツールを提供します。

プロシージャ内のローカル名については、最初に新しい辞書を作成し、最後にポップします。

/myproc {
    10 dict begin
    %... useful code ...
    end
 } def

これをショートカットと組み合わせて、関数の引数を変数として定義することもできます。

% a b c  myproc  result
/myproc {
    10 dict begin
    {/c /b /a} {exch def} forall
    %... useful code yielding result ...
    end
 } def

ローカルディクショナリが上にある間に* "グローバル"変数を更新する必要がある場合は、 def代わりにstoreを使用します。

Hello Worldの例

フォントとフォントサイズを選択し、場所を選択し、文字列をshowます。

%!PS
/Palatino-Roman 20 selectfont
300 400 moveto
(Hello, World!) show
showpage

注意事項と共通の落とし穴:

  • フォントを設定できません(結果として、テキストもデフォルト(醜い)フォントにもなりません)

  • findfontsetfontを使用しscalefont 、間にscalefontを忘れてscalefontます。 level-2のselectfontを使用すると、この問題は回避され、より簡潔になります。

  • movetoでポイントを設定したり、ページの外側にポイントを設定したりmoveto 。米国のレターペーパーの場合、8.5x11は792x612psポイントです。だから、およそ800x600(しかし、短いと広い笑い)を覚えるのは簡単です。したがって、 300 400はページのほぼ中央です(少し高く、少し左に)。

  • 呼び出すために忘れshowpagegsを使ってpsプログラムをプレビューし、 showpageで終了しないと、 gsが画像を表示することがあります。それでも、pdfなどに変換しようとすると、ファイルが不思議に出力を生成しません。

カリキュラム

追記を簡単に学ぶために、この順番で文書を読む:

  1. Paul Bourkeの優れたチュートリアル: http : //paulbourke.net/dataformats/postscript/

  2. ブルーブック、前半、オリジナルの公式チュートリアル:
    http://www-cdf.fnal.gov/offline/PostScript/BLUEBOOK.PDF

  3. グリーンブック、ポストスクリプトを効果的に使う方法:
    http://www-cdf.fnal.gov/offline/PostScript/GREENBK.PDF

  4. ポストスクリプトで考える、とナフは言った: http ://wwwcdf.pd.infn.it/localdoc/tips.pdf

  5. 数学のイラストレーション 。小さいものから始まり大きなものを作りなさい。ベジェ曲線の背後にある数学。 Hodgman-Sutherlandポリゴンクリッピングアルゴリズム。アフィン変換とパスの非線形変換。 3D描画とGouraudシェーディング。序文から:

どのようなツール(数学的なグラフィックスを生み出すのに役立つ多くのツールの中で)を選択するかは、単純さと品質のトレードオフを伴います。真実は、トレードオフが不要であることです。ひとたび小さな初期投資をしてしまえば、ほとんどの状況で最も優れたことは、グラフィックスプログラミング言語のPostScriptでプログラムを書くことです。 PostScriptプログラムの出力の品質には実質的な制限はなく、経験を積むにつれて言語を使用する難しさが急速に減少します。私がこの本が示すことを望むように、ポストスクリプトでプログラミングすることによって簡単な図を作成することに伴う明らかな複雑さは、大体幻想です。そして、より複雑な図を作成するのに必要な作業の量は、通常、必要以上に大きくないし少なくもありません。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow