Re: Compilare con pacchetto feynmf

#94064
OldClaudio
Partecipante
    Up
    0
    Down
    ::


    Il prblema è che il pacchetto feynMF e anche il pacchetto feynMP sono del 1996, vecchi come il “cucco”. Allora pdflatex non esisteva ancora.

    bisogna estrapolare quanto scritto nella guida e predisporre un file come il seguente:`% !TEX TS-program = pdflatex
    % !TEX encoding = UTF-8 Unicode

    \documentclass{article}

    \usepackage{feynmp}
    \usepackage{graphicx}
    \DeclareGraphicsRule{*}{mps}{*}{}

    \begin{document}

    \unitlength=1mm

    \begin{fmffile}{diagram}
    \begin{fmfgraph}(40,25)
    \fmfleft{i1,i2}
    \fmfright{o1,o2}
    \fmf{fermion}{i1,v1,o1}
    \fmf{fermion}{i2,v2,o2}
    \fmf{photon}{v1,v2}
    \end{fmfgraph}
    \end{fmffile}

    \end{document}`
    Bisogna cioè aggiungere la specifica di caricare il pacchetto graphicx, e bisogna definire una regola per trattare i file in uscita da metapost in un modo che funzioni. Nella fattispecie visto che il codice è vecchissimo, l’uscita del file metapost ha un’estensione numerica; nel mio/tuo caso si chiama diagram.1 e quel valore “1” è cablato nel codice che lo genera. Perciò bisognerebbe dirgli di usare l’estensione mps che viene capita da pdflatex, ma il pacchetto feynMP se anche avesse quell’estensione la filtrerebbe come estensione non conosciuta e emetterebbe il messaggio diagram.1 nont found.

    Percìò bisogna dire che ogni estensione diversa da quelle che già conosce (l’asterisco nel primo argomento del comando \DeclareGraphicsRulle) va trattato come un file mps (secondo argomento) e non occorre specificare la scatola circoscritta , il bounding box, (terzo argomento) e non bisogna passarlo attraverso nessun programma preliminare (quarto argomento). \DeclareGraphicsRule è un comando descritto nella documentazione del pacchetto graphicx da leggere con texdoc grfguide dato da terminale.

    Fatto ciò, bisogna compilare con pdflatex; quindi clicco sul pulsante del mio editor per compilare con pdflatex, poi csempre con l’editor seleziono il file diagram.mp per aprirlo con lo stesso editor, ma questa volata clicco cosul pusante metapost; terminato il lavoro di metapost, circa un secondo, torno sulla festra dell’editor che mi mostra il file sorgente, riclicco sul bottone pdflatex, et voila, ecco il diagramma di Feynmann a posto.

    Peccato che senza specificare il valore di \unitlength sia microscopico; infatti le dimensioni di 40 per 25 implicano l’unità di misura \unitlength che di default vale 1pt; conviene quindi mettere \setlength{\unitlength}{1mm} e il diagramma esce in formato decente. Invece di 1mm si pùo mettere qualunque altra cosa.

    Capisco che volevi solo provare questo pacchetto, ma come vedi anche se lo si può usare, non è molto conveniente; questo a causa della sua intrinseca “vecchiaia”; probabilmente l’autore non ha nessun interesse a modificarlo e aggiornarlo, cosa che non richiederebbe un grosso sforzo, ma il codice che egli usa è delicato e vecchiotto, quindi io non ci metterei le mani; lui se lo volesse fare lo farebbe in quatrro e quattr’otto. Si tratta solo di verificare quale programma si sta usando latex, pdflatex, xwlatex, lualatex,…, e attribuire il nome del file di uscita della compilazione metaposta con il numero che fa parte del nome e l’estensione mps: diagram-1.mps, invece di diagram.1 — metapost è capace di farlo, mnasta che il suo codice sorgente lo psefichi.

    PS: Ho usato metapost, perché produce il file in linguaggio PostScript semplificato in modo diretto; con metafont bisogna fare dei giri interminabili; inoltre il mio TeXShop, l’editor, ha il bottone per eseguire metapost (giustamente) e non ha il bottone per eseguire metafont (per me che talvolta disegno font, questo è un peccato, ma ne posso fare tranquillamente a meno)

    Go to top