Pàgines

dijous, 14 de maig de 2015

Gràfics de sectors circulars amb tikz

Hem vist en articles anteriors que amb tikz es pot fer tot tipus de representació gràfica de dades o conceptes. Així hem vist com crear Mapes conceptuals amb tikz , Diagrames de flux amb tikz o Diagrames de Gantt o cronogrames. En aquest article veurem com —a partir de les dades numèriques— tikz ens construeix un diagrama de sectors circulars i li dóna el format que vulguem.

Abans de res, però, hem de descarregar de la web de l'autor el paquet amb la documentació i el fitxer d'estil. Ho trobarem a: https://code.google.com/p/pgf-pie/ El paquet es crida simplement amb un \usepackage{pgf-pie}.

Ara només cal introduir les dades al nostre fitxer tex dins d'un entorn tikzpicture amb el comandament \pie:

\begin{tikzpicture}
  \pie{%
  15/Menors de 20,%
  32/De 21 a 30,%
  30/De 31 a 40,%
  18/De 41 a 50,%
  5/Majors de 51}
\end{tikzpicture}

Observem que cada línia correspon a un sector i en ella diem el percentatge de casos (15% a la primera fila) i definim l'etiqueta (Menors de 20 anys a l'exemple).

Al processar obtenim aquesta gràfica:
Els diagrames són força configurables i es poden posar les etiquetes en diferents posicions així com afegir-hi una ombra.

També es poden dibuixar diferents tipus de diagrames, com ara el quadrat on cada sector queda representat per un rectangle proporcional a la dada corresponent. O bé en format polar, de manera que els angles dels sectors són tots igual però es diferencien per la longitud del radi, que és proporcional a les dades.

Podeu veure exemples dels diferents tipus de gràfics, així com del codi amb què s'obtenen en aquest document PDF. Per estudiar el codi tex o usar-lo de plantilla podeu descarregar el fitxer comprimit zip amb tots els documents font.

dimecres, 4 de març de 2015

Descàrrega gratuïta del llibre 'LaTeX Beginner's Guide'

Només avui dia 4 de març de 2015, i després d'haver-ho anunciat fa uns quants dies, l'editorial tècnica Packt Publishing permet descarregar de manera totalment gratuïta i legal el llibre LaTeX Beginner's Guide de l' Stefan Kottwitz


Doneu un cop d'ull a la Taula de continguts:

1: GETTING STARTED WITH LATEX
2: FORMATTING WORDS, LINES, AND PARAGRAPHS
3: DESIGNING PAGES
4: CREATING LISTS
5: CREATING TABLES AND INSERTING PICTURES
6: CROSS-REFERENCING
7: LISTING CONTENT AND REFERENCES
8: TYPING MATH FORMULAS
9: USING FONTS
10: DEVELOPING LARGE DOCUMENTS
11: ENHANCING YOUR DOCUMENTS FURTHER
12: TROUBLESHOOTING
13: USING ONLINE RESOURCES

Interessant, oi? Doncs vinga no us entretingueu més.

diumenge, 30 de novembre de 2014

Mapes conceptuals amb tikz

El paquet tikz té una biblioteca especial (mindmap) per crear mapes conceptuals o mentals molt vistosos. En aquest article veurem com crear un d'aquesta mapes conceptuals, en concret un sobre el portafolis electrònic o eportafolis.



Comencem creant els estils dels nodes arrel i els dels altres conceptes que en sortiran. Per exemple definim l'estil de tots els nodes:
every node/.style={concept,%tipus de node=concept
                 font=\sffamily,% tipus de lletra 
                 circular drop shadow,%ombra},
evidencia/.style={%concepte evidència         
                 concept color=red,%color del node
                 faded/.style={concept color=red!50}},%definim una variant atenuada

Si volem redefinir o afegir característiques a un node tenim el comandament append style:
root concept/.append style={
                 concept color=black,
                   %fill=white, %omple de color blanc
                   line width=1ex,
           %text=black, %color del text
           text=white,
           font=\large\scshape},% família i tipus de lletra

També s'ha de definir com es distribuiran els conceptes fills en els diferents subnivells:
level 1/.append style={level distance=4.5cm,%distància de l'arrel al primer nivell
                     %sibling angle=90,% angle que formaran els fills entre sí. Aquí fixat a 90º
                     sibling angle=360/\the\tikznumberofchildren,%divideix 360 entre el nombre de fills perquè tots els angles siguin iguals
                     font=\scshape},%tipus de lletra

Un cop definits tots els estils comencem a dibuixar el mapa començant per l'arrel:
\node [root] (NomDelConcepte) {Contingut}

