Re: TikZ

#75845
Up
0
Down
::

Rocco M.” post=75008Ciao a tutti. Mi sto dedicando alla lettura del manuale di TikZ e ho intenzione di creare un mio pacchetto personale con i comandi più importanti che trovo nel pacchetto (cosa che non ho fatto con l’Arte e di cui mi pento amaramente). Ottengo però già dei problemi.

Questo é il pacchetto:
`\usepackage{tikz}

% Stile griglia (grafici)
\tikzset{%
help lines/.style={help lines,color=#1!50},%
help lines/.default=gray%
}`

Questo il documento:
`\documentclass[a4paper]{article}
\usepackage{../graphics}
\begin{document}

\begin{tikzpicture}
\draw[help lines] (-1.4,-1.4) grid (1.4,1.4);
\draw (-1.5,0) — (1.5,0);
\draw (0,-1.5) — (0,1.5);
\draw (0,0) circle (1cm);
\end{tikzpicture}

\end{document}`

e questa l’ultima parte del codice d’errore:
`./TikZ.tex:6: TeX capacity exceeded, sorry [input stack size=5000].
\pgfkeys@unpack …ys@spdef \pgfkeyscurrentkey {#1
}\edef \pgfkeyscurrentkey …
l.6 \draw[help lines]
(-1.4,-1.4) grid (1.4,1.4);
./TikZ.tex:6: ==> Fatal error occurred, no output PDF file produced!
Transcript written on TikZ.log.`

Mai incontrato un problema del genere… Qualcuno sa di cosa si tratta e come risolverlo?

Grazie,
Rocco.

Credo che il problema fondamentale sia nell’utilizzo errato delle parole chiave. Mettiamo ordine:
– con [tt]style[/tt] si possono definire le proprietà di un oggetto (colore, dimensione, eccetera…), ma non funziona se nel caso lo si debba usare per creare segmenti o nodi;
– le funzioni menzionate sono attivate da [tt]code[/tt].

Quindi, il tuo esempio deve essere:

`
\documentclass[a4paper,11pt]{article}
\usepackage{tikz}
% Stile griglia (grafici)
\tikzset{%
help lines/.code={help lines},% per disegnare le linee
help lines/.style={color=#1!50}, % per colorarle eventualmente
help lines/.default=gray%
}

\begin{document}

\begin{tikzpicture}
\draw[help lines=red] (-1.4,-1.4) grid (1.4,1.4);
\draw (-1.5,0) — (1.5,0);
\draw (0,-1.5) — (0,1.5);
\draw (0,0) circle (1cm);
\end{tikzpicture}
\hspace{1cm}
\begin{tikzpicture}
\draw[help lines] (-1.4,-1.4) grid (1.4,1.4);
\draw (-1.5,0) — (1.5,0);
\draw (0,-1.5) — (0,1.5);
\draw (0,0) circle (1cm);
\end{tikzpicture}
\end{document}
`
e ottieni:

[attachment=371]Immagine_2012-07-04.jpg[/attachment]

EDIT: ovviamente la risposta precedente è puramente accademica. Ridefinire un codice con se stesso, ovviamente, non ha senso, ma l’ho fatto a scopo dimostrativo. L’idea di scrivere un pacchetto personale è buona, ma con TikZ si rischia di fare cose a dir poco inutili.

C’è differenza tra il codice precedente e questo:

`\documentclass[a4paper,11pt]{article}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
\draw[help lines,red!50] (-1.4,-1.4) grid (1.4,1.4);
\draw (-1.5,0) — (1.5,0);
\draw (0,-1.5) — (0,1.5);
\draw (0,0) circle (1cm);
\end{tikzpicture}
\hspace{1cm}
\begin{tikzpicture}
\draw[help lines] (-1.4,-1.4) grid (1.4,1.4);
\draw (-1.5,0) — (1.5,0);
\draw (0,-1.5) — (0,1.5);
\draw (0,0) circle (1cm);
\end{tikzpicture}
\end{document}`
?

Nessuna, tranne che per poter scrivere [tt]help lines=red[/tt] si è dovuto ridefinire [tt]style[/tt] e [tt]code[/tt].

Ciao
Claudio

Attachments:
You must be logged in to view attached files.

Go to top