From b08a68c7f825771ab5765589131b681b98bb6547 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 11 May 2017 22:45:06 +0000 Subject: mptrees (11may17) git-svn-id: svn://tug.org/texlive/trunk@44297 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/metapost/mptrees/README.md | 8 + .../doc/metapost/mptrees/mptrees-doc.pdf | Bin 0 -> 388957 bytes .../doc/metapost/mptrees/mptrees-doc.tex | 543 +++++++++++++++++++++ 3 files changed, 551 insertions(+) create mode 100644 Master/texmf-dist/doc/metapost/mptrees/README.md create mode 100644 Master/texmf-dist/doc/metapost/mptrees/mptrees-doc.pdf create mode 100644 Master/texmf-dist/doc/metapost/mptrees/mptrees-doc.tex (limited to 'Master/texmf-dist/doc/metapost') diff --git a/Master/texmf-dist/doc/metapost/mptrees/README.md b/Master/texmf-dist/doc/metapost/mptrees/README.md new file mode 100644 index 00000000000..c038dca046a --- /dev/null +++ b/Master/texmf-dist/doc/metapost/mptrees/README.md @@ -0,0 +1,8 @@ +Package mptrees - Version 17.05 - May 10, 2017 + +This package provides MetaPost tools for drawing simple probability trees. +One command and several parameters to control the output are provided. + + +License LPPL 1.3 + diff --git a/Master/texmf-dist/doc/metapost/mptrees/mptrees-doc.pdf b/Master/texmf-dist/doc/metapost/mptrees/mptrees-doc.pdf new file mode 100644 index 00000000000..f86d52150ce Binary files /dev/null and b/Master/texmf-dist/doc/metapost/mptrees/mptrees-doc.pdf differ diff --git a/Master/texmf-dist/doc/metapost/mptrees/mptrees-doc.tex b/Master/texmf-dist/doc/metapost/mptrees/mptrees-doc.tex new file mode 100644 index 00000000000..78fb19f8b14 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/mptrees/mptrees-doc.tex @@ -0,0 +1,543 @@ +\documentclass[11pt,a4paper,english]{article} + +% To compile: +% (pdf)latex mptrees-doc.tex +% mpost mptrees-doc.mp +% mpost mptrees-doc.mp +% (pdf)latex mptrees-doc.tex + + \usepackage{calc,ifthen} + + \usepackage[utf8]{inputenc} + \usepackage[T1]{fontenc} + \usepackage{lmodern} + \usepackage{textcomp} + \usepackage{mathtools} + + \usepackage{geometry} + \geometry{twoside,hmargin=2cm,vmargin={1.5cm,1.8cm},includefoot} + + \usepackage[bottom]{footmisc} + + \usepackage{mflogo} + + + \usepackage{multicol} + \setlength{\multicolsep}{3pt} + \setlength{\columnsep}{0pt} + + \usepackage[toc]{multitoc} + + \usepackage{enumitem} + \setlist[description]{font=\ttfamily\bfseries\color{blue}} + + \usepackage[svgnames]{xcolor} + + \usepackage{graphicx} + \usepackage{ifpdf} + \ifpdf + \DeclareGraphicsRule{*}{mps}{*}{} + \fi + + \usepackage{url} + \usepackage{verbatim} + \usepackage{fancyvrb} + +% \usepackage{array} +% \usepackage{tabularx} +% \renewcommand{\tabularxcolumn}[1]{>{\arraybackslash}m{#1}} + + \usepackage{tcolorbox} + \tcbset{colframe=black,boxsep=0pt,left=3pt,right=3pt,top=0pt,bottom=0pt,boxrule=0.4pt,colback=LightGoldenrod} + + \usepackage{listings} + \lstset{columns=flexible,% + language=MetaPost,% + showstringspaces=false,% + basicstyle=\ttfamily, + literate={é}{{\'e}}1} + + + \usepackage{babel} + \usepackage[colorlinks=true,urlcolor=blue]{hyperref} + + + +%%%%%%%%%%%%%%%%%%% moreverb.sty +\makeatletter +\newwrite\verbatim@out + \immediate\openout \verbatim@out \jobname.mp +\newwrite\temp@code +\def\verbatimwrite{% + \@bsphack + \immediate\openout \temp@code figtmp.mp + \let\do\@makeother\dospecials + \catcode`\^^M\active \catcode`\^^I=12 + \def\verbatim@processline{% + \immediate\write\verbatim@out + {\the\verbatim@line}% + \immediate\write\temp@code + {\the\verbatim@line} + }% + \immediate\write\temp@code{beginfig(\thenumfig)} + \verbatim@start} + +\def\endverbatimwrite{% + \immediate\closeout\temp@code + \@esphack + }% +\makeatother +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newlength{\largeurcode} +\newlength{\largeurfig} +\newcounter{numfig} +\setcounter{numfig}{-1} + +\newcommand{\codedeuxcol}{% + \begin{tcolorbox} + \begin{minipage}[c]{\largeurcode} + \begin{multicols}{2} + \lstinputlisting{figtmp.mp} + \end{multicols} + \end{minipage} + \end{tcolorbox} + \par\noindent + } + + +\newcommand{\codehoriz}{% + \begin{minipage}[c]{\largeurcode} + \lstinputlisting[frame=single,frameround=tttt,backgroundcolor=\color{LightGoldenrod}]{figtmp.mp} + \end{minipage} + \hfill + } + +\newcommand{\codevert}{% + {\centering + \begin{minipage}[c]{\largeurcode} + \lstinputlisting[frame=single,frameround=tttt,backgroundcolor=\color{LightGoldenrod}]{figtmp.mp} + \end{minipage} + \par\noindent} + } + +\makeatletter +\newenvironment{codefigure}[3]% + {% + \refstepcounter{numfig} + \setlength{\largeurcode}{#2\linewidth} + \ifnum#1=0 + \setlength{\largeurfig}{\linewidth-\largeurcode-2\fboxsep-2\fboxrule} + \def\inscode{\codehoriz} + \else + \setlength{\largeurfig}{\linewidth} + \def\inscode{\codevert} + \ifnum#3=1 + \relax + \else + \def\inscode{\codedeuxcol} + \fi + \fi + \immediate\write\verbatim@out{beginfig(\thenumfig)} + \verbatimwrite + }% + {% + \immediate\write\temp@code{endfig;} + \immediate\write\verbatim@out{endfig;} + + \endverbatimwrite + \par + \noindent + \inscode + \IfFileExists{\jobname.\thenumfig}% + {\begin{minipage}[c]{\largeurfig} + \centering \includegraphics{\jobname.\thenumfig}\par + \end{minipage}}{} + \par} +\makeatother + +\newenvironment{codecache}% + {\verbatimwrite}{\endverbatimwrite} + +\newcounter{reptmp} + + +\newcounter{repexemple} +\setcounter{repexemple}{0} + +\newcommand{\debutexemple}{\par\vspace{2ex} + \refstepcounter{repexemple} + \noindent {\bfseries \color{blue!20!black} + Example \arabic{repexemple}} + \par\nopagebreak\vspace{1ex} + } + + +\newenvironment{exemple}[1][0.5]% + {\debutexemple + \codefigure{0}{#1}{1} + }% + {\endcodefigure + \par\vspace{2ex}} + +\newenvironment{exemplev}[2][1]% + {\debutexemple + \codefigure{1}{#1}{#2} + }% + {\endcodefigure + \par\vspace{2ex}} + + +\newenvironment{figreperedoc}% + {\refstepcounter{numfig} + \verbatimwrite}% + {% + \endverbatimwrite% + \IfFileExists{\jobname.\thenumfig}% + {\includegraphics{\jobname.\thenumfig}}{} + } + + + +\begin{document} +\title{Documentation of \texttt{mptrees.mp}} +\date{\today} +\author{Olivier \textsc{Péault}% +\footnote{E-mail : \href{mailto:o.peault@posteo.net}{\texttt{o.peault@posteo.net}}}} +\maketitle + +\setcounter{tocdepth}{2} + +%\setlength{\columnsep}{25pt} +%\tableofcontents +%\setlength{\columnsep}{10pt} + + +\newcommand{\ijc}{[i][j]} + +\begin{codecache} +input mptrees; +%input latexmp; +setupLaTeXMP(inputencoding="utf8", + packages="fourier,amsmath,nicefrac,babel[english]"); +dirtree:=0; +\end{codecache} + + + + +\section{Overview} + +This package is intended to simplify the drawing of probability trees with \MP. It provides one command and several parameters to control the output. + +It can be used in standalone files with two compilations (\verb|latexmp| package is loaded) but it can also be used with Lua\LaTeX{} and \verb|luamplib| package. + + +\begin{description} +\item[tree\ijc (dim1,dim2,...)(ev1,prob1,ev2,prob2,...)] probability tree located in column \verb|i| and row \verb|j| (see figure below). \verb|dim1|, \verb|dim2|,... can be numerics or pairs and control the dimension of the tree. \verb|ev1|, \verb|prob1|... are strings and will be printed (using \verb|latexmp|) at the end of the edge (the event) and above the edge (the probability). + +\item[shiftev, scaleprob, posprob, typeprob, proboffset, dirtree] numerics controlling the scale and position of the probability label, the direction of the tree... + +\end{description} + +\begin{center} +\begin{figreperedoc} +beginfig(0) +draw tree[1][1](3cm,2cm)("$A$","$p$","$\overline{A}$","$q$"); +draw tree[2][1](3cm,1cm)("$B$","$\nicefrac{1}{4}$","$\overline{B}$","$\nicefrac{3}{4}$"); +draw tree[2][2](3cm,1cm)("$B$","$0.5$","$\overline{B}$","$0.5$"); +draw tree[3][2](3cm,1cm)("$C$","$c$","$\overline{C}$","$1-c$"); +draw tree[4][2](3cm,1cm)("$D$","$a$","$\overline{D}$","$b$"); +drawoptions(dashed evenly); +draw (Orig_arbre[2][1]+(0,0.5cm))--(Orig_arbre[2][2]-(0,0.5cm))--(Orig_arbre[2][2]-(3.5cm,0.5cm))--(Orig_arbre[2][1]+(-3.5cm,0.5cm))--cycle withcolor red; +label.bot(textext("\verb|tree[1][1]|"),0.5[Orig_arbre[2][2]-(0,0.5cm),Orig_arbre[2][2]-(3.5cm,0.5cm)]) withcolor red; +draw (Orig_arbre[3][1]+(0,0.5cm))--(Orig_arbre[3][2]-(0,0.5cm))--(Orig_arbre[2][1]-(0,1cm))--(Orig_arbre[2][1]+(0,1cm))--cycle withcolor 0.5green; +label.top(textext("\verb|tree[2][1]|"),0.5[Orig_arbre[3][1]+(0,0.5cm),Orig_arbre[2][1]+(0,1cm)]) withcolor 0.5green; +draw (Orig_arbre[3][3]+(0,0.5cm))--(Orig_arbre[3][4]-(0,0.5cm))--(Orig_arbre[2][2]-(0,1cm))--(Orig_arbre[2][2]+(0,1cm))--cycle withcolor 0.5green; +label.bot(textext("\verb|tree[2][2]|"),0.5[Orig_arbre[3][4]-(0,0.5cm),Orig_arbre[2][2]-(0,1cm)]) withcolor 0.5green; +draw (Orig_arbre[4][1]+(0,0.5cm))--(Orig_arbre[4][2]-(0,0.5cm))--(Orig_arbre[3][2]-(0,1cm))--(Orig_arbre[3][2]+(0,1cm))--cycle withcolor blue; +label.bot(textext("\verb|tree[3][2]|"),0.5[Orig_arbre[4][2]-(0,0.5cm),Orig_arbre[3][2]-(0,1cm)]) withcolor blue; +draw (Orig_arbre[5][1]+(0,0.5cm))--(Orig_arbre[5][2]-(0,0.5cm))--(Orig_arbre[4][2]-(0,1cm))--(Orig_arbre[4][2]+(0,1cm))--cycle withcolor red; +label.bot(textext("\verb|tree[4][2]|"),0.5[Orig_arbre[5][2]-(0,0.5cm),Orig_arbre[4][2]-(0,1cm)]) withcolor red; +endfig; + +\end{figreperedoc} + +\end{center} + + +\section{Different kinds of trees} + +\begin{description} +\item[tree\ijc (width,vspace)(ev1,prob1,ev2,prob2,...)] regular tree where \verb|width| is the horizontal width of the tree and \verb|vspace| the vertical space between two consecutive nodes. + +\begin{codecache} +string dim[]; +dim[4]:="4 cm";dim[3]:="3 cm";dim[2]:="2 cm";dim[1]:="1 cm"; +dim[15]:="1.5 cm";dim[25]:="2.5 cm";dim[11]:="-1 cm"; +dim[22]:="-2 cm"; + +\end{codecache} + +\begin{codecache} +extra_endfig:="drawoptions(withcolor red);"; +extra_endfig:=extra_endfig & "drawdblarrow ((0,0)--(4cm,0)) shifted (0,2.25cm);label.top(textext(dim[4]),(2cm,2.25cm));"; +extra_endfig:=extra_endfig & "drawdblarrow ((0,0)--(0,2.5cm)) shifted (Orig_arbre[2][2]-(5cm,0));label.lft(textext(dim[25]),(-1cm,0));"; +extra_endfig:=extra_endfig & "drawoptions(withcolor 0.5green);"; +extra_endfig:=extra_endfig & "drawdblarrow ((0,0)--(3cm,0)) shifted (Orig_arbre[2][1]+(0,1cm));label.top(textext(dim[3]),(6cm,2.25cm));"; +extra_endfig:=extra_endfig & "drawdblarrow ((0,0)--(0,1.5cm)) shifted (Orig_arbre[3][2]+(0.25cm,0));label.rt(textext(dim[15]),Orig_arbre[3][2]+(0.25cm,0.75cm));"; +extra_endfig:=extra_endfig & "drawdblarrow ((0,0)--(0,1cm)) shifted (Orig_arbre[3][4]+(0.25cm,0));label.rt(textext(dim[1]),Orig_arbre[3][4]+(0.25cm,0.5cm));"; +extra_endfig:=extra_endfig & "drawdblarrow ((0,0)--(0,1cm)) shifted (Orig_arbre[3][5]+(0.25cm,0));label.rt(textext(dim[1]),Orig_arbre[3][5]+(0.25cm,0.5cm));"; + +\end{codecache} + +{\small \begin{exemplev}{1} +draw tree[1][1](4cm,2.5cm)("$A_1$","$\nicefrac{1}{3}$","$A_2$","$\nicefrac{2}{3}$"); +draw tree[2][1](3cm,1.5cm)("$B$","$\nicefrac{1}{4}$","$C$","$\nicefrac{3}{4}$"); +draw tree[2][2](3cm,1cm)("$D$","$p$","$E$","$q$","$F$","$r$"); +\end{exemplev} +} + +\item[tree\ijc (width,vspace1,vspace2...)(ev1,prob1,ev2,prob2,...)] tree where \verb|width| is the horizontal width of the tree while each \verb|vspace| indicates the vertical space between the node and the origin of the tree. + +\begin{codecache} +extra_endfig:="drawoptions(withcolor 0.5green);"; +extra_endfig:=extra_endfig & "draw Orig_arbre[2][1] -- (Orig_arbre[2][1]+(4.5cm,0)) dashed evenly;"; +extra_endfig:=extra_endfig & "drawdblarrow ((0,0)--(3cm,0)) shifted (Orig_arbre[2][1]+(0,2.25cm));label.top(textext(dim[3]),(5cm,3.25cm));"; +extra_endfig:=extra_endfig & "drawarrow ((0,-2cm)--(0,0)) shifted (Orig_arbre[3][1]+(0.25cm,0));label.rt(textext(dim[2]),Orig_arbre[3][1]+(0.25cm,-0.7cm));"; +extra_endfig:=extra_endfig & "drawarrow ((0,-1cm)--(0,0)) shifted (Orig_arbre[3][2]+(0.5cm,0));label.rt(textext(dim[1]),Orig_arbre[3][2]+(0.5cm,-0.5cm));"; +extra_endfig:=extra_endfig & "drawarrow ((0,1cm)--(0,0)) shifted (Orig_arbre[3][3]+(0.75cm,0));label.rt(textext(dim[11]),Orig_arbre[3][3]+(0.75cm,0.5cm));"; +extra_endfig:=extra_endfig & "drawarrow ((0,0)--(0,-2cm)) shifted (Orig_arbre[3][4]+(0.25cm,0));label.rt(textext(dim[22]),Orig_arbre[3][4]+(0.25cm,-1cm));"; +\end{codecache} +\begin{exemplev}{1} +draw tree[1][1](3cm,2cm)("$A$","$p$","$\overline{A}$","$q$"); +draw tree[2][1](3cm,2cm,1cm,-1cm)("$B$","$p$","$C$","$q$","$D$","$r$"); +draw tree[2][2](3cm,0cm,-2cm)("$E$","$0.5$","$F$","$0.5$"); +\end{exemplev} + +\begin{codecache} +extra_endfig:=""; +\end{codecache} + +\item[tree\ijc (pair1,pair2,...)(ev1,prob1,ev2,prob2,...)] tree where \verb|pair1|, \verb|pair2|... indicate the coordinates of each node from the origin of the tree. + + +\begin{codecache} +extra_endfig:="drawoptions(withcolor 0.5green);"; +extra_endfig:=extra_endfig & "draw Orig_arbre[2][1] -- (Orig_arbre[2][1]+(5cm,0)) dashed evenly;"; +extra_endfig:=extra_endfig & "drawarrow ((0,0)--(3cm,0)) shifted (Orig_arbre[2][1]+(0,2.25cm));label.top(textext(dim[3]),(5cm,3.25cm));"; +extra_endfig:=extra_endfig & "drawarrow ((0,-2cm)--(0,0)) shifted (Orig_arbre[3][1]+(0.25cm,0));label.rt(textext(dim[2]),Orig_arbre[3][1]+(0.25cm,-0.7cm));"; +extra_endfig:=extra_endfig & "drawarrow ((0,0)--(4cm,0)) shifted (Orig_arbre[2][1]+(0,-1.25cm));label.bot(textext(dim[4]),(5.5cm,-0.25cm));"; +extra_endfig:=extra_endfig & "drawarrow ((0,0)--(0,-1cm)) shifted (Orig_arbre[3][2]+(0,1cm));label.rt(textext(dim[11]),Orig_arbre[3][2]+(0,0.5cm));"; +\end{codecache} + +\begin{exemplev}{1} +draw tree[1][1](3cm,2cm)("$A$","$p$","$\overline{A}$","$1-p$"); +draw tree[2][1]((3cm,2cm),(4cm,-1cm))("$B$","$q$","$C$","$r$"); +\end{exemplev} + +\begin{codecache} +extra_endfig:=""; +\end{codecache} + +\end{description} + +\section{Parameters} +\begin{description} +\item[shiftev] The origin of each tree is located where the bounding box of the previous event's name ends. Thus subtrees may begin at different places. The numeric \verb|shiftev| indicates the horizontal space between the end of the edges and the beginning of following trees. It should be used inside the first set of parameters of the tree (see example below). + +\begin{exemplev}{1} + draw arbre[1][1](80,120)("$A$","$0.5$","$\overline{A}$","$0.5$"); + draw arbre[2][1](70,40)("Yes","$p$","No","$q$","Maybe","$r$"); + draw arbre[2][2](70,40,"shiftev:=1.5cm")("Yes","$p$","No","$q$","Maybe","$r$"); + draw arbre[3][1](50,20)("$B$","$b$","$C$","$c$"); + draw arbre[3][2](50,20)("$B$","$b$","$C$","$c$"); + draw arbre[3][3](50,20)("$B$","$b$","$C$","$c$"); + draw arbre[3][4](50,20)("$B$","$b$","$C$","$c$"); + draw arbre[3][5](50,20)("$B$","$b$","$C$","$c$"); + draw arbre[3][6](50,20)("$B$","$b$","$C$","$c$"); +\end{exemplev} + + +\item[scaleprob] numeric controlling the scale of the label above the edge (the probability). Default is $0.85$. + +\item[posprob] numeric controlling the position of the label above the edge. Default is $0.6$. + +\begin{exemple}[0.65] + scaleprob:=1.5; + draw tree[1][1](3cm,2cm)("$A$","$p$","$B$","$q$"); +\end{exemple} + +\begin{codecache} +scaleprob:=0.85; +\end{codecache} + +\begin{exemple}[0.65] + posprob:=0.8; + draw tree[1][1](3cm,2cm)("$A$","$p$","$B$","$q$"); +\end{exemple} + +\item[typeprob] numeric controlling how the label is printed. Values can be 1 (the default, label is printed above the edge), 2 (the label is printed on the edge), 3 (the label is printed above the edge and rotated) or 4 (the label is printed on the edge and rotated). + +\begin{codecache} +posprob:=0.6; +\end{codecache} + +\begin{exemple}[0.7] + typeprob:=2; + draw tree[1][1](3cm,2cm)("$A$","$p$","$B$","$1-p$"); +\end{exemple} + +\begin{exemple}[0.7] + typeprob:=3; + draw tree[1][1](3cm,2cm)("$A$","$p$","$B$","$1-p$"); +\end{exemple} + +\begin{exemple}[0.7] + typeprob:=4; + draw tree[1][1](3cm,2cm)("$A$","$p$","$B$","$1-p$"); +\end{exemple} + + +\item[proboffset] numeric controlling the amount by which the label above the edge is offset. Default is \verb|labeloffset| (\verb|3bp|). + +\begin{codecache} +typeprob:=1; +\end{codecache} + +\begin{exemple}[0.75] + draw tree[1][1](3cm,3cm)("$A$","$p+q+r$","$B$","$s$"); +\end{exemple} + + + +\begin{exemple}[0.75] + proboffset:=6bp; + draw tree[1][1](3cm,3cm)("$A$","$p+q+r$","$B$","$s$"); +\end{exemple} + + + +\item[dirtree] All trees are construct horizontally by default. \verb|ditree| indicates the angle in degrees between the horizontal and the main direction of the tree. Default is $0$. +\end{description} + +\begin{codecache} +proboffset:=3bp; +\end{codecache} + +\begin{exemplev}{1} +dirtree:=135; +draw tree[1][1](3cm,2cm)("$A_1$","$a_1$","$A_2$","$a_2$"); +draw tree[2][1](3cm,1cm)("$B$","$b$","$C$","$c$"); +draw tree[2][2](3cm,1cm)("$D$","$p$","$E$","$q$"); +\end{exemplev} + + +\begin{exemplev}{1} +dirtree:=-60; +draw tree[1][1](3cm,2cm)("$A_1$","$a_1$","$A_2$","$a_2$"); +draw tree[2][1](3cm,1cm)("$B$","$b$","$C$","$c$"); +draw tree[2][2](3cm,1cm)("$D$","$p$","$E$","$q$"); +\end{exemplev} + + +\section{Embedded code in \LaTeX{} files} + +You can embed your code in \LaTeX{} files. + +\subsection{With \texttt{pdftex}} + +\medskip + +\begin{minipage}[t]{0.45\linewidth} +{\centering \textbf{Using \texttt{emp} package}\par} + + + +\verb|pdflatex myfile.tex| + +\verb|mpost myfile.mp| + +\verb|mpost myfile.mp| + +\verb|pdflatex myfile.tex| + + +\begin{lstlisting}[frame=single,frameround=tttt,backgroundcolor=\color{LightSteelBlue},language={[LaTeX]TeX}] +\documentclass{article} +\usepackage{emp} +\usepackage{ifpdf} + \ifpdf % allows pdflatex compilation + \DeclareGraphicsRule{*}{mps}{*}{} + \fi +\begin{document} +\begin{empfile} +\begin{empcmds} + input mptrees; +\end{empcmds} +\begin{emp}(0,0) + draw tree[1][1](3cm,3cm)(...); +\end{emp} +\end{empfile} +\end{document} +\end{lstlisting} +\end{minipage} +\hfill +\begin{minipage}[t]{0.45\linewidth} +{\centering \textbf{Using \texttt{mpgraphics} package}\par} + + +\verb|pdflatex -shell-escape myfile.tex| + +\begin{lstlisting}[frame=single,frameround=tttt,backgroundcolor=\color{LightSteelBlue},language={[LaTeX]TeX}] +\documentclass{article} +\usepackage[runs=2]{mpgraphics} +\begin{document} +\begin{mpdefs} + input mptrees; +\end{mpdefs} +\begin{mpdisplay} + draw tree[1][1](3cm,3cm)(...); +\end{mpdisplay} +\end{document} +\end{lstlisting} +\end{minipage} + +\subsection{With \texttt{luatex}} + +\begin{center} +\begin{minipage}[t]{0.6\linewidth} +{\centering \textbf{Using Lua\LaTeX}\par} + + +\verb|lualatex myfile.tex| + +\begin{lstlisting}[frame=single,frameround=tttt,backgroundcolor=\color{LightSteelBlue},language={[LaTeX]TeX}] +\documentclass{article} +\usepackage{fontspec} +\usepackage{luamplib} +\begin{document} +\everymplib{input mptrees;} +\begin{mplibcode} +beginfig(1); + draw tree[1][1](3cm,3cm)("$A$","$p$","$B$","$q$"); +endfig; +\end{mplibcode} +\end{document} +\end{lstlisting} +\end{minipage} +\end{center} + + + + +\begin{codecache} +end +\end{codecache} + +\makeatletter +\immediate\closeout\verbatim@out +\makeatother +\end{document} + + -- cgit v1.2.3