Exibição de saída MetaPost em ghostscript

O MetaPost normalmente espera que sua saída seja incluída em algum contexto em que as fontes MetaFont ‘padrão’ (que você especificou) já estejam definidas — por exemplo, como uma figura em documento TeX. Se você estiver depurando seu código MetaPost, você pode querer vê-lo em um visualizador baseado em ghostscript (ou algum outro PostScript), mas observe que os visualizadores (mesmo o ghostscript) normalmente não estarão com as fontes carregadas, e você vai experimentar um erro como

Error: /undefined in cmmi10
Há provisão no MetaPost para evitar este problema: dê o comando prologues := 2; no início do arquiv mp.

Infelizmente, o PostScript que o MetaPost insere em sua saída, seguindo este comando, é incompatível com o uso normal do PostScript em inclusões em documentos (La)TeX; então, é melhor tornar o comando prologues opcional. Além disso, o MetaPost adota uma abordagem muito simplória para codificação de fonte: uma vez que as codificações de fontes do TeX são tudo, menos simples, a codificação de texto em diagramas é outra fonte de problemas. Se você estiver sofrendo tais problemas (o sintoma é que os caracteres desaparecem ou são incorretamente apresentados), a solução é visualizar a saída ‘original’ do MetaPost depois do processamento através do LaTeX e do dvips.

Compilação condicional pode ser feita, tanto inserindo MyFigure.mp indiretamente, a partir de um invólucro simples MyFigureDisplay.mp:

prologues := 2;
input MyFigure
quanto dando um comando de shell, tal como
mp '\prologues:=2; input MyFigure'
(que funcionará sem as aspas se você não estiver usando uma shell Unix).

Uma rota LaTeX adequada envolveria o processamento de MyFigure.tex, que contém:

\documentclass{article}
\usepackage{graphicx}
\begin{document}
\thispagestyle{empty}
\includegraphics{MyFigure.1}
\end{document}
Processar o arquivo DVI resultante com o comando dvips x

dvips -E -o MyFigure.eps MyFigure
forneceria, então, um arquivo PostScript Encapsulado satisfatório. Este procedimento pode ser automatizado usando o script Perl mps2eps, economizando, assim, uma boa quantidade de tédio.

O usuário de Plain TeX pode usar uma adaptação, feita por Dan Luecking, de um momento da versão de Knuth. A versão mpsproof.tex de Dan funcionará no TeX produzindo um arquivo DVI para uso com dvips, ou no PDFTeX produzindo um arquivo PDF, direto. A saída é configurada para parecer uma prova de impressão.

Uma aplicação de script, a mptopdf, está disponível em distribuições recentes do (La)TeX: ela parece produzir PDF a partir de MetaPost de forma bastante confiável, podendo, portanto, ser razoavelmente considerada uma resposta à pergunta…

mps2eps
mps2eps
mpsproof.tex
:Distribuída como parte da distribuição do MetaPost distribution metapost
mptopdf
: Parte de pdftex-graphics

This answer last edited: 2013-04-23


Do you have any question? Ask on: latex.net.br - we love qood questions!