Sanjoy Mahajan wrote:
context parses the ps code and converts it to pdf and in the process uses tex to do the fonts
%%Page: 1 1 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap 1 setlinejoin gsave 0 0 translate newpath 273.998159 412.742829 moveto 338.001841 412.742829 lineto
...
stroke showpage
looks parsable
asy -t tex labelbox.asy [make eps, use plain tex for labels]
which is failing, I think, in this line from the intermediate labelbox_.tex file:
\setbox\ASYpsbox=\hbox{\epsfbox{labelbox_0.eps}}%
But I haven't figured out who generates labelbox_0.eps and why it isn't being generated when using tex but is when using latex. Obviously I haven't found all the places where latex is hardwired into asymptote.
And even what I did is incomplete. The latex interface code spits out e.g. \fontsize{12}{14.4}, which I just ignore if plain tex is being used.
Compared to the monster .eps files that asymptote produces, I now love metapost's simple postscript files and one-line, easily parsed font commands.
if metapost had path bound specials and a few more features ...
From: "Mojca Miklavec"
But I've given up once I saw how harcoded LaTeX was in there.
I've pretty much given up too.
from what you describe it sounds like generic usage was not one part of the design
Metapost support in ConTeXt is much deeper and I wonder how much work should be invested into making as good support for Asymptote in ConTeXt as it is now for metapost.
Whoever is game can start with the diff below, but I'm also not sure it's worth it. My ideal figure program:
1. Agnostic about the tex engine (tex/latex/context), easy to integrate with any of them. MP is good here. 2. 3D built in. 3. Modern color models (cmyk, transparency)
and even then, most of that has to take place in the backend in order to get proper integration (efficiency and such), so if for instance mp had a model for arbitrary collections, like: (r,g,b) == (c,m,y,k) => (a,b,c,d,...) actually, colors in mp are just triplets
4. Decent syntax. MP is a bit ghastly, and writing macros is horrible esp. with vardefs. I prefer a non-macro language, and asymptote is good that way
well, mp misses a few things but should not be compared to tex (different model for globals, grouping, functions)
But it's a lot of work to get it right.
-Sanjoy
`A society of sheep must in time beget a government of wolves.' - Bertrand de Jouvenal
diff -r 57c230047c98 base/babel.asy --- a/base/babel.asy Tue Feb 07 23:34:29 2006 -0500 +++ b/base/babel.asy Tue Apr 25 00:28:42 2006 -0400 @@ -1,4 +1,6 @@ void babel(string s) void babel(string s) { + if (texengine == "tex") + abort("No babel package in plain TeX."); texpreamble("\usepackage["+s+"]{babel}"); }
such code should not be inline, but in a config file or variable, seeing this i'd say: for the moment forget about patching since it's hard to keep up with such changes btw, it should be: if texengine == latex then texpreamble ... else you need an abort for each macro package
diff -r 57c230047c98 base/fontsize.asy --- a/base/fontsize.asy Tue Feb 07 23:34:29 2006 -0500 +++ b/base/fontsize.asy Tue Apr 25 00:28:42 2006 -0400 @@ -1,1 +1,3 @@ texpreamble("\usepackage{type1cm}"); + etc
Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------