MetaPost Examples
December 11, 2007 | Filed Under LaTeX | Leave a Comment
2008-10-19: I use PyX instead of Metapost. It’s based on Python so the syntax is clear and straightforward, and is easily used from Sage (install with “sage -python setup.py install” from the PyX source directory).
Introduction
My favourite package for drawing diagrams is
MetaPost. Here’s an
example, taken from my PhD thesis:
The best page for examples is the one by
href="http://tex.loria.fr/prod-graph/zoonekynd/metapost/metapost.html">(La)TeX
Navigator.
Compiling with LaTeX fonts
Normally MetaPost uses TeX to compile but it is nicer to have access to
LaTeX fonts/symbols/etc. To do this put the following at the top of your
MetaPost file:
verbatimtex
\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
\begin{document}
etex
Then set the TEX environment variable and compile. For example, in
Bash, you could do:
$ export TEX=latex && mpost case1.mp
My examples
Here are all the MetaPost diagrams from my PhD thesis. There are a
few duplicates and some dodgy code, I make no claim of being an expert
in MetaPost.
href="/blog/myfiles/metapost/metapostexamples/metapostexamples.pdf">metapostexamples.pdf
All files in a compressed
tar archive
Metapost to PDF
A few of my Metapost files use the following TEX function
(copied from here):
vardef TEX primary s =
write "verbatimtex" to "mptextmp.mp";
write "\documentclass[12pt]{article}" to "mptextmp.mp";
write "\usepackage[T1]{fontenc}" to "mptextmp.mp";
write "\usepackage{amsmath,amssymb}" to "mptextmp.mp";
write "\begin{document}" to "mptextmp.mp";
write "etex" to "mptextmp.mp";
write "btex "&s&" etex" to "mptextmp.mp";
write EOF to "mptextmp.mp";
scantokens "input mptextmp"
enddef;
The command mptopdf seems to have trouble with the temporary
file mptextmp.mp. In particular I got this error when doing
mptopdf bug.mp:
This is MetaPost, Version 0.901 (Web2C 7.5.5)
(/usr/share/texmf-texlive/web2c/natural.tcx)
(bug.mp (mptextmp.mp
>> mptextmp.mp
>> mptextmp.mpx
! Unable to make mpx file.
l.5 btex
1 etex
Transcript written on bug.log.
error in metapost run : bug.mp:5
total run time : 0 seconds
MPtoPDF 1.3 : error while processing mp file
On the other hand, this seems to work:
mpost bug.mp mptopdf bug.1
I’m not sure why this is the case – is this a bug or just
undocumented behaviour?
Other stuff
MetaFun looks
good. It’s also worth checking out what other peope have
href="http://del.icio.us/search/?fr=del_icio_us&p=metapost&type=all">tagged
as metapost on del.icio.us.
Installing Minion Pro fonts
December 11, 2007 | Filed Under LaTeX | 9 Comments
Introduction
This post describes how to install Minion Pro fonts on Ubuntu 7.04/7.10. It should work for any modern Linux distribution with TexLive.
Update: these instructions seem to work on later versions of Ubuntu and even OSX (see the comments for details). And someone’s done a translation into Japanese. Cool
Someone adapted my notes for installing on a Mac: http://jklukas.blogspot.com/2010/02/installing-minionpro-tex-package.html
We will install to /usr/local/share/texmf. Check that this matches the
definition of TEXMFLOCAL in your installation:
$ kpsexpand '$TEXMFLOCAL' /usr/local/share/texmf
It is vital that you install to the right path in
/usr/local.
Install mnsymbol
Click on mnsymbol and
download the entire directory as mnsymbol.zip.
unzip mnsymbol.zip cd mnsymbol/tex latex MnSymbol.ins mkdir -p /usr/local/share/texmf/tex/latex/MnSymbol/ mkdir -p /usr/local/share/texmf/fonts/source/public/MnSymbol/ mkdir -p /usr/local/share/texmf/doc/latex/MnSymbol/ cp MnSymbol.sty /usr/local/share/texmf/tex/latex/MnSymbol/MnSymbol.sty cd .. cp source/* /usr/local/share/texmf/fonts/source/public/MnSymbol/ cp MnSymbol.pdf README /usr/local/share/texmf/doc/latex/MnSymbol/ mkdir -p /usr/local/share/texmf/fonts/map/dvips/MnSymbol mkdir -p /usr/local/share/texmf/fonts/enc/dvips/MnSymbol mkdir -p /usr/local/share/texmf/fonts/type1/public/MnSymbol mkdir -p /usr/local/share/texmf/fonts/tfm/public/MnSymbol cp enc/MnSymbol.map /usr/local/share/texmf/fonts/map/dvips/MnSymbol/ cp enc/*.enc /usr/local/share/texmf/fonts/enc/dvips/MnSymbol/ cp pfb/*.pfb /usr/local/share/texmf/fonts/type1/public/MnSymbol/ cp tfm/* /usr/local/share/texmf/fonts/tfm/public/MnSymbol/
Regenerate the indexes and enable MnSymbol:
mktexlsr updmap-sys --enable MixedMap MnSymbol.map
You should be able to compile
mnsymbol-test.tex with no errors.
Install the MinionPro package
We will need a few files from here:
http://www.ctan.org/tex-archive/fonts/minionpro/.
Download scripts.zip and unpack it:
mkdir minionpro-scripts cd minionpro-scripts unzip ../scripts.zip
Copy your OTF fonts into the local directory.
find /youradobefonts/ -iname '*minion*pro*otf' -exec cp -v '{}' otf/ ';'
Hint: Adobe Reader ships with some Minion Pro fonts.
Make sure you have the latest version of lcdf-typetools and then
convert the fonts:
sudo apt-get install lcdf-typetools ./convert.sh
Install the fonts:
mkdir -p /usr/local/share/texmf/fonts/type1/adobe/MinionPro/ cp pfb/*.pfb /usr/local/share/texmf/fonts/type1/adobe/MinionPro/
Determine which version of the Adobe fonts you have. For example,
I have the “002.000″ family:
$ otfinfo -v ~/Desktop/minionpro-scripts/otf/MinionPro-Regular.otf Version 2.015;PS 002.000;Core 1.0.38;makeotf.lib1.7.9032
You need to download one of the following encoding files:
Version | Encoding file ------------------------ 001.000 | enc-v1.000.zip 001.001 | enc-v1.001.zip 002.000 | env-v2.000.zip
The last few steps:
cd /usr/local/share/texmf unzip ~/Desktop/metrics-base.zip unzip ~/Desktop/metrics-full.zip unzip ~/Desktop/enc-X.XXX.zip (pick your version)
Edit /etc/texmf/updmap.d/10local.cfg and add the following
line:
Map MinionPro.map
Regenerate all indexes:
mktexlsr update-updmap updmap-sys
You should see a line like this:
updmap-sys: using map file `/usr/local/share/texmf/fonts/map/dvips/MnSymbol/MnSymbol.map'
You should now be able to compile
minionpro-test.tex with no errors.
You might see this error on large documents:
Font OMS/MnSymbolS/m/n/17.28=MnSymbolS12 at 17.28pt not loaded: Not enough room left.
Edit /etc/texmf/texmf.d/95NonPath.cnf and change
font_mem_size = 500000
to
font_mem_size = 5000000
or some other large value. Then run
update-texmf