Re: Le mie (dis)avventure con TikZ

#96766
Up
0
Down
::

lorenzo.pantieri” post=98947Grazie mille, Claudio. Ho appena controllato, e ho visto che purtroppo questa libreria non è compresa nella mia MacTeX 2013. Sono restio ad aggiornare il tutto: sto lavorando a dei documenti che sono quasi terminati, e so che quando si aggiorna la distribuzione è necessario investire tempo (a volte molto) per mettere le cose a punto.

È possibile usare quella libreria senza fare l’aggiornamento della distribuziuone?

Ho provato a scaricare da CTAN il file “pgflibrarypgfplots.fillbetween.code.tex” e a metterlo nella carrella di lavoro, ma compilando il tuo documento ricevo questo errore:

`Package pgfplots Warning: running in backwards compatibility mode (unsuitable t
ick labels; missing features). Consider writing \pgfplotsset{compat=1.9} into y
our preamble.
on input line 5.

./prova 8.tex:17: Package pgfkeys Error: I do not know the key '/tikz/name path
global' and I am going to ignore it. Perhaps you misspelled it.

See the pgfkeys package documentation for explanation.
Type H for immediate help.

l.17 …ath global=parabola] {-0.1*x*x+60*x-5000};

?
Process aborted`
Che cosa mi consigli di fare?

In effetti per quella libreria serve una versione di pgfplots più recente di quelle presenti in MacTeX 2013. Il che non è un problema: la libreria non fa altro che emulare funzionalità di clipping già presenti in TikZ.

Oltretutto, solo per questo specifico caso, la definizione della parabola aiuta molto. Infatti, tenendo presente che ogni plot non è altro che un percorso, la seguente definizione: `
\addplot [domain=0:400, samples=200,smooth,very thick,blue,fill=cyan] {-0.1*x*x+60*x-5000};
` colorerebbe lo sfondo compreso fra x=0 e x=400 della parabola (attenzione: non tutto lo sfondo, ma solo quello fra la parabola e un’ipotetica retta fra i due punti menzionati). Bisogna quindi far capire a pgfplots di tenere in considerazione l’asintoto. Anche qui, poiché un plot è un path, possiamo tranquillamente inserire dopo il normale costrutto [tt]\addplot[/tt] coordinate o altri operatori. Quindi: `
\addplot [domain=0:400, samples=200,smooth,draw=none,fill=blue!50!cyan!20] {-0.1*x*x+60*x-5000} –(axis cs:400,-5000);
` risolve i nostri problemi. A questo punto l’unica differenza rispetto alla libreria è che il nostro sfondo copre l’asse x. Con il solito trucco del background possiamo aggirare l’ostacolo: `
\begin{pgfonlayer}{background}% richiede \usetikzlibrary{backgrounds}
\addplot [domain=0:400, samples=200,smooth,draw=none,fill=blue!50!cyan!20] {-0.1*x*x+60*x-5000} –(axis cs:400,-5000);
\end{pgfonlayer}
` Inserirei questo codice prima dei plot: `
\begin{pgfonlayer}{background}
\addplot [domain=0:400, samples=200,smooth,draw=none,fill=blue!50!cyan!20] {-0.1*x*x+60*x-5000} –(axis cs:400,-5000);
\end{pgfonlayer}

\addplot [domain=0:400, samples=200,smooth,very thick,blue] {-0.1*x*x+60*x-5000};
\addplot [domain=400:600, samples=200,smooth,very thick,dashed] {-0.1*x*x+60*x-5000};
` Non è strettamente necessario, ma non fa male.

Ciao
Claudio

Go to top