Re: centrare disegno tikz

#92035
Up
0
Down
::


Corretto, 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{e}{4}{0};
\point{f}{8}{0};
\beam{1}{a}{d}[0][0];
\beam{1}{b}{e}[1][1];
\beam{1}{e}{f}[1][1];
\beam{1}{f}{c}[1][1];)
\point{g}{6}{2.4};
\point{h}{6}{0};
\internalforces{a}{b}{0}{-0.8015}[-.1][black][0.5];
\internalforces{c}{d}{-0.3929}{0}[-.1][black][0.5];
\point{p1}{2}{3.2015};
\point{p2}{10}{2.7929};
\notation{1}{p1}{$\num{-1.75e+02}$}[above left];
\notation{1}{p2}{$\num{-8.60e+01}$}[above right];
\internalforces{b}{c}{-2.0000}{-1.1985}[-2.7][black][0.5];
\internalforces{g}{g}{-0.4094}{-0.4094}[0][black];
\point{p3}{2}{4.4000};
\point{p4}{6}{1.9906};
\point{p5}{10}{3.5985};
\notation{1}{p3}{$\num{-4.38e+02}$}[above right];
\notation{1}{p4}{$\num{8.96e+01}$}[below];
\notation{1}{p5}{$\num{-2.62e+02}$}[above left];
\internalforces{e}{f}{-0.2069}{0.2617}[0][black];
\point{p10}{4}{0.2069};
\point{p11}{6}{-0.0000};
\point{p12}{8}{-0.2617};
\notation{1}{e}{$\num{-4.53e+01}$}[below left];
\notation{1}{p11}{$\num{0.00e+00}$}[above ];
\notation{1}{f}{$\num{5.73e+01}$}[above left];
\internalforces{b}{e}{1.0615}{-0.2069}[0][black][0.5];
\point{p6}{1.1846}{1.7205};
\point{p7}{4.1589}{0.1324};
\notation{1}{p6}{$\num{2.32e+02}$}[below left];
\internalforces{f}{c}{0.2617}{0.4917}[0][black][0.5];
\point{p8}{8.2010}{-0.1675};
\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{c}{10}{2.4};
\point{d}{12}{2.4};
\point{e}{4}{0};
\point{f}{8}{0};
\beam{1}{a}{d}[0][0];
\beam{1}{b}{e}[1][1];
\beam{1}{e}{f}[1][1];
\beam{1}{f}{c}[1][1];)
\point{g}{6}{2.4};
\point{h}{6}{0};
\internalforces{a}{b}{0}{-1.6105}[-.3][black][0.5];
\internalforces{c}{d}{-1.0653}{0}[-.3][black][0.5];
\point{p1}{2}{4.0105};
\point{p2}{10}{3.4653};
\notation{1}{p1}{$\num{-2.71e+02}$}[above left];
\notation{1}{p2}{$\num{-1.79e+02}$}[above];
\internalforces{b}{c}{-2.0000}{-1.0653}[-2.65][black][0.5];
\internalforces{g}{g}{-0.4309}{-0.4309}[0][black];
\point{p3}{2}{4.4000};
\point{p4}{6}{1.9691};
\point{p5}{10}{3.4653};
\notation{1}{p3}{$\num{-3.37e+02}$}[above right];
\notation{1}{p4}{$\num{7.26e+01}$}[below];
% \notation{1}{p5}{$\num{-1.79e+02}$}[above left];
\internalforces{e}{f}{-0.6140}{0.5409}[0][black];
% \internalforces{h}{f}{0.0000}{0.5409}[-.1][black][0.5];
\point{p10}{4}{0.6140};
\point{p11}{6}{-0.0000};
\point{p12}{8}{-0.5409};
\notation{1}{e}{$\num{-1.03e+02}$}[below left];
\notation{1}{p11}{$\num{0.00e+00}$}[below ];
\notation{1}{f}{$\num{9.11e+01}$}[above left];
\internalforces{b}{e}{0.5318}{-0.6140}[0][black][0.5];
\point{p6}{1.5915}{2.0596};
\point{p7}{4.4717}{0.3931};
\notation{1}{p6}{$\num{8.95e+01}$}[below left];
% \notation{1}{p7}{$\num{-1.03e+02}$}[above right];
\internalforces{f}{c}{0.5409}{0.0000}[0][black][0.5];
\point{p8}{8.4155}{-0.3463};
\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].

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].

Ciao
Claudio

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

Go to top