- Questo topic ha 12 risposte, 5 partecipanti ed è stato aggiornato l'ultima volta 12 anni, 4 mesi fa da
OldClaudio.
-
CreatoreTopic
-
19 Aprile 2014 alle 21:12 #94061::
Salve a tutti. Sto provando ad utilizzare il pacchetto feynmf per la prima volta. Tanto per fare una prova o semplicemente copiato e incollato il seguente codice che ho trovato sulla documentazione originale:`\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}`Ho ovviamente aggiunto il pacchetto ma, tuttavia, non riesco a compilare. Sapete spiegarmi quale procedure devo seguire?
Grazie
-
CreatoreTopic
-
AutoreRisposte
-
-
19 Aprile 2014 alle 21:42 #94062::
Premesso che non conosco per niente METAFONT e METAPOST(sono abituato a utilizzare TiKZ e mi trovo bene :D) se leggi la guida il paragrafo 2.3 scrive che, dopo aver compilato con latex, devi compilare con METAFONT e poi con METAPOST. Dovrebbe esserci il tasto apposito sul tuo editor, se è latex-friendly. Prova a compilare normalmente e poi a compilare con il comando METAPOST da edito o usando i comandi descritti nel paragrafo da shell.
-
19 Aprile 2014 alle 23:51 #94063::
Si ho già provato. Il problema è che, da quello che ho capito io, la prima compilazione di Latex dovrebbe produrre un file .mp che poi va a sua volta compilato da shell. A questo punto bisognerebbe nuovamente compilare con Latex. A però è proprio la prima compilazione che non va a buon fine ma si interrompe a metà dell’opera.
-
20 Aprile 2014 alle 6:32 #94064::
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)
-
20 Aprile 2014 alle 7:49 #94065
-
20 Aprile 2014 alle 12:35 #94066::
Io è un po’ che giro tra diversi pacchetti per disegnare grafici di Feynman. Prima usavo Axodraw con il quale onestamente mi trovo molto bene, però essendo pure quello vecchissimo ora mi crea problemi con i file immagine che mi produce Mathematica. Allora sono passato a feynmf/feynmp. Ora proverò feynmp-auto, è recente?
Altrimenti mi adatterò a passare tutte le istruzioni necessarie a feynmp.
-
20 Aprile 2014 alle 15:30 #94067
-
20 Aprile 2014 alle 16:06 #94068::
einj” post=93643Io è un po’ che giro tra diversi pacchetti per disegnare grafici di Feynman. Prima usavo Axodraw con il quale onestamente mi trovo molto bene, però essendo pure quello vecchissimo ora mi crea problemi con i file immagine che mi produce Mathematica. Allora sono passato a feynmf/feynmp. Ora proverò feynmp-auto, è recente?
Altrimenti mi adatterò a passare tutte le istruzioni necessarie a feynmp.Il pacchetto feynmp-auto è solo un’aggiunta a feynmp che, a sua volta, accetta la stessa sintassi di feynmf. La differenza fra i due è nell’uscita: un file [tt].mp[/tt] per il primo e [tt].mf[/tt] per il secondo.
Al giorno d’oggi feynmp è più conveniente e più maneggevole. Il pacchetto feynmp-auto aggiunge la compilazione automatica del file Metapost, così, dalla seconda compilazione, il grafico viene incluso da sé. La seconda compilazione è necessaria solo quando si modifica un grafico o se ne aggiunge uno, allo stesso modo di come accade per [tt]\label[/tt] e [tt]\ref[/tt] o per [tt]\cite[/tt].
Ciao
Enrico
-
20 Aprile 2014 alle 20:42 #94069::
Scusate se continuo a rompere, ma proprio non riesco a farlo funzionare. Quello che ho fatto è aggiungere il paccetto feynmp-auto come qualsiasi altro pacchetto. Da quello che ho capito al suo interno dovrebbero già essere implementati tutti i comandi necessari per far girare l’originario pacchetto feynmp. A questo punto aggiungo le seguenti righe di codice, giusto per fare una prova:`\begin{fmffile}{pippo}
\begin{fmfgraph*}(40,30) \fmfpen{thick}
\fmfleft{i1,i2} \fmfright{o1,o2}
\fmf{fermion}{i1,v1,o1} \fmf{fermion}{i2,v2,o2}
\fmf{photon,label=$q$}{v1,v2} \fmfdot{v1,v2}
\end{fmfgraph*}
\end{fmfile}
`Compilo utilizzando PdfLatex conTexShop e quello che ottengo é:
`./HQET.tex:193: Incomplete \iffalse; all text was ignored after line 193.
\fi
l.193 \begin{fmffile}{pippo}?`
Sto facendo qualcosa di molto stupido. Avete idea di cosa? 🙁
-
21 Aprile 2014 alle 6:41 #94070::
Controlla il mio codice:`% !TEX TS-program = pdflatex
% !TEX encoding = UTF-8 Unicode\documentclass{article}
\usepackage{feynmp-auto}
% Il pacchetto feynmp-auto chiama il pacchetto originale feynmp e definisce da solo
% la graphic rule per gli output di metapost; lancia l'esecuzione di metapost,
% e ne converte l'output con MP2PDF di ConTeXt. Evita di riconvertire il file
% ottenuto se il file .mp non è stato modificato dall'ultimo run.
%
% In ogni caso bisogna eseguire pdflatex due volte.\usepackage{graphicx}
%\DeclareGraphicsRule{*}{mps}{*}{}% serve solo sen NON si usa feynmp-auto\begin{document}
\unitlength=1mm
\begin{fmffile}{diagram}
\begin{fmfgraph*}(40,30)
\fmfpen{thick}
\fmfleft{i1,i2}
\fmfright{o1,o2}
\fmf{fermion}{i1,v1,o1}
\fmf{fermion}{i2,v2,o2}
\fmf{photon,label=$q$}{v1,v2}
\end{fmfgraph*}
\end{fmffile}\end{document}`che non differisce molto dal tuo, nel senso che contiene anche il resto del file sorgente.
Compila perfettamente, lavorando con l’editor TeXShop come fai tu, e, eseguendo due compilazioni di pdflatex, produce il risultato atteso.
IL tuo errore nasce, sembra, da un comando condizionale incompiuto. Ora visto che sei su un Mac come me, l’unica differenza che posso immaginare è che tu abbia una versione del sistema operativo diversa dalla mia e che tu abbia una installazione parziale della distribuzione MacTeX, o comunque una versione non aggiornata.
Il lavoro su un OS Maverick aggiornato e con la distribuzione di MacTeX aggiornata a ieri l’altro. Il pacchetto feynmp-auto controlla da solo se hai attiva l’opzione -shell-escape in modalità protetta, necessaria per eseguire il programma metapost dietro le quinte. Potrebbe essere questo test che fallisce, ma se fosse così vuol dire che la tua distribuzione di MacTeC è vecchiotta; hai letto la documentazione di feynmp-auto? ci sono scritte cose in merito ai requisiti di sistema necassari epr usarlo, ma solo tu puoi sapere se il tuo sistema ha quei requisiti.Controlla bene sia il file sorgente, sia tutti gli altri dati che ti ho indicato sopra. E, nel caso che tu abbia le installazioni dei programmi un po’ vecchiotta, ricordati il consiglio che diamo sempre: distribuzione del sistema TeX completa e aggiornata sempre e comunque, con qualunque piattaforma e sistema operativo.
Per pura curiosità ho copiato il codice suddetto sul mio vecchio MacBookPro con sistema operativo 10.5.8, ma con MacTeX aggiornatissimo; compila perfettamente.
-
21 Aprile 2014 alle 10:07 #94071::
einj” post=93646Scusate se continuo a rompere, ma proprio non riesco a farlo funzionare. Quello che ho fatto è aggiungere il paccetto feynmp-auto come qualsiasi altro pacchetto. Da quello che ho capito al suo interno dovrebbero già essere implementati tutti i comandi necessari per far girare l’originario pacchetto feynmp. A questo punto aggiungo le seguenti righe di codice, giusto per fare una prova:
`\begin{fmffile}{pippo}
\begin{fmfgraph*}(40,30) \fmfpen{thick}
\fmfleft{i1,i2} \fmfright{o1,o2}
\fmf{fermion}{i1,v1,o1} \fmf{fermion}{i2,v2,o2}
\fmf{photon,label=$q$}{v1,v2} \fmfdot{v1,v2}
\end{fmfgraph*}
\end{fmfile}
`Compilo utilizzando PdfLatex conTexShop e quello che ottengo é:
`./HQET.tex:193: Incomplete \iffalse; all text was ignored after line 193.
\fi
l.193 \begin{fmffile}{pippo}?`
Sto facendo qualcosa di molto stupido. Avete idea di cosa? 🙁
No, non ho idee, a parte che hai uno scorretto [tt]\end{fmfile}[/tt] che dovrebbe essere [tt]\end{fmffile}[/tt] (nota le due effe).
Questo va fino in fondo senza problemi.
`\documentclass[a4paper]{article}
\usepackage{feynmp-auto}
\begin{document}
\begin{fmffile}{pippo}
\begin{fmfgraph*}(40,30) \fmfpen{thick}
\fmfleft{i1,i2} \fmfright{o1,o2}
\fmf{fermion}{i1,v1,o1} \fmf{fermion}{i2,v2,o2}
\fmf{photon,label=$q$}{v1,v2} \fmfdot{v1,v2}
\end{fmfgraph*}
\end{fmffile}
\end{document}`
Ciao
Enrico
-
21 Aprile 2014 alle 10:24 #94072::
Effettivamente ho copiato il tuo codice su un nuovo file .tex e gira perfettamente anche a me. A questo punto mi viene il dubbio che io abbia qualche altro pacchetto in conflitto. Questo è quello che dichiaro all’inizio del .tex:`\documentclass[a4paper,12pt]{article}
\usepackage[applemac]{inputenc}
\usepackage[english]{babel}
\usepackage{amsfonts}
\usepackage{amsthm}
\usepackage{graphicx}
\usepackage{braket}
\usepackage{bbold}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{verbatim}
\usepackage{quotes}
\usepackage[margin=2.3cm]{geometry}
\usepackage{slashed}
\usepackage{feynmp-auto}`Non so, vedrò di risolvere. Grazie mille dell’aiuto comunque!
EDIT: Ok, ho risolto. Sembra che, non assolutamente per quale motivo, il pacchetto quotes andasse in conflitto. Una volta rimosso quello il problema si è risolto da solo!
-
21 Aprile 2014 alle 11:55 #94073::
Bene che hai risolto.Tuttavia vedo con orrore che usi la codifica applemac. L’unica codifica che dovrebbe essere vietata per legge…:wink:
Per capire perché e per convertire i tuoi file con una codifica utf8 (o almeno latin1, se utf8 ti imbarazza) leggi la guida tematica sulle codifiche, scaricandola dalla sezione Documentazione, sottosezione guide tematiche.
Se tu ci avessi mandato anche il più piccolo frammento del tuo testo nel file sorgente, non avremmo potuto aiutarti, grazie a quella codiifca “proprietaria” che impedisce al comunicazione con chiunque non lavori su un Mac. io lavorio su un Mac, ma mi sono guardato bene fin dall’inizio dall’usare applemac, e l’unica volta che ho ricevuto un testo composto con quella codifica ho “incasinato” tutto; per questo ed altri motivi ho scritto insieme ad un altro sostenitore di questo sito al guida tematica che ti ho suggerito.
Mai più applemac!
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.