Re: centrare disegno tikz

#92036
Up
0
Down
::

cfiandra” post=91584Corretto, i due disegni non sono allineati:

[attachment=906]prova_2014-01-31.pdf[/attachment]

Per capirne la ragione, molto spesso basta inserire una banale [tt]fbox[/tt] o [tt]show background rectangle[/tt] della libreria backgrounds, come da allegato. Il problema, è che le due bounding box hanno dimensioni differenti; la soluzione più facile, almeno dal mio punto di vista, è determinare quale sia la bounding box minima per entrambe le figure:`
\documentclass{article}
%\documentclass{standalone}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{lmodern}
\usepackage{subfig}
\usepackage{pgfplots}
\usepackage[output-decimal-marker={,},
arc-separator=\,]{siunitx}
\usepackage{amsmath}
%\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{structuralanalysis}
\usetikzlibrary{backgrounds}

\tikzset{immagine/.style={%
above right, inner sep=0pt, outer sep=0pt},
testo/.style={ align=center,above}}

\begin{document}

\begin{figure}
\centering
\subfloat[][\emph{Combinazione 2, sezione di mezzeria.}.]{
\begin{tikzpicture}[show background rectangle]
\useasboundingbox (-0.8,-1.1985) rectangle (12.2,5.0);
\point{a}{0}{2.4};
\point{b}{2}{2.4};
\point{c}{10}{2.4};
\point{d}{12}{2.4};

\point{p9}{10.3777}{2.0852};
\notation{1}{p9}{$\num{1.08e+02}$}[below right];
\end{tikzpicture}
\label{fig:diagr03}
} \\
\subfloat[][\emph{Combinazione 2, sezione di testata.}.]{
\begin{tikzpicture}[show background rectangle]
\useasboundingbox (-0.8,-1.1985) rectangle (12.2,5.0);
\point{a}{0}{2.4};
\point{b}{2}{2.4};

\point{p9}{10.0000}{2.4000};
% \notation{1}{p8}{$\num{9.11e+01}$}[below right];
\notation{1}{p9}{$\num{0.00e+00}$}[below right];
\end{tikzpicture}
\label{fig:diagr04}
}
\caption{Diagrammi momento flettente dovuti a carichi variabili distribuiti. Grandezze espresse in \si{\kN\m\per\m}.}
\end{figure}

\end{document}
` A giochi fatti, ovviamente leva il [tt]show background rectangle[/tt].

I diagrammi sono molti e vengono impilati a gruppi di quattro, i bordi orizzontali del rettangolo di contorno devono essere ottimizzati per ridurre lo spazio verticale tra un’immagine e l’altra quindi dovrei sceglierli appositamente di volta in volta, lavoro che diventerebbe impreciso e piuttosto lungo. La soluzione che mi hai dato andrebbe bene se non ci fosse questo problema. I bordi verticali (quello dx e quello sx) invece possono essere fissati una volta sola per tutti i grafici quindi ho optato per una soluzione forse non elegante ma almeno è rapida:
`\draw [white] (-1.5,0) circle (0pt) (13.5,0) circle (0pt);`
Cosa ne pensi? Avresti un’alternativa?

cfiandra” post=91584
Ultima cosa, sul pacchetto. Mi sembra un buon lavoro anche se io non sono un fan di macro con mille argomenti: per migliorare la leggibilità preferisco l’utilizzo di chiave-valore. Tu ovviamente sai cosa vuol dire ognuno degli argomenti di:`
\internalforces{a}{b}{0}{-1.6105}[-.3][black][0.5];

\beam{1}{f}{c}[1][1];
` perché in questo momento ci lavori. Ma ti assicuro che se dopo qualche mese di completa inattività torni a guardare quel sorgente non ti apparirà così chiaro; invece leggendo qualcosa tipo: `
\node[module size=0.5cm,pin length factor=0.5,
module ysep=1, module xsep=1.25,
clos rear={module label opacity=0}] {};
` è immediato capire cosa fa ognuna delle chiavi. L’esempio è tratto dal pacchetto sa-tikz v0.7a che è disponibile su TeXLive e su https://github.com/cfiandra/Sa-TikZ. Puoi guardare il codice di quel pacchetto per capire come implementare un meccanismo chiave-valore con TikZ.

Ultima cosa, [tt]tikzstyle[/tt] è deprecato; non creare nuovi stile con quel comando, ma usa [tt]tikzset[/tt].

Tengo a precisare che il pacchetto non è mio: è stato creato da un tesista tedesco e io ho solo collaborato aggiungendo qualche funzione mancante e delle piccole parti. Questo ragazzo ha fatto un grande lavoro e ha creato anche la versione per le strutture 3D.

Ho appena visto il manuale del pacchetto Sa-tikz (fresco di pubblicazione su texlive 😀 !). Ho capito cosa intendi riguardo alle macro e i mille argomenti, certo il tuo pacchetto permette di disegnare con codici ordinati e più semplici da “ricordare”. C’è di buono che di questo pacchetto è stato scritto un manuale (in tedesco) che descrive abbastanza bene molti comandi.

Grazie per tutti i consigli
Saluti
Marco

P.S.: il link che hai aggiunto mi restituisce “page not found”.
P.P.S.: Ho visto il sito del pacchetto Sa-tikz. Mi è piaciuta molto la grafica del titolo.
P.P.P.S.: Nel manuale del pacchetto, nella nota n.1 in basso a pagina 2 “1In order to compile the documentation, and only for this scope, TikZ 3.0.0 is mandatory.”: si sa quando verrà pubblicato tikz 3.0.0?

Go to top