Re: L’Arte di scrivere con LaTeX — nuova edizione

#47711
Up
0
Down
::


Ho fatto solo una delle figure sul bilanciamento dei pesi. Ci ho messo una decina di minuti (ma era per ritrovare un pezzo di codice utile al colore :D).

Ecco il codice (esempio compilabile da subito con TeXLive):

`
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{center}
\begin{tikzpicture}
% definizione colore di riempimento
\tikzset{myfillcolor/.style ={fill=#1, draw=none}}
% definizione delle caratteristiche del nodo
\tikzset{mynode/.style={rectangle,draw, minimum width=0.5cm, minimum height=0.5cm}}
%—-
% inserimento nodi orizzontali
\foreach \x in {0.5,1.5,…,5.5}
\node[mynode,myfillcolor=black] at (\x,0.75) {};
% inserimento nodi vertical
\foreach \y in {-0.6,-1.2,…,-3.6}
\node[mynode,myfillcolor=black]at (3,\y) {};
% inserimento path che collega i primi due nodi orizzontali
\draw (0.5,0.75)–(0.5,1.5)–(5.5,1.5)–(5.5,0.5);
% inserimento label A B C
\foreach \t/\text in {{(0.5,1.5)/A},{(3,1.5)/C},{(5.5,1.5)/B}}
\node[above]at \t {\text};
% inserimento path che collega B con i nodi verticali
\draw (3,1.5)–(3,-0.35);
\end{tikzpicture}
\end{center}
\end{document}
`
Il codice di cui parlavo è: \tikzset{myfillcolor/.style ={fill=#1, draw=none}}. Quando si definisce un nodo, tra le opzioni, questo “comando” permette di modificare il colore utilizzando le stesse impostazioni di forma. Mi spiego: se voglio definire un quadrato nero con:

`
\tikzset{mynode/.style={rectangle,draw, minimum width=0.5cm, minimum height=0.5cm,color=black}}
`
successivamente non posso colorare mynode di grigio. Con quel comando si:

`
\node[mynode,myfillcolor=black]at (0,0) {};
\node[mynode,myfillcolor=blue]at (5,5) {};
`

Al di là della piccola spiegazione tecnica, si può notare come il codice non sia scritto alla cieca: c’è una logica, come c’è una logica per redigere un documento, scrivere un file di stile o una classe.

Con questo intervento non voglio convincere Lorenzo, o dimostrare qualcosa… ma la sfida (riprodurre una figura) era interessante. 😀

P.S. Rispetto alla figura originale, la mia ha una differenza: le tre label (A, B, C) non erano allineate, nella mia sì.

Ciao
Claudio

Go to top