- Questo topic ha 9 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 6 anni, 1 mese fa da
OldClaudio.
-
CreatoreTopic
-
12 Luglio 2020 alle 7:52 #118364::
Salve a tutti,ho bisogno di inserire un grafico generato da gnuplot affiancato ad un raster. Sto provando con l’ambiente \subfigure (con cui non ho mai avuto problemi) con un listato del tipo:
`\documentclass[a4paper,12pt,fleqn]{paper}
\usepackage[T1]{fontenc} %Codifica Font di Uscita
\usepackage[utf8]{inputenc} %Codifica Font di Ingresso
\usepackage[italian]{babel}\usepackage{graphicx}
\usepackage{subfigure}\usepackage[shell,subfolder]{gnuplottex}
\usepackage{color}\begin{document}
\begin{figure}[!hbt]
\centering
\subfigure[][]
{\begin{gnuplot}[terminal=epslatex, terminaloptions={color size 8cm,14cm}]
plot sin(x)
\end{gnuplot}}
\subfigure[][]
{\includegraphics[width=0.4\textwidth]{figura.png}}
\end{figure}
\end{document}`ma purtroppo ottengo errori tra cui:
! Argument of \verbatim@ has an extra }.\par \end{gnuplot}}
! Paragraph ended before \verbatim@ was complete.\par \end{gnuplot}}
! Extra }, or forgotten \endgroup.} \end{gnuplot}}
! Extra }, or forgotten \endgroup.\@subfloat …use {c@\@captype }\m@ne \fi \egroup \end{gnuplot}}e non capisco dove sbaglio 😕 .
Qualcuno ha qualche idea per risolvere?
Grazie.
-
CreatoreTopic
-
AutoreRisposte
-
-
12 Luglio 2020 alle 13:28 #118365::
Benvenuto nel forumNon ho la più vaga idea del perché non ti funzioni il codice, tuttavia avrei qualche commento da fare.
a) Perché usi terminal=epslatex, e non terminal=pdf? Può darsi che tu abbia ragioni serie per questa scelta, ma l’unico motivo per il quale epslatex è necessario, è quando devi usare latex-il-programma, che, credo, nessuno oggi usi più se non in rarissime circostanze che oggi non hanno più ragione d’essere. Lamirida de pacchetti esistenti oggi consento di usare pdflatex, xelatex o lualatex, con qualunque tioo fdiimmagine incorporabile dai programmi di composizione del sistema TeX. Siccome non specifichi se stai lavorando con TeX Live o co MiKTeX, lail mio punto interrogativo resta senza risposta.
b) io non userei gnuplottex, ma da terminale comporrei la figura da tracciare con gnuplot specificando terminal=pdf; ottenuta al figura pdf, oltre ad esaminarla per suo conto per sapere se è corretta, se i font sono a posto, se necessita di un po’ di smarginatura, se le dimensioni naturali della figura son ragionevoli, eccetera, la incorporerei come una normale figura nel documento da comporre.
c) starie anche attento ad usare i fattori di scala di \includegraphics; in particolare non userei i centimetri di larghezza e altezza di gnuplot, e un fattore di scala (scale=0.4) per l’altro \includegraphics. I fattori di scala per mettere figure affiancate non sono una buona idea perché la oro somma deve essere complessivamante minore di uno, di quanto? dipende da quante sufigure si vogliono mettere in linea; è molto più sicure usare sempre dimensioni esplicite mediante frazioni di \texwith, la larghezza delle gabbia di composizione. quindi se per il diagramam creato con gnuplot usi \includegraphics[width-0.5\textwidth] e per il raster, usi \includegrapchics[width=04\textwidth, sei più o meno sicuro che le due ffigure possono stare assieme affiancato; se non lo stesserom devi diminuire di poco una delle due, ma ci sei quaisi sicuramante con la prima impostazione.
Ecco, questi sono i miei consigli, e se li segui, anche senza sapere perché ora non ti funzionano, è possibile che tu possa mettere le due immagini affiancate al primo colpo e senza errori.
-
13 Luglio 2020 alle 3:52 #118366::
Ciao.
Perché non provi pgfplots?
Può utilizzare gnuplot e il grafico può essere personalizzato in moltissimi modi.
Oppure puoi utilizzare pgfplots con lualatex e scordarti lo shell escape.
Come dice il manuale di pgfplot…“The differences between \addplot expression and plot gnuplot are:
• \addplot expression does not require any external programs and requires no additional command
line options.
• \addplot expression does not produce a lot of temporary files.
• \addplot gnuplot uses radians for trigonometric functions while \addplot expression has degrees
(unless pgf is configured for trig format=rad).
• \addplot gnuplot is faster than pdflatex. Using lualatex and compat=1.12 (or higher) can
reach a similar speed.
• \addplot gnuplot has a larger mathematical library.
• \addplot gnuplot has a higher accuracy. Note that lualatex and compat=1.12 (or higher) come
with the same precision.”Alla prossima.
R.
-
13 Luglio 2020 alle 5:57 #118367::
OldClaudio” post=118812
a) Perché usi terminal=epslatex, e non terminal=pdf? Può darsi che tu abbia ragioni serie per questa scelta, ma l’unico motivo per il quale epslatex è necessario, è quando devi usare latex-il-programma, che, credo, nessuno oggi usi più se non in rarissime circostanze che oggi non hanno più ragione d’essere. Lamirida de pacchetti esistenti oggi consento di usare pdflatex, xelatex o lualatex, con qualunque tioo fdiimmagine incorporabile dai programmi di composizione del sistema TeX. Siccome non specifichi se stai lavorando con TeX Live o co MiKTeX, lail mio punto interrogativo resta senza risposta.– Uso epslatex perchè sulla documentazione è scritto che l’output è migliore, ma in realtà non c’è una ragione specifica potrei provare anche treminal=pdf.
– Uso TexLive con TexMaker su Mac e compilo con comando pdflatex.OldClaudio” post=118812
b) io non userei gnuplottex, ma da terminale comporrei la figura da tracciare con gnuplot specificando terminal=pdf; ottenuta al figura pdf, oltre ad esaminarla per suo conto per sapere se è corretta, se i font sono a posto, se necessita di un po’ di smarginatura, se le dimensioni naturali della figura son ragionevoli, eccetera, la incorporerei come una normale figura nel documento da comporre.È proprio quello che voglio evitare, dover fare avanti è dietro da latex a gnuplot ho da mettere molti grafici simili e così mi sembra un modo più svelto
Ti ringrazio per le considerazioni fatte al punto c e le terrò presenti.
-
13 Luglio 2020 alle 8:53 #118368::
Mac + Texmaker? Combinazione sicuramente lecita, ma insolita.
Avendo installato MacTeX (TexLive + TeXShop e qualche altra facility per Mac, tra le quali TeX Live Utility.app, con la quale gestisco gli aggiornamenti settimanali con la comodità dell’interfaccia tipica del Mac), io uso come editor TeXShop che trovo particolarmente efficace, almeno per il modo che io ho di scrivere i miei file sorgente; Una delle caratteristiche importanti e che apprezzo in modo particolare, è che usa da solo il correttore ortografico giusto a seconda delle lingua in cui è scritto il file sorgente; un’altra caratteristiche è che i creatori di TeXShop hanno inventato le righe magiche (righe di autoconfigurazione) e devo dire che sono formidabili; sono state imitate anche da TeXworks, TeXstudio, Texmaker (tanto per citare alcuni editor multipiattaforma; ce ne sono anche altri specifici per questo o quel sistema operativo) ma non si limitano agli “engine” originali, bensì ogni utente può crearsene anche di propri. Per esempi: nel tuo caso è necessario usare pdflatex con l’opzione –shell-escape; non esiste preconfezionata una versionde di engine con questa opzione preimpostata; bisognerebbe aggiungere questa opzione al comando che TeXstudio o Texmaker invia la sistema operativo, ma poi bisogna ricordarsi di toglierla perché gnuplot non è fra i programmi “sicuri”. Per prudenza è sempre meglio di avere un automatismo che attiva lo shell escape, prorpio per evitare che qualche malware abbia infettato questo o quel programma. I sistemi UNIX come Linux e Mac sono più sicuri dei sistemi WIndows, ma non sono del tutto immuni da malware (in periodo di COVID abbiamo tutti una comprensione migliore del concetto di immunità quindi stiamo o dovremmo stare tutti più attenti).
Però con TeXShop è possibile definirsi un nuovo engine con l’opzione –shell-escape preimpostata, in modo che quando si vuole comporre con quell’opzione attiva si seleziona quell’engine nella finestrella in alto a sinistra della schermata e premendo il bottone Typeset, la compilazione avviene con quell’engine particolare, tornando da solo poi all’uso del programma privo da shell escape.
Lo trovo anche utile per scegliere il programma giusto fra bibtex e biber; di default tengo bibtex, ma per i documenti che richiedono bibliografie particolari, imposto la riga magica per scegliere biber, solo per quel particolare documento, semplicemente cliccando Typeset, anche se il gestore bibliografico della finestrella usa il nome bibtex.Mi domando, perciò se gli errori che ricevevi erano dovuti alla mancanza dello shell escape, richiesto espressamente dal pacchetto gnuplottex, ma che Texmaker non gestisce.
-
13 Luglio 2020 alle 9:20 #118369::
Su TexShop non so che dirti sarà sicuramente valido ma io non mi ci trovo molto bene. Per aggirare il probelma dei comandi che uso solo ogni tanto li metto “dentro” al tasto ps2pdf che non uso mai, è artigianale ma funziona.Per la possibilità che sia la shell escape il problema lo escludo perchè l’ho messa e poi non dovrei riuscire ad ottenere il grafico nemmeno fuori dall’ambiente subfigure cosa che invece ottengo. Correggetemi se sbaglio.
Aggiorno la discussione dicendo che ho provato ad usare \subfloat al posto di \subfigure ottenendo gli stessi errori. Provando invece con \subcaption ottengo le due immagini affiancate senza errori di compilazione ma il risultato grafico è davvero pessimo.
Ho come la sensazione che il prodotto di gnuplottex non voglia finire in un oggetto flottante o qualcosa di simile 😕
-
13 Luglio 2020 alle 13:14 #118370::
Ma, giusto per sapere, che classe usi? Book?, Report?, Article? Memoir?
Hai modificato il layout di pagina con geomery o con cose simili?
Come facciamo a darti una mano se, a parte quella parte di codice che hai iviato con il primo messaggio, non ci dai un esempio minimo compilabile?
Il disegno di sin(x) non è un problema, ma se la figura raser figura.png, non puoi mandarla, non importa, c’è un pacchetto mwe che dispone di figure fasulle necessarie per replicare i problemi. ma un esempio monimo compilabile, con figura.png sotituita con una delle figure di mwe, non dovrebbe essere difficile da confezionare, allegandolo al tuo prossimo messagio, così ci possiamo cimentare anche noi, e chissà che non se ne esca.
-
13 Luglio 2020 alle 15:11 #118371::
Ok, scusate pensavo di essere stato esaustivo con il codice messo prima.
Sto usando la classe paper ma in fututo dovrò usare lo stesso sistema anche per la classe book.
In questo caso non ho modificato nulla con geometry, ma non escludo che possa essere necessario guadagnare un po’ di margine andando avanti (ho delle tabelle con molte colonne)ecco un codice più completo
`\documentclass[a4paper,12pt,fleqn]{paper}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{mwe}\usepackage{graphicx}
\usepackage{subfigure}\usepackage[shell,subfolder]{gnuplottex}
\usepackage{color}\begin{document}
\begin{figure}[!hbt]
\centering
\subfigure[][]
{\begin{gnuplot}[terminal=epslatex, %terminaloptions={color size 8cm,14cm}]
plot sin(x)
\end{gnuplot}}
\subfigure[][]
{\includegraphics[width=0.4\textwidth]{example-grid-100x100bp}}
\end{figure}
\end{document}`
-
13 Luglio 2020 alle 19:42 #118372::
Credo che l’ambiente gnuplot sia incompatibile con subfig (che dovrebbe essere l’ultima versione disponibile per fare figurine correlate affiancate e con sotto didascalie).
Lo credo perché il messaggio d’errore fa riferimento a un comando \verbatim@, che lascia intendere che scriva in modo verbatim il suo contenuto in un file per gnuplot; poi all’esecuzione dei comandi di fine ambiente esegue lo shell escape e lancia gnuplot sul file che ha appena scritto; nel codice che metto sotto, se lasci cosè com’è esso traccia il diagramma del seno non affiancato, ma sotto, l’altra figurina (tratta del pacchetto mwe — quella che avevi allegato tu era forse una tua creazione, ma io non ne disponevo — il pacchetto mwe serve proprio per fornire degli esempi di figure riempitive e di testo riempitivo utili per comporre Minimum Working Examples (mwe)). In altre parole l’ambiente gnuplot è fragile e non può stare dentro altri ambienti che trattano ripetitivamente oggetti fragili.
Infatti se togli i segni di commento dai comandi \subfig e della loro parentesi di chhiusura, in modo che i vari \subfig lavorino, esce l’errore, mentre se lasci i segni di commento dove stanno, il diagramma del seno esce correttamente.
`% !TEX TS-program = pdfLaTeX-SE
% !TEX encoding = UTF-8 Unicode
\documentclass[a4paper,12pt,fleqn]{paper}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{mwe}\usepackage{graphicx}
\usepackage{caption,subfig}\usepackage[shell,subfolder]{gnuplottex}
\usepackage{xcolor}\begin{document}
\begin{figure}[!hbt]
\centering
%\subfloat{%
\begin{gnuplot}[terminal=epslatex, terminaloptions=color]
set key box top left
set key width 4
set sample 100
set xr [-5:5]
set yr [-1:1]
set xlabel '$x$'
set ylabel '$y$'
plot sin(x) wl lc 1 t '$\sin(x)$'
\end{gnuplot}
%}
%\subfloat{%
\includegraphics[width=0.4\textwidth]{example-image-a}
%}
\end{figure}
\end{document}
`Come vedi l’engine pdflatex-SE (dove SE sta per shell escape) è l’ambiente che ho creato per TeXShop per configurarlo solo per la compilazione di questo esempo con l’opzione shett escape attivata. È probabile che così come l’ho scritto non funzioni cone Texmaker (fra Texmaker e TeXstudio, preferisco quest’ultimo, se non altro perché viene aggiornato frequentemente per togliere bug e/o aggiungere altre funzinalità che mancano a Texmaker). Comunque prova a compilare questo codice lascinado i segni di commento dove sono, e vedrai che il diagramma esce correttamente.Invece, le dimensioni del diagramma non sono specificate; o se vuoi, non è specificata l’unità di misura del disegno, quindi a priori non sai quanto sia largo il disegno completo; ecco che i miei consigli del punto c) tornano utili.
-
14 Luglio 2020 alle 12:24 #118373
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.