O que é Metapost/Metafont e como posso começar a usá-lo?

O que é Metapost/Metafont e como posso começar a usá-lo?

Inspirado porPor que discriminação Metapost?, gostaria de conhecer o Metapostdistantemelhor do que eu agora. Tudo o que realmente sei é que Metapost é uma linguagem para descrever gráficos e Metafont é usado especificamente para descrever fontes.

Então, o que é Metapost/Metafont?

  • o Metafont/Metapost tem sintaxe semelhante, como os nomes sugerem?
  • as ferramentas para trabalhar e compilá-los estão incluídas nas distribuições populares do TeX?
  • existe algo como um 'Hello World' para esses sistemas? (Vários exemplos com Metapost podem ser encontrados em todo o site, mas não tanto com Metafont, ao que parece.)
  • o pdfTeX pode usar fontes criadas com Metafont sem muitos problemas?
  • (o mesmo para o Metapost, mas parece que os vários exemplos neste site falam por si)

Responder1

  1. METAFONT foi projetado por Knuth para ser um companheiro do TeX. Seu trabalho é produzir fontes a partir de formas “descritas matematicamente”. A saída do METAFONT é uma coleção de glifos em bitmap; definindo parâmetros adequados, se a descrição dos caracteres for cuidadosa, a saída pode ser ajustada para se adequar a qualquer dispositivo de impressão específico (por exemplo, a resolução é muito importante, mas não é o único aspecto a ser cuidado).

  2. Metapost é um programa derivado diretamente do METAFONT; foi originalmente escrito por John Hobby, que fez contribuições valiosas para o METAFONT. Então, sim, a sintaxe deles é semelhante: a linguagem é na verdade a mesma, mas o Metapost adiciona vários primitivos e também tipos de dados (as cores RGB e CMYK são respectivamente triplas e quádruplas que não são usadas no METAFONT). Por outro lado, alguns dos recursos do METAFONT não têm sentido no Metapost

  3. A saída do Metapost é uma forma simples de Postscript, e esta é a principal diferença entre os dois programas: a saída do Metapost são gráficos vetoriais, enquanto o METAFONT produz apenas rasters.

  4. O Metapost pode interagir com o TeX para obter métricas de caracteres e incluir o tipo em sua saída. Isso não é possível no METAFONT (bem, existem alguns artigos do TUGboat descrevendo o uso inteligente do METAFONT).

  5. As fontes criadas por METAFONT podem ser usadas com pdftex: tudo o que é possível no Knuth TeX também é possível com pdftex. No entanto, as fontes são bitmap, portanto, versões em alta resolução delas devem ser geradas se alguém quiser um bom resultado; pdftextem algumas primitivas para isso: \pdfpkresolutione \pdfpkmodeque são usadas para gerar bitmaps sob demanda a partir das fontes.

  6. A saída do Metapost, sendo Postscript (encapsulado), pode ser incluída diretamente com latex; mas, como usa um conjunto restrito de funções Postscript, também pode ser incluído por pdflatexmeio de um conjunto de macros TeX originalmente escritas para ConTeXt.

  7. Um "Olá, mundo" para METAFONT pode ser encontrado no METAFONTbook, mas não é tão simples quanto um documento de teste semelhante para (La)TeX.

  8. Um "Olá, mundo" para Metapost pode ser escrito "facilmente". Escreva o seguinte hello.mpdocumento:

    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.
    

    Execute mpost helloe depois epstopdf hello-1.mpsobtenha hello-1.pdfa visualização

    insira a descrição da imagem aqui

A documentação completa do Metapost está disponível nas distribuições TeX (para TeX Live do texdoc metapost).

Responder2

Uma visão geral intuitiva -http://www.metaflop.com/modulator- certifique-se de ativar a anatomia.

insira a descrição da imagem aqui

Responder3

Para expandir o comentário de Herbert e como um complemento ao egreg, aqui está um trecho de código que permitirá processar MetaPostcódigo diretamente dentro do LuaLaTeX, sem necessidade de ferramentas externas, em parte graças aluamplib, uma interface de pacote/suporte para a mplibbiblioteca Lua, uma versão incorporada do MetaPost:

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

informação relacionada