Metapost/Metafont とは何ですか? また、どのように使い始めることができますか?

Metapost/Metafont とは何ですか? また、どのように使い始めることができますか?

に触発されたなぜMetapostは差別するのか?、Metapostについて知りたい遠い今よりもよく知っています。私が本当に知っているのは、Metapost はグラフィックスを記述するための言語であり、Metafont はフォントを記述するために特に使用されるということです。

では、Metapost/Metafont とは何でしょうか?

  • 名前が示すように、Metafont/Metapost は同様の構文を持っていますか?
  • これらを操作してコンパイルするためのツールは、一般的な TeX ディストリビューションに含まれていますか?
  • これらのシステムには「Hello World」のようなものはありますか? (Metapost を使用したさまざまな例はサイト全体で見つかりますが、Metafont の例はあまりないようです。)
  • pdfTeX では、Metafont で作成されたフォントをあまり手間をかけずに使用できますか?
  • (Metapost も同様ですが、このサイトの複数の例がそれを物語っているようです)

答え1

  1. METAFONT は、TeX の仲間として Knuth によって設計されました。その役割は、「数学的に記述された」形状からフォントを生成することです。METAFONT の出力はビットマップ グリフのコレクションです。適切なパラメータを設定することで、文字の記述が適切であれば、出力を特定の印刷デバイスに合わせて調整できます (たとえば、解像度は非常に重要ですが、注意すべき唯一の側面ではありません)。

  2. Metapost は METAFONT から直接派生したプログラムです。元々は John Hobby によって書かれ、METAFONT に多大な貢献をしました。そのため、構文は似ています。言語は実際には同じですが、Metapost ではいくつかのプリミティブとデータ型が追加されています (RGB と CMYK の色はそれぞれ 3 色と 4 色で、METAFONT では使用されません)。逆に、METAFONT の機能の一部は Metapost では意味がありません。

  3. Metapost の出力は Postscript の単純な形式であり、これが 2 つのプログラムの主な違いです。Metapost の出力はベクター グラフィックスですが、METAFONT はラスターのみを出力します。

  4. Metapost は TeX とインターフェイスして文字メトリックを取得し、出力にタイプを含めることができます。これは METAFONT では不可能です (ただし、METAFONT の巧妙な使用法を説明した TUGboat の論文がいくつかあります)。

  5. METAFONT で作成されたフォントは で使用できますpdftex。Knuth TeX で可能なことはすべて でも可能ですpdftex。ただし、フォントはビットマップなので、良好な出力が必要な場合は高解像度バージョンを生成する必要があります。これには、ソースからオンデマンドでビットマップを生成するために使用される と というpdftex2 つのプリミティブがあります。\pdfpkresolution\pdfpkmode

  6. Metapost の出力は (Encapsulated) Postscript であるため、 に直接組み込むことができますlatex。ただし、制限された Postscript 関数セットを使用するため、元々 ConTeXt 用に記述された TeX マクロのセットを介して に組み込むこともできますpdflatex

  7. METAFONT の「Hello world」は METAFONTbook にありますが、(La)TeX の同様のテスト ドキュメントほど単純ではありません。

  8. Metapost の「Hello world」は「簡単に」書くことができます。次のhello.mpドキュメントを書いてください。

    prologues:=3;                % include all fonts
    outputtemplate:="%j-%c.mps"; % output file will be hello-1.mps
    beginfig(1);
    draw(0,0)--(3cm,0)--(3cm,3cm)--(0,3cm)--cycle;
    label(btex Hello world! etex, (1.5cm,1.5cm));
    endfig;
    end.
    

    実行しmpost helloてプレビューepstopdf hello-1.mpsするhello-1.pdf

    ここに画像の説明を入力してください

Metapost の完全なドキュメントは TeX ディストリビューションで入手できます (TeX Live の場合はtexdoc metapost)。

答え2

直感的な視覚的概要 -http://www.metaflat.com/modulator より- 必ず解剖学をオンにしてください。

ここに画像の説明を入力してください

答え3

Herbertのコメントを拡張し、egregのコメントを補足するために、MetaPost外部ツールを必要とせずにLuaLaTeX内で直接コードを処理できるコードスニペットを紹介します。luamplib、Lua ライブラリのパッケージ/サポート インターフェースmplib、MetaPost の組み込みバージョン:

\documentclass{standalone}
\usepackage{luamplib}
\begin{document}
\begin{mplibcode}
beginfig(1);
label ("Insert MP code here", (10,10));
endfig;
\end{mplibcode}
\end{document}

関連情報