Newsgroup: it.comp.software.tex
Titolo: Metapost And ConTeXt

Sto cercando di utilizzare Metapost sotto context, allora ecco quello che ho
fatto..
1) Ho attivato texexec sotto MikTeX
2) Ho scaricato la guida di metafun
3) Ho introdotto il seguente codie tratto dala prima pagina del manuale:
    \starttext
    \startuseMPgraphic{dummy}
            fill fullcircle scaled 5cm withcolor red ;
    \stopuseMPgraphic
    \useMPgraphic{dummy}
    \stoptext
MA quando apro il file pdf, al posto dell' immagine mi compare una scritta,
con scritto in un box:
                    name: dummy
                   file: mpgraph.1
                        unknown
Il manuale mi diceva che questo era il metodo piů semplice per la
generazione di grafici...
come funziona metapost sotto context?
Saluti Joshwa.

 E aggiungo pure, č diverso metafun da metapost?
MetaFun č il formato MetaPost di ConTeXt. Puoi generare il formato con
texexec --make metafun
ed assicurarti che metafun.mem venga messo insieme agli altri .mem 
(cosa che texexec purtroppo non fa. Devo ricordarmi di parlarne con 
Hans.)
-- 
Giuseppe "Oblomov" Bilotta
Axiom I of the Giuseppe Bilotta
theory of IT:
Anything is better than MS


Ho fatto quello che mi hai detto di fare, ma č cambiato solo il p
file in cui mi ha scritto il codice metapost: ora č
metapost-mpgraph.mp
ma mi genera pure 
mpgraph.mp
 con un scritto solo end.
Ma il problema č che non mi genera i file .1 .2 etc
Comunque eccoti il log:
__________________________________________________________
This is pdfeTeX, Version 3.14159-14f-released-20000525-2.1 (MiKTeX 2)
(preloaded format=cont-en 2002.2.9)  11 FEB 2002 20:17
entering extended mode
**MetaPost.tex
(MetaPost.tex{pdftex.cfg}
ConTeXt  ver: 2001.11.13  fmt: 2002.2.9  int: english  mes: english
language       : language en is active
system         : cont-new loaded
(E:\Programmi\MiKTeX\tex\context\base\cont-new.tex
systems        : beware: some patches loaded from cont-new.tex!
system (E-TEX) : [line 473] \ifcsname
)
system         : cont-old loaded
(E:\Programmi\MiKTeX\tex\context\base\cont-old.tex
loading        : Context Old Macros
)
system         : cont-fil loaded
(E:\Programmi\MiKTeX\tex\context\base\cont-fil.tex
loading        : Context File Synonyms
)
system         : cont-sys loaded
(E:\Programmi\MiKTeX\tex\context\base\cont-sys.tex
symbols        : loading symbolset nav
(E:\Programmi\MiKTeX\tex\context\base\symb-nav.tex
pdftex         : needs map file: original-context-symbol.map
)
symbols        : loading symbolset mvs
(E:\Programmi\MiKTeX\tex\context\base\symb-mvs.tex
pdftex         : needs map file: original-vogel-symbol.map
))
bodyfont       : 12pt rm is loaded
language       : patterns 2-en-2 2-uk-2 2-de-2 2-fr-2 2-es-2 2-nl-2 loaded
specials       : tex,postscript,rokicki loaded
system         : MetaPost.top loaded
(./MetaPost.top) (./MetaPost.tuo) (./MetaPost.tuo) (./MetaPost.tuo)
(./MetaPost.tuo) (./MetaPost.tuo) (./MetaPost.tuo) (./MetaPost.tuo)
(./MetaPost.tuo) (./MetaPost.tuo) (./MetaPost.tuo) (./MetaPost.tuo)
specials       : tex,postscript,rokicki is reset
specials       : loading definition file tpd
(E:\Programmi\MiKTeX\tex\context\base\spec-tpd.tex
specials       : loading definition file fdf
(E:\Programmi\MiKTeX\tex\context\base\spec-fdf.tex <unprotect 3> <protect
3>)
specials       : fdf loaded
)
specials       : fdf,tpd loaded
color          : system rgb is global activated
(./MetaPost.tuo) (./MetaPost.tuo)
systems        : begin file MetaPost at line 24
Randomizer initialized to 1425914455.
system(mpost --alias=mpost --undump=metafun MetaPost-mpgraph)...executed.
figures        : figure MetaPost-mpgraph can not be found
[1.1{psfonts.map}{winfonts.map}]
systems        : end file MetaPost at line 42
 )<cmtt10.pfb><cmr12.pfb>
