Risposte nei forum create
-
AutoreRisposte
-
::
marchetto” post=85018Certo che avrei potuto scrivere diversamente e chiedo scusa se ho offeso qualcuno.
Nessun problema, figurati. 🙂 Era solo un consiglio per non dare alle domande un’aspetto poco invitante alla risposta.
marchetto” post=85018
Ho provato a modificare il canovaccio. Di seguito il codice:
`\documentclass{article}
\usepackage{pgfplots}
% and optionally (as of Pgfplots 1.3):
\pgfplotsset{compat=newest}
\pgfplotsset{plot coordinates/math parser=false}
\newlength\figureheight
\newlength\figurewidth
\begin{document}\begin{tikzpicture}[scale=0.7,transform,shape]
\draw (0,0) rectangle (5,7);
\draw (1,1) — (4,1);
\draw (1,6) — (4,6);
\draw[dashed] (5,7) — (14,7);
\draw[dashed] (5,6) — (13.5,6);
\draw[dashed] (5,1) — (13.5,1);
\draw[dashed] (5,0) — (13.5,0);
\draw (10,-0.5) — (10,7.5);
\draw[dashed] (13.5,0) — (13.5,7);
\draw[dashed] (12,0) — (12,7);
\draw[dashed] (8,0) — (8,7);
%Red
\draw[->,red] (14,7) — (14,6.3636);
\path[red] (14.5,6.5) node(yn1) {$y_{n_1}$};
\draw[red] (8,6) — (13.5,7);
%Orange
\draw[->,orange] (15,7) — (15,4.6667);
\path[orange] (15.5,6.5) node(yn2) {$y_{n_2}$};
\draw[orange] (8,3.3333) — (13.5,7);
%Green
\draw[->,green] (16,7) — (16,3.1818);
\path[green] (16.5,6.5) node(yn3) {$y_{n_b}$};
\draw[green] (8,1) — (13.5,7);
%Blue
\draw[blue] (17,7) — (17,4);
\draw[dashed,blue] (17,4) — (17,0.3);
\draw[->,blue] (17,0.3) — (17,-0.5);
\path[blue] (17.5,6.5) node(yn4) {$y_{n_4}$};
\draw[blue] (11.75,0) — (13.5,7);
%Names
\path (8,-1) node(-Ese) {$-\varepsilon_{se}$};
\path (10,-1) node(E0) {$\varepsilon$\textit{=0}};
\path (12,-1) node(Ese) {$\varepsilon_{se}$};
\path (13.5,-1) node(Ecu) {$\varepsilon_{cu}$};
\end{tikzpicture}\end{document}`
Il codice non è molto elegante ma ci ho provato 🙂
L’importante è fare esercizio: è così che si impara. 🙂 Quello che vedo, e che dovrebbe essere la causa del warning è che hai impostato una dimensione orizzontale totale di 17.4 cm; in genere, come dicevo, con le classi standard io facevo conto di avere 12 cm a disposizione per non dover riscalare il disegno. Quindi qui sei andato un po’ oltre e hai due soluzioni: a) ti rifai le misure a mano, b) più comoda, fai in modo che la dimensione orizzontale si riscali automaticamente. Prova con: `
\begin{tikzpicture}[scale=0.7,transform shape,x=0.925cm]
` Attenzione: la chiave non è [tt]transform,shape[/tt] ma [tt]transform shape[/tt] senza virgola. @alegenn: in effetti questa opzione serve proprio per quel motivo (il testo dei nodi non viene assolutamente riscalato da [tt]scale[/tt]).Un’altra cosa: prendi l’abitudine di non usare `
\pgfplotsset{compat=newest}
` Come scritto nella documentazione, è una brutta abitudine che può provare danni in quanto se oggi (versione 1.8 ) provassi a compilare un documento di un paio d’anni fa che usava l’opzione [tt]newest[/tt] molto probabilmente darebbe errore. Questo perché [tt]newest[/tt] si riferisce all’ultima versione presente sulla macchina, ma due anni fa probabilmente era la 1.3 mentre oggi è la 1.8.Ciao
Claudio
::marchetto” post=85003Buongiorno,
sono mesi che mi riprometto di studiare il pacchetto tikz ma ho sempre rimandato e adesso ne ho un bisogno urgente 😯 .
Sto scrivendo un piccolo articolo e adesso devo inserire un’immagine (riportata sotto in allegato) ma non ho tempo per imparare a farla.
Qualcuno potrebbe aiutarmi a scrivere in codice da inserire nel file .tex per riprodurre l’immagine.
Le misure non devono essere precise, basta che le proporzioni siano più o meno rispettate e che i colori siano simili.[attachment=696]Andamento_asse_neutro.png[/attachment]
Ve ne sarei molto grato.
Grazie
MarcoPerdonami, però vista la complessità del disegno credo che “non avere studiato TikZ” non sia una scusa. Non servono conoscenze particolari (te la cavi con dei [tt]\draw[/tt] e dei [tt]\node[/tt] semplici) e il bisogno urgente fa sembrare quasi che il forum sia una succursale di disegno a richiesta. So che non era tua intenzione, ma al posto tuo non avrei inserito la prima riga e molto probabilmente avresti avuto il disegno completo come risposta. Invece, ottieni “solo” un canovaccio:
1) visto che le misure non devono essere precise, parti con l’origine sopra la label Ecu;
2) disegna tutti i segmenti tratteggiati (magari prima tracciali su carta per un’idea delle misure); sei all’inizio quindi procedi un segmento alla volta:
2a) disegna da (0,0) in alto fino a, sparo, (6,0);
2b) impostate le misure 1.5cm, 2.5cm, 2.5cm, disegnerai da (-1.5,0)–(-1.5,6) tratteggiata, (-4,0)–(-4,6) non tratteggiata e (-6.5,0)–(-6.5,6) di nuovo tratteggiata;
2c) disegna il rettangolo a partire da un ulteriore shift di 2.5cm con [tt]rectangle[/tt] tipo (-8,0)rectangle (-10.5,6) ;
2d) congiungi i segmenti orizzontali;
3) disegna a partire da (0,6) i segmenti colorati (blu, rosso, giallo e verde credo tu li possa trovare senza difficoltà);
4) metti le label in basso;
5) a partire da (0.5,6) disegna una freccia verso il basso (avrà la stessa y della misura in rosso) tipo: [tt]\draw(0.5,6) –(0.5,4.9) node[midway]{$y_1$};[/tt];
6) segui la stessa filosofia per le altre frecce, separale di 0.5 ognuna; se ho fatto bene i conti, abbiamo raggiunto 12.5cm totali perciò il disegno sforerà dalla pagina (se usi classi standard) e otterrai qualche warning che te lo comunica; a quel punto piazza nelle opzioni di ambiente [tt]scale=0.9,transform shape[/tt] e sei a posto.Ciao
Claudio
::Liverpool” post=84991 @cfiandra, al punto 2) @l3on4rdo vuole una sola tacca sull’asse x in corrispondenza del punto di massimo, perciò
`xtick=2, xticklabel=$l_c$`
dovrebbe andare bene.Vero 🙂 Io avevo in mente, visto che è uno solo, di inserirlo a mano: `
\draw (axis cs:2,0)–++(0,-0.15) node[below]{$l_c$};
` Ovviamente ho usato valori indicativi, ma dovrebbe rendere l’idea.
@l3on4rdo: Non c’è bisogno che stampi su carta tutte le documentazioni 🙂 Prova in questo modo: mentre realizzi i tuoi esempi e ti blocchi pensa che al 90% esiste una chiave o un meccanismo per ottenere ciò che ti serve. Quindi guarda se con la funzione di ricerca del tuo pdf editor esiste un match con due o tre parole che rappresentano ciò che vorresti. Guarda, perciò, gli esempi in corrispondenza dei match trovati e considera che cliccando sulle chiavi in blu puoi sempre vedere come sono definite e cosa fanno. Secondo me così si fa prima.Nota: questo meccanismo NON vale per ogni pacchetto. TikZ o pgfplots hanno centinaia di pagine di documentazione perciò va benissimo fare così, ma in genere i pacchetti normali hanno una documentazione leggibile in poco tempo. Non voglio essere accusato di istigazione a “delinquere” (tradotta con: “la documentazione non si legge”) 😉 .
Ciao
Claudio
::l3on4rdo” post=84984Salve a tutti.
Sto cercando di fare alcune modifiche al comportamento di pgfplots, ma è davvero poco che lo uso e non ci riesco.Facendo riferimento a questo:
`
\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}[ticks=none, xmin=0, axis x line=bottom, axis y line=left]
\addplot[black] gnuplot {-x^2 + 4*x};
\end{axis}
\end{tikzpicture}
\end{figure}
`
che mi produce il risultato:[attachment=694]Schermata_2013-05-06.png[/attachment]
vorrei capire come:
1) spostare l’asse delle ascisse in modo che da avere il classico riferimento cartesiano con l’origine in (0,0),
2) come mettere un solo tick di tipo stringa (una lettera) nell’asse delle ascisse, in prossimità del massimo della funzione, che si ha per x=2,
3) come mettere, vicino alla freccia dei due assi, una lettera che indichi cosa c’è sull’asse.Al fine di ottenere una cosa del genere
[attachment=695]Schermata-1.png[/attachment]Vi ringrazio in anticipo.
Risolvendo questi due dubbi, posso proseguire a creare grafici con pgfplots e a farvi qualche altra domanda banale 🙂Ciao.
Sono tutte cose che si trovano sulla documentazione:
1) [tt]axis y line=middle[/tt];
2) [tt]axis cs:[/tt];
3) [tt]xlabel[/tt] e [tt]ylabel[/tt].Cerca queste chiavi e leggi nel dettaglio come effettuare personalizzazioni: riuscirai senza dubbio a ricreare il grafico di esempio che hai inserito. 🙂
Ciao
Claudio
::l3on4rdo” post=84981Scusate per la confusione tra opzione e nome del pacchetto 🙂
Al più presto posto un esempio di codice, per il momento ho risolto tramite i colori già messi a disposizione per nome.Una domanda tecnica (nel senso che non so come funziona su questo forum) per gli amministratori: stanno venendo fuori dei dubbi relativi all’us di pgfplots (spostare gli assi e cose di “questo tipo”).
È preferibile aprire una discussione separata o posso chiedere in questa?Meglio aprire un nuovo topic 🙂
Ciao
Claudio
::l3on4rdo” post=84978Anche a me non succede se non definisco più di un colore con lo stesso sistema.
Se provo a definirne due con il codice html, mi dà errore.
La mia esigenza è proprio quella di definire una decina di colori
(anche se poi ho capito che la colorazione è gestita dal pacchetto dvipsnames (con opzione xcolor) e questo mette a disposizione un sacco di colori, anche per nome)Semmai è l’esatto contrario: opzione [tt]dvipsnames[/tt] del pacchetto [tt]xcolor[/tt]. Tuttavia, poiché TikZ carica questo pacchetto e pgfplots carica TikZ, ne risulta che [tt]xcolor[/tt] sia caricato con pgfplots. Non vedendo il preambolo, come dice @Liverpool, al massimo si possono fare ipotesi forse senza centrare il vero problema.
Aggiungo, che [tt]xcolor[/tt] non ha solo l’opzione [tt]dvipsnames[/tt], ma anche altri gruppi di colore identificati da opzioni, perciò prima di definire una decina di colori rifletti se sia proprio necessario. Non c’entra molto con il discorso, ma giusto per test, prova a compilare questo esempio (la mia prima domanda in assoluto su TeX.SX 🙂 ): contiene alcune definizioni di colori in HTML. Quel codice non dovrebbe darti problemi.
Ciao
Claudio
::Dr Spencer Reid” post=84967non per riesumare un vecchio post ma i pacchetti matematici che consigliate aggiornando latex non ci sono più. quindi i codici per i checkmark non sono più validi. ho usato un semplice \surd e ho tagliato la testa al toro

