- Questo topic ha 9 risposte, 4 partecipanti ed è stato aggiornato l'ultima volta 12 anni, 7 mesi fa da
Liverpool.
-
CreatoreTopic
-
28 Gennaio 2014 alle 15:37 #91969::
Buonasera,Vi scrivo per chiedere aiuto nella formattazione dell’immagine in tikz in allegato. Sto imparando a usare questa libreria quindi non sono molto “pratico”. Se doveste avere consigli oltre che commenti, correzioni e osservazioni sono ben accette.
Il mio obiettivo é di allineare i box esterni uno sull’altro oltre che di averli tutti delle stesse dimensioni e, possibilmente, centrare i box interni in colonna (magari in modo automatico). Inoltre, come settare lo spacing tra un box e l’altro in modo che si ridimensioni in funzione del contenuto?
Se avete bisogno di altri dettagli, semplicemente chiedete!
Grazie per l’aiuto! 🙂
Attachments:
You must be logged in to view attached files. -
CreatoreTopic
-
AutoreRisposte
-
-
29 Gennaio 2014 alle 6:43 #91970::
ftabaro” post=91504Buonasera,
Vi scrivo per chiedere aiuto nella formattazione dell’immagine in tikz in allegato. Sto imparando a usare questa libreria quindi non sono molto “pratico”. Se doveste avere consigli oltre che commenti, correzioni e osservazioni sono ben accette.
Il mio obiettivo é di allineare i box esterni uno sull’altro oltre che di averli tutti delle stesse dimensioni e, possibilmente, centrare i box interni in colonna (magari in modo automatico). Inoltre, come settare lo spacing tra un box e l’altro in modo che si ridimensioni in funzione del contenuto?
Se avete bisogno di altri dettagli, semplicemente chiedete!
Grazie per l’aiuto! 🙂Usa le matrici!!
Ciao
Claudio
-
30 Gennaio 2014 alle 16:59 #91971::
dici di usare array per il testo e poi fare tipo un overlay per il bordo del nodo? qualcosa tipo questo esempio: http://www.texample.net/tikz/examples/highlighting-matrix/
-
30 Gennaio 2014 alle 18:28 #91972::
ftabaro” post=91549dici di usare array per il testo e poi fare tipo un overlay per il bordo del nodo? qualcosa tipo questo esempio: http://www.texample.net/tikz/examples/highlighting-matrix/
Si, più o meno.
Non ti consiglio proprio di usare quel particolare esempio perché è parecchio vecchio e come puoi notare il riempimento rende opaco il testo. A te non serve forse un riempimento, ma per correttezza va detto. In Highlight elements in the matrix trovi molti esempi; oltretutto, ho la sensazione che con fit avrai più problemi che non vantaggi: se vuoi fare un fit per ogni riga e la dimensione delle righe non è uguale sei punto a capo. Invece, se disegni “a mano” partendo dall’ancora south west del nodo iniziale di riga fino a ancora north east nel nodo finale della riga, hai più libertà: se qualche elemento occupa uno spazio maggiore e devi aggiustarlo, poter disegnare a mano il bordo ti permette di fare una compensazione che fit non farebbe.
Ciao
Claudio
-
31 Gennaio 2014 alle 15:59 #91973::
ok ci stiamo avvicinando al risultato desiderato 🙂 Tuttavia, ho ancora qualche domanda.– Come faccio a specificare che la prima colonna non deve avere i box come le altre? Per ora li disegno in bianco ma ci deve essere una soluzione migliore.
– Come faccio a specificare che i box esterni (quelli rossi, per capirci) devono essere un po’ piú grandi di quelli interni?Allego un esempio compilabile 🙂
Ancora grazie del supporto!
Attachments:
You must be logged in to view attached files. -
31 Gennaio 2014 alle 20:12 #91974::
Potresti utilizzare la chiave [tt]outer sep = dimen[/tt] che imposta la distanza tra il punto di ancora del nodo e il bordo del nodo che disegni (normalmente è impostato a 0). Devi aggiungerlo allo stile di tutti i nodi interessati (io per comodità lo passato a tutti, nel tuo caso non c’è differenza).
Il tuo codice diventa
`
\documentclass[13pt]{scrartcl}
\usepackage[landscape,top=3cm, bottom=3cm, left=2.5cm, right=2.5cm]{geometry}
\usepackage{tikz}
\usetikzlibrary{matrix}
%\tikzset{%
% highlight/.style={rectangle,fill=blue,draw=none,fill opacity=.1,inner sep=0pt}
%}
\title{my title}
\subtitle{my subtitle}
\date{}\renewcommand{\familydefault}{\sfdefault}
\begin{document}
\pagenumbering{gobble}
\maketitle
\centering
\begin{tikzpicture} %[row 2 column 3/.style=red, fill=green]
%\matrix(magic) [matrix of nodes]
\matrix[matrix of nodes,row sep=0.8em,column sep=1em,style={nodes={rectangle,draw=black}},column 1/.style={nodes={rectangle,draw=none}},nodes={outer sep=.5ex,minimum width = 10em, minimum height = 2em}](m)
{
barcode & \LaTeX (col$^*$) & \LaTeX (col$^*$) & \LaTeX (col$^*$) & \LaTeX (col$^*$)\\[1.5em]
code1 & \LaTeX & \LaTeX & \LaTeX & \LaTeX \\
code2 & \LaTeX & \LaTeX & \LaTeX & \LaTeX \\
code3 & \LaTeX & \LaTeX & \LaTeX & \LaTeX\\
code4 & \LaTeX & \LaTeX & \LaTeX & \LaTeX\\
code5 & \LaTeX & \LaTeX & \LaTeX & \LaTeX\\
};
%\draw(m-1-1.north west) — (m-1-5.north east) — (m-1-1.south east) — (m-1-5.south west);
\foreach\x in{1,…,6}\draw (m-\x-1.north west) — (m-\x-5.north east) — (m-\x-5.south east) — (m-\x-1.south west) — (m-\x-1.north west);\end{tikzpicture}
\flushright
\begin{minipage}[!b]{10cm}
\scriptsize
*: some cool text \begin{ttfamily}even in monospace\end{ttfamily} 😀
\end{minipage}
\end{document}
`
Per semplificare ho fatto tutti i [tt]\draw[/tt] con un unico [tt]\foreach[/tt], ma la sostanza è la stessa :D.Per non fare disegnare un percorso la chiave da dare è [tt]draw=none[/tt]. Non cambia molto dal colorarlo di bianco, ma se tu avessi uno sfondo non bianco risalterebbe.
-
1 Febbraio 2014 alle 9:02 #91975::
Alternative all’ottima soluzione di skevin: `
\documentclass[13pt]{scrartcl}
\usepackage[landscape,top=3cm, bottom=3cm, left=2.5cm, right=2.5cm]{geometry}
\usepackage{tikz}
\usetikzlibrary{calc,matrix}
%\tikzset{%
% highlight/.style={rectangle,fill=blue,draw=none,fill opacity=.1,inner sep=0pt}
%}
\title{my title}
\subtitle{my subtitle}
\date{}\renewcommand{\familydefault}{\sfdefault}
\begin{document}
\pagenumbering{gobble}
\maketitle
\centering
\begin{tikzpicture} %[row 2 column 3/.style=red, fill=green]
%\matrix(magic) [matrix of nodes]
\matrix[matrix of nodes,
row sep=0.8em,column sep=1em,
style={nodes={rectangle,draw=black}},
column 1/.style={nodes={rectangle,draw=none}},
nodes={minimum width = 10em, minimum height = 2em}](m)
{
barcode & \LaTeX (col$^*$) & \LaTeX (col$^*$) & \LaTeX (col$^*$) & \LaTeX (col$^*$)\\[1.5em]
code1 & \LaTeX & \LaTeX & \LaTeX & \LaTeX \\
code2 & \LaTeX & \LaTeX & \LaTeX & \LaTeX \\
code3 & \LaTeX & \LaTeX & \LaTeX & \LaTeX \\
code4 & \LaTeX & \LaTeX & \LaTeX & \LaTeX \\
code5 & \LaTeX & \LaTeX & \LaTeX & \LaTeX \\
};% uso della libreria calc,
% ho riordinato le coordinate per semplicità
% (per avere stesso segno sugli shift)
% partendo dal punto in basso a sinistra
% della prima cella e
% disegnado un rettangolo con destinatione
% ultima cella in alto a destra;
% è più semplice che scrivere tutto il percorso
% per il colore, basta indicare il nome
\draw[red]
($(m-1-1.south west)-(0.2,0.2)$) rectangle ($(m-1-5.north east)+(0.2,0.2)$);% in alternativa, puoi creare uno shift agendo sulle coordinate
\foreach \row in {2,…,6}% con un ciclo è più semplice
\draw[red]
([shift={(-0.2,0.1)}]m-\row-1.north west) rectangle ([shift={(0.2,-0.1)}]m-\row-5.south east);\end{tikzpicture}
\flushright
\begin{minipage}[!b]{10cm}
\scriptsize
*: some cool text \begin{ttfamily}even in monospace\end{ttfamily} 😀
\end{minipage}
\end{document}
` Il codice è commentato per chiarezza.Ciao
Claudio
-
1 Febbraio 2014 alle 15:00 #91976::
grazie ragazzi! il risultato è esattamente quello che volevo realizzare!! 😀solo un paio di domande sulla sintassi di calc:
`\draw[red]
($(m-1-1.south west)-(0.2,0.2)$) rectangle ($(m-1-5.north east)+(0.2,0.2)$);
`
questa riga disegna il bordo intorno alla prima riga della matrice. (0.2,0.2) è l’offset da m-1.1-sout west?grazie anche per avermi mostrato un ciclo for, è la prima volta 🙂
-
1 Febbraio 2014 alle 16:52 #91977::
Esatto ed è questa la potenza della libreria [sf]calc[/sf]: puoi calcolare direttamente le coordinate. Come una normale coordinata, il primo valore è l’offset sull’asse x, il secondo sull’asse y. Questo ti permette, al contrario del mio codice, di allungare maggiormente il rettangolo lungo uno dei due assi.[tt]\foreach[/tt] non è l’unico modo di fare un ciclo for in LaTeX, ma sicuramente per tikz è il più indicato ;D
-
1 Febbraio 2014 alle 17:49 #91978
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.