A Contingut hi podem posar un text curt, millor una paraula, o be incloure una imatge amb \includegraphics.
Del node arrel hi surten els fills i "néts":
child [EstilDeConcepte] { node [yshift=-1cm]  (NomDelConcepte) {Contingut fill 1}
                            child{ node(NomDelConcepte) {Contingut nét 1}}
                    child{ node(NomDelConcepte) {Contingut nét 2}}
                    child{ node(NomDelConcepte) {Contingut nét 3}}
}%tanca el fill 1

Val la pena estudiar el codi al fitxer mapamental.tex i veure com, un cop processat, en resulta el PDF mapamental.pdf tan impressionant.

Es pot trobar més informació sobre la biblioteca de mapes mentals i trucs al Manual de PGF-tikz i a l'etiqueta mindmaps de tex.stackexchange

diumenge, 16 de novembre de 2014

Diagrames de flux amb tikz

Un diagrama de flux és una figura que il·lustra un procés, que pot ser informàtic (un algorisme) o de qualsevol altra mena. Són molt útils per visualitzar la seqüència de les accions i què passa quan cal prendre algun tipus de decisió.

Amb tikz es pot fer tot tipus de figures i gràfics i, no podia ser d'altra manera, es poden construir diagrames de flux clars, entenedors i atractius. En aquest article veurem com es crea una figura amb tikz i com, en acabat, es pot incrustar en qualsevol document LaTeX.

Un diagrama de flux consta d'unes "caixes" de text connectades per línies. Aquestes "caixes" tenen diferent forma -i color- segons el que representin: l'entrada del procés, una acció, una decisió o la sortida. A  tikz  aquestes caixes se'n diuen nodes i es poden construir fàcilment amb l'ajut de biblioteques específiques simplement donant el nom de la figura que cal dibuixar. Per exemple, per dibuixar un node d'entrada al procés amb forma rectangular només cal definir el node amb les ordres: rectangle i draw, és a dir "dibuixa un rectangle". Naturalment podem donar un format més acurat al node, cosa que es fa abans de començar a dibuixar els nodes sota el comandament de configuració \tikzset. Vegem un exemple de definició de l'estil d'un node de decisió:

decisio/.style = {diamond,% forma geomètrica de romb 
                     draw, 
                     top color= white,% color de la part superior del degradat
                     bottom color=red,% color de la part inferior del degradat
                     drop shadow,% ombra
                     text width=8em, % ampla del text
                     text badly centered, % centrat del text
                     node distance=3cm, %distància al centre dels altres nodes
                     inner sep=0pt},%separació del text a la figura que el conté

Dins d'aquest comandament de configuració també es pot definir el format de les línies que uniran els nodes, per exemple amb forma de fletxes:

linia/.style = {draw, 
                     line width=1.5pt,%gruix de la línia
                     % per veure els estils de fletxa: http://tex.stackexchange.com/questions/42611/list-of-available-tikz-libraries-with-a-short-introduction/42679
                    -triangle 45},% la fletxa és un triangle de 45º

Un cop definits els estils dels nodes i de les línies passem a dibuixar el diagrama (\tikzpicture) tot posant els nodes un a sota dels altres. Comencem pel primer, un node d'entrada:

\node [entrada] (inici) {Text del node\\segona línia de text};

  • \node és el comandament que dibuixarà el node
  • [entrada] és el format del node que hem definit prèviament
  • (inici) és el nom que li donem al node i que l'identificarà dins la figura
  • {Text} és el text que apareix dins del node, dins del rectangle en aquest cas.
El segon bloc el volem situat sota el node inici, per això escrivim:
    \node [bloc, below=of inici] (divesquerra) {Text...};
  • la diferència respecte al primer node és a [bloc, below=of inici], on bloc és l'estil de node i below=of inici diu on s'ha de situar el bloc (sota d'inici).  Amb above=of, right=of i left=of el posaríem a sobre, a la dreta o a l'esquerra respectivament.
D'aquesta manera anem situant els diferents tipus de bloc. Quan ja estan tots dibuixem les línies amb punta de fletxa que els uneixen:
    \draw [linia] (inici) -- (divesquerra);
Podem dibuixar línies acodades amb |- ó amb -|:
    \draw [linia] (a1) |- (divesquerra); 
Finalment, podem dibuixar un doble colze si marquem un punt del diagrama, una coordenada, i hi fem arribar una línia sense punta i que en surti una altra amb punta:
    \coordinate[right=5cm of donau]   (a1);
  • Aquest punt de coordenades és 5cm a la dreta del node donau i l'anomenem a1.
Al fitxer tex diagramadeflux.tex podeu veure el codi comentat del diagrama complet. I al fitxer diagramadeflux.pdf  podeu veure'n el resultat. S'hi representa l'algorisme de la multiplicació russa, una manera molt interessant de fer multiplicacions.