Uno dei punti di forza di tikz è di usare gli stessi font del documento. Ma non è vietato adoperarli a corpi diversi, per esigenze di impaginazione. Altro punto di forza è che non richiede inclusioni di file esterni.
La costruzione che ti propongo è di mettere il disegno prima di tutto in una box che rimpicciolisci proporzionalmente fino a che la sua larghezza sia come la giustezza (larghezza delle righe di testo) aumentata dello spazio riservato alle note marginali (\marginparwidth) e di quello di separazione fra testo e note marginali (\marginparsep).
Questa box viene poi inserita in un’altra la cui ampiezza è zero, così LaTeX non si lamenterà di “Overfull \hbox”: la figura “sfora”, ma in realtà non occupa spazio orizzontale.
Se per caso la figura casca in una pagina pari, basta cambiare \raggedright in \raggedleft e l’argomento opzionale [l] in [r]. Ovviamente va fatto quando il testo è definitivissimissimo.
Ciao
EnricoBuonasera.
La soluzione che Enrico mi ha gentilmente proposto si è rivelata molto più utile del previsto. Infatti, sempre con il solito classicthesis, mi sono trovato ad utilizzare (abbastanza intensamente) il pacchetto schemabloc, che a sua volta sfrutta tikz, ma che NON ammette nemmeno l’opzione scale, così che più volte ho usato la magia qui sopra suggerita anche solo per stare dentro \textwidth.Ora vi chiedo: e se volessi combinare i box con subfigure?
Mi spiego meglio: due immagini sono concettualmente legate, e vorrei posizionarle l’una sotto l’altra in due subfloat. Una delle due immagini (la prima) è il solito disegno tikz troppo largo. Ho provato ad adattare la soluzione di prima: ho tolto
`\makebox[0pt][l]{`
che, se non sbaglio, serve “solo” per far sì che LaTeX non produca overfull hbox (anche se, in realtà, mi manca il significato di “l”), ma che dava enormi problemi con la didascalia (a), definita come opzione di subfloat.
La figura (per ora) cade in una pagina pari, quindi ho messo raggedleft
A seguire, ho ripetuto il classico centering, giacché la seconda figura è più stretta della giustezza del testo.Quello che ne risulta è:
`\begin{figure}%
{\raggedleft%
\subfloat[Disegno largo.\label{fig:uno}]{%
\resizebox{\textwidth+\marginparsep+\marginparwidth}{!}{%
\input{fig/disegnotikz}}}}\\
{\centering%
\subfloat[Disegno stretto.\label{fig:due}]{%
\resizebox{.8\textwidth}{!}{%
\input{fig/due}}}%
\caption{Due disegni.}%
\label{fig:disegno}%
\end{figure}`Il problema è che il secondo disegno, più stretto della giustezza, è allineato con il margine sinistro, anziché centrato; il primo disegno, che nel mio intento dovrebbe allinearsi a destra e sporgere nel margine sinistro (si trova in una pagina pari, per ora), si allinea con il margine sinistro e sporge a destra.
Mettere raggedright non cambia le cose.
L’unica che, come niente fosse, si allinea bella bella al centro della colonna di testo è la didascalia generale.
Se cambi le carte in tavola non vale! 🙂
`\begin{figure}
\centering
\subfloat[Disegno largo.\label{fig:uno}]{%
\makebox[\textwidth][l]{%
\resizebox{\textwidth+\marginparsep+\marginparwidth}{!}{%
\input{fig/disegnotikz}}}}}\\
\subfloat[Disegno stretto.\label{fig:due}]{%
\resizebox{.8\textwidth}{!}{%
\input{fig/due}}}}%
\caption{Due disegni.}
\label{fig:disegno}
\end{figure}`
Spiegazione: \makebox[
Quando si ripensa a una soluzione, se ne trova spesso una migliore. 🙂 Con \makebox[\textwidth][l]{…} puoi usare \centering. Per far sbordare a destra usi “l”, per l’opposto usi “r”.
Ciao
Enrico
Tolte due graffe che erano in più, secondo le indicazioni del messaggio successivo dell’OP