A me suona un po’ strano: uno dei pacchetti che era consigliato è [tt]amssymb[/tt] e fatico proprio a credere che aggiornando sia stato rimosso. Controlla bene di avere “aggiornato” in modo corretto.
Ciao
Claudio
::l3on4rdo” post=84944Il mio intento è, come appunto suggerite, proprio il contrario.
Ossia, vorrei capire quale font è usato da Texlive per produrre il pdf e poi usare lo stesso font con Gnuplot.Forse mi sono spiegato male: è possibile compilare un documento con un grafico realizzato con Gnuplot. Un esempio minimale con un font diverso dal solito Computer Modern:`
\documentclass{article}
\usepackage{amsmath}
\usepackage{charter,pxfonts} % font
\usepackage{pgfplots}
\usepackage{lipsum}\def\cdf(#1)(#2)(#3){0.5*(1+(erf((#1-#2)/(#3*sqrt(2)))))}%
% to be used: \cdf(x)(mean)(variance)\DeclareMathOperator{\CDF}{cdf}
\begin{document}
\lipsum[1]\begin{tikzpicture}
\begin{axis}[%
xlabel=$x$,
ylabel=$\CDF(x)$,
grid=major]
\addplot[smooth,red] gnuplot{\cdf(x)(0)(1)};
\addplot[smooth,blue]gnuplot{\cdf(x)(0.5)(1)};
\addplot[smooth,green]gnuplot{\cdf(x)(1)(1)};
\addplot[smooth,orange]gnuplot{\cdf(x)(2)(1)};
\end{axis}
\end{tikzpicture}\lipsum[2]
\end{document}
` Mi raccomando: non invertire la chiamata di [tt]amsmath[/tt] con quella dei font perché sarebbe disastroso. Ipotizzando di avere chiamato [tt]test.tex[/tt] quel file, compilalo con: `
pdflatex -shell-escape test.tex
` e non badare al warning su pgfplots. Vedrai che il grafico non i font di default di gnuplot (inseriti come immagine balza subito agli occhi: così invece, c’è uniformità… ecco perché dal mio punto di vista per documenti di ottima qualità – estetica almeno… il contenuto è un discorso a parte 😀 – l’uso di TikZ/pgfplots per immagini/grafici è necessario).l3on4rdo” post=84944
Relativamente alla splendida guida L’arte di scrivere con LaTeX, l’ho letta e ci faccio spesso riferimento in quanto scrivo i documenti senza l’ausilio di editor grafici (con gedit indomma). Nella versione che ho scaricato dal sito, a meno che proprio io non l’abbia vista, non c’è traccia di pgfplot.
Provo a scaricarla nuovamente e a controllare.Evidentemente hai una versione vecchia perché è dallo scorso anno che [tt]pgfplots[/tt] viene menzionato nell’Arte. Riscaricala e lo troverai senza dubbio.
Ciao
Claudio
::
Concordo con OldClaudio: anziché comporre il documento con il font che gnuplot usa di default è molto più semplice seguire il percorso inverso, ovvero usare gnuplot e produrre un grafico con il font del documento.Il pacchetto pgfplots permette appunto di interagire con gnuplot (ricordati di compilare con l’opzione [tt]-shell-escape[/tt]); ad esempio, uno dei grafici nel capitolo 8 dell’Introduzione all’uso di TikZ in Ingegneria è appunto realizzato con gnuplot. E il font del grafico è lo stesso del documento!
Ciao
Claudio
::
Come promesso ecco la soluzione, di cui onestamente non ne sono troppo soddisfatto. Probabilmente da qualche parte nel codice c’è qualche errore grossolano nei conti degli angoli (e mi sfugge da più di mezz’ora 🙁 ) per cui va presa per quello che è.Certo, lato utente sarebbe decisamente più comoda perché in pratica con un comando e qualche opzione si fa tutto: `
\documentclass[tikz,border=10pt]{standalone}
\usepackage{tikz}\pgfkeys{/tikz/.cd,
num vertex/.initial=10,
num vertex/.get=\vertices,
num vertex/.store in=\vertices,
shift angle/.initial=0,
shift angle/.get=\shiftangle,
shift angle/.store in=\shiftangle,
circle radius/.initial=10mm,
circle radius/.get=\circleradius,
circle radius/.store in=\circleradius,
label font/.initial=\small,
label font/.get=\labfont,
label font/.store in=\labfont,
}\tikzset{show vertex/.style={
draw,
circle,
fill = black,
minimum size = 0.8mm,
inner sep = 0pt,
outer sep=0pt
}
}\newcommand{\polygon}[1]{
\pgfmathtruncatemacro\numvminusone{\vertices-1}
\foreach \x in {0, …, \numvminusone} {
\pgfmathtruncatemacro{\angle}{\shiftangle + 360 / \vertices * \x}
\coordinate (p\x) at (\angle:\circleradius);
}
\foreach \x[count=\xi from 0] in {#1} {\global\let\maxnumitems\xi}\pgfmathtruncatemacro\endangle{360+\shiftangle}
\foreach \x[count=\xi from 0] in {#1} {
\pgfmathtruncatemacro{\angle}{\shiftangle + 360 / \vertices * \xi}
\pgfmathtruncatemacro{\next}{mod(\xi-1, \numvminusone)}
\ifnum\xi>0
\draw (p\xi) — (p\next);
\fi
\ifnum\xi=\maxnumitems
\draw[dashed] (p\xi) arc(\angle:\endangle:\circleradius);
\fi
\node[show vertex,] at (p\xi){};
\coordinate[label={[font=\labfont]\angle:${[\x]}$}](x\xi) at (p\xi);
}
}\begin{document}
\begin{tikzpicture}[num vertex=13,shift angle=-45]
\polygon{n-2,n-1,0,1,2,3,4,5}
\end{tikzpicture}\begin{tikzpicture}[label font=\scriptsize,num vertex=7,shift angle=114]
\polygon{k+n-3,k+n-2,k+n-1,k+n,k+n+1,k+n+2,k+n+3}
% k+n è il 4 elemento -> p3
\draw(p3)
–++(-1,0) node[show vertex,label={[font=\labfont]below:${[k-1]}$}]{}
–++(-1,0) node[show vertex,label={[font=\labfont]below:${[k-2]}$}] (lownode){}
;
\draw[dashed](lownode)–++(-1.25,0)coordinate (lownode2);
\draw(lownode2) node[show vertex,label={[font=\labfont]below:${[2]}$}]{}
–++(-1,0) node[show vertex,label={[font=\labfont]below:${[1]}$}]{}
–++(-1,0) node[show vertex,label={[font=\labfont]below:${[0]}$}] (lownode){}
;
\end{tikzpicture}
\end{document}
` Il risultato:[attachment=692]Senzanome.png[/attachment]
Ciao
Claudio
Attachments:
You must be logged in to view attached files.::Amedeo” post=84822Come spesso accade, l’esempio funziona ma nel caso concreto no. Nella fattispecie vi è un curioso effetto “collaterale” che illustro nel brese esempio di seguito:
`
\documentclass{article}
\usepackage[italian]{babel}%\usepackage[utf8x]{inputenc} % INCLUSIONE INCRIMINATA
\usepackage{soul,color}
\begin{document}
Lorem ipsum ì dolor sit amet, consectetur \hl{adipisici elit, sed eiusmod tempor incidunt è ut labore et dolore magna aliqua. Ut enim
ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut à aliquid ex ea commodi consequat. Quis aute iure reprehenderit in
voluptate velit esse ù cillum dolore eu fugiat} nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa
qui officia deserunt mollit anim id est laborum
\end{document}
`
Compilando il codice sopra, si ottiene quanto voluto. Peccato che nel testo non possa inserire lettere accentate. Per poterlo fare, come consueto, includo il package inputenc; così facendo, però, il compilatore produce un curioso ed inspiegabile errore:Argument of <> has an extra }.
\par volupate volit esse cillum dolore eu fugiat} Il pomo della discordia sembra essere l’opzione [utf8x] nell’inclusione del package inputenc, senza la quale, però, le lettere accentate non vengono trattate.
Vi viene in mente qualche spiegazione?
Grazie
a
Usa: `
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}\usepackage{soulutf8,color}
\begin{document}
Lorem ipsum ì dolor sit amet, consectetur \hl{adipisici elit, sed eiusmod tempor incidunt è ut labore et dolore magna aliqua. Ut enim
ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut à aliquid ex ea commodi consequat. Quis aute iure reprehenderit in
voluptate velit esse ù cillum dolore eu fugiat} nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa
qui officia deserunt mollit anim id est laborum
\end{document}
`
Ciao
Claudio
::
Aggiungo soltanto un paio di contributi alla proposta di Amedeo.La soluzione soul è ottima, tanto che in questa discussione viene usata due volte.
Un’altra strada è la famosa macro [tt]\tikzmark[/tt]: in questa discussione l’autore la utilizza in modo spettacolare. Tanto che, il nuovo pacchetto tikzmark teoricamente dovrebbe avere una libreria highlighting basata su quel tipo di concetto che ho avuto il piacere di testare tempo fa. Purtroppo Andrew Stacey non ne è soddisfatto e non l’ha inserita nella versione mandata a CTAN…
Ciao
Claudio
::Marco87″ post=84797Tuttavia, speravo di riuscire a trovare una soluzione meno “empirica”. Intanto tolgo tutti quei [tt]/pgfplots/.[/tt]
Ma se vuoi proprio [tt]axis lines=middle[/tt] la vedo dura avere le etichette dell’asse y sul bordo esterno. Spostarle a mano è una soluzione, come è anche una soluzione usare [tt]axis y line=left[/tt]: in quel caso hai tutto l’asse y sul bordo sinistro. Altre alternative non ne vedo.
Ciao
Claudio
::OldClaudio” post=84789Ma i disegni che vuoi fare esulano “un poco” dai diagrammi commutativi e il pacchetto TikZ è certamente più indicato. Solo che fra gli esperti del forum solo Cfiandra potrebbe aiutarti a occhi chiusi, senza nemmeno consultare il manuale di TikZ 🙂
Non esageriamo 🙂 Il manuale va consultato sempre: io posso un po’ meno perché parto sempre da disegni “simili” che ho realizzato in precedenza o che mi ricordo esistano da qualche parte 😉
Le soluzioni che ha proposto Roberto sono ottime: appena riesco propongo una soluzione che è una via di mezzo fra questa e questa. Automatizzare le cose, in questo caso, non è banale perché occorre tenere conto di quali vertici etichettare e collegare e disegnare il cerchio solo di conseguenza.
Ciao
Claudio
-
AutoreRisposte