Output written on MetaPost.pdf (1 page, 13302 bytes).
____________________________________________________________________________
________
Ma se invece lo compilo sečparatamente il codice metapost rendendo
disponibile
metapost-mpgraph.1 allora ecco che tutto funziona e questo č il log:
____________________________________________________________________________
_____________
This is pdfeTeX, Version 3.14159-14f-released-20000525-2.1 (MiKTeX 2)
(preloaded format=cont-en 2002.2.9)  11 FEB 2002 20:19
entering extended mode
**MetaPost.tex
(MetaPost.tex{pdftex.cfg}
ConTeXt  ver: 2001.11.13  fmt: 2002.2.9  int: english  mes: english
language       : language en is active
system         : cont-new loaded
(E:\Programmi\MiKTeX\tex\context\base\cont-new.tex
systems        : beware: some patches loaded from cont-new.tex!
system (E-TEX) : [line 473] \ifcsname
)
system         : cont-old loaded
(E:\Programmi\MiKTeX\tex\context\base\cont-old.tex
loading        : Context Old Macros
)
system         : cont-fil loaded
(E:\Programmi\MiKTeX\tex\context\base\cont-fil.tex
loading        : Context File Synonyms
)
system         : cont-sys loaded
(E:\Programmi\MiKTeX\tex\context\base\cont-sys.tex
symbols        : loading symbolset nav
(E:\Programmi\MiKTeX\tex\context\base\symb-nav.tex
pdftex         : needs map file: original-context-symbol.map
)
symbols        : loading symbolset mvs
(E:\Programmi\MiKTeX\tex\context\base\symb-mvs.tex
pdftex         : needs map file: original-vogel-symbol.map
))
bodyfont       : 12pt rm is loaded
language       : patterns 2-en-2 2-uk-2 2-de-2 2-fr-2 2-es-2 2-nl-2 loaded
specials       : tex,postscript,rokicki loaded
system         : MetaPost.top loaded
(./MetaPost.top) (./MetaPost.tuo) (./MetaPost.tuo) (./MetaPost.tuo)
(./MetaPost.tuo) (./MetaPost.tuo) (./MetaPost.tuo) (./MetaPost.tuo)
(./MetaPost.tuo) (./MetaPost.tuo) (./MetaPost.tuo) (./MetaPost.tuo)
specials       : tex,postscript,rokicki is reset
specials       : loading definition file tpd
(E:\Programmi\MiKTeX\tex\context\base\spec-tpd.tex
specials       : loading definition file fdf
(E:\Programmi\MiKTeX\tex\context\base\spec-fdf.tex <unprotect 3> <protect
3>)
specials       : fdf loaded
)
specials       : fdf,tpd loaded
color          : system rgb is global activated
(./MetaPost.tuo) (./MetaPost.tuo)
systems        : begin file MetaPost at line 24
Randomizer initialized to 1428247887.
system(mpost --alias=mpost --undump=metafun MetaPost-mpgraph)...executed.
figures        : dimensions of ./MetaPost-mpgraph.1 loaded from figurefile
itse
lf
[MP to PDF ./MetaPost-mpgraph.1] (./MetaPost-mpgraph.1)
Overfull \hbox (198.76532pt too wide) in paragraph at lines 38--39
[]/cmr12/Vediamo se il grafi-co com-pare qui []
\hbox(437.33026+2.33331)x426.78743, glue set - 1.0
.\hbox(0.0+0.0)x0.0
./cmr12/V
.\kern-0.97916
./cmr12/e
./cmr12/d
.etc.
[1.1{psfonts.map}{winfonts.map}]
systems        : end file MetaPost at line 42
 )<cmr12.pfb>
Output written on MetaPost.pdf (1 page, 6955 bytes).
____________________________________________________________________________
Saluti Joshwa...
P.S. Grazie mille.


 >
Ti riporto anche il codice del file che compilo in ConText :
______________________________________________________________
\setupoutput[pdftex]
\setupcolors[state=start]
\starttext
\startuseMPgraphic{dummy}
 path p; p:=(.0cm,.2cm)..(1.5cm,2cm)..(8cm,0.2cm);
 draw (.2cm,0)..(0,.2cm)..(-.2cm,0cm)..cycle;
 for i=1 upto 10:
%
% Notiamo che rotated equivale a "rotatearound (origin,15)"
%
  draw p rotated (36*i)
  withpen pencircle scaled .3mm;
 endfor
\stopuseMPgraphic
%\convertMPtoPDF{mpgraph}{1}{1}
%\immediate \write18 {mp 
metapost-mpgraph.mp
} % call metapost on \
jobname.mp
Vediamo se il grafico compare qui \useMPgraphic{dummy}
\stoptext
\bye
____________________________________________________________________________
____
Avendo attivato write18 = enable in MikTex.ini, l'istruzione di chiamata:
\immediate \write18 {mp 
metapost-mpgraph.mp
} % call metapost on \
jobname.mp
funziona in pdftex ma non in Context.
Ti segnalo però che nel MikTex.ini , non ho trovato una scritta del tipo
[Context]
ma solo senza parentesi quadre...
Ho dunque aggiunto write18=enable sotto
[MikTex]dove era già presente solo che in modalià disable.
Cmq per levarmi ogni dubbio ho aggiunto io im miktext,
[Context]
write18=enable
Insomma ho fatto di tutto di più, ma niente.
In Texnic Center durante l'esecuzione mi dice anche:
mpost: unrecognized option '-progname=mpost'.
quando lo compilo senza texexec
Ciao Joshwa


 
In texexec.ini per le MpPassString di miktex metti --alias=mpost
Che versione MiKTeX usi?
-- 
Giuseppe "Oblomov" Bilotta


 Che versione MiKTeX usi?
La  2.0


 La  2.0
Già ci sta la stringa che dici.
Il problema è che non mi converte il file 
mpfraph.mp
 in postscript,
il che, in termini poveri, significa che manca la chiamata a metapost.
Vabbè dai ci pensimo con calma domani.
Riprovo a fare con calma tutti i passaggi e ti faccio sapere.
Saluti Joshwa...


 Già ci sta la stringa che dici.
Ma viene usata? Se fai texexec --verbose, tra le used settings cosa ti 
mette come MpPassString?


 mette come MpPassString?
Sembra giusto...
TeXExec 2.6 - ConTeXt / PRAGMA ADE 1997-2001
     locating ini file : kpsewhich not found in path
     locating ini file : found by searching
               reading : E:\Programmi\MiKTeX\tex\context\perltk\texexec.ini
               setting : 'TeXShell' to 'miktex' for 'all'
               setting : 'UsedInterfaces' to 'en nl metafun mptopdf' for
'all'
               setting : 'UserInterface' to 'en' for 'all'
               setting : 'TeXExecutable' to 'tex' for 'all'
               setting : 'MpExecutable' to 'mpost' for 'all'
               setting : 'MpToTeXExecutable' to 'mpto' for 'all'
               setting : 'DviToMpExecutable' to 'dvitomp' for 'all'
               setting : 'DviSpecialScript' to 'dvispec' for 'all'
               setting : 'MpFormat' to 'metafun' for 'all'
               setting : 'TeXFormatFlag' to '&' for 'all'
               setting : 'MpFormatFlag' to '&' for 'all'
               setting : 'TeXFontsPath' to
'l:/tex/texmf;l:/tex/texmf-local;' for 'all'
               setting : 'TeXExecutable' to 'pdfetex' for 'miktex'
               setting : 'TeXVirginFlag' to '--initialize' for 'miktex'
               setting : 'TeXPassString' to '--alias=context' for 'miktex'
               setting : 'TeXBatchFlag' to '--interaction=batchmode' for
'miktex'
               setting : 'MpToTeXExecutable' to 'mptotex' for 'miktex'
               setting : 'MpVirginFlag' to '--initialize' for 'miktex'
               setting : 'MpPassString' to '--alias=mpost' for 'miktex'
               setting : 'MpBatchFlag' to '--interaction=batchmode' for
'miktex'
               setting : 'TeXFormatFlag' to '--undump=' for 'miktex'
               setting : 'MpFormatFlag' to '--undump=' for 'miktex'
               setting : 'TeXPassString' to
'--alias=context --terminal=oem --enable-write18' for 'miktex'
          used setting : TeXShell = miktex
          used setting : SetupPath =
          used setting : UserInterface = en
          used setting : UsedInterfaces = en nl metafun mptopdf
          used setting : TeXFontsPath = l:/tex/texmf;l:/tex/texmf-local;
          used setting : MpExecutable = mpost
          used setting : MpToTeXExecutable = mptotex
          used setting : DviToMpExecutable = dvitomp
          used setting : TeXProgramPath =
          used setting : TeXFormatPath =
          used setting : ConTeXtPath =
          used setting : TeXScriptsPath =
          used setting : TeXExecutable = pdfetex
          used setting : TeXVirginFlag = --initialize
          used setting : TeXBatchFlag = --interaction=batchmode
          used setting : MpBatchFlag = --interaction=batchmode
          used setting : TeXPassString
= --alias=context --terminal=oem --enable-write18
          used setting : TeXFormatFlag = --undump=
          used setting : MpFormatFlag = --undump=
          used setting : MpVirginFlag = --initialize
          used setting : MpPassString = --alias=mpost
          used setting : MpFormat = metafun
          used setting : MpFormatPath =
          used setting : FmtLanguage =
          used setting : FmtBodyFont =
          used setting : FmtResponse =
          used setting : TcXPath =
          used setting : SetFile =
                --help   show this or more, e.g. '--help interface'
        total run time : 0 seconds
__________________________________________________
La versione di ConTeXt è
\def\contextversion{2001.11.13}
Comunque mi sono creato un file batch semplicisimo del tipo
MPContext.bat:
___________________
cont-en %1
mpost 
mpgraph.mp
cont-en %1
___________________
Eì' tutto funziona...
te lo scrivo per farti rendere conto del "pezzo"  mancante.
la conversione mp to postscript.
E' come se non riuscise a chiamare metapost.
Comunque chiariscimi una cosa.
Come mai se attivo in cont-sys, le opzioni che mi hai detto
il file metapost (sorgente) viene posto in 
metapost-mpgraph.mp
?
Inoltre adoperando questa tattica, mi permette l'inserimento di una sola
figura
nel file 
metapost-mpgraph.mp
Ho provato dunque a reinstallare context, senza attivare cont-sys
e mi piazza anche più beginfigure in uno stesso
mpgraph.mp
 file..
sichè è semplice poi chiamando la procedura batch., ottenere il risultato
sperato.
Il problema fondamentale credo sia comunque, il
write18.
Aggiungendo la stringa che mi dici. in pdftex funziona il passaggi del
controllo al command
ma il context lo inibisce.
Saluti ancora. Joshwa.


 controllo al command ma il context lo inibisce.
Prova il seguente documento ConTeXt:
\starttext
\write18{echo Funziona!}
\stoptext
e pasta qui il log completo.


 ConTeXt ed è quindi possibile riciclare il nome.
Cioè non è possibile che in uno stesso file di tipo mp mi compaia quello che
mi compare adesso?:
nota il beginfig(1)
e il beginfig(2)
Una volta chiamato metapost poi ci pensa lui a creare mpgraph.1 e mpgraph.2
..etc
Il problema è che attivando quelle opzioni che dici tu, mi compare sempre e
solo
beginfig(1) che è l'ultimo grafico creato nel sorgente context.
Lo so ci vuole un po' di pazienza con me :-)))
Ti saluto quì, perchè sotto trovi parte del metapost generato da Context,
senza le opzioni
attivate in cont-sys.
Insomma se attivo cont-sys mi appare solo uno ed uno solo beginfig.
Ciao Joshwa..
____________________________________________________________________________
___
...............
% collected graphics of job "MetaPost"
mpgraph:=1;
randomseed := 3936;
if unknown context_tool : input mp-tool ;
fi ;
if unknown context_spec : input mp-spec ;
fi ;
if unknown context_grph : input mp-grph ;
fi ;
..
..
RightMarginDistance := 11.99829pt;
RightMarginWidth := 75.58197pt;
RightEdgeDistance := 0.0pt;
RightEdgeWidth := 0.0pt;
PageOffset := 0pt;
PageDepth := 0pt;
enddef ;
if unknown context_core : input 
mp-core.mp
 ;
fi ;
;;
beginfig(1);
path p;
p := fullcircle scaled 3in xscaled 2;
pickup pencircle scaled .1in;
drawarrow p withcolor .800white;
for i=0 step 20 until 100: draw point i of p withcolor (i/100)*red;
endfor;
draw point 3 of p withcolor .625yellow;
draw point .5 along p withcolor .625yellow;
for h=0 step 20 until 300: draw point (h/10)*cm on p;
endfor;
draw point 15cm on p;
;
endfig;
if unknown context_tool : input mp-tool ;
fi ;
if unknown context_spec : input mp-spec ;
...
....
beginfig(2);
fill fullcircle scaled 2in withcolor .625yellow;
draw unitsquare scaled 4in withcolor .625red;
clip currentpicture to unitsquare scaled 1in;
setbounds currentpicture to unitsquare scaled 2in;
endfig;
if unknown context_tool : input mp-tool ;
fi ;
if unknown context_spec : input mp-spec ;
fi ;
if unknown context_grph : input mp-grph ;
fi ;
defaultfont := "cmr10" ;
defaultscale := 12.0pt/10pt ;
graphictextformat := "context" ;
graphictextdirective "\global \loadfontfileoncetrue " ;
if not known _data_prefix_ : string _data_prefix_ , _data_suffix_ ;
fi ;
_data_prefix_ := "mpd-" ;
_data_suffix_ := ".mpd" ;
boolean collapse_data ;
collapse_data := true ;
_data_suffix_ := ".mpd" ;
cmykcolors := true ;
color OverlayColor, OverlayLineColor ;
OverlayWidth := 597.51323pt ;
OverlayHeight := 426.78743pt ;
OverlayDepth := 426.78743pt ;
OverlayColor := (0,0,0) ;
OverlayLineWidth := 0pt;
OverlayLineColor := (0,0,0) ;
BaseLineSkip := 14.46669pt;
LineHeight := 14.46669pt;
BodyFontSize := 12.0pt;
StrutHeight := 10.41603pt;
StrutDepth := 4.05064pt;
CurrentWidth := 426.78743pt;
CurrentHeight := 597.51323pt;
EmWidth := 11.74988pt;
ExHeight := 5.16667pt;
PageNumber := 1;
RealPageNumber := 1;
LastPageNumber := 1;
prologues := 2;
if unknown context_page : input mp-page ;
fi ;
boolean PageStateAvailable ;
PageStateAvailable := true ;
boolean OnRightPage ;
OnRightPage := true ;
def LoadPageState = OnRightPage := true;
RealPageNumber := 1;
PageNumber := 1;
NOfPages := 1;
PaperHeight := 845.04684pt;
PaperWidth := 597.50787pt;
PrintPaperHeight := 845.04684pt;
PrintPaperWidth := 597.50787pt;
TopSpace := 71.12546pt;
BackSpace := 71.13275pt;
MakeupHeight := 711.3191pt;
MakeupWidth := 426.78743pt;
TopHeight := 0.0pt;
TopDistance := 0.0pt;
HeaderHeight := 56.90294pt;
HeaderDistance := 0.0pt;
TextHeight := 597.51323pt;
FooterDistance := 0.0pt;
FooterHeight := 56.90294pt;
BottomDistance := 0.0pt;
BottomHeight := 0.0pt;
LeftEdgeWidth := 0.0pt;
LeftEdgeDistance := 0.0pt;
LeftMarginWidth := 75.58197pt;
LeftMarginDistance := 11.99829pt;
TextWidth := 426.78743pt;
RightMarginDistance := 11.99829pt;
RightMarginWidth := 75.58197pt;
RightEdgeDistance := 0.0pt;
RightEdgeWidth := 0.0pt;
PageOffset := 0pt;
PageDepth := 0pt;
enddef ;
if unknown context_core : input 
mp-core.mp
 ;
fi ;
;;


 mi compare adesso?:
No. Se usi quelle opzioni, le immaginig MetaPost le compila ed include 
una alla volta (ovviamente quando la cosa funziona), e le compila ed 
include al momento dell'inclusione. Quindi non serve scriverne più 
d'una per volta. Questo è normale e giusto, ed infatti da me funziona. 
Ora c'è da capire perché da te non funziona.
Torniamo all'inizio. Dammi il log del seguente snippet:
-------------------------------------------------------
\setupoutput[pdftex]
\starttext
\startuseMPgraphic{dummy}
 draw fullcircle scaled 1cm;
\stopuseMPgraphic
Vediamo se il grafico compare qui \useMPgraphic{dummy}
\stoptext
-------------------------------------------------------


   sorting and checking : running texutil
AHA!!! BECCATO!!! Ti mancava il formato MetaFun! Generalo con
texexec --make --alone metafun
e poi copia metafun.mem dove sta anche plain.mem (probabilmente in
c:\localtexmf\miktex\mem). Con questo le compilazioni dovrebbero 
andare tutte a buon fine, anche senza usare le chiamate \write18.
Se tutto va bene, e vuoi usare le chiamate \write18, puoi anche 
attivare \runMP... in cont-sys.tex; già che ci sei, leggi la nota 
successiva, nello stesso file!!!
Per inciso, mi viene il sospetto che chiamare MetaPost dopo TeX e non 
da dentro possa essere più veloce, giacché viene chiamato una volta 
sola per tutte le immagini. Prova a fare dei test con file che hanno 
tre o quattro immagini e vedi un po' la differenza di velocità 
(assicurandoti di partire ogni volta con il solo file .tex, niente 
file ausiliari.)
Ed infine, anche se non c'entra niente: noto che non carichi la 
sillabazione per l'italiano. Ricordati di modificare cont-usr.tex 
togliendo il commento alle lingue opportune, rigenerando poi i 
formati.


 file ausiliari.)
Adesso funziona tutto perfettamente. Grazie mille.
Ciao Joshwa. Alla prossima.
