天地有情

[LaTeX] mpgraphics --- LaTeX文書中に MetaPostコード を埋め込み実行する

mpgraphics --- LaTeX文書中に MetaPostコード を埋め込み実行する

§1 はじめに

mpgraphicsパッケージは,直接LaTeX文書に,すべてのMetaPostのコードをもつことができ,
LaTeX を実行した場合,LaTeX 出力で MetaPost のグラフィックスを見ることができます.
このパッケージは,pdfLaTeX と XeLaTeX フォーマットに対応しています.

1.1 要件

● LaTeX,pdfLaTeX またはXeLaTeX は -shell-escapeオプションを指定して呼び出す必要があります.

● epstopdfプログラムの最新バージョンが必要です.

● color,graphicx,ifpdf,ifplatform,iftex,moreverb,および xkeyvalパッケージの最新バージョンが必要です.


1.2 インストール

TeXLive/W32TeX などには標準でインストールされていますので,インストール作業は必要ありません.
すぐに利用できる状態にあると思われます.


1.3 マニュアル

コマンドラインから texdoc mpgraphics を実行してください.

§2 LaTeX2e 文書での指定方法

2.1 書式

プリアンブルに
  \usepackage{mpgraphics} を記述します.

2.2 環境

(1)mpdisplay 環境

   mpdisplay環境では,中央に MetaPost のグラフィックを display mode で配置します.

 ■ 形式:

   ---------------------
   \begin{mpdisplay}
    <MetaPost codes>
   \end{mpdisplay}
   ---------------------

 ■ サンプル:

ファイル名 foo01.tex (utf-8)
   -----------------------------------------------
   \documentclass{article}
   \usepackage{mpgraphics}
   \begin{document}
    \begin{mpdisplay}
    draw for i=0 step 0.1 until 360:
    4cm*(sind(7*i)*cosd(i),sind(5*i)*sind(i))..
    endfor cycle;
    \end{mpdisplay}
   \end{document}
   -----------------------------------------------

   コンパイル:
    pdflatex foo01.tex

   結果:
    foo01.pdf が得られます.また,foo01-fig.pdf も合わせて得られます.

mpgraphics01.png



ファイル名 foo02.tex (utf-8)
   -----------------------------------------------
   \documentclass{article}
   \usepackage{mpgraphics}
   \begin{document}
    \begin{mpdisplay}
    for i=0 step 0.1 until 360:
    draw 3cm*(sind(2*i),cosd(3*i))
    withpen pencircle scaled 2bp;
    endfor;
    \end{mpdisplay}
   \end{document}
   -----------------------------------------------

   コンパイル:
    pdflatex foo02.tex

   結果:

mpgraphics02.png




(2)mpinline 環境

   インラインモードで MetaPost のグラフィックスを配置します.

 ■ 形式:

   ---------------------
   \begin{mpinline}
    <MetaPost codes>
   \end{mpinline}
   ---------------------

 ■ サンプル:

ファイル名 foo03.tex (utf-8)
   -----------------------------------------------
   \documentclass{article}
   \usepackage{mpgraphics}
   \begin{document}
   *******
   \begin{mpinline}
    u=50;
    fill (u,0)..(2u,u)..(u,2u)..(0,u)..cycle withcolor red;
    label("Red Ball",(u,u));
   \end{mpinline}
   *******
   \end{document}
   -----------------------------------------------

   コンパイル:
    pdflatex foo03.tex

   結果:

mpgraphics03.png




(3)mpdefs 環境

   グローバルなMetaPostの定義と入力

 ■ 形式:
 
   -------------------------------------------------
   \begin{mpdefs}
    <global MetaPost definitions and inputs>
   \end{mpdefs}
   -------------------------------------------------

 ■ サンプル:

ファイル名 foo04.tex (utf-8)
   -------------------------------------------------
   \documentclass{article}
   \usepackage{mpgraphics}
   \begin{document}
   \begin{mpdefs}
    input graph ;
    interim linecap := 2;
    defaultfont:="rpplb" ;
    defaultscale:=2.0 ;
   \end{mpdefs}
   %
   \begin{mpdisplay}
    draw begingraph(6cm,4cm);
    gdata("bou.d",v,path p;
    augment p (v1,0 );
    augment p (v1,v2);
    gdraw p withpen pencircle scaled 4bp;
    );
    glabel.bot(btex CASE etex,OUT);
    glabel.lft(btex VALUE etex rotated 90,OUT);
    glabel.top("Bar Graph",OUT);
    endgraph;
   \end{mpdisplay}
   \end{document}
   -------------------------------------------------

   データファイル bou.d (utf8)
   -----------
   0 85
   1 90
   2 100
   3 95
   4 70
   5 75
   6 90
   7 100
   8 110
   9 120
  10 115
   -----------

   コンパイル:
    pdflatex foo04.tex

   結果:

mpgraphics04.png




(4)ltxpreamble 環境

   LATEXパッケージとマクロは,MetaPostのグラフィック内で使用

 ■ 形式:
 
   -------------------------------------------------
   \begin{ltxpreamble}
    <LATEX packages and macros used within MetaPost graphics>
   \end{ltxpreamble}
   -------------------------------------------------

 ■ サンプル:

ファイル名 foo05.tex (utf-8)
   -------------------------------------------------
   \documentclass{article}
   \usepackage{mpgraphics}
   \begin{document}
%
   \begin{mpdefs}
   defaultfont:="ptmr8r";
   warningcheck:=0;
   \end{mpdefs}
   %
   \begin{ltxpreamble}
    \usepackage{newtxmath}
   \end{ltxpreamble}
   %
   \begin{mpdisplay}
   u=2cm;
   drawarrow (-.5u,0)--(4u,0);
   drawarrow (0,-.5u)--(0,2u);
   pickup pencircle scaled 1bp;
   draw (0,0) {up}
    for x=1 upto 8: ..(x/2,sqrt(x/2))*u endfor;
   label.lrt (btex $y = x^{\frac{1}{2}}$ etex, (3,sqrt(3))*u);
   label.rt (btex $x$ etex,(4,0)*u);
   label.top (btex $y$ etex, (0,2)*u);
   label.llft(btex $0$ etex,(0,0));
   label.urt (btex ORIGIN etex,origin);
   \end{mpdisplay}
   \end{document}
   -------------------------------------------------

   コンパイル:
    pdflatex foo05.tex

   結果:

mpgraphics05.png



(EOF)
スポンサーサイト
  1. 2015/08/07(金) 07:40:33|
  2. LaTeX